C++ 将最大可能值设置为变量C++;

C++ 将最大可能值设置为变量C++;,c++,variables,C++,Variables,这应该是一个简单的问题,但我在谷歌上找不到答案。那么,如何为变量指定最大可能值呢? 所以我希望我的变量不超过10,作为一个可能的值 int example; example = ?; 您可以创建一个自定义类来处理您的需要,例如: template <int Min, int Max> class BoundedValue { public: BoundedValue(int value = Min) : mValue(Min) { set_value(value); }

这应该是一个简单的问题,但我在谷歌上找不到答案。那么,如何为变量指定最大可能值呢? 所以我希望我的变量不超过10,作为一个可能的值

int example;
example = ?;

您可以创建一个自定义类来处理您的需要,例如:

template <int Min, int Max>
class BoundedValue
{
public:
    BoundedValue(int value = Min) : mValue(Min) { set_value(value); }

    int get_value() const { return mValue; }
    void set_value(int value) {
        if (value < Min || Max < value) {
            throw std::out_of_range("!"); // Or other error handling as clamping
            // value = std::clamp(value, Min, Max);
        }
        mValue = value;
    }

    BoundedValue& operator= (int value) { set_value(value); }

    BoundedValue& operator ++() { set_value(mValue + 1); return *this; }
    BoundedValue operator ++(int) { auto tmp = *this; ++*this; return tmp; }

    // other convenient functions

    operator int() const { return mValue; }

private:
    int mValue = Min;
};
模板
类边界值
{
公众:
BoundedValue(int value=Min):mValue(Min){set_value(value);}
int get_value()常量{return mValue;}
无效集_值(int值){
如果(值<最小值|最大值<值){
抛出std::超出范围(“!”;//或其他错误处理
//值=标准::夹紧(值、最小值、最大值);
}
mValue=值;
}
BoundedValue&运算符=(int值){set_值(value);}
BoundedValue&运算符++(){set_值(mValue+1);返回*this;}
BoundedValue运算符++(int){auto tmp=*this;++*this;返回tmp;}
//其他方便的功能
运算符int()常量{return mValue;}
私人:
int mValue=Min;
};
然后使用它:

BoundedValue<0, 10> example;

++example;
example = 11; // "Error"
BoundedValue示例;
++榜样;
示例=11;//“错误”

实际上取决于用例。你能告诉我你想要一个“有限的”
int
10@NathanOliver我可以设置为您可能想要编写一个类
BoundedValue
。如果您是新手,您将需要使用If()语句。