title: std::list thread_safety
body: <ol>
  <li>I have a list where one thread just does push_back and other thread occasionally loop through the list and prints all the elements. Do I need a lock in this case?</li>
  <li><p>I have pointers to the elements in some other object. Is it safe to have? I know that vector will move all the objects when it needs more space so pointers will be invalidated.</p>
  
  <p>mylist.push_back(MyObj(1));<br>
  if(someCond)<br>
  {<br>
   _myLastObj = &amp;mylist.back();<br>
  }</p></li>
  </ol>
  
  <p><code>_myLastObj</code> is of type <code>MyObj*</code></p>
  
  <p>If I had used a vector, the object would have been moved to a different location and the pointer would be pointing to garbage. Is it safe with a list?</p>