title: Always declare std::mutex as mutable in C++11?
body: <p>After watching Herb Sutter's talk <a href="http://isocpp.org/blog/2012/12/you-dont-know-const-and-mutable-herb-sutter" rel="noreferrer">You Don't Know const and mutable</a>, I wonder whether I should always define a mutex as mutable? If yes, I guess the same holds for any synchronized container (e.g., <code>tbb::concurrent_queue</code>)?</p>
  
  <p>Some background: In his talk, he stated that const == mutable == thread-safe, and <code>std::mutex</code> is per definition thread-safe.</p>
  
  <p>There is also related question about the talk, <a href="https://stackoverflow.com/questions/14127379/does-const-mean-thread-safe-in-c11">Does const mean thread-safe in C++11</a>.</p>
  
  <p>Edit:</p>
  
  <p><a href="https://stackoverflow.com/questions/4127333/should-mutexes-be-mutable?rq=1">Here</a>, I found a related question (possibly a duplicate). It was asked before C++11, though. Maybe that makes a difference.</p>