Мне было интересно узнать о соглашениях об именах на C++, в частности, где и что происходит заглавными. Я предполагаю, что я спрашиваю (пришел из таких языков, как Java и C#), почему такие вещи, как std :: vector и std :: string, не капитализируются?Соглашения об именовании C++
В продолжение, если бы я был typedefing СТАНД :: строка быть что-то еще (в моем случае «мир»), я должен назвать ...
typedef std::string world;
или
typedef std::string World;
Я просмотрел предыдущие сообщения и руководства по стилям (несколько перечисленных ниже), но никто, кажется, не обратился к этому напрямую (ссылки ниже). В руководстве Google сказано: «Имена всех типов - классов, структур, typedefs и enums - имеют одинаковое соглашение об именах. Имена типов должны начинаться с заглавной буквы и иметь заглавные буквы для каждого нового слова. Таким образом, похоже, что он должен быть последним, но это кажется странным, поскольку std-библиотека даже немного не соответствует этому соглашению. Это лишь одна из тех вещей, когда куча людей написала библиотеку std до того, как стили были стандартизованы и теперь (по соображениям совместимости) слишком поздно менять/обновлять ее?
Спасибо!
Предыдущие исследования:
- C++ Naming Convention
- http://geosoft.no/development/cppstyle.html
- http://google-styleguide.googlecode.com/svn/trunk/cppguide.html
Существует не один общий именования, а множество, так же, как с C++ существует не одна общая библиотека, которая предоставляет функциональность, как стандартные библиотеки Java и C#, а множество, огромное разнообразие. Проверьте библиотеку Boost, в ней есть описание ее условностей и обоснований. Стандартная библиотека - еще один источник соглашения, но одна проблема заключается в том, что наличие имен, которые выглядят как стандартные имена библиотек, не обязательно является преимуществом. –
О, и * забудьте * руководство по стилю Google. Он был разработан для среды с множеством устаревших кодов стиля C. Отключенная от этой цели большая часть его советов является некачественной. –
FWIW, это должно быть 'typedef std :: string world;' –