最令人煩惱的解析是一個臭名昭著的編譯器怪癖,可能會導致代碼的意外解釋。當類似於函數宣告的行實際上代表不同的構造時,就會出現一種令人困惑的情況。
考慮以下行:
vector<int> v(istream_iterator<int>(cin), istream_iterator<int>()());
令人困惑的是,這一行可能會被解析為函數宣告。雖然第二個臨時迭代器可以在邏輯上解釋為類型,但第一個臨時迭代器的作用不太清楚。
與最初的假設相反,istream_iterator
int>(cin) 不是函數類型。相反,它與替代語法 istream_iterator以上是為什麼 `vector v(istream_iterator(cin), istream_iterator()());` 解析為函數宣告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!