2014-04-01 32 views
0

我有bar類的聲明成員函數原型:尾隨返回類型聲明,舊式定義

auto foo(void) const -> double; 

和這個定義在源文件:

double bar::foo(void) const 
{ 
    return 1.0; 
} 

彙編和鏈接在MSVC2012上成功。但是這是否混合了標準允許的語法?

回答

3

的語法沒有什麼區別。聲明中的簽名仍然與定義中的簽名匹配,因爲它們具有相同的參數,相同的返回類型和相同的限定符。

+0

(+1),所以在這方面它很像一個'typedef'? – Bathsheba

+0

從某種意義上說,是的。如果所有類型都匹配,則是一樣的。 –