2012-11-28 123 views
1

當我使用關鍵字static帶班成員,我通常把它放在這樣的返回類型之前:static關鍵字

class Problem { 
public: 
    static void solve() {} 
} 

我只注意到在VS2010它的工作原理相同與反轉它返回類型:

class Problem { 
public: 
    void static solve() {} 
} 

該標準對此有何評論?有這個我應該知道的其他含義,還是完全一樣?

+3

它完全一樣,但我懶得得到一個標準報價 – Pubby

+2

我相信它是7.1-p1和7.1.1-p1,5。其中第二個是_decl-specifier-seq_序列的定義,它允許每個decl一個存儲類(由_storage-class-specifier_生成),但可以在類型之前或之後出現。 (不是規範的最大解析器,但我認爲這是正確的)。我可以試着將它打成一個答案,但答案編輯器在展示語法產品方面真的很糟糕(任何提示都會被讚賞的提示,順便說一句)。 – WhozCraig

回答

3

DECL說明符-SEQ 選擇的各種組件的順序(ISO/IEC 14882:2011,§7聲明)在很大程度上是任意的。特別是,存儲類(如'靜態')可以與類型信息混合在一起,儘管C標準中除了第一個存儲類以外的其他存儲類已經過時了(但是,就我所知,在C++標準)。

相關問題