我有一个以下功能模板:
template<class A, class C, class B>
A doFoo(const B &val)
{
//do something with C
}
在我的cpp文件中,所有 doFoo 函数将与C
的一种类型一起使用。有可能做这种typedef:
typedef myDoFoo<A, B> doFoo<A, ParticularC, B>
如果是 - 执行此操作的语法是什么?
答案 0 :(得分:7)
只需定义另一个模板功能:
template<class A, class B>
A myDoFoo(const B &val)
{
return doFoo<A,ParticularC,B>( val );
}
答案 1 :(得分:6)
你可以写一个函数:
template<class A, class B>
A myDoFoo(const B &val)
{
return doFoo<A, ParticularC, B>(val);
}
答案 2 :(得分:2)
使用变量模板(自版本5开始在GCC中可用),您可以定义对函数的引用:
template<class A, class B> auto &myDoFoo = doFoo<A, ParticularC, B>;
或更明确地
template<class A, class B> A (&myDoFoo)(const B &) = doFoo<A, ParticularC, B>;