From 0338a0519a27a184ab6304fd41aefd24e7febcd5 Mon Sep 17 00:00:00 2001 From: ZhuangYumin Date: Fri, 10 Nov 2023 23:10:58 +0800 Subject: [PATCH] upd: further fixing --- src/utils.cpp | 68 +++++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/src/utils.cpp b/src/utils.cpp index 645df0c..0f2f674 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -412,14 +412,15 @@ bool Greater(std::any a, std::any b) { return (*ptr_a_string) > (*ptr_b_string); else if (((ptr_a_string != nullptr) || (ptr_b_string != nullptr))) { if (std::any_cast(&b) && *ptr_a_string != "") return true; - // if (ptr_a_bool != nullptr) { - // b = Any2Bool(b); - // return int(*ptr_a_bool) > int(std::any_cast(b)); - // } - // if (ptr_b_bool != nullptr) { - // a = Any2Bool(a); - // return int(std::any_cast(a)) > int(*ptr_b_bool); - // } + if (ptr_a_bool != nullptr) { + b = Any2Bool(b); + return false; + // return int(*ptr_a_bool) > int(std::any_cast(b)); + } + if (ptr_b_bool != nullptr) { + a = Any2Bool(a); + return int(std::any_cast(a)) > int(*ptr_b_bool); + } return false; } else throw FatalError("Greater: Type Error", 54); @@ -444,14 +445,15 @@ bool Less(std::any a, std::any b) { return (*ptr_a_string) < (*ptr_b_string); else if (((ptr_a_string != nullptr) || (ptr_b_string != nullptr))) { if (std::any_cast(&a) && *ptr_b_string != "") return true; - // if (ptr_a_bool != nullptr) { - // b = Any2Bool(b); - // return int(*ptr_a_bool) < int(std::any_cast(b)); - // } - // if (ptr_b_bool != nullptr) { - // a = Any2Bool(a); - // return int(std::any_cast(a)) < int(*ptr_b_bool); - // } + if (ptr_a_bool != nullptr) { + b = Any2Bool(b); + return int(*ptr_a_bool) < int(std::any_cast(b)); + } + if (ptr_b_bool != nullptr) { + a = Any2Bool(a); + return 0; + // return int(std::any_cast(a)) < int(*ptr_b_bool); + } return false; } else throw FatalError("Less: Type Error", 55); @@ -551,14 +553,15 @@ bool GreaterEqual(std::any a, std::any b) { return (*ptr_a_string) >= (*ptr_b_string); else if (((ptr_a_string != nullptr) || (ptr_b_string != nullptr))) { if (std::any_cast(&b)) return true; - // if (ptr_a_bool != nullptr) { - // b = Any2Bool(b); - // return int(*ptr_a_bool) >= int(std::any_cast(b)); - // } - // if (ptr_b_bool != nullptr) { - // a = Any2Bool(a); - // return int(std::any_cast(a)) >= int(*ptr_b_bool); - // } + if (ptr_a_bool != nullptr) { + b = Any2Bool(b); + return 0; + // return int(*ptr_a_bool) >= int(std::any_cast(b)); + } + if (ptr_b_bool != nullptr) { + a = Any2Bool(a); + return int(std::any_cast(a)) >= int(*ptr_b_bool); + } return false; } else throw FatalError("GreaterEqual: Type Error", 58); @@ -588,14 +591,15 @@ bool LessEqual(std::any a, std::any b) { return (*ptr_a_string) <= (*ptr_b_string); else if (((ptr_a_string != nullptr) || (ptr_b_string != nullptr))) { if (std::any_cast(&a)) return true; - // if (ptr_a_bool != nullptr) { - // b = Any2Bool(b); - // return int(*ptr_a_bool) <= int(std::any_cast(b)); - // } - // if (ptr_b_bool != nullptr) { - // a = Any2Bool(a); - // return int(std::any_cast(a)) <= int(*ptr_b_bool); - // } + if (ptr_a_bool != nullptr) { + b = Any2Bool(b); + return int(*ptr_a_bool) <= int(std::any_cast(b)); + } + if (ptr_b_bool != nullptr) { + a = Any2Bool(a); + return false; + // return int(std::any_cast(a)) <= int(*ptr_b_bool); + } return false; } else throw FatalError("LessEqual: Type Error", 59);