Подтвердить что ты не робот

Std:: будущее исключение в gcc экспериментальной реализации С++ 0x

Я экспериментирую с потоком С++ 0x, частично реализованным в gcc 4.5, и у меня есть проблема, которую я не могу понять. Давайте посмотрим на этот код

#include <future>
#include <iostream>

int main()
{
        std::cout << std::async([]() { return 10; }).get() << std::endl;
}

это довольно просто и должно работать, но это не так. Он бросает std:: system_error

завершение вызова после вызова экземпляра 'std:: system_error'   какие(): Отменено

what() возвращает пустую строку, поэтому информация об ошибке отсутствует. Более того, он не работал над онлайн-компилятором, который также использует gcc 4.5, но теперь он работает. Вы можете видеть это здесь http://liveworkspace.org/code/f3003d62a758e047a880920c84f1241c но вчера он выбрал одно и то же исключение (хотя на сервере никаких изменений не было). Вы знаете, в чем проблема?

Спасибо.

4b9b3361

Ответ 1

Попробуйте установить связь с -lpthread. По какой-то причине библиотека потоков компилируется без pthreads, но сбой во время выполнения.