Ну, у этого вопроса может не быть только одного конкретного ответа, и многие могут не согласиться с моим ответом.
Я видел много библиотек, ссылающихся на глобальное пространство имен (prepended: :) вЧтобы предотвратить путаницупространство имен правильно.Это даст вам представление о том, как реализовать в вашем коде.
Тем не менее, я почти никогда не видел, чтобы пространство имен std добавлялось так, как :: std :: max (a, b), даже для такихпроекты со строгими правилами.Это приводит меня в замешательство, поскольку на первый взгляд это кажется противоречивым.
Ну, я никогда не использую using namespace std
в своем коде, и я настоятельно рекомендую другим также не использовать его.Я видел много профессионалов, использующих using namespace std
в своем коде. Это крайне нежелательно. Для них это привычка. Да, и это только в случае std, потому что в коде, если вы не используете using namespace std
, вам придется использовать std::
снова и снова, что нежелательно для многих программистов.
Если вы используете max (), вы не будете знать, к какому пространству имен оно относится, но когда вы используете std:: max (), теперь вы знаете, что это часть стандартной библиотеки.
Если вы используете using namespace
для чего-то, кроме std
, у вас могут возникнуть некоторые проблемы, и поддержание кода займет большеусилие, которое нежелательно.
Например: вы включили много файлов, и вы определили max () в двух пространствах имен std
и myNamespace
, теперь вы используете
using namespace std;
using namespace myNamespace;
Теперь, когда вы используете max()
, возникает путаница, поскольку max принадлежит какому пространству имен.