Boost не может найти будущее:: then from demo


Тогда я хотел попробовать boost future, у меня установлен boost 1.55 и включен в файл make, и я хотел попробовать официальную демо-версию

#define BOOST_THREAD_PROVIDES_FUTURE

#include <boost/thread/future.hpp>

using namespace boost;

int main()
{
  future<int> f1 = async([]() { return 123; });
  future<int> f2 = f1.then([](future<int> f) { return f.get();} );// here .get() won't block });
} 

Но я всегда получаю ошибку во время компиляции

error: ‘class boost::future<int>’ has no member named ‘then’

Когда я комментирую строку с f2, она компилируется.

1 5

1 ответ:

Вы должны определить

#define BOOST_THREAD_VERSION 4

Или

#define BOOST_THREAD_PROVIDES_FUTURE_CONTINUATION