我遇到了以下问题。我有以下模板
我尝试过类似这样的东西,但我的编译器不喜欢它。
什么是实现Number_add的正确方法?我认为这里可能需要模板模板参数,但我也无法使其有效。如果能提供帮助,将不胜感激。
Number
:template<int n>
struct Number
{
static const int value = n;
};
现在假设我想在编译时添加两个这样的数字。具体地说,我希望使以下代码段正常工作:
//The following code should display 7:
std::cout << Number_add< Number<3>, Number<4> >::value << std::endl;
我尝试过类似这样的东西,但我的编译器不喜欢它。
template<Number<int> n1, Number<int> n2>
struct Number_add
{
static const int value = n1::value + n2::value;
}
什么是实现Number_add的正确方法?我认为这里可能需要模板模板参数,但我也无法使其有效。如果能提供帮助,将不胜感激。
template<class n1, class n2> struct Number_add
- n. m.