title: A function with variable number of arguments with known types, the c++11 way
body: <p>I already know the <code>stdarg.h</code> way to have a function with variable arguments in c++ as discussed <a href="http://www.go4expert.com/forums/showthread.php?t=17592" rel="noreferrer">here</a> for example.
  I also know c++11 standard has variadic templates as explained <a href="http://en.wikipedia.org/wiki/Variadic_template" rel="noreferrer">here</a>.</p>
  
  <p>But in both of aforementioned schemes we don't know (and we can't force) argument types in compile time afaik. What I'm looking for is to pass variable arguments of <strong>known types</strong> to a function. I think this can be done because I read about it <a href="http://en.cppreference.com/w/cpp/utility/variadic" rel="noreferrer">here</a>:</p>
  
  <blockquote>
    <p>Variadic templates, which can also be used to create functions that take variable number of arguments, are often the better choice because they do not impose restrictions on the types of the arguments, do not perform integral and floating-point promotions, and are type safe.</p>
  </blockquote>
  
  <p>Is it possible? If yes, how can I do this?</p>