是否可以使用typedef仅指定模板类的几种类型?

假设有一个这样定义的模板类:

template <typename DOMAIN, typename COUNTERDOMAIN>
class funcType { public:
                   COUNTERDOMAIN calculate(DOMAIN x); 
               }

然后代码:

typedef funcType<float, float> floatFuncType 

很好用。

但是现在假设我只想指定模板类的第一个参数类型。

我试过了:

typedef funcType<float, typename COUNTERDOMAIN> RealFuncType;

并且

typedef funcType<float, typename COUNTERDOMAIN> RealFuncType<COUNTERDOMAIN>;

没有任何成功。我怎样才能做到这一点?是否可以?

回答

你想要的是一个别名模板。那看起来像

template <typename COUNTERDOMAIN>
using RealFuncType = funcType<float, COUNTERDOMAIN>;

然后你会像这样使用它

RealFuncType<float> foo;
RealFuncType<some_other_type> bar;


以上是是否可以使用typedef仅指定模板类的几种类型?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>