由于boost :: throw_exception,boost :: process无法编译

时间:2016-04-07 11:27:50

标签: c++ boost boost-process

当尝试包含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")); 

我认为这与增强可能如何改变它如何处理异常和增强::进程不更新以支持这一点有关,但是我不熟悉增强如何改变。整个pipe.hpp文件抛出这样的异常,但它们不会显示在错误中,因为它们是定义了尚未定义的防护。

2 个答案:

答案 0 :(得分:4)

使用boost::system::system_category()代替boost::system::system_category。请注意,后者可能适用于较旧的boost版本。请参阅here

答案 1 :(得分:1)

您可以使用Exception支持重建项目。添加编译标志/ EHsc或/ EHa或/ EHs