我希望给一个类型取一个别名,这样如果需要的话就可以给它传递一个模板参数。
template<typename T, unsigned d>
struct value
{
T a[d];
};
template<typename T=float>
using val=value<T, 2>;
int main()
{
val v; //should now be equal to val<float> v;
val<int> w; //should also be valid.
return 0;
}
G++由于某种原因不被批准:
test.cpp: In function ‘int main()’:
test.cpp:12:13: error: missing template arguments before ‘v’
val v; //should now be equal to val<float> v;
^
test.cpp:12:13: error: expected ‘;’ before ‘v’
默认模板参数与“using”一起不能使用吗?如果是这样,为什么默认参数指定的行没有说明呢?