I have this in mind to use in a
bool operator==(char const* const a, char const* const b) noexcept
return !::std::strcmp(a, b);
You can't overload operator which doesn't take
enum as its operands, which means you can't change the behavior they work with build-in types.
When an operator appears in an expression, and at least one of its operands has a class type or an enumeration type, then overload resolution is used to determine the user-defined function to be called among all the functions whose signatures match the following:
I'll suggest you to use std::string intead of
char*, which provide operator==. Then you can avoid using of
std::strcmp(), and such kind of c-style string functions at all. If you do need a c-style string, you can use std::basic_string::c_str() to convert it back when necessary.