Информация об изменениях

Сообщение Re[3]: using namespace std; от 18.09.2019 6:17

Изменено 18.09.2019 6:20 rg45

Re[3]: using namespace std;
Здравствуйте, Михaил, Вы писали:

KP>>Я много лет за такое по рукам бил, особенно, если кто-то додумывался учудить подобное в заголовочном файле. Привести в чувства проект с горой "using namespace std" то еще веселье


М>А изза чего начинаются проблемы? В заголовочных вред using понимаю, но чем он плох в cpp?


Неприятности могут быть разные. Самое простое — это ошибки компиляции из-за конфликта имен. Но это пол беды, поскольку это не пройдет незамеченным. Гораздо хуже, когда в ADL, вдруг начинает выигрывать совсем не та функция, на которую ты рассчитываешь. В этом случае компилятор уже не поможет и ты долго и нудно можешь искать причину, по которой программа работает не так, как нужно. Ну и, пожалуй, главная проблема в том, что то, что сегодня нормально работает, завтра может поломаться в результате безобидных, на первый взгляд, изменений в другом пространстве имен.
Re[3]: using namespace std;
Здравствуйте, Михaил, Вы писали:

KP>>Я много лет за такое по рукам бил, особенно, если кто-то додумывался учудить подобное в заголовочном файле. Привести в чувства проект с горой "using namespace std" то еще веселье


М>А изза чего начинаются проблемы? В заголовочных вред using понимаю, но чем он плох в cpp?


Неприятности могут быть разные. Самое простое — это ошибки компиляции из-за конфликта имен. Но это пол беды, поскольку это не пройдет незамеченным. Гораздо хуже, когда в ADL, вдруг начинает выигрывать совсем не та функция, на которую ты рассчитываешь. Особенно это актуально для функций операторов. В этом случае компилятор уже не поможет и ты долго и нудно можешь искать причину, по которой программа работает не так, как нужно. Ну и, пожалуй, главная проблема в том, что то, что сегодня нормально работает, завтра может поломаться в результате безобидных, на первый взгляд, изменений в другом пространстве имен.