There\'re cases when a library source is available, and it has to support variable parameters in general, but in practice these parameters are commonly constants.
Suppose we have the following template class template<typename T> class Wrap { /* ... */ }; We can not change Wrap. It is important.