boost :: process не может скомпилироваться из-за boost :: throw_exception

При попытке включить библиотеку boost :: process я получаю 2 ошибки, связанные с файлом boost :: process pipe.hpp, с обработкой исключений.

'<function-style-cast>': cannot convert from 'initializer list' to 'boost::system::system_error' | pipe.hpp | line 129
'boost::throw_exception': no matching overloaded function found | pipe.hpp | line 129

Вот неправильная строка в boost :: process pipe.hpp:

boost::throw_exception(boost::system::system_error(::GetLastError(), boost::system::system_category, "boost::process::detail::pipe::pipe: CreatePipe failed"));

Я предполагаю, что это как-то связано с тем, как boost мог изменить то, как он обрабатывает исключения, и boost :: process не обновляется для поддержки этого, однако я не знаком с тем, как изменился boost. Весь файл pipe.hpp генерирует подобные исключения, но они не отображаются в ошибках, так как находятся за определенными защитными устройствами, которые не были определены.

1

Решение

использование boost::system::system_category() вместо boost::system::system_category, Обратите внимание, что последний, возможно, работал в более старых версиях Boost. Увидеть Вот.

4

Другие решения

Вы можете перестроить свой проект с поддержкой исключений. Добавить флаг компиляции / EHsc или / EHa или / EHs

1

По вопросам рекламы [email protected]