继承VS2013中的构造函数

Inheriting constructor in VS2013

VS2013 似乎不支持 C++11 的构造函数继承,如下所述: http://msdn.microsoft.com/en-us/library/hh567368.aspx

所以我无法做到以下几点:

class Animal {
public:
    int age;
    explicit Animal(int _age) {
        this->age = _age;
    }
};

class Dog : public Animal {
public:
    using Animal::Animal;
};

int main() {
    Dog d = Dog(5);
}

在 VS2013 中是否有任何解决方法,无需将 Dog 的构造函数硬编码为与 Animal 相同?

最接近的就是完美转发构造函数;

template <typename... Args>
Dog(Args&&... args)
: Animal(std::forward<Args>(args)...)
{ }

在某些情况下,它仍然与 using Animal::Animal 不完全相同,但它至少会为您提供所有 Animal 构造函数并保护您免受那里的更改,以免迫使您重写 Dog的构造函数每次。