函數宣告中括號的歧義
在「最麻煩的解析」現像中,使用範本時會出現歧義。解析函數宣告時就會出現這樣的一個實例。考慮以下行:
vector<int> v(istream_iterator<int>(cin), istream_iterator<int>());
該行可以解釋為函數宣告或變數宣告。問題是,如何將第一個臨時迭代器解釋為類型?
與直覺相反,istream_iterator
這種特殊的語法是從 C 繼承的,在 C 語言中,這種括號也被認為是錯誤。在這種情況下,括號不會影響表達式的含義。它只是充當不必要的噪音,導致混亂。
總之,給定行中的第一個臨時迭代器表示類型 istream_iterator
以上是如何將 istream_iterator(cin) 解釋為「最令人煩惱的解析」中的型別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!