如何为类创建可选的C ++模板参数?

时间:2016-12-08 10:26:51

标签: c++ c++11 templates

我现在有一个类定义为

template <class A> class MyClass { };

我想添加一个可选的模板参数B,这将导致

template <class A, class B> class MyClass {};

但我想以这样的方式,如果没有指定B,即如果我定义

MyClass<double> x;

然后B也将是与A相同的类型(或在上述情况下为双倍)。

这在C ++中是否可行?

2 个答案:

答案 0 :(得分:3)

template <class A, class B = A> class MyClass {};

wandbox example

答案 1 :(得分:1)

是的,您只需设置B的默认值:

template <class A, class B = A> class MyClass {};