title: why should all iterators / iterator adaptors not-movable in C++11?
body: <p>In <a href="https://stackoverflow.com/questions/14302834/when-to-make-a-type-non-movable-in-c11">this</a> question discussed <strong>When to make a type non-movable in C++11</strong> and I discovered Scott Meyers had similar question on <a href="https://groups.google.com/forum/?fromgroups=#!topic/comp.std.c%2b%2b/pCO1Qqb3Xa4" rel="nofollow noreferrer">comp.std.c++</a>, where SG listed below class types are not movable in C++11 libeary.</p>
  
  <ul>
  <li>all mutex types(recursive_mutex , timed_mutex, recursive_timed_mutex, </li>
  <li>condition_variable</li>
  <li>type_info </li>
  <li>error_category </li>
  <li>locale::facet   </li>
  <li>random_device</li>
  <li>seed_seq</li>
  <li>reference_wrapper</li>
  <li>duration</li>
  <li>time_point</li>
  <li><strong>- all iterators / iterator adaptors</strong></li>
  <li>ios_base</li>
  <li>basic_istream::sentry</li>
  <li>basic_ostream::sentry</li>
  <li>all atomic types</li>
  <li>once_flag</li>
  </ul>
  
  <p>The question is why is <code>all iterators / iterator adaptors</code> not-movable ?</p>