一个的typedef模板参数
我有代码,我想的typedef一个模板类以方便您阅读:一个的typedef模板参数
template<int A, int B> using templateClass = templateClass<A,B>;
void aFunction(templateClass& tc);
int main(){
templateClass<10, 34> tc;
aFunction(tc);
}
void aFunction(templateClass& tc){
...
}
,但我得到关于不模板标识符许多错误被发现。这应该怎么做?我是想以此为榜样:
How to typedef a template class?
回答:
templateClass
不是一个类型;它是一个类型模板。定义模板化功能时,您仍然需要使用template
关键字。
template<int A, int B> void aFunction(templateClass<A, B>& tc);
回答:
的别名模板是有用的,当你只知道提前一些模板参数:
template <class Value> using lookup = std::map<std::string, Value>;
lookup<int> for_ints;
lookup<double> for_doubles;
目前还不清楚你的情况,你是否需要一个类模板的名称:
template <class A, class B> class templateClass;
template <class A, class B>
using otherName = templateClass<A, B>;
如果您已经知道您需要的类型:
typedef templateClass<int, double> int_double;
,或者如果你只知道一个类型:
template <class B> using with_int = templateClass<int, B>;
在任何情况下,你不能有相同名称的别名为一类,就像你做了templateClass
。
以上是 一个的typedef模板参数 的全部内容, 来源链接: utcz.com/qa/262271.html