の成功を示すために、どのように私はこのようなC++の関数を書きたいですstd :: errc 'enum class'型を使用します。私が見る1つの方法は、intを返すことです:のstd :: ERRCは、RETVAL
template <typename E>
constexpr typename std::underlying_type<E>::type to_underlying(E e) {
return static_cast<typename std::underlying_type<E>::type>(e);
}
int f() { is_succ() ? 0 : to_underlying(err); }
しかし、それは私のために醜いです。 std C++ 0x14の関数からC指向の成功/エラーコードを返す標準的な方法はどこですか?
PS。私は、the documentationから2015パッチ2.
なぜ 'int'と' EXIT_SUCCESS'または 'EXIT_FAILURE'を使うのはなぜですか? – CoffeeandCode
@CoffeeandCode:1972と呼ばれる.. –
私の主な目標は、c-apiラッパーC++ライブラリを作成することです。私は関数extern "C"のセットを宣言しました。今私はエラー状態(または成功)を特定するために、それらからintを返さなければなりません。だから私は例外や内部エラーコードをC++コード内のCユーザーにとって価値のあるものに変換する必要があります。私はstd :: errcが良い選択だと思った。それは良い考えではなかったように見えます。今度は、native intとboost :: system :: errcの間で選択します。 PS。私の悪い英語については申し訳ありません:) – user2073942