如何在 C++ 中实现 3 <= X <= 10?

2023-11-26

我希望能够写

if (3 <= X <= 10)
{

}
else if (20 < X < 100) 
{ //...etc

在 C++ 中并让它正确评估。我知道你可以在 Python 中做到这一点,并且我认为这是表达条件的一种非常可读的方式。

我不想写:

if (3 <= X && X <= 10) //etc.

我怎样才能在 C++ 中做到这一点?是否可以?运算符重载会是什么样子?如果不可能,你能解释一下为什么不可能吗?


你确定你需要这个吗?

[UPDATE]

过了一会儿,我想到了一个想法,它看起来并不完全疯狂;)

我制造了一个ideone 的工作示例

您需要从第一个元素的包装开始:

int main() {
   int x = 134, y = 14;
   if (IntComp(7) <= x <= 134)
   {
       std::cout << "Hello ";
   } 
   if (IntComp(134) > y > 12)
   {
       std::cout << "world!";
   } 
}

这里的魔力是:

class IntComp {
public:
   IntComp(int x, bool result = true) : value(x), result(result) {}
   IntComp operator <= (int x) const
   {
       return IntComp(x, result && value <= x);
   }
   IntComp operator > (int x) const
   {
       return IntComp(x, result && value > x);
   }
   operator bool() const { return result; }
private:
   int value;
   bool result;
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C++ 中实现 3 <= X <= 10? 的相关文章

随机推荐