11
任何人都可以告訴我這個劇組有什麼效果(除了設置happyNumber爲1337),如果有的話,如果沒有其他效果,我怎麼能寫這樣的代碼?這是一個編譯器錯誤,還是C++的一些「隱藏功能」?怎麼了static_cast與多個參數?
int happyNumber = static_cast<int>(123.456, TRUE, "WTF" , false , "IS" , NULL , "GOING" , 0xff , "ON???" , 1337);
我很驚訝這會編譯。我發現它是通過一個錯誤,我無意中將第二個參數設置爲正在執行的表達式的函數調用。這導致了一個令人討厭的bug,其中的對象是從第二個參數轉換而來的,只用一個參數調用該函數。它編譯...而最初沒有咚......
我使用Microsoft Visual C++ 2008
這是完全合法的,沒有錯誤。 – Anonymous 2009-02-27 09:58:01
啊,是的,你是對的。這讓我很困惑,然後我知道它必須是一個編譯器錯誤 - 它不是)我以前從來沒有碰到過逗號運算符。 – Statement 2009-02-27 10:12:25