0
沒那麼假設有一個函數默認參數在linux
void fun(const MyStructure& argu1 = MyStructure(), MyStructure& argu2 = Mystructure())
argu2
,因爲我想在函數修改它的值不是const的。
調用的函數:
MyStructure a;
MyStructure b;
fun(a,b);
生成成功在Windows,但在Linux的失敗和錯誤是
default argument for parameter of type 'MyStructure&' has type 'MyStructure'
但建立在Windows和Linux中成功,如果我刪除第二個默認參數是非常量...任何人都可以告訴我爲什麼以及如何解決它?
這是沒有意義的具有非const引用到默認參數。 –
它適用於MSVC,因爲MS C++編譯器中的非標準「擴展」允許將非常量引用綁定到臨時對象。 –
@MuriloVasconcelos大多數情況下,調用函數的人並不真正關心爭論2的價值......所以這就是爲什麼我這樣做......您有沒有更好的解決方案? – yvetterowe