lambda 表達式和右值引用是 C++11 的兩個非常有用的特性。
lambda 表達式實際上會由編譯器創(chuàng)建一個 std::function
對象,以值的方式捕獲的變量則會由編譯器復(fù)制一份,在 std::function 對象中創(chuàng)建一個對應(yīng)的類型相同的 const 成員變量,如下面的這段代碼:
int main(){ std::string str = "test"; printf("String address %p in main, str %s\n", &str, str.c_str()); auto funca = [str]() { printf("String address %p (main lambda), str %s\n", &str, str.c_str()); }; std::functionfuncb = funca; std::function funcc; funcc = funca; printf("funca\n"); funca(); std::function funcd = std::move(funca); printf("funca\n"); funca(); printf("funcb\n"); funcb(); std::function funce; funce = std::move(funcb); printf("funcb\n"); // funcb(); printf("funcc\n"); funcc(); printf("funcd\n"); funcd(); printf("funce\n"); funce(); // std::function funcf = funce; return 0; }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。