在C++中为模板化类创建别名的最佳方法是什么?

template<typename T>
class Dummy1
{
public:
    Dummy1(T var) : myVar1(var) {
    }
    ~Dummy1() {
    }
private:
    T myVar1;
};

C样式为:
typedef Dummy1<int> DummyInt;

据我所知,在C++中,我会写:
class DummyInt : public Dummy1<int>
{
    DummyInt(int a) : Dummy1<int>(a) { }
    ~DummyInt() { }
}

有更好/更短的方法吗?当我从基础继承时,以这种方式导致,每次都必须声明构造函数。

我需要Dummy1<int>的别名,否则我需要在整个代码中使用模板选项(如指针和引用)。但我不想这样做。

最佳答案

如果只需要使用继承,则可以通过仅继承它们来避免在c++11及以后重复构造函数:

struct DummyInt : Dummy1<int> {
  using Dummy1::Dummy1;
};

否则,只需使用别名即可。如果您不希望它成为“C方式”,则可以采用现代C++样式:
using DummyInt = Dummy1<int>;

10-04 22:54