如何要求少量添加?(纯虚函数的语法)

Gia*_*rdi 6 c++ standards c++11

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

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

所以我期望看到纯粹的虚函数的语法.

相反,丑陋(恕我直言,当然)= 0的事情仍然存在.

好吧,我可以使用#define pure 0(有时我会这样做),但我认为一致性/一致性应该是标准的目标.而且我知道这只是一种极其迂腐的要求,但是= 0确实是我最不喜欢的C++(委婉语)之一......

我的问题:

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

jal*_*alf 29

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

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

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

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

  • 谢谢你的回答.有趣的是,默认和删除已经是c ++关键字,但在不同的上下文中. (3认同)
  • void通常具有表达某事物缺失的含义.就像对无效的转换表示没有使用计算的值.参数列表中的void表示缺少参数,当然还有返回类型来表示缺少返回值.和= void表示缺少实现,或者更确切地说是需要在派生类中实现. (2认同)

j_r*_*ker 5

讨厌C++ 的事情是" = 0;"???

你有没有用过这种语言?还有很多其他的事情你可以更好地消磨你的仇恨.

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

  • 但宏会导致更多问题.如果它是一个关键字,编译器*可以*限制范围,使其不影响名为"pure"的变量或函数.但是一个宏只会替换它们*all*for 0. :) (2认同)