- cstdint[meta header]
- macro[meta id-type]
- cpp26[meta cpp]
#define UINTPTR_WIDTH implementation-defineduintptr_t型の幅 (値ビット数) を表す。#ifなどのプリプロセッサディレクティブで使用できる。
幅 (width) とは、その型が値の表現に使用するビット数であり、符号付き整数型では符号ビットを含む。パディングビットを含むストレージサイズ (sizeof × CHAR_BIT) とは異なる場合がある。
C23で<stdint.h>に追加されたマクロであり、C++26で<cstdint>に取り込まれた。
- このマクロの定義有無
- C++26 : このマクロを定義するかどうかは処理系定義である (
uintptr_tが定義される場合にのみ定義される) - C++29 : このマクロは必ず定義される
- C++26 : このマクロを定義するかどうかは処理系定義である (
#include <cstdint>
#include <iostream>
int main()
{
std::cout << UINTPTR_WIDTH << '\n';
}- UINTPTR_WIDTH[color ff0000]
64
- C++26
- Clang: 23 [mark verified]
- GCC: 17 [mark verified]
- Visual C++: 2026 Update 2 [mark noimpl]
- P3348R4 C++26 should refer to C23 not C17
- C++26がC23を参照するようになり、このマクロが
<cstdint>に追加された
- C++26がC23を参照するようになり、このマクロが
- P3248R5 Require
[u]intptr_t- C++29で、
uintptr_tが必ず定義されるようになったことにともない、このマクロも必ず定義されるようになった。C++26では、定義するかどうかは処理系定義だった
- C++29で、