У меня есть простой фрагмент кода, который генерирует исключение, если это не так. Все соответствующие заголовки были включены, и программа строится без ошибок. Код ниже. Исключение возникает при выполнении result1.get(); Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно? Заранее благодарим за любую помощь.Использование async и future бросает исключение на linux (gcc 4.8.4)
int func1()
{
return 0;
}
int main()
{
future<int> result1(async(func1));
int result = result1.get();
return 0;
}
В результате выполнения программы дает мне это:
terminate called after throwing an instance of 'std::system_error'
what(): Unknown error -1
Пробовал, включая флаг -pthread, но это не решило проблему. Мне интересно, есть ли ошибка в gcc 4.8.4. – Smithy
@Smithy ok, ссылка на страницу руководства сломана, кажется, что проект не может быть общим. Командная строка в примере была 'g ++ -std = C++ 11 -pthread -o main * .cpp', и это, казалось, работало нормально. Конечно, может быть, что gcc 4.8.4 ввел ошибку, но я очень сомневаюсь в этом. –
@ Сmithy какой вкус/версия linux вы используете? Может быть, https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1228201 уместен? –