相关疑难解决方法(0)

使用非类型模板参数而不是常规参数的原因?

在C++中,您可以使用非类型模板参数创建模板,如下所示:

template< int I >
void add( int& value )
{
  value += I;
}

int main( int argc, char** argv )
{
  int i = 10;
  add< 5 >( i );
  std::cout << i << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

其中打印"15"到cout.有什么用?是否有任何理由使用非类型模板参数而不是更常规的类似参数:

void add( int& value, int amount )
{
  value += amount;
}
Run Code Online (Sandbox Code Playgroud)

对不起,如果已经被问过(我看了但找不到任何东西).

c++ templates

24
推荐指数
4
解决办法
5321
查看次数

标签 统计

c++ ×1

templates ×1