Commit 3d305590 authored by Vitaliy's avatar Vitaliy

define global operator< for const char* and alt_string

parent 4feb8211
...@@ -106,7 +106,12 @@ class alt_string ...@@ -106,7 +106,12 @@ class alt_string
} }
template <typename op_type> template <typename op_type>
bool operator<(op_type&& op) const typename std::enable_if< // disable for alt_string
!std::is_same< alt_string,
typename std::remove_reference<op_type>::type
>::value,
bool>::type
operator<(op_type&& op) const
{ {
return str_impl < op; return str_impl < op;
} }
...@@ -153,6 +158,8 @@ class alt_string ...@@ -153,6 +158,8 @@ class alt_string
private: private:
std::string str_impl; std::string str_impl;
friend bool ::operator<(const char*, const alt_string&);
}; };
...@@ -168,6 +175,11 @@ using alt_json = nlohmann::basic_json < ...@@ -168,6 +175,11 @@ using alt_json = nlohmann::basic_json <
nlohmann::adl_serializer >; nlohmann::adl_serializer >;
bool operator<(const char* op1, const alt_string& op2) {
return op1 < op2.str_impl;
}
TEST_CASE("alternative string type") TEST_CASE("alternative string type")
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment