【发布时间】:2020-04-03 19:35:43
【问题描述】:
我已经定义了一个基类模板:
template<class actual_class>
class base
{
public:
static const int value;
}
而value 的定义取决于actual_class tparam。
接下来,我有一堆来自base 的派生类,我们称它们为a 和b。我们还假设a::value = 5 和b::value = 10。
现在,在我需要从参数包访问静态值的方法模板中。我想把它们放在一个向量中。
template<class... derived_from_bases>
void foo(irrelevant_class<derived_from_bases...> irrelevant)
{
// std::vector<int> values = { ... }
...
}
对于使用 tparams 调用的函数,我希望值向量看起来像这样:
std::vector<int> values = {5 /* a::value */, 10 /* b::value */};
还有一个 std::array 而不是 std::vector 会是一个不错的选择。
提前感谢您的帮助。
【问题讨论】:
标签: c++ templates variadic-templates