title: Why does the STL/Boost C++ coding style differ so much from everyone elses?
body: <p>I'm a fairly rookie C++ programmer, but in my limited experience with the language, most standard C++ style guidelines (e.g. <a href="https://google.github.io/styleguide/cppguide.html" rel="noreferrer">Google C++ Style Guidelines</a>) go against what is implemented in the stl and boost libraries.</p>
  
  <p>For example, class names in the C++ standard library and Boost are always lower case, with underscores separating words (e.g. <code>std::vector</code>, <code>boost::unordered_map</code>, <code>std::map::const_iterator</code>), whereas most style guides I've seen for C++ tend towards a CamelCase style (e.g. <code>TcpConnection</code> or <code>Int32</code>).</p>
  
  <p>The same applies to methods too. The standard library and Boost use the same style for methods and functions as they do for classes (e.g. <code>std::map&lt;&gt;::get_equal("foo")</code>), whereas most style guides advocate pascalCase or CamelCase.</p>
  
  <p>If we contrast this with a language like Ruby, where most users will adhere to the conventions used in the core libraries, it seems odd that there'd be such a difference between the standard C++ libraries and everyone else's code.</p>
  
  <p><strong>Does anyone know why this is?</strong></p>
  
  <p>EDIT: Just to clarify, I'm talking simply about the superficial textual style (casing, use of underscores, etc) rather than actual implementation style.</p>