为什么所有现有的 C++ 编译器都不支持继承构造函数?

2024-04-12

目前,G++ 和 VC++ 2010 都不支持继承构造函数。

然而,我认为这是 C++0x 中最美丽的功能之一。我认为编译器应该很容易实现它。

为什么编译器对此功能不感兴趣?

假设我想通过继承 std::string 来设计自己的字符串类,如下所示:

class MyString : public std::string
{
public:
// I have to redefine many overloaded ctors here and forward their arguments to 
// std::string's ctors. How tedious it will be!!!
};

一个漂亮的代码示例:

struct B1 
{
   B1(char);
};

struct B2 
{
   B2(double);
   B2(int);
};

struct D1 : B1, B2 
{
   using B1::B1; //  D1(char)
   using B2::B2;  // D1(double), D1(int)
};

D1 d('c'); //OK, invokes D1(char)

C++0x 中有很多新材料,而且从事 gcc 工作的志愿者似乎发现首先要做的其他更改更有趣。

至于 VC++,不仅有工作的优先级,还有需求、文档和非常广泛的测试的额外成本(经常在 Microsoft 产品经理博客中提到),这些是销售产品的必要部分,远远超出了这些使其发挥作用。

最后,听起来 C++0x 委员会最近正在讨论削减此功能 https://stackoverflow.com/questions/4129023/how-useful-would-inheriting-constructors-be-in-c,因为大约 95% 的用例都有简单的解决方法。

综合起来,我对编译器工程师将这个保留下来以供以后使用并不感到惊讶。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么所有现有的 C++ 编译器都不支持继承构造函数? 的相关文章

  • 我应该把 try/catch 和“using”语句放在哪里? [复制]

    这个问题在这里已经有答案了 可能的重复 try catch using 正确的语法 https stackoverflow com questions 4590490 try catch using right syntax 我想try c
  • 锁定 ASP.NET 应用程序变量

    我在 ASP NET 应用程序中使用第三方 Web 服务 对第 3 方 Web 服务的调用必须同步 但 ASP NET 显然是多线程的 并且可能会发出多个页面请求 从而导致对第 3 方 Web 服务的同时调用 对 Web 服务的调用封装在自
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • MFC CList 支持复制分配吗?

    我在 MSVC 中查找了 CList 定义afxtempl h http www cppdoc com example mfc classdoc MFC AFXTEMPL H html并记录在MSDN http msdn microsoft
  • 司机和提供商之间的区别

    数据库中的驱动程序和提供程序有什么区别 有没有解释一下 不胜感激 样本 ADO NET driver for MySQL vs providerName System Data EntityClient 来自 MSDN 论坛 驱动程序是安装
  • 将设置函数(setter)标记为 constexpr 的目的是什么? [复制]

    这个问题在这里已经有答案了 我无法理解将 setter 函数标记为的目的constexpr 自 C 14 起这是允许的 我的误解来自以下情况 我使用 constexpr c tor 声明一个类 并且我将通过创建该类的 constexpr 实
  • 有什么方法可以重载 C# 中的扩展方法吗?

    我有以下模型模式 public abstract class PARENTCLASS public class CHILD A CLASS PARENTCLASS public static class EXTENSION public s
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • 用于连接 DataTable 上的动态列的动态 LINQ

    我目前遇到的情况不确定如何继续 我有两个从数据库填充的数据表 我还有一个可用的列名称列表 可用于将这两个数据表连接在一起 我希望编写一组 LINQ 查询 这些查询将 显示两个数据表中的行 内部联接 用于从一个数据表更新另一个数据表 显示一个
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • Xamarin - SignalR 挂在连接上

    我正在尝试将我的 Xamarin 应用程序连接到托管在 Azure 上的 SignalR 后端 我遇到的问题是每次我在 HubConnection 上调用 StartAsync 时 它都会挂起客户端并且请求永远不会完成 我尝试通过应用程序进
  • 时间:2019-03-17 标签:c++fstream并发访问

    如果从不同的进程 线程同时访问文件会发生什么 据我所知 没有锁定文件的标准方法 只有操作系统特定的功能 就我而言 文件将被经常读取而很少写入 现在如果A打开一个文件进行读取 ifstream 并开始读取块 和B打开相同的文件进行写入 ofs
  • 如何在 C# 中获取 Json 数组?

    我有一个像这样的 Json 字符串 我想将它加载到 C 数组中 当我尝试这样做时 我收到异常 我的字符串 customerInformation customerId 123 CustomerName Age 39 Gender Male
  • C 中使用 getrandom 实现随机浮点数

    我试图生成一个介于 0 和 1 之间的随机浮点数 无论是在 0 1 还是 0 1 对我来说都不重要 网上关于此的每个问题似乎都涉及rand 呼叫 播种time NULL 但我希望能够每秒多次调用我的程序 并每次都获得不同的随机数 这引导我找
  • 如何在dll级别读取app.config? [复制]

    这个问题在这里已经有答案了 我在一个解决方案中有一个控制台应用程序项目和库项目 dll The 图书馆项目有 app config 文件 我在其中存储我在库中使用的一些键值对 控制台应用程序引用此 dll 我有另一个 app config
  • “必须声明标量变量”错误[重复]

    这个问题在这里已经有答案了 必须声明标量变量 Id SqlConnection con new SqlConnection connectionstring con Open SqlCommand cmd new SqlCommand cm
  • printf或iostream如何指定点后的最大位数

    字符串采用什么格式printf or iomanip我应该使用 iostream 中的运算符以以下格式打印浮点数 125 0 gt 125 125 1 gt 125 1 125 12312 gt 125 12 1 12345 gt 1 12
  • 这种尺寸对齐是如何工作的

    对于所提供的评论 我无法理解以下代码 这段代码的作用是什么 以及等效的代码是什么8 aligned segment size must be 4 aligned attr gt options ssize 3 Here ssize is o
  • 为什么表达式 a = a + b - ( b = a ) 在 C++ 中给出序列点警告?

    以下是测试代码 int main int a 3 int b 4 a a b b a cout lt lt a lt lt a lt lt lt lt b lt lt b lt lt n return 0 编译此命令会出现以下警告 gt g
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima

随机推荐

  • 无法打开下载保存对话框

    使用下面的代码我无法显示打开 另存为文件对话框 public void ProcessRequest HttpContext context string link context Request QueryString Link stri
  • 在 google app engine python 中设置 cron 作业

    我刚刚开始使用 Google App Engine 所以我仍在学习如何配置所有内容 我编写了一个名为 parsexml py 的脚本 我希望每 10 分钟左右运行一次 该文件位于我的主目录中 与 main py app yaml 等一起 据
  • 自动添加或删除 Woocommerce 购物车中的免费产品

    我正在尝试创建代码 一旦客户达到购物车中的特定价格点 该代码就会自动将商品添加到客户的购物车中 如果他们只订购虚拟产品 我试图排除这种情况的发生 因为 免费礼物 仅适用于正在发货的产品 我使用的代码是以正确的金额添加免费礼物 但并不排除任何
  • 如何以 4/6/7 角度传递表单提交上的所有选中复选框值

    我想在组件中获取表单的所有已检查项目而不使用change or click 功能 因为它无法获取已检查的项目 这是我在 TS 中的数组 PartyRoles Id 1 Name Vendor Checked true Id 2 Name C
  • VSCode 中的 Flutter 初始化

    我一直在使用 VS Code 开发一个 flutter 项目 当我今天打开我的项目时 有一条通知显示 正在初始化 flutter 这可能需要几分钟 然后就被击中了 此外 flutter run 和 flutter doctor 等所有命令都
  • 将 WKNSURLRequest 崩溃为?其他类型

    当我尝试强制转换 WKNSURLRequest 以及其他类 全部来自 WebKit 框架 时 我遇到了严重崩溃 例如在游乐场 import UIKit import WebKit final class Sigh NSObject NSCl
  • bash set -e and i=0;让i++不同意

    仅当变量的先前值为零时 以下带有调试选项 set e v 的脚本才会在增量运算符处失败 bin bash set e v i 1 let i echo I am still here i 0 let i echo I am still he
  • 在 Flask 中使用 root_path 参数

    我尝试遵循一个教程 该教程旨在演示如何更改静态和模板文件夹在根目录中的位置 但是我无法让这个例子工作 应用程序运行正常 但在查找样式表 GET static style css HTTP 1 1 404 时返回 404 因此 它似乎可以找到
  • 如何从字符串形式的发送者向模拟器发送短信

    我经常在手机中收到短信 其中发送者中包含一些字符串而不是数字 例如公司名称 我想测试一些对这些短信做出反应的应用程序 但是如何将这样的短信发送到模拟器 如果我运行模拟器并执行以下操作 远程登录本地主机 5554 短信发送 MyBank 这是
  • 如何在 Lattice 包中将标签添加到 Levelplot 的顶部 X 轴

    所以我正在使用类似于此的 levelplot 制作类似相关矩阵的图 取自 将相关矩阵绘制成图表 https stackoverflow com questions 5453336 plot correlation matrix into a
  • 如何使带有前导零的不连续字符数字序列连续?

    我有这个字符向量 dput t line c 0304 0305 0306 0308 0311 0313 0314 0316 0318 0321 0322 0323 0324 0326 0327 0330 0333 0337 0338 03
  • 从服务器序列故障转移加载 .js?

    让我们想象一个网页需要加载一个 javascript 文件 即my js 是否可以组织以下故障转移加载顺序 如果服务器 A 已启动 则加载my js来自服务器A 否则 如果服务器 B 已启动 则加载my js来自服务器 B 否则 如果服务器
  • 使用maven仓库作为本地ivy缓存

    是否有可能使用本地 Maven 存储库 m2 作为本地 Ivy 缓存 ivy 他们有不同的布局 有时我使用 Maven 有时我使用 SBT 它在下面使用 Ivy 所以我在 Maven 和 Ivy 中都有相同库的 2 个副本 我想使用相同的目
  • iPhone 上 UIView 和 UILabels 上的渐变[重复]

    这个问题在这里已经有答案了 可能的重复 在 iPhone 应用程序中手动绘制渐变 https stackoverflow com questions 227005 manually drawing a gradient in iphone
  • 如何在函数内使用 ls() 搜索环境?

    我想找到一组函数并保存它们 因为我想将它们以 Rdata 文件发送到远程服务器 并且我不想在服务器上安装新的包 尽管我使用下面的方法遇到错误 但更简单 更好的方法是值得欢迎的 MWE 这是两个虚拟函数 abcd fun 1 lt funct
  • @Column columnDefinition 使哪些属性变得多余?

    我经常指定我的 Column像这样的注释 Column columnDefinition character varying 100 not null length 100 nullable false 正如你所看到的 我指定length
  • MySQL - 如何根据输入的长/纬度选择经度和纬度以逗号分隔的行?

    好的 我的数据库表中有以下两列 其中包含以下长 纬度 longitude 2 2426305000000184 0 7077123000000256 latitude 53 4807593 51 5459269 到目前为止我有这个查询 fu
  • Rails/ActiveRecord has_many through:未保存对象的关联

    让我们使用这些类 class User lt ActiveRecord Base has many project participations has many projects through project participation
  • 跨两个命名域共享会话 cookie

    我有一个具有以下域的 net Web 应用程序 www domain com 子域名 com 文件 domain com 当用户登录到domain com或sub domain com时 我希望他们共享会话状态 即同时登录到两个域 这可以通
  • 为什么所有现有的 C++ 编译器都不支持继承构造函数?

    目前 G 和 VC 2010 都不支持继承构造函数 然而 我认为这是 C 0x 中最美丽的功能之一 我认为编译器应该很容易实现它 为什么编译器对此功能不感兴趣 假设我想通过继承 std string 来设计自己的字符串类 如下所示 clas