Проверка времени компиляции параметра шаблона типа C ++

У меня есть класс C ++ с двумя нетиповыми параметрами шаблона:

Измерение типа size_t и константная ссылка на вектор объектов.

template <size_t DIMENSION, const std::vector<Tuple>& BORDERS>
class Rule {
public:

Rule(const std::vector<Tuple>& ranges, const Action& action) :
ranges_(ranges),
action_(action) {};

private:

std::vector<Tuple> ranges_;
Action action_;
};

Есть ли возможность обеспечить во время компиляции выполнение следующего условия?

DIMENSION == BORDERS.size()

Заранее благодарю за любые предложения.

0

Решение

vector является динамическим контейнером, поэтому его размер зависит от того, как вы используете его во время выполнения. К сожалению, это означает, что нет никакой проверки во время компиляции, которую вы можете сделать, чтобы добиться того, чего вы хотите.

std::array может быть более подходящим в этом случае, так как его размер фиксируется во время компиляции.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]