我有一个带有两个非类型模板参数的C ++类:
size_t类型的维度和对象向量的const引用。
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 :(得分:1)
vector
是一个动态容器,因此它的大小取决于您在运行时如何使用它。不幸的是,这意味着您无法进行编译时检查以实现您的目标。
std::array
可能更合适,因为它的大小在编译时是固定的。