是否可以禁用布尔运算符<(float,int)

时间:2018-11-13 21:41:55

标签: c++

在比较整数和浮点类型时,我可以在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;
}

1 个答案:

答案 0 :(得分:5)

无法更改内置运算符的行为。您将必须通过编译器警告或其他代码分析工具来检测这种情况。