1// Copyright 2021 The Chromium Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5// This is a "No Compile Test" suite. 6// https://dev.chromium.org/developers/testing/no-compile-tests 7 8#include "base/containers/enum_set.h" 9 10namespace base { 11namespace { 12 13size_t LargeSparseEnum() { 14 enum class TestEnumSparse { 15 TEST_1 = 1, 16 TEST_MIN = 1, 17 TEST_50 = 50, 18 TEST_100 = 100, 19 TEST_MAX = TEST_100, 20 }; 21 using TestEnumSparseSet = EnumSet<TestEnumSparse, TestEnumSparse::TEST_MIN, 22 TestEnumSparse::TEST_MAX>; 23 24 // TestEnumSparseSet::All() does not compile as constexpr because there are 25 // more than 64 possible values. 26 constexpr auto set = TestEnumSparseSet::All(); // expected-error {{constexpr variable 'set' must be initialized by a constant expression}} 27 return set.size(); 28} 29 30} // namespace 31} // namespace base 32