[英]boost::process cannot compile because of 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文件都會引發類似這樣的異常,但是它們不會出現在錯誤中,因為它們位於尚未定義的定義防護之后。
使用boost::system::system_category()
代替boost::system::system_category
。 請注意,后者可能在較早的Boost版本中起作用。 看這里 。
您可以在Exception支持下重建項目。 添加編譯標志/ EHsc或/ EHa或/ EHs
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.