Время от времени я натыкаюсь на некоторый код, который я поддерживаю, что бросает вызов тому, как я думаю о моем стиле кода. Сегодня был один из тех дней...
Мне известно, почему вы хотите использовать оператор области для определения глобальной области. Фактически, здесь оператор разрешения области без рамки - отличная ссылка, объясните почему.
Однако я увидел то, что заставило меня думать сегодня. Все рассматриваемые классы были обернуты в пространство имен для проекта (хорошо!), Но я видел обильное использование оператора глобальной области видимости. А именно, он использовался для всего из библиотек C (за исключением uint8_t и т.д.) Да, программист использовал .h версию этой библиотеки, так как, по-видимому, версия g++, которую они запускали, все еще бросала предупреждения о новом С++ стандарт). Это полезно? Я рассматриваю это так же, как пустую трату символов (напоминает мне об использовании этого указателя... кроме случая с конструктором копирования и оператором присваивания, где он помогает в выяснении того, из какого объекта это). Я что-то упускаю? Конечно, кто-то может прийти и назвать что-то по строкам usleep() или stderr (где я видел наибольшее использование "::" ), но разве они не узнают, что это, вероятно, сломает что-то ужасно? В какой момент вы говорите "вверните его" с точки зрения оператора сферы и просто скажите себе, что кто-то, кто называет функцию определенным образом в вашем пространстве имен, просит неприятностей?
Итак, мой вопрос: что такое "правильный" (субъективный, я понимаю) способ использования глобального оператора сферы в этом контексте? Должно ли все, не включенные в std или ваши собственные пространства имен, явно определять глобальную область? Я склонен ошибаться на стороне осторожности и использовать "std::", чтобы избежать использования директивы using, но что-нибудь получается от использования глобального оператора сферы здесь? Я склонен думать для ясности, так как это оправдывает тот факт, что мы не получаем переменную или функцию, о которой идет речь, из текущего пространства имен, но я разорван между ними и не получил сегодняшних событий.
Как всегда, спасибо за помощь и руководство, поскольку я стараюсь сделать мой код более чистым, более читаемым и (конечно) значительно более удивительным.