From f574d7e084519f06958587959b79ee592d37efa3 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Wed, 13 Jun 2018 19:47:29 +0300 Subject: [PATCH] simplify templates for operators, add more checks --- test/src/unit-alt-string.cpp | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/test/src/unit-alt-string.cpp b/test/src/unit-alt-string.cpp index 4371d3ff..c5e89111 100644 --- a/test/src/unit-alt-string.cpp +++ b/test/src/unit-alt-string.cpp @@ -66,12 +66,7 @@ class alt_string } template - typename std::enable_if< // disable for alt_string - !std::is_same< alt_string, - typename std::remove_reference::type - >::value, - bool>::type - operator==(op_type&& op) const + bool operator==(const op_type& op) const { return str_impl == op; } @@ -82,12 +77,7 @@ class alt_string } template - typename std::enable_if< // disable for alt_string - !std::is_same< alt_string, - typename std::remove_reference::type - >::value, - bool>::type - operator!=(op_type&& op) const + bool operator!=(const op_type& op) const { return str_impl != op; } @@ -112,12 +102,7 @@ class alt_string } template - typename std::enable_if< // disable for alt_string - !std::is_same< alt_string, - typename std::remove_reference::type - >::value, - bool>::type - operator<(op_type&& op) const + bool operator<(const op_type& op) const { return str_impl < op; } @@ -255,18 +240,26 @@ TEST_CASE("alternative string type") CHECK("I'm Batman" == doc["Who are you?"]); CHECK(doc["Who are you?"] == "I'm Batman"); + CHECK_FALSE("I'm Batman" != doc["Who are you?"]); + CHECK_FALSE(doc["Who are you?"] != "I'm Batman"); CHECK("I'm Bruce Wayne" != doc["Who are you?"]); CHECK(doc["Who are you?"] != "I'm Bruce Wayne"); + CHECK_FALSE("I'm Bruce Wayne" == doc["Who are you?"]); + CHECK_FALSE(doc["Who are you?"] == "I'm Bruce Wayne"); { const alt_json& const_doc = doc; CHECK("I'm Batman" == const_doc["Who are you?"]); CHECK(const_doc["Who are you?"] == "I'm Batman"); + CHECK_FALSE("I'm Batman" != const_doc["Who are you?"]); + CHECK_FALSE(const_doc["Who are you?"] != "I'm Batman"); CHECK("I'm Bruce Wayne" != const_doc["Who are you?"]); CHECK(const_doc["Who are you?"] != "I'm Bruce Wayne"); + CHECK_FALSE("I'm Bruce Wayne" == const_doc["Who are you?"]); + CHECK_FALSE(const_doc["Who are you?"] == "I'm Bruce Wayne"); } } }