Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 继承默认模板值_C++_Templates - Fatal编程技术网

C++ 继承默认模板值

C++ 继承默认模板值,c++,templates,C++,Templates,我有一个类的多个别名,希望这些别名继承基类的默认模板参数。下面是一个简单的例子,从语法上说明了我想要实现的目标: template<int f = 5> class A {}; template<int T/*= 5*/> using Test = A<T>; int main() { A<> foo; Test<> foo2; // error: wrong number of template argument

我有一个类的多个别名,希望这些别名继承基类的默认模板参数。下面是一个简单的例子,从语法上说明了我想要实现的目标:

template<int f = 5>
class A {}; 

template<int T/*= 5*/>
using Test = A<T>;

int main()
{
    A<> foo;
    Test<> foo2; // error: wrong number of template arguments (0, should be 1)
}
模板
A类{};
模板
使用测试=A;
int main()
{
阿福;
Test foo2;//错误:模板参数的数量错误(0,应该是1)
}
或者我必须使默认值成为可显式访问的值吗

static const int DefaultVal = 5;

template<int f = DefaultVal>
class A {}; 

template<int T= DefaultVal>
using Test = A<T>;
static const int DefaultVal=5;
模板
A类{};
模板
使用测试=A;
您不能“继承”默认值

另一种可能性是使用可变模板:

template <int ... Ts>
using Test = A<Ts...>;
模板
使用测试=A;
它允许
Test
作为
A
so
A

但它“存在于”无效的
测试中