C ++の「constexpr」とマクロの違いは何ですか？それぞれの長所と短所は何ですか？
マクロは、C ++コンパイラに送信される前に、テキストソースコードにC ++プリプロセッサによって実装されます。「constexpr」は言語自体の一部であり、コンパイル時にコンパイラによって評価されます。

どちらもコンパイル時間定数を定義するために使用できますが、一般に「constexpr」を好む必要があります。これは、範囲内の他の変数と偶発的な名前が競合するなど、C ++プレプロセッサの問題に悩まされないためです。