当试图包含 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 文件会抛出这样的异常,但它们不会出现在错误中,因为它们位于未定义的定义保护之后。