[英]Is this program is correct -->using C++0x N3242
类是一种类型。 它的名称在其范围内成为类名(9.1)。
class-name: identifier simple-template-id
类名和详细类型名(7.1.6.3)用于创建类名。 类的对象由成员和基类对象的序列(可能为空)组成。
class-specifier: class-head { member-specificationopt } class-head: class-key attribute-specifier-seqopt class-head-name class-virt-specifier-seqopt base-clauseopt class-key attribute-specifier-seqopt base-clauseopt class-head-name: nested-name-specifieropt class-name class-virt-specifier-seq: class-virt-specifier class-virt-specifier-seq class-virt-specifier class-virt-specifier: final explicit class-key: class struct union
一个class-virt-specifiner-seq最多应包含每个class-virt-specifiner中的一个。
一个类说明者,其类头省略了类头名,它定义了一个未命名的类。 [注意:因此,未命名的类不能是最终的或显式的。 —尾注]
在这里:他们使用->最终的,显式的作为class-virt-specer:
为此,我应该这样使用:
1) struct A{ void f();};
struct B final : A{void f();};
int main() { return 0; }
2) struct A{ void f();};
struct B explicit : A{void f();};
int main() { return 0; }
etc...
谁能告诉我正确的用法...如果错了
AND:请告诉我哪个编译器将支持此功能。(我知道VC ++,GCC 4.6.0支持许多功能),但是GCC不支持上述功能。请建议我该怎么做?
看起来还可以,但是我不认为任何编译器都可以实现。
它也可能会更改,因为有一个删除要求:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3234.pdf
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.