模板化类的一个常见模式是模板参数在类内部进行了类型定义,以便于访问:
#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");