Большинство соглашений об именовании С++ диктуют использование camelCaseIdentifiers
: имен, начинающихся с прописной буквы для классов (Person
, Booking
) и имен, начинающихся с строчной буквы для полей и переменных (getPrice()
, isValid()
, largestValue
). Эти рекомендации полностью противоречат соглашениям об именах библиотеки С++, которые включают имена нижних регистров для классов (string
, set
, map
, fstream
) и names_joined_with_an_underscore
для методов и полей (find_first_of
, lower_bound
, reverse_iterator
, first_type
). Дальнейшее усложнение изображения - это операционная система и функции библиотеки C, которые включают сжатые имена нижнего регистра в C и Unix и функции, начинающиеся с буквы верхнего регистра в Windows.
В результате мой код беспорядок, потому что некоторые идентификаторы используют соглашение об именовании библиотеки С++, C или операционной системы, а другие используют предписанное соглашение С++. Написание классов или методов, которые обертывают функциональность библиотеки, болезненно, потому что заканчиваются именами разных типов для похожих вещей.
Итак, как вы соглашаетесь с этими разрозненными соглашениями об именах?