2016-04-07 33 views
1

boost :: processライブラリをインクルードしようとすると、boost :: process pipe.hppファイルに関する2つのエラーが例外を処理する方法で取得されます。ここで boost :: processはboost :: throw_exceptionのためにコンパイルできません

'<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 

は、問題のあるプロセスpipe.hpp ::ブーストの行です:私はブーストはそれが例外を処理する方法を変更し、後押ししていることがどのようにこれはとは何かを持っていると仮定し

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

::プロセスそれをサポートするためにアップデートしていないが、私はどのようにブーストが変わったかに慣れていない。 pipe.hppファイル全体はこのような例外をスローしますが、定義されていないガード定義の背後にあるため、エラーに表示されません。

答えて

4

boost::system::system_categoryの代わりにboost::system::system_category()を使用してください。後者は古いバージョンのブーストで動作している可能性があることに注意してください。 hereを参照してください。

1

例外をサポートしてプロジェクトを再構築できます。コンパイルフラグ/ EHscまたは/ EHaまたは/ EHsを追加します

関連する問題