0
點從2003年C++ 03文件:n3290:Elaborated類型說明符語法已更改?
闡述類型指示符:3.4.4節,第1段:
"An elaborated-type-specifier may be used to refer to a
previously declared class-name or enum-name even though
the name has been hidden by a non-type declaration. **The
class-name or enum-name in the elaborated-type-specifier
may either be a simple identifier or be a qualified-id.**"
但在n3290草案他們改變了闡述類型說明符(7.1 .6.3)
7.1.6.3:闡述類型說明符
elaborated-type-specifier:
class-key attribute-specifier-seqopt nested-name-specifieropt identifier
class-key nested-name-specifieropt templateopt simple-template-id
enum nested-name-specifieropt identifier
可我知道
1)什麼是早期的語法支持的問題類型名C++ 03
7.1.5.3 Elaborated type specifiers
elaborated-type-specifier:
class-key ::opt nested-name-specifieropt identifier
class-key ::opt nested-name-specifieropt templateopt template-id
enum ::opt nested-name-specifieropt identifier
typename ::opt nested-name-specifier identifier
typename ::opt nested-name-specifier templateopt template-id
2)是真正的編譯器是以下/不folling這一規則...(這編譯器支持這種變化)
3)當即將上述點3.4.4 /第一
The class-name or enum-name in the elaborated-type-specifier
may either be a simple identifier or be a qualified-id
爲什麼它不是在C++允許0X。
請有人解釋一下嗎? 請有人解釋一下嗎?
(IAM時試圖添加的C++ 0x TAG它不..tagging ..please任何一個..Add的C++ 0x的標籤?)