[C ++]インライン関数と関数cosntexpr

 

constexprの機能

  constexprの関数(constexprの機能)式は、定数のために使用することができる機能です。constexprのメソッド定義関数および他の同様の機能が、いくつかの規則に従うために:すべての機能はタイプとパラメータの型を返すリテラル型である必要があり、かつ機能ボディに、唯一のreturn文を持っている必要があります。

INT new_sz constexprの()42 {戻りある;}
constexprの
INT FOO = new_sz(); // 正しい:fooが定数式であります

  私たちは、パラメータなしのconstexprの関数として定義されnew_sz。時間new_szプログラム検証機能をコンパイルできるコンパイラが定数式を返すので、使用することができnew_szのfoo関数は、変数の型をconstexprの初期化します。

  機能の初期化タスクを実行する場合、コンパイラは結果constexprの値に関数呼び出しを交換します。コンパイル時にいつでも拡張することができるようにするためには、constexprの機能は、暗黙のうちに開発されたインライン関数です。

  また、彼らはライン上の任意の操作を行うことなく、実行する限り、他のステートメント、ステートメントを含むことができ、生体内でconstexprの機能。例えば、constexprの機能が利用できるの文、エイリアス、および型宣言文を使用してすることができます。

  私たちは、constexprの戻り値が定数関数ではありませんが可能。

 

おすすめ

転載: www.cnblogs.com/bootblack/p/11609426.html