title: difference between void(int) & void (*)(int)
body: <p>I know <code>void (*)(int)</code> is to function pointer but what is <code>void(int)</code>? </p>
  
  <p>It's used for <code>std::function</code> template. </p>
  
  <p>Say I have a function <code>void fun(int){}</code> : <code>decltype(&amp;fun)</code> gives <code>void(*)(int)</code> but <code>decltype(fun)</code> gives <code>void(int)</code></p>