// Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef BASE_NUMERICS_INTEGRAL_CONSTANT_LIKE_H_ #define BASE_NUMERICS_INTEGRAL_CONSTANT_LIKE_H_ #include #include namespace base { // Exposition-only concept from [span.syn] template concept IntegralConstantLike = std::is_integral_v && !std::is_same_v> && std::convertible_to && std::equality_comparable_with && std::bool_constant::value && std::bool_constant(T()) == T::value>::value; } // namespace base #endif // BASE_NUMERICS_INTEGRAL_CONSTANT_LIKE_H_