为什么在标准的C ++语法中,
decl-specifier-seq
simple-declaration
是可选的?
simple-declaration:
decl-specifier-seq(optional) init-declarator-list(optional);
根据规格,只有构造函数,驱动器和类型转换功能不可能具有
decl-specifier-seq
(第9.2节或第7节DCL.DCL)。但是所有这三个功能声明都是一类的成员,因此应通过与simple-declaration
:分开的另一个语法规则来定义它们。
member-declaration:
decl-specifier-seq(optional) member-declarator-list(optional);
function-definition ;(optional)
::(optional) nested-name-specifier template(optional) unqualified-id ;
using-declaration
static_assert-declaration
template-declaration
在此,
decl-specifier-seq
是可选的。 但是为什么在simple-declaration
中也是可选的?
class A {
A();
};
A::A() {}