Мне нравится концепция пространств имен C++, потому что они помогают сохранить исходный код кратким, избегая конфликтов имен. В .cpp-файлах это работает очень хорошо, используя объявление «using namespace». Однако в заголовочных файлах это невозможно использовать, так как оно «разрывает» пространство имен, что означает, что «использование пространства имен» применяется не только в текущем файле заголовка, но и во всем, что скомпилировано после этого. Это частично сводит на нет преимущества пространств имен. Рассмотрим, например, заголовочный файл, в котором часто используются классы «ourlib :: networking :: IpAddress» и «ourlib :: filesystem :: Path».Пространства имен в файлах заголовков C++
Есть ли способ ограничить эффект «использования пространства имен» -декламацией в файлах заголовков?
> Это может загрязнять глобальное пространство имен <это будет загрязнять глобальное пространство имен – Artyom
Зависит от того, что вы подразумеваете под загрязнением. На мой взгляд, импортирование одного класса может штрафом, если он ограничен файлами реализации, включая заголовок. Обычно я включаю только заголовки в другие заголовки, если это абсолютно необходимо, и вместо этого переходите к форвардным объявлениям. Это скорее улучшает время компиляции. – OregonGhost
Я забыл добавить, кроме этого, я agr с тобой. Как я уже сказал, я использую только полные имена. – OregonGhost