首页 > 解决方案 > 是否可以禁用 bool operator<(float,int)

问题描述

operator<在比较整数和浮点类型时,我可以在 C++ 中禁用或强制显式强制转换吗?在整数和浮点类型之间使用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;
}

标签: c++

解决方案


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


推荐阅读