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") {