namespace std {
template <class T>
constexpr T bit_ceil(T x);
}
概要
整数値を2の累乗値に切り上げる。
テンプレートパラメータ制約
- 型
T
が符号なし整数型であること
事前条件
x
以上となる最小の2の累乗値をN
として、型T
において値N
が表現できること
戻り値
N
を返す
例外
投げない
定数式に評価される条件
- 事前条件を満たすこと
備考
- 値
x
を累乗値に切り上げた値が型T
の範囲内で表現できない場合、未定義動作となり、定数式にはならない
例
出力
127 : 128
0 : 1
1 : 1
2 : 2
3 : 4
4 : 4
5 : 8
6 : 8
7 : 8
8 : 8
9 : 16
10 : 16
11 : 16
12 : 16
13 : 16
14 : 16
15 : 16
16 : 16
17 : 32
18 : 32
19 : 32
20 : 32
21 : 32
22 : 32
23 : 32
24 : 32
25 : 32
26 : 32
27 : 32
28 : 32
29 : 32
30 : 32
31 : 32
32 : 32
バージョン
言語
- C++20
処理系
- Clang: 9.0 ✅
- GCC: 9.1 ✅
- Visual C++: ??
参照
- P0556R3 Integral power-of-2 operations
- P1355R2 Exposing a narrow contract for
ceil2
- P1956R1 On the names of low-level bit manipulation functions
--
std::ceil2
からstd::bit_ceil
に名称変更