【发布时间】:2012-08-11 05:21:46
【问题描述】:
在一个混合了 CRTP、可变参数模板、元编程和运算符重载的类中,我想比较两个可变参数 unsigned int 模板参数以进行一些静态断言。我认为辅助结构将是做到这一点的好方法,但我不知道该怎么做。我想到了一些形式:
template<unsigned int... TDIM, unsigned int... TDIM0> struct HelperCheckDimensions
{
static const bool ok = /* SOMETHING */
};
其中TDIM 和TDIM0 是我要比较的两个参数。它可以让我输入:
static_assert(HelperCheckDimensions<TDIM..., TDIM0...>::ok, "ERROR : Dimensions are different !");
我希望结果只有在sizeof...(TDIM)==sizeof...(TDIM0) AND TDIM[0] == TDIM0[0], TDIM[1] == TDIM0[1], ..., TDIM[n] == TDIM0[n] 时才为真。
怎么做?
非常感谢。
【问题讨论】:
标签: c++ c++11 helpers variadic-templates