1. 程式人生 > >當心C++編譯器中最煩人的分析機制

當心C++編譯器中最煩人的分析機制

當心C++編譯器中最煩人的分析機制

C++是較為底層的面相物件語言,在底層的語法規則分析中,有很多隱藏的分析機制。

C++中的普遍規律相符,即儘可能地解釋為函式宣告。

把形式引數的宣告用括號括起來是非法的,但給函式引數加上括號卻是合法的,所以通過增加一對括號,我們強迫編譯器按我們的方式來工作。

例如:

這樣是不正確的,因為形參含有括號

爭取做法:

用一個括號包括整個形參是可以的。

但是種做法並不是所有的編譯器都能識別的,所以存在可移植性問題,在跨平臺是可能會出現問題。

解決方法:

使用臨時命名迭代器來分步完成需求。

雖然這樣做與標準STL使用有點違背了,但是為了沒有二義性和提高程式碼可讀性和方便維護是比較提倡的。