プログラミング言語C++において、コンパイル時にある変数の宣言型を判定する方法あれこれ。
// 型名T と 変数名val // C++11以降 #include <type_traits> static_assert(std::is_same<T, decltype(val)>::value, ""); // C++17以降 #include <type_traits> static_assert(std::is_same_v<T, decltype(val)>); // C++20以降 #include <concepts> static_assert(std::same_as<T, decltype(val)>); // C++2b(C++23)以降 #include <typeinfo> static_assert(typeid(T) == typeid(val));
関連URL