読者です 読者をやめる 読者になる 読者になる

C++1z 値を返す型特性クラスのconstexpr変数テンプレート版

C++

C++14では、f<Arg>::typeのような型を返す型特性クラスに対して、f_t<Arg>のように_tをクラス名に付けて::typeを省略するエイリアステンプレート版が追加されました。

C++1zでは、f<Arg>::valueのような値を返す型特性クラスに対して、f_v<Arg>のように_vをクラス名に付けて::valueを省略する変数テンプレート版が追加されます。

ttypevvalueを意味します。

#include <type_traits>

int main()
{
    // 値を返す型特性クラスの、通常の使い方
    static_assert(std::is_void<void>::value); // 明示的に結果を取り出す
    static_assert(std::is_void<void>()());    // 関数呼び出し演算子
    static_assert(std::is_void<void>());      // boolへの型変換演算子

    // C++1zで追加される変数テンプレート版
    static_assert(std::is_void_v<void>);
}

変数テンプレートに対応する型特性クラスの一覧は、参照先の提案文書で確認してください。

参照

お断り

この記事の内容は、C++1zが正式リリースされる際には変更される可能性があります。正式リリース後には、C++日本語リファレンスサイトcpprefjpの以下の階層の下に解説ページを用意する予定です。