title: What are differences between std, tr1 and boost (as namespaces and/or libraries)?
body: <p>I initially thought they're all the same, but it turned out to be wrong. So can anyone briefly explain the differences between these three? For example:</p>
  
  <ol>
  <li><code>std::bind</code> ( newest one, next generation of C++ )</li>
  <li><code>std::tr1::bind</code> ( old, extension of C++ std )</li>
  <li><code>boost::bind</code> ( completely separate library )</li>
  </ol>
  
  <p>or <code>std::shared_ptr</code>, <code>std::tr1::shared_ptr</code>, and <code>boost::shared_ptr</code>, ...etc</p>
  
  <p><strong>Update</strong></p>
  
  <p><code>bind</code>, <code>shared_ptr</code> are examples that help to clarify my question. My intention was to understand the general differences between those three namespaces. There are several libraries that exist in all three namespaces, and apparently <code>bind</code> is one example, as well as <code>shared_ptr</code>. </p>
  
  <p>What namespaces should I stick with? I personally prefer library from <code>std::</code> since it will be the next standard of C++ ( C++0x ).</p>