在比较整数和浮点类型时,我可以在C ++中禁用或强制在operator<
中进行显式强制转换吗?在整数和浮点类型之间使用operator<
很容易导致定量代码中的错误。我尝试过bool operator<(double, int) = delete;
,但是它期望其中一种类型是类或枚举。如何使以下内容无法编译并出现类型错误?
int main()
{
if (3.0 < 4)
{
std::cout << "X" << std::endl;
}
else
{
std::cout << "Y" << std::endl;
}
return 0;
}
答案 0 :(得分:5)
无法更改内置运算符的行为。您将必须通过编译器警告或其他代码分析工具来检测这种情况。