title: Find out whether a C++ object is callable
body: <p>Is it possible to write a type trait, say <code>is_callable&lt;T&gt;</code> which tells if an object has an <code>operator()</code> defined?
  It is easy if the arguments to the call operator are known in advance, but not in the general case.
  I want the trait to return true if and only if there is at least one overloaded call operator defined.</p>
  
  <p><a href="https://stackoverflow.com/questions/5100015/c-metafunction-to-determine-whether-a-type-is-callable">This question</a> is related and has a good answer, but it doesn't work on all types (only on <code>int</code>-convertible types). Also, <code>std::is_function</code> works, but only on proper C++ functions, not on functors. I'm looking for a more general solution.</p>