有沒有什麼辦法可以創建對某些lambda函數來說是唯一的變量,並且會在啓動lambda之間持續?
更仔細的描述:我想初始化一些值變量拉姆達,和該變量應該持續推出之間:特定於lambda的變量
std::function<void(void)> a=[]()
{
/*here we declare variable X and initialize it to 0*/;
std::cout<<X++;
};
a();a();
所以這應該打印出01
而且我需要確保「 X」是獨特的‘一’,所以前面的部分在此之後
std::function<void(void)> b=a;
b();b();
應該打印出01
我試着使用靜態變量,但它們之間共享副本(所以這兩部分打印出0123)。
那麼,有沒有辦法做到這一點?
爲什麼會變得複雜?你不能寫一個班嗎? – jrok
我有一些類的複雜系統,其中一個使用lamdas作爲用戶定義的自定義函數。我想避免使用抽象類來實現這些功能的數據存儲。而且這個類的對象也可以被複制,所以像靜態變量這樣的簡單解決方案不起作用。 – jammer312
這種打破「複製」的含義。 – Barry