use*_*436 8 c++ templates variadic-templates c++11
是否可以static const使用模板参数包中的值创建数组?我尝试了以下代码,但gcc 4.8.1给出了"错误:参数包未展开"
template<int... N>
struct ARRAY_OF_DIMS
{
static constexpr size_t NDIM = sizeof...(N);
static const int DIMS[NDIM];
};
template<int... N>
const int ARRAY_OF_DIMS<N>::DIMS[ARRAY_OF_DIMS<N>::NDIM] = { N... };
Run Code Online (Sandbox Code Playgroud)
K-b*_*llo 14
试试:
template<int... N>
const int ARRAY_OF_DIMS<N...>::DIMS[ARRAY_OF_DIMS<N...>::NDIM] = { N... };
Run Code Online (Sandbox Code Playgroud)
该参数包中ARRAY_OF_DIMS<N>是没有被扩大之一.必须扩展不是参数的每个参数包sizeof....