Установка максимально возможного значения для переменной C ++ - PullRequest
2 голосов
/ 18 февраля 2020

это должен быть простой вопрос, но я не могу найти ответ в Google. Итак, как я могу назначить максимально возможное значение переменной? Поэтому я хочу, чтобы моя переменная была не более 10 в качестве допустимого значения независимо от того, что

int example;
example = ?;

1 Ответ

5 голосов
/ 18 февраля 2020

Вы можете создать собственный класс для своих нужд, например:

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<0, 10> example;

++example;
example = 11; // "Error"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...