title: do std::function and std::bind do dynamic memory allocation?
body: <p>If I do this :-</p>
  
  <pre><code>class Thing  
  {
      ...
      void function (const std::string&amp; message);
  };
  
  std::list&lt;std::function&lt;void()&gt;&gt; work;
  </code></pre>
  
  <p>and in some member of "Thing" </p>
  
  <pre><code>work.push_back(std::bind(&amp;Thing::function, this, "Hello"));
  </code></pre>
  
  <p>Does either the call to std::bind or the use of std::function&lt;> cause any dynamic memory allocation using new or otherwise? Or is all the storage allocated at compile time? If the standard doesn't say anything, what about in visual studio 2012 as my program will only need to build on there, and for efficiency I probably need to avoid dynamic memory allocations in the place where I am thinking of using this mechanism.</p>