【问题标题】:Is inheriting constructors part of the standard?继承构造函数是标准的一部分吗?
【发布时间】:2013-12-02 11:20:34
【问题描述】:

我今天刚刚了解到可以使用using 语句继承构造函数:https://stackoverflow.com/a/20062289/5987

问题是这是否由标准指定,或者它是否是某些编译器的扩展。如果它是标准的一部分,它是在 C++11 中引入的吗?

【问题讨论】:

    标签: c++ inheritance c++11 constructor


    【解决方案1】:

    是的,这是标准的。是的,它是在 C++11 中添加的:

    C++11 § 12.9 继承构造函数 [class.inhctor]:

    命名构造函数的using-declaration (7.3.3) 隐式声明了一组继承构造函数。这 using-declaration 中命名的类X 继承的构造函数的候选集 由实际的 由默认参数转换产生的构造函数和名义构造函数,如下所示: ...

    【讨论】:

      【解决方案2】:

      它是在 C++11 中引入的,但正如上一个问题中提到的,由于它是相当新的,只有少数编译器支持此功能。

      【讨论】:

      • 嗯,GCC 和 Clang 已经支持它一段时间了,MSVC 从新的 CTP 开始支持它。这些可能是三个最常用的编译器。我不确定英特尔是否有它。
      猜你喜欢
      • 2014-09-25
      • 2015-11-11
      • 2020-10-29
      • 2014-11-14
      • 2011-04-21
      • 2013-06-01
      • 2023-04-03
      相关资源
      最近更新 更多