簡體   English   中英

由於boost :: throw_exception,boost :: process無法編譯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM