susumu.yata
null+****@clear*****
Mon Jun 23 15:22:50 JST 2014
susumu.yata 2014-06-23 15:22:50 +0900 (Mon, 23 Jun 2014) New Revision: da769064afbec764fa898ed8e7986d8bb22a77bc https://github.com/groonga/grnxx/commit/da769064afbec764fa898ed8e7986d8bb22a77bc Message: Add details of ExpressionOptions. Modified files: new-interface/expression-builder.hpp Modified: new-interface/expression-builder.hpp (+26 -16) =================================================================== --- new-interface/expression-builder.hpp 2014-06-23 14:59:34 +0900 (bc2360c) +++ new-interface/expression-builder.hpp 2014-06-23 15:22:50 +0900 (241e7df) @@ -6,29 +6,39 @@ namespace grnxx { enum DivisionByZeroHandling { - // TODO: - // - 失敗する. - // - デフォルト値にする. + // ゼロによる整数除算が発生すると失敗する. + FAIL_ON_DIVISION_BY_ZERO, + + // ゼロによる整数除算をデフォルト値に置き換える. + REPLACE_DIVISION_BY_ZERO_WITH_DEFAULT }; enum OverflowHandling { - // TODO: - // - 失敗する. - // - デフォルト値にする. - // - 無視する(動作は未定義になる). - // - INT64_MIN / -1 は無視すると落ちるので無視できない. + // オーバーフローが発生すると失敗する. + FAIL_ON_OVERFLOW, + + // オーバーフローが発生するとデフォルト値に置き換える. + REPLACE_OVERFLOW_WITH_DEFAULT, + + // オーバーフローが発生すると未定義の動作になる. + // INT64_MIN / -1 で落ちないようにする. + IGNORE_OVERFLOW }; -enum NullHandling { - // TODO - // 失敗する. - // 参照先のデフォルト値にする. +enum NullDereferenceHandling { + // NULL を参照しようとすると失敗する. + FAIL_ON_NULL_DEREFERENCE, + + // NULL を参照するとデフォルト値に置き換える. + REPLACE_NULL_DEREFERENCE_WITH_DEFAULT }; enum NaNHandling { - // TODO - // 失敗する. - // 参照先のデフォルト値にする. + // NaN が出現すると失敗する. + FAIL_ON_NAN, + + // NaN が出現するとデフォルト値(0.0)に置き換える. + REPLACE_NAN_WITH_DEFAULT }; struct ExpressionOptions { @@ -39,7 +49,7 @@ struct ExpressionOptions { OverflowHandling overflow_handling; // NULL 参照の扱い. - NullHandling null_handling; + NullDereferenceHandling null_dereference_handling; // NaN の扱い. NaNHandling nan_handling; -------------- next part -------------- HTML����������������������������... Download