std::integral (自 C++20 起)
来自 cppreference.com
定义在头文件 <concepts> 中 |
||
template< class T > concept integral = std::is_integral_v<T>; |
(自 C++20 起) | |
如果且仅当 T
是一个整型,则概念 integral<T> 满足。
[编辑] 示例
运行此代码
#include <concepts> #include <iostream> void print(std::integral auto i) { std::cout << "Integral: " << i << '\n'; } void print(auto x) { std::cout << "Non-integral: " << x << '\n'; } int main() { std::cout << std::boolalpha; static_assert(std::integral<bool>); print(true); static_assert(std::integral<char>); print('o'); static_assert(std::integral<int>); print(007); static_assert( ! std::integral<double> ); print(2e2); static_assert( ! std::integral<decltype("")> ); print("∫∫∫"); }
输出
Integral: true Integral: o Integral: 7 Non-integral: 200 Non-integral: ∫∫∫
[编辑] 参考
- C++23 标准 (ISO/IEC 14882:2024)
- 18.4.7 算术概念 [concepts.arithmetic]
- C++20 标准 (ISO/IEC 14882:2020)
- 18.4.7 算术概念 [concepts.arithmetic]
[编辑] 参见
(C++11) |
检查一个类型是否为整型 (类模板) |