title: own std::is_function implementation
body: <p>It's suggested <a href="http://en.cppreference.com/w/cpp/types/is_function" rel="nofollow">here</a> to be implemented in a following way:</p>
  
  <pre><code>template&lt;class Ret, class... Args&gt;
  struct is_function&lt;Ret(Args...)const&gt; : std::true_type {};
  template&lt;class Ret, class... Args&gt;
  struct is_function&lt;Ret(Args...)volatile&gt; : std::true_type {};
  </code></pre>
  
  <p>But is it a valid function syntax? Visual Studio 2013 gives an error:</p>
  
  <pre><code>error C2270: 'abstract declarator' : modifiers not allowed on nonmember functions   
  </code></pre>