[英]I believe this to be a (minor) defect in the C++11 Standard
我認為這是C ++ 11標准中的(次要)缺陷。 在[dcl.dcl]中我們有:
簡單聲明 :
decl-specifier-seq opt init-declarator-list opt ;
decl-specifier-seq不能是可選的。
例如,下面的代碼片段無法編譯:
x;
如果我在這里是正確的,那么第8.3 / 1段的開頭也應該改變:
從:
聲明符列表出現在可選(第7節) decl-specifier-seq (7.1)之后。
至:
在decl-specifier-seq (7.1)之后出現一個聲明符列表。
評論太久了
在第7條第3款中:
在一個簡單聲明中 ,只有在聲明一個類(第9節)或枚舉(7.2)時,也就是說,當decl-specifier-seq包含一個類說明符時 ,可以省略可選的init-declarator-list , 詳細說明-type-specifier ,帶有類鍵 (9.1)或枚舉說明符 。 在這些情況下,只要在decl-specifier-seq中存在類說明符或枚舉說明符,這些說明符中的標識符就是聲明聲明的名稱 (作為類名 , 枚舉名或枚舉符,取決於語法)。 在這種情況下,除了聲明未命名的位字段(9.6)之外, decl-specifier-seq應在程序中引入一個或多個名稱,或者重新聲明由先前聲明引入的名稱。
並在第7條第9款中
只有在構造函數,析構函數和類型轉換的函數聲明中,才能省略decl-specifier-seq 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.