namespace std {
template <bool B>
using bool_constant = integral_constant<bool, B>;
}
概要
bool_constant
は、真理値型の定数を表す型である。
汎用的な整数型の定数を表すintegral_constant
の別名として定義される。
例
#include <iostream>
#include <type_traits>
// bool型の定数を受け取る
template <bool B>
void f(std::bool_constant<B>)
{
constexpr bool b = B;
std::cout << std::boolalpha << b << std::endl;
}
int main()
{
// bool型定数を表すために、事前に用意された型
f(std::true_type{});
f(std::false_type{});
// 直接bool_constantを使用する
f(std::bool_constant<true>{});
// bool_constantの元となっているintegral_constantを使用する
f(std::integral_constant<bool, true>{});
}
出力
true
false
true
true
バージョン
言語
- C++17
処理系
- Clang: 3.7.1 ✅
- GCC: 6.1 ✅
- Visual C++: ??