**A destructor shall not be declared with a ref-qualifier.**
在c++03草案中……他们在析构函数中没有提到这一点吗?
我的问题是是否
*~S() ; //this declaration is allowed or not according to the Standard's
//**~S(); ***~S() ; etc...........
这种声明是允许的吗? 在草案中没有描述这个声明...
在GCC 4.6.0,Sun/Oracle C++12.0中,这种声明是被允许的。 但在Comeau C/C++中是不被允许的。
A(),&A() 等。 - user751747~A() &;
或~A() &&;
,并将两者都定义为无效。&~A();
和*~A();
无效,因为它们不符合grammar,没有必要对所有不应编译的内容提供额外的描述。例如,在标准中没有说a][+=/a
是不正确的,它只说明了哪些结构是正确的,而这个例子不符合任何一个。 - David Rodríguez - dribeas*~A()
和&~A()
都是不正确的语法。应该有一些规则使它们无效。我还没有检查过这个规则... - Johannes Schaub - litb*
开头的地方。你是怎么做到的? - David Rodríguez - dribeas* a;
是一个有效的成员声明(仅根据语法),这似乎表明在这种情况下语法过于灵活存在问题。 - David Rodríguez - dribeas