title: What is std::invoke in c++?
body: <p>I've just been reading about <code>std::thread</code> and <code>std::bind</code> which I've faced with the <code>Callable</code> concept and <code>std::invoke</code>. </p>
  
  <p>I read about <code>std::invoke</code> on <a href="http://en.cppreference.com/w/cpp/utility/functional/invoke" rel="noreferrer">cppreference</a> but I didn't understand what it said. Here is my question:<br>
  What is <code>std::invoke</code>, <code>std::function</code>, <code>std::bind</code> and the <code>Callable</code> concept? And what is relationship between them?</p>