Я довольно программист на С++ новичок, но в своем ограниченном опыте с языком большинство стандартных правил стиля С++ (например, Руководства по стилю Google С++) идут против того, что реализовано в библиотеках stl и boost.
Например, имена классов в стандартной библиотеке С++ и Boost всегда имеют строчный регистр с подчеркиванием, разделяющим слова (например, std::vector
, boost::unordered_map
, std::map::const_iterator
), тогда как большинство руководств по стилям, которые я видел для С++, имеют тенденцию к стилю CamelCase (например, TcpConnection
или Int32
).
То же самое относится и к методам. Стандартная библиотека и Boost используют тот же стиль для методов и функций, что и для классов (например, std::map<>::get_equal("foo")
), тогда как большинство руководств по стилям выступают за pascalCase или CamelCase.
Если мы сравним это с языком, подобным Ruby, где большинство пользователей будут придерживаться соглашений, используемых в основных библиотеках, кажется странным, что такая разница между стандартными библиотеками С++ и всем остальным кодом.
Кто-нибудь знает, почему это?
EDIT: просто для уточнения, я говорю просто о поверхностном текстовом стиле (обложка, использование подчеркиваний и т.д.), а не о фактическом стиле реализации.