【问题标题】:How to request a c++ feature?如何请求 C++ 功能?
【发布时间】:2015-04-10 07:53:04
【问题描述】:

我如何请求 C++ 功能? 我该写信给谁?

我想要请求的功能仅仅是语法商品: 使用组合时,我们需要更好的语法来提供方法转发。

类似以下内容:

class Object{
    InnerObject* inner;
public:
    using inner->method; //<-- here
};

这样的特性会诱使人们使用组合而不是继承来重用对象。

注意:例如,这可以通过使用 MACROS 来模拟,如下所示 {Method forwarding with composition instead of inheritance (using C++ traits)}。

【问题讨论】:

  • 在 C++ 标准委员会。祝你好运。
  • 写一份正式的提案并发送给ISO C++ committee
  • 您可能需要考虑私有虚拟继承。它在幕后与“使用指针组合”相同,但允许“使用”语法。 (请注意,如果您担心,私有继承不被视为“is-a”关系。)
  • 我投票结束这个问题,因为它超出了网站的范围。
  • @πάνταῥεῖ 有什么问题?我已经通过了提案。当然,如果您在委员会中很活跃,这会有所帮助,因为无论您如何制定提案,人们都会想问您一些问题。

标签: c++ inheritance standards composition code-reuse


【解决方案1】:

对于您的问题,SO 可能是错误的地方(programmers 可能是一个更好的地方)。然而:

  • 请求新的 C++ 功能是不现实的,除非您是世界知名的 C++ 专家。
  • 您可以修补一些 C++ 编译器(例如 Clang/LLVMGCC)来实现您的功能,并将该修补程序作为免费软件发布(供其他人试用);您还需要使用您的功能编写一些代码。
  • 您稍后可能会通过ISO C++ standardization committee 联系某些成员!

这一切都需要你很多年!

请注意C++14 是一种庞大的语言(它的规范文档-参见草案n3797- 重到足以杀死被扔它的人),我想避免增加它的社会和经济压力很大。

请注意,一些非常聪明的人工作了数年才向 C++ 提出新功能,但最终被拒绝(或被推迟多年)!

(例如,Google 搜索“C++ 中的概念”或“C++ 中的模块”)。

顺便说一句,您可能有更务实的方法来解决您的问题。有一些专门的 C++ 代码生成器来满足您的需求(该生成器可以是像 gppm4 这样的宏处理器,PythonAwk 中的一些专门脚本,或者像 ANTLR 或 Qt 的一些外部程序moc,甚至是从其他语言到 C++ 的翻译器,例如 MELT...)。

【讨论】:

  • 希望根据内容而不是作者来判断提案是否太天真了?
  • @Angew:我认为这太天真了,但我可能错了。
  • 即使您不是世界级的专家,请求新的 C++ 功能也没有什么不切实际的。然而,实际上:您需要积极参与委员会,以便跟进您的请求,而且您可以在某个地方实际实施它(例如通过修改 g++ 或 clang)将是一个明确的优势。
猜你喜欢
  • 2019-10-17
  • 2023-04-05
  • 2018-04-13
  • 2015-09-08
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 2021-07-30
  • 2020-11-06
相关资源
最近更新 更多