最終更新日時(UTC): 2026年06月15日 05時22分22秒
Akira Takahashi が更新

履歴 編集

macro
<climits>

# UCHAR_WIDTH(C++26)

    #define UCHAR_WIDTH implementation-defined

## 概要

`unsigned char`型の幅 (値ビット数) を表す。`CHAR_BIT`と等しい。`#if`などのプリプロセッサディレクティブで使用できる。

幅 (width) とは、その型が値の表現に使用するビット数であり、符号付き整数型では符号ビットを含む。パディングビットを含むストレージサイズ (`sizeof` × `CHAR_BIT`) とは異なる場合がある。

C23で`<limits.h>`に追加されたマクロであり、C++26で`<climits>`に取り込まれた。

## 例

    #include <climits>
    #include <iostream>

    int main()
    {
      std::cout << UCHAR_WIDTH << '\n';
    }

### 出力例

    8

## バージョン

### 言語

- C++26

### 処理系

- Clang: 23 ✅
- GCC: 17 ✅
- Visual C++: 2026 Update 2 ❌

## 参照

- P3348R4 C++26 should refer to C23 not C17
  - C++26がC23を参照するようになり、このマクロが`<climits>`に追加された