potisanのプログラミングメモ

プログラミング素人です。昔の自分を育ててくれたネット情報に少しでも貢献できるよう、情報を貯めていこうと思っています。Windows環境のC++やC#がメインです。

C++20 constexpr下の整数⇔ポインタキャストはreinterpret_castではなくstd::bit_cast <bit>を使う

constexprreinterpret_castを含めません。C++20からはより厳密かつconstexprに対応したstd::bit_castが提供されています。reinterpret_castをポインタの型変換に使う場合はこちらを使う方が良さそうです。

ポインタ同士のキャストにはstatic_castを使います。ただし、LPWSTRwchar_t*のようにLP指定されたポインタと無指定のポインタとの変換ではエラーが発生する場合があります。この場合はstd::bit_castを使います。