我有一個代碼,當我在cygwin環境中構建它時,我得到的錯誤與[&]
有關[&]是什麼意思?我如何解決這個問題,或者我用什麼來替代它來使它工作?運算符[&]在C++
代碼:
this->func =[&]()
{ in here call other functions }
我有一個代碼,當我在cygwin環境中構建它時,我得到的錯誤與[&]
有關[&]是什麼意思?我如何解決這個問題,或者我用什麼來替代它來使它工作?運算符[&]在C++
代碼:
this->func =[&]()
{ in here call other functions }
[&]{ /*function calls*/ }
這是一個C++ 11 lambda表達式,它創建了一個功能對象(閉合),調用等功能。 [&]
是lambda表達式的捕獲,這意味着閉包可以通過引用使用lambda表達式之外的每個變量。您可能想要閱讀當前的C++ 11書或至少一篇關於lambdas的文章。
要解決您的問題,請嘗試將-std=c++0x
作爲編譯器參數傳遞。如果不起作用,請升級到當前編譯器(您的似乎早於2年)或手動創建函數對象。一旦你理解了lambda表達式,如何做到這一點將是微不足道的。但是,如果您嘗試編譯的代碼使用lambdas,那可能不是唯一的C++ 11功能,所以我強烈建議編譯器升級。
的[capture-list](arguments){function-body}
語法是一個C++ 11拉姆達。你需要一個相當新的編譯器,並且可能傳遞一個額外的編譯器標誌。
好的...我會盡力的。 「非常感謝 – Ana
你試圖使用什麼版本的g ++? –
不知道爲什麼它被低估。如果您誤認爲[&]爲運營商,Google搜索將無助於您。 – MSalters
我對你的問題進行了一些格式化處理,但它仍然符合SO標準的「不是真正的問題」。嘗試修復它給更多的上下文和實際代碼,確切的錯誤信息,編譯器版本等... – jrok