【发布时间】:2011-09-13 00:54:21
【问题描述】:
在 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;
}
将“15”打印到 cout。这有什么用?是否有任何理由使用非类型模板参数而不是更传统的参数,例如:
void add( int& value, int amount )
{
value += amount;
}
对不起,如果这已经被问到了(我看了但找不到任何东西)。
【问题讨论】: