Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > использование using namespace std;


Автор: mrgloom 9.7.2014, 09:14
пишут, что плохо использовать 

Код

using namespace std;


в .h файлах, т.к. возможен конфликт имён, и трудно отлавливаемые ошибки.


тогда получается, что необходимо писать в .h файле

Код

void somefunc(std::vector<int> vec)



а в .cpp уже можно написать

Код

using namespace std;

void somefunc(vector<int> vec)
{

}



получается как то неоднородно и не красиво.

или как то можно и внутри .h файла локально использовать using namespace std; и не писать префикс std:: ?

Автор: NoviceF 9.7.2014, 09:26
Цитата(mrgloom @  9.7.2014,  10:14 Найти цитируемый пост)
или как то можно и внутри .h файла локально использовать using namespace std; и не писать префикс std:: ?

Код

using namespace std;

Лучше не писать вообще нигде, а использовать полные имена, это не так уж и сложно, надо сказать smile. 
Применительно к std я не использую using namespace никогда, и вообще стараюсь избегать для любых пространств имён. Единственное исключение - область видимости внутри функции, если в теле функции нужно использовать сущности вложенные в несколько пространств имён, иногда разумно облегчить себе жизнь не указывая трёхэтажные спецификаторы области видимости.

Автор: Alexeis 9.7.2014, 09:41
Есть промежуточный вариант - using std::vector; т.е. вносятся минимум имен и упрощается запись для этого класса. Удобно если требуется создавать много экземпляров.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)