title: map operator [] and bool as value
body: <p>We know that if we try to access a nonexistent key of <code>std::map</code> with the operator [] , the function will insert a new element with that key. </p>
  
  <p>We have: <code>std::map&lt;std::string, bool&gt; map_xxx;</code></p>
  
  <p>Is it guaranteed that after accessing the nonexistent key of <code>map_xxx["nonexistent_key"]</code>, the value of the second argument will always be <code>false</code> ?</p>
  
  <p>ps. if no, any ideas how to have this behavior?</p>