From 3d3055909cf83250e2b610b84956fc444079d68f Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Mon, 11 Jun 2018 19:09:57 +0300 Subject: [PATCH] define global operator< for const char* and alt_string --- test/src/unit-alt-string.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/test/src/unit-alt-string.cpp b/test/src/unit-alt-string.cpp index 4fe7123d..8f1a64b0 100644 --- a/test/src/unit-alt-string.cpp +++ b/test/src/unit-alt-string.cpp @@ -106,7 +106,12 @@ class alt_string } template - bool operator<(op_type&& op) const + 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 { return str_impl < op; } @@ -153,6 +158,8 @@ class alt_string private: std::string str_impl; + + friend bool ::operator<(const char*, const alt_string&); }; @@ -168,6 +175,11 @@ using alt_json = nlohmann::basic_json < nlohmann::adl_serializer >; +bool operator<(const char* op1, const alt_string& op2) { + return op1 < op2.str_impl; +} + + TEST_CASE("alternative string type") {