在編寫代碼時,很長一段時間我知道& &比||有更高的優先級;然而,使用C++ 11標準編譯它給了我一個警告,我現在應該在單個語句中使用它們時使用括號。C++ 11何時發出有關運算符優先級的警告?
現在我得到了一個警告,指出>>和+也應該有括號。現在我的言論看起來非常難看,五個或更多的括號在他們周圍浮動。
1)是否有資源說明哪些操作符組合現在需要括號?
2)有沒有辦法讓操作員的優先警告靜音,但要保留其他警告?
編譯gcc
與標誌-O2 -Wall -g
的警告來的時候,我加入了標誌-std=c++11
樣品表達:
(((string[0] << CHAR_BIT) + string[1] << CHAR_BIT) + string[2] << CHAR_BIT) + string[3];
該標準沒有說明必須發佈任何警告(儘管它可能會建議這樣做)。它們由編譯器發出,作爲對你的幫助,因此禁用它們是編譯器特定的 – tambre
哪個編譯器?您應該將其添加到標籤。 – HolyBlackCat
發佈有問題的表達式。一個警告很少發生,沒有原因。 – DeiDei