title: Get types of C++ function parameters
body: <p>Is there a standard way to get the types of a function's arguments and pass around these types as a template parameter pack? I know that this is possible in C++ because <a href="http://www.drdobbs.com/cpp/extracting-function-parameter-and-return/240000586">it has been done before</a>.</p>
  
  <p>I was hoping that with C++14 or the upcoming C++1z, there would be an idiomatic way to implement <code>arg_types&lt;F&gt;...</code> here:</p>
  
  <pre><code>template &lt;typename ...Params&gt;
  void some_function(); // Params = const char* and const char*
  
  FILE* fopen(const char* restrict filename, const char* restrict mode);
  
  int main(){
      some_function&lt;arg_types&lt;fopen&gt;...&gt;();
  }
  </code></pre>
  
  <p>Just to be clear, an answer claiming that there is no standard way to do this is not an answer. If there is no answer, I would prefer that the question remain unanswered until the solution is added to C++500 or until the heat death of the universe, whichever happens earlier :)</p>
  
  <p>Edit: A deleted answer noted that I can use <code>PRETTY_FUNCTION</code> to get the names of parameter types. However, I want the actual types. Not the names of those types. </p>