最終更新日時(UTC):
が更新

履歴 編集

<stdbit.h>

stdbit.h(C++26)

<stdbit.h>はC23で追加されたビット操作ライブラリをC++から使用するための互換ヘッダである。

C言語では型総称マクロ (type-generic macro) として提供される汎用関数が、C++では関数テンプレートとして提供される。型別の関数 (_uc, _us, _ui, _ul, _ullサフィックス) はCと共通のインタフェースである。

このヘッダで宣言される関数およびマクロはstd名前空間に属さず、グローバル名前空間に定義される。C++の対応するヘッダとして<cstdbit>は提供されない。これは、C言語との相互運用性を重視し、CとC++の両方でコンパイル可能なコードを記述できるようにするためである。

C++固有のビット操作機能が必要な場合は、<bit>ヘッダの使用を推奨する。

マクロ

名前 説明 対応バージョン
__STDC_VERSION_STDBIT_H__ ヘッダのバージョン (202311L) C++26
__STDC_ENDIAN_BIG__ ビッグエンディアンを表す定数 C++26
__STDC_ENDIAN_LITTLE__ リトルエンディアンを表す定数 C++26
__STDC_ENDIAN_NATIVE__ 実行環境のエンディアンを表す定数 C++26

先頭のビットカウント

名前 説明 対応バージョン
stdc_leading_zeros 左から連続した0のビットを数える (function template) C++26
stdc_leading_ones 左から連続した1のビットを数える (function template) C++26

末尾のビットカウント

名前 説明 対応バージョン
stdc_trailing_zeros 右から連続した0のビットを数える (function template) C++26
stdc_trailing_ones 右から連続した1のビットを数える (function template) C++26

先頭のビット位置検索

名前 説明 対応バージョン
stdc_first_leading_zero 左から最初の0のビット位置を求める (function template) C++26
stdc_first_leading_one 左から最初の1のビット位置を求める (function template) C++26

末尾のビット位置検索

名前 説明 対応バージョン
stdc_first_trailing_zero 右から最初の0のビット位置を求める (function template) C++26
stdc_first_trailing_one 右から最初の1のビット位置を求める (function template) C++26

ビット数カウント

名前 説明 対応バージョン
stdc_count_zeros 0のビットを数える (function template) C++26
stdc_count_ones 1のビットを数える (function template) C++26

2の累乗整数

名前 説明 対応バージョン
stdc_has_single_bit 1ビットだけ立っている値をもっているか判定する (function template) C++26
stdc_bit_width 値を表現するために必要なビット幅を求める (function template) C++26
stdc_bit_floor 整数値を2の累乗値に切り下げる (function template) C++26
stdc_bit_ceil 整数値を2の累乗値に切り上げる (function template) C++26

バージョン

言語

  • C++26

処理系

関連項目

  • <bit> - C++標準のビット操作ライブラリ

参照