【发布时间】:2011-11-15 16:58:37
【问题描述】:
在 C++0x 中,您可以使用 using 关键字来继承构造函数,如下所示:
class B { B(int) {} };
class A : public B { using B::B; };
这将隐式声明A(int) 构造函数。这适用于模板吗?
class B { B(int) {} };
template<class T> class A : public T { using T::T; };
在T::T 内,我希望编译器能够找出左手T,因为在模板参数上使用范围运算符是正常的,但找出右手T 是构造函数是一种特殊情况。事实上,似乎存在歧义:如果我在B 中有一个名为T 的方法,我试图在A 中添加重载(这就是编译器如何解释这样的 using 声明 pre-C+ +0x)?
【问题讨论】:
标签: c++ inheritance constructor standards c++11