gpt4 book ai didi

C++非类型模板参数编译时检查

转载 作者:行者123 更新时间:2023-11-28 07:18:45 25 4
gpt4 key购买 nike

我有一个带有两个非类型模板参数的 C++ 类:

类型为 size_t 的维度和对象 vector 的常量引用。

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()

预先感谢您提出任何建议。

最佳答案

vector 是一个动态容器,因此它的大小取决于您在运行时如何使用它。不幸的是,这意味着您无法执行编译时检查来实现您想要的。

std::array 可能更适合这种情况,因为它的大小在编译时是固定的。

关于C++非类型模板参数编译时检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19837491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com