potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

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を使います。