假设bottomOfRange
andtopOfRange
是内置类型,那么不,它不会完成任何有用的事情。
如果你想要足够糟糕,你可以定义一个重载的类型operator<
以使其实际工作:
class range {
int lower;
int val;
range(int lower, int val) : lower(lower), val(val) {}
public:
bool operator < (int upper) {
return lower < val && val < upper;
}
class start {
int t;
public:
start(int t) : t(t) {}
range operator < (int val) { return range(t, val); }
};
};
#ifdef TEST
#include <iostream>
int main(){
static char const *s [] = { "Out of range", "In range" };
int variable = 20;
range::start bottomOfRange(10);
int topOfRange(30);
if (bottomOfRange < variable < topOfRange)
std::cout << "In range\n";
else
std::cout << "out of range\n";
bottomOfRange = 30;
topOfRange = 10;
if (bottomOfRange < variable < topOfRange)
std::cout << "In range\n";
else
std::cout << "Out of range\n";
}
#endif
结果:
In range
Out of range
警告:这主要是(纯粹?)作为古玩。虽然它显然完全支持你所要求的,但我对在我自己的代码中使用它很犹豫,我也不建议你在你的代码中使用它。