title: Why is destructor of boost::thread detaching joinable thread instead of calling terminate() as standard suggests?
body: <p>According to the draft C++0x standard, this code:</p>
  
  <pre><code>void simplethread()
  {
      boost::thread t(someLongRunningFunction);
      // Commented out detach - terminate() expected.
      // t.detach();  
  }
  </code></pre>
  
  <p>... should result in an terminate() call, but in current (boost 1.46.1) implementation of boost threads it doesn't, thread simply gets detached in destructor and continues on.</p>
  
  <p>My question is: why? </p>
  
  <p>I thought boost::thread is as much inline with draft standard as it gets. </p>
  
  <p>Is there a design reason for this? 
  Will it be changed in future versions of boost::thread? </p>