7

当前的 C++0x 草案中,我注意到他们引入了一些新的显式关键字来突出预期的行为(很棒的举动!)。

示例:默认/删除函数(= default= delete),新的nullptr常量,也可用于转换运算符的显式关键字,...

所以我希望看到纯虚函数的= pure语法。

相反,丑陋的(当然,恕我直言)= 0的东西仍然存在。

好的,我可以使用#define pure 0(有时我会这样做),但我认为一致性/一致性绝对应该是标准的目标。此外,我知道这只是一种超迂腐的要求,但= 0确实是我最不喜欢的 C++ 部分之一(委婉说法)......

我的问题:

  • 我知道,新标准功能齐全,但是否仍然可以要求这个小小的迂腐添加,即使只是作为“必需的宏”的东西?
  • 如果答案是肯定的,怎么办?(周围有委员会成员吗?)
  • 我只是有点过于迂腐(或错误)来要求这个补充吗?您如何看待纯虚函数的当前语法?
4

5 回答 5

29

这不是一个小小的迂腐变化。引入新关键字是您可以要求的最大更改之一。这是他们几乎不惜一切代价试图避免的事情。想想所有使用“纯”这个词的代码,这会破坏。

一般来说,他们的指导方针是只在语言中添加以前无法完成的内容。pure关键字不会启用任何新功能(例如,与 nullptr 关键字不同,它可以实现更好的类型检查),因此希望它具有非常低的优先级。请记住,他们所做的任何事情基本上都是维护工作。#1 目标是避免破坏语言(或使用它的现有代码)。只有在不破坏向后兼容性的情况下才能添加任何添加的功能。

然而,委员会或多或少是一个开放的论坛。浏览他们的网站,您应该能够找到一些电子邮件地址。或者使用comp.std.c++新闻组。

我相信他们的会议也是开放的,所以你可以直接闯入下一个会议。;)

于 2009-05-12T12:12:24.753 回答
5

讨厌C++ 的地方是“ = 0;”???

用过这种语言吗?还有很多其他的事情你可以更好地花费你的仇恨。

<Flame retardant>我已经使用 C++ 超过 10 年了。对我来说,每当我需要做一些繁重的计算时,它仍然是首选语言。</Flame retardant>

于 2009-05-12T13:22:10.713 回答
4

首先,开始阅读comp.std.c++新闻组。这是公开讨论的地方。

其次,我想说只有勘误表将应用于当前的 C++0x 草案,委员会确实处于最后阶段。

如果您非常热衷,请在新闻组中提出您的建议,并提供非常好的理由。并期待它被击落。实质上更有用的提案(例如模块)尚未提出。

附录:如果您希望这样的事情取得进展,您将需要加入(ANSI 拥有)委员会,或者在委员会中找人来推动您的提案。

于 2009-05-12T12:07:41.837 回答
3

太晚了。请求的呼吁在几年前就结束了。

(有一个页面保存了提交,但我再也找不到那个列表了。)

于 2009-05-12T12:11:11.760 回答
2

除了jalf关于添加关键字的缺点的评论(我 100% 同意),您还应该注意,在计算机科学中,纯函数一词已经有意义。这意味着给定相同的参数,函数总是返回相同的值并且没有副作用。因此,选择= pure指示必须重写的虚函数将是一个糟糕的语法选择。

于 2009-05-13T20:37:09.190 回答