マクロと C++
C++ 15 の一部が ANSI C プリプロセッサによって提供されるに代わる新しい機能を提供します。これらの新しい機能は言語のタイプ セーフと予測可能性が高まります :
C++ では 定数 として宣言されたオブジェクトが定数式で使用できます。これはプログラムの型と値については列挙型をデバッガーによってシンボルで表示できる定数を宣言します。#define のプリプロセッサ ディレクティブを使用して定数を定義すると厳密ではありません。 定数 のオブジェクトの記憶領域はアドレスを指定する式をプログラムには使用できません。
C++ のインライン関数の機能は関数型のマクロよりも優先されます。マクロにインライン関数を使用する場合の長所 :
タイプ セーフ。インライン関数は関数と同じ型チェックが適用されます。マクロはタイプ セーフではありません。
副作用がある引数の処理を修正します。インライン関数が関数本体に入る前に引数として指定された式を評価します。したがって副作用の式が安全でない可能性はありません。
インライン関数の詳細についてはインライン__inline__forceinline を参照してください。
下位互換性を維持するためANSI C と C++ の以前の仕様にあるすべてのプリプロセッサ機能はMicrosoft C++ のために残されています。