gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:03 25 4
gpt4 key购买 nike

目前,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 中有很多新 Material ,似乎从事 gcc 工作的志愿者发现了其他更有趣的变化,可以首先进行工作。

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

最后,it sounds like there was recent discussion among the C++0x committee about cutting this feature ,因为大约 95% 的用例都有直接的解决方法。

总的来说,我对编译器工程师保留这个以供日后使用并不感到惊讶。

关于c++ - 为什么所有现有的 C++ 编译器都不支持继承构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4417797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com