gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 18:41:22 25 4
gpt4 key购买 nike

我想写

if (3 <= X <= 10)
{

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

在 C++ 中并让它正确计算。我知道您可以在 Python 中执行此操作,我认为这是一种非常可读的表达条件的方式。

我不想写:

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

我如何在 C++ 中执行此操作?可能吗?重载运算符会是什么样子? 如果不能,您能否解释为什么不可能

最佳答案

你确定你需要这个吗?

[更新]

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

我做了一个working example at 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;
};

关于c++ - 如何在 C++ 中实现 3 <= X <= 10?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com