title: Passing any function as a template parameter?
body: <p>I am looking for a way to pass a generic (constexpr, obviously) function to a template. It has to be able to take any amount of parameters, without using a lambda. This is what I have so far:</p>
  
  <pre><code>template&lt;typename T, T(*FUNC)()&gt; struct CALL
  {
      static inline constexpr decltype(FUNC()) EXEC()
      {
          return FUNC();
      }
  };
  </code></pre>
  
  <p>This however only works if the passed function takes no parameters. Is there a way to make the template accept ANY constexpr function? Passing a std::function does not seem to work.
  I suppose the key is variadic template parameters, but I have no idea how to take advantage of them in this situation. </p>