title: What are the requirements for C++ template parameters?
body: <p>If you are using a template in C++ that takes an integer value as a parameter, are there any requirements on an integer variable used as the parameter that are different than if the variable was used as a parameter in a function call? </p>
  
  <p>This is a follow-up to question  <a href="https://stackoverflow.com/questions/641397/c-best-way-to-define-cross-file-constants/641431#641431">here</a> .  I specifically want to address if there is a difference WRT variables declared as "extern const int" for functions or templates?</p>
  
  <p>I can see that for some template cases the parameter value would be needed at compile time.  Is this always true?  Is there a way to specify, maybe for only certain uses of the parameter value, that the value be used at runtime? </p>