在Wikipedia我發現這一點:最苦惱的解析的目的是什麼?
A a(A());
[這]可以被消除歧義或者作爲
類[
A
]的變量定義,取類的一個匿名實例[A
]或函數的函數聲明返回類型爲[
A
]並採用單個(未命名)參數,該參數是返回類型[並且不輸入]的函數。大多數程序員期望第一,但C++標準要求它被解釋爲第二。
但是爲什麼?如果大多數C++社區都期待以前的行爲,爲什麼不把它作爲標準呢?此外,如果不考慮解析歧義性,以上語法是一致的。
有人請賜教嗎?爲什麼該標準將這作爲要求?
哪裏有函數指針? –
閱讀錯誤消息 - http://ideone.com/12sT80#view_edit_box不是類型爲'T(*)()'的函數指針? –
@templateboy:該消息是誤導性的:在這種情況下,'a'實質上已經衰減爲函數指針以用於表達式'a.f'中,但是'a'的聲明本身與函數指針無關。 –