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