在一个混合了 CRTP、可变参数模板、元编程和运算符重载的类中,我想比较两个可变参数 unsigned int 模板参数以进行一些静态断言。我认为辅助结构将是做到这一点的好方法,但我不知道该怎么做。我想到了一些形式:
template<unsigned int... TDIM, unsigned int... TDIM0> struct HelperCheckDimensions
{
static const bool ok = /* SOMETHING */
};
whereTDIM
和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]
。
怎么做 ?
非常感谢你。