私は簡単なコードを持っています:
#include <iostream>
#include <functional>
struct Copy
{
Copy(){}
Copy(const Copy&)
{
std::cout << "Copied!\n";
}
};
int main()
{
Copy copy;
std::function<void()> func = [=]{(void)copy;};
return 0;
}
そして、copy-ctorを2回呼び出しますが、1回だけにしたいです。この単純化された例では auto を使用できることは理解していますが、後で使用するために保存する必要があるため、auto はオプションではありません。そして私の質問:ラムダを=キャプチャリストで保存し、キャプチャされたオブジェクトのコピーを1つだけ持つ方法はありますか?