define global operator< for const char* and alt_string

This commit is contained in:
Vitaliy 2018-06-11 19:09:57 +03:00
parent 4feb8211ca
commit 3d3055909c

View file

@ -106,7 +106,12 @@ class alt_string
}
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;
}
@ -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")
{