Что я хочу сделать - создать новый объект в новом потоке. Что-то вроде:Как использовать boost :: lambda для создания нового объекта для существующего указателя?
Class* object = 0;
Arg arg;
boost::thread t(lambda::bind(object = lambda::new_ptr<Class>()(boost::ref(arg));
он не компилируется, что правильный путь?
Подсказка: Используйте [ Boost.Phoenix] (http://www.boost.org/libs/phoenix/), а не Boost.Lambda - последний устарел уже много лет. – ildjarn
Если C++ 11 является для вас вариантом, просто выполните ' std :: thread t ([&] {object = new Class (arg);}); ' –
Спасибо, ребята, но я не могу использовать C++ 11 прямо сейчас. Я собираюсь попробовать Phoenix ... –