use*_*108 0 c++ comparison operator-overloading c-strings c++17
我有这个想法在.cpp文件中使用:
namespace
{
bool operator==(char const* const a, char const* const b) noexcept
{
return !::std::strcmp(a, b);
}
}
Run Code Online (Sandbox Code Playgroud)
这是好风格吗?
编辑:
我认为有条件的c ++ 1z方式,即完成同样的事情,将使用新std::string_view类进行比较.
son*_*yao 11
您不能重载不采用的操作符class或enum操作数,这意味着您无法更改它们与内置类型一起使用的行为.
当运算符出现在表达式中,并且其操作数中至少有一个具有类类型或枚举类型时,则使用重载决策来确定要在其签名与以下内容匹配的所有函数中调用的用户定义函数:
我建议你使用std :: string intead char*,它提供operator ==.然后你可以避免使用std::strcmp()和这种类型的c风格的字符串函数.如果确实需要c样式的字符串,可以使用std :: basic_string :: c_str()在必要时将其转换回来.
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |