テンプレート化されたクラスの一般的なパターンは、簡単にアクセスできるように、テンプレート引数がクラス内で型定義されていることです。
#include <type_traits>
template<class T> struct Foo{
typedef T type;
};
static_assert(std::is_same<Foo<int>::type,int>::value,"");
非型テンプレート引数で同じことを行うにはどうすればよいですか? 私は次のアイデアしか思いつきませんでしたが、もっとエレガントなものが必要ですか?
template<int I> struct Bar{
constexpr static int getI(){ return I; }
};
static_assert(Bar<5>::getI()==5,"error");