В С++ вы можете создавать шаблоны с использованием параметра шаблона, отличного от типа:
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;
}
Извините, если это уже было задано (я посмотрел, но ничего не нашел).