Большинство соглашений об именах 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 ++. Написание классов или методов, которые оборачивают функциональность библиотеки, болезненно, потому что они заканчиваются именами разных стилей для похожих вещей.
Итак, как согласовать эти разрозненные соглашения об именах?