using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 08:30
Оценка:
Всем привет!

Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...

Спасибо.
Tuo_Bellas
Re: using namespace std
От: _nn_ www.nemerleweb.com
Дата: 13.10.04 08:33
Оценка:
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Всем привет!


T_B>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


T_B>Спасибо.

T_B>Tuo_Bellas

// a.h
#include <vector>
using namespace std;


// a.cpp
#include "a.h"

class vector // бум  :crash: 
{
public:
 vector(){}
};

void f()
{
 vector x;
}
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: using namespace std
От: Glоbus Украина  
Дата: 13.10.04 08:36
Оценка:
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Всем привет!


T_B>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


T_B>Спасибо.

T_B>Tuo_Bellas

напиши так

#include <list>

using namespace std;

//The Valisly Pupkin's class
class list
{
};

list obj;


и спроси, че будет
Удачи тебе, браток!
Re[2]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 08:40
Оценка: +1 -1 :)
Здравствуйте, Glоbus, Вы писали:

T_B>>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


G>напиши так


G>
G>#include <list>

G>using namespace std;

G>//The Valisly Pupkin's class
G>class list
G>{
G>};

G>list obj;

G>


G>и спроси, че будет


Ответ очевиден. "Нефиг называть свои классы как не надо..."

Спасибо.
Tuo_Bellas
Re[3]: using namespace std
От: _nn_ www.nemerleweb.com
Дата: 13.10.04 08:47
Оценка:
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Здравствуйте, Glоbus, Вы писали:


T_B>>>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


G>>напиши так


G>>
G>>#include <list>

G>>using namespace std;

G>>//The Valisly Pupkin's class
G>>class list
G>>{
G>>};

G>>list obj;

G>>


G>>и спроси, че будет


T_B>Ответ очевиден. "Нефиг называть свои классы как не надо..."

Не согласен.
Никто не может знать как будут называться классы в следущем стандарте.
В будущее посмотреть что ли ?

T_B>Спасибо.

T_B>Tuo_Bellas
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: using namespace std
От: korzhik Россия  
Дата: 13.10.04 08:48
Оценка: :))) :))) :)))
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Ответ очевиден. "Нефиг называть свои классы как не надо..."


ну тогда тебе прийдётся поговорить с ним по мужски
если силой не вышел попроси друзей его подкараулить
пусть попинают его не много и предупредят:
если он ещё раз будет использовать using namespace std в precompiled header,
то они его ещё раз поймают кое-чего оторвут и вот это кое чего кое куда повесят.
Я думаю должно помочь
Re[3]: using namespace std
От: Анатолий Широков СССР  
Дата: 13.10.04 08:51
Оценка: 2 (1)
T_B>Ответ очевиден. "Нефиг называть свои классы как не надо..."

Пусть тогда этот лид проштудирует Страуструпа в плане введения в пространства имен — для чего и зачем они были созданы.
Re[4]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 08:53
Оценка:
Здравствуйте, _nn_, Вы писали:

T_B>>>>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


G>>>напиши так


[...]

T_B>>Ответ очевиден. "Нефиг называть свои классы как не надо..."

__>Не согласен.
__>Никто не может знать как будут называться классы в следущем стандарте.
__>В будущее посмотреть что ли ?

В нашем корпоративном стиле точно не будут. Брр. Да и код не доживет до следующего стандарта.

Еще разумные аргументы есть?

Спасибо.
Tuo_Bellas
Re[4]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 08:55
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

T_B>>Ответ очевиден. "Нефиг называть свои классы как не надо..."


АШ>Пусть тогда этот лид проштудирует Страуструпа в плане введения в пространства имен — для чего и зачем они были созданы.


"Дизайн" или "Язык"?

Впрочем, цитирую его:

Это, конечно, серьезные ребята, но я их... "переболел" что-ли, раньше. Я уже не отношусь к ним так серьезно, как ты.


Спасибо.
Tuo_Bellas.
Re[4]: using namespace std
От: Lorenzo_LAMAS  
Дата: 13.10.04 08:56
Оценка: :))) :))) :))
Друзьям-гопникам придется долго заучивать фразу "Если ты, @#$%@ @$%$@ @$%$%, еще раз напишешь, эта, как яго, а, да, узинг @#$@$# нэиспэйце @#$#@$#@ стд, @#$%@ @%#$#% @%$$#% @%$#%$, то мы тебя @$%$#% @$%$#%"
Of course, the code must be complete enough to compile and link.
Re: using namespace std
От: Bell Россия  
Дата: 13.10.04 08:56
Оценка: 2 (1)
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Всем привет!


T_B>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


T_B>Спасибо.

T_B>Tuo_Bellas

Глянь здесь
Автор: Bell
Дата: 14.11.01
Любите книгу — источник знаний (с) М.Горький
Re[2]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 09:00
Оценка:
Здравствуйте, Bell, Вы писали:

T_B>>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


B>Глянь здесь
Автор: Bell
Дата: 14.11.01


Засчитывается как хороший аргумент. Спасибо.

Еще?

Tuo_Bellas.
Re[5]: using namespace std
От: Bell Россия  
Дата: 13.10.04 09:00
Оценка:
Здравствуйте, Tuo_Bellas, Вы писали:

TT_B>Впрочем, цитирую его:


T_B>

T_B>Это, конечно, серьезные ребята, но я их... "переболел" что-ли, раньше. Я уже не отношусь к ним так серьезно, как ты.


Мдаа... "Есть 2 мнения — мое, и неправильное".
Тяжело тебе придется...
Любите книгу — источник знаний (с) М.Горький
Re[5]: using namespace std
От: Lorenzo_LAMAS  
Дата: 13.10.04 09:00
Оценка:
Да, уж он-то явно "серьезный С++ программист", ему поди надоели "умники, поначитавшиеся модных книжек"
Of course, the code must be complete enough to compile and link.
Re[5]: using namespace std
От: korzhik Россия  
Дата: 13.10.04 09:02
Оценка: :))) :))
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>Друзьям-гопникам придется долго заучивать фразу "Если ты, @#$%@ @$%$@ @$%$%, еще раз напишешь, эта, как яго, а, да, узинг @#$@$# нэиспэйце @#$#@$#@ стд, @#$%@ @%#$#% @%$$#% @%$#%$, то мы тебя @$%$#% @$%$#%"


выход есть.
надо подобрать команду хулиганов из сишников, ну можно из шарпников, мне кажется они (шарпники) должны быть крупнее.
Re[5]: using namespace std
От: Анатолий Широков СССР  
Дата: 13.10.04 09:04
Оценка: :)
T_B>Впрочем, цитирую его:

T_B>

T_B>Это, конечно, серьезные ребята, но я их... "переболел" что-ли, раньше. Я уже не отношусь к ним так серьезно, как ты.


В меденцинской энциклопедии я болезни "СТРАУСТРУП" не нашел, поэтому пусть не врет, что он переболел
Re[6]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 09:04
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>Да, уж он-то явно "серьезный С++ программист", ему поди надоели "умники, поначитавшиеся модных книжек"


По крайней мере, из под его пера выходит работоспособный код. И далеко не один год... Так что... Но отдельные недостатки, конечно, нужно исправлять

Tuo_Bellas.
Re[6]: using namespace std
От: Lorenzo_LAMAS  
Дата: 13.10.04 09:06
Оценка: :))) :)
K>выход есть.
K>надо подобрать команду хулиганов из сишников, ну можно из шарпников, мне кажется они (шарпники) должны быть крупнее.

Как бы такая команда тебя, как представителя другой религиозной конфессии, самого того не....

Можно текст на бумажке написать им, или еще лучше из за спин гопников выкрикнуть заветную фразу
Of course, the code must be complete enough to compile and link.
Re[3]: using namespace std
От: Анатолий Широков СССР  
Дата: 13.10.04 09:07
Оценка:
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Здравствуйте, Bell, Вы писали:


T_B>>>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


B>>Глянь здесь
Автор: Bell
Дата: 14.11.01


T_B>Засчитывается как хороший аргумент. Спасибо.


T_B>Еще?


Понимаешь, этот агрумент единственный, но весомый — потенциальный конфликт имен.
Re[4]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 09:09
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

АШ>Здравствуйте, Tuo_Bellas, Вы писали:


T_B>>Здравствуйте, Bell, Вы писали:


T_B>>>>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


B>>>Глянь здесь
Автор: Bell
Дата: 14.11.01


T_B>>Засчитывается как хороший аргумент. Спасибо.


T_B>>Еще?


АШ>Понимаешь, этот агрумент единственный, но весомый — потенциальный конфликт имен.


Нет, это понятно. Я имею в виду еще bad luck stories Чтобы попугать.

Tuo_Bellas.
Re[7]: using namespace std
От: Lorenzo_LAMAS  
Дата: 13.10.04 09:11
Оценка:
T_B>По крайней мере, из под его пера выходит работоспособный код. И далеко не один год... Так что...

Так я и не сомневался.
Of course, the code must be complete enough to compile and link.
Re[5]: using namespace std
От: Анатолий Широков СССР  
Дата: 13.10.04 09:12
Оценка: 3 (1)
T_B>Нет, это понятно. Я имею в виду еще bad luck stories Чтобы попугать.

Вот здесь была у паренька сложная ситуация.
Re[6]: using namespace std
От: Lorenzo_LAMAS  
Дата: 13.10.04 09:18
Оценка: :))) :)
АШ>В меденцинской энциклопедии я болезни "СТРАУСТРУП" не нашел, поэтому пусть не врет, что он переболел

У тебя небось старое издание
Of course, the code must be complete enough to compile and link.
Re[8]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 09:19
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

T_B>>По крайней мере, из под его пера выходит работоспособный код. И далеко не один год... Так что...

L_L>Так я и не сомневался.

А чего тогда "серьезный С++ программист" в кавычках написал?

Tuo_Bellas.
Re[6]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 09:20
Оценка:
Здравствуйте, Анатолий Широков, Вы писали:

T_B>>Нет, это понятно. Я имею в виду еще bad luck stories Чтобы попугать.


АШ>Вот здесь была у паренька сложная ситуация.

Спасибо, подходит.

Еще бы парочку, чтобы дожать...

Tuo_Bellas.
Re: using namespace std
От: Блудов Павел Россия  
Дата: 13.10.04 09:33
Оценка: 1 (1)
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


Попробуйте обыграть то, что min/max в <windows.h> это макросы, а в std это функции. У меня был случай, когда в WTL (или ATL) что-то некомпилялось из-за того, что в max() попадали числа разных типов, что нормально работает с макросами, но не работает с функциями.

Павел.
... << RSDN@Home 1.1.4 beta 2 >>
Re[3]: using namespace std
От: Glоbus Украина  
Дата: 13.10.04 09:36
Оценка:
Здравствуйте, Tuo_Bellas, Вы писали:


T_B>Ответ очевиден. "Нефиг называть свои классы как не надо..."


Я так и думал — весомый аргумент Вобщем наверное чел деревянный. Тогда предлагаю тебе нарваться с ним на конфликт и уронить. Реально после этого отношения обычно начинают строится по принципу конструктивного диалога. Ну а даже если не поможет, то хоть душу отведешь

T_B>Спасибо.

T_B>Tuo_Bellas
Удачи тебе, браток!
Re[9]: using namespace std
От: Lorenzo_LAMAS  
Дата: 13.10.04 09:38
Оценка: :))) :)))
T_B>А чего тогда "серьезный С++ программист" в кавычках написал?

Типа прямая речь
Of course, the code must be complete enough to compile and link.
Re[4]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 09:44
Оценка:
Здравствуйте, Glоbus, Вы писали:

T_B>>Ответ очевиден. "Нефиг называть свои классы как не надо..."


G>Я так и думал — весомый аргумент Вобщем наверное чел деревянный. Тогда предлагаю тебе нарваться с ним на конфликт и уронить. Реально после этого отношения обычно начинают строится по принципу конструктивного диалога. Ну а даже если не поможет, то хоть душу отведешь


Globus, это же не наш метод! (c).

Думаю, все же, приведенные здесь истории, (особенно если еще парочку подкинете ) должны повлиять положительно...

Спасибо.
Tuo_Bellas.
Re[5]: using namespace std
От: Glоbus Украина  
Дата: 13.10.04 09:56
Оценка:
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Globus, это же не наш метод! (c).


Ну почему же — в коллективе должна быть здоровая атмосфера насилия и агресии. То есть не война и не грызня — а так.. человеквсегдадолжен помнить что может выгрести... этоесли хотите держит в тонусе

T_B>Думаю, все же, приведенные здесь истории, (особенно если еще парочку подкинете ) должны повлиять положительно...


Да просто когда хлопнешь чела разок сразу пропадает панибратсво и закидоны типа "Нехрен классы свои криво называть" — конструктивная жилка сама собой рождается... то есть сейчас твоя позиция заведомо проигрышная — ты ж свои консутруктивные я логическиеаргументы противопоставялешь просто отмазкам. То есть чел для себя все решил.

T_B>Спасибо.

T_B>Tuo_Bellas.
Удачи тебе, браток!
Re: using namespace std
От: Bell Россия  
Дата: 13.10.04 10:01
Оценка: :)))
Здравствуйте, Tuo_Bellas, Вы писали:

Еще можно незметно подкинуть ему ссылку на этот топик...
Особенно где про друзей-гопников...
Любите книгу — источник знаний (с) М.Горький
Re[6]: using namespace std
От: Vamp Россия  
Дата: 13.10.04 10:01
Оценка:
АШ>В меденцинской энциклопедии я болезни "СТРАУСТРУП" не нашел, поэтому пусть не врет, что он переболел


"Поискал Словаре Живаго Великарусскаго языка Даля chmod и не нашел".
(С) Леони Каганов.

Да здравствует мыло душистое и веревка пушистая.
Re[2]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 11:58
Оценка:
Здравствуйте, Bell, Вы писали:

B>Еще можно незметно подкинуть ему ссылку на этот топик...

B>Особенно где про друзей-гопников...
B>

Если бы я его сдуру не процитировал, я бы так и сделал. А так -- обидится.

Tuo_Bellas.
Re: using namespace std
От: sadomovalex Россия http://sadomovalex.blogspot.com
Дата: 13.10.04 12:10
Оценка: 2 (1)
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Всем привет!


T_B>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


T_B>Спасибо.

T_B>Tuo_Bellas

Может слова Н. Джосьютиса окажутся веским аргументом:

Никогда не используйте директиву using при отсутствии полной информации о контексте (например, в заголовочных файлах, модулях и библиотеках). Директива может изменить область видимости идентификаторов в пространстве имен, что приведет к нарушению работы программы при включении или использовании программного кода другого модуля. Вообще говоря, присутствие директив using в заголовочных файлах считается признаком плохого проектирования

"Что не завершено, не сделано вовсе" Гаусс
Re[2]: using namespace std
От: Lorenzo_LAMAS  
Дата: 13.10.04 12:33
Оценка:
S>

S>Никогда не используйте директиву using при отсутствии полной информации о контексте (например, в заголовочных файлах, модулях и библиотеках). Директива может изменить область видимости идентификаторов в пространстве имен, что приведет к нарушению работы программы при включении или использовании программного кода другого модуля. Вообще говоря, присутствие директив using в заголовочных файлах считается признаком плохого проектирования


Так ведь если для него сам Бьярн уже не авторитет, то тем более мало что значат слова Джоссутиса. Или Вандевурда.
Of course, the code must be complete enough to compile and link.
Re[3]: using namespace std
От: sadomovalex Россия http://sadomovalex.blogspot.com
Дата: 13.10.04 12:42
Оценка: +1 :))
Здравствуйте, Lorenzo_LAMAS, Вы писали:

S>>

S>>Никогда не используйте директиву using при отсутствии полной информации о контексте (например, в заголовочных файлах, модулях и библиотеках). Директива может изменить область видимости идентификаторов в пространстве имен, что приведет к нарушению работы программы при включении или использовании программного кода другого модуля. Вообще говоря, присутствие директив using в заголовочных файлах считается признаком плохого проектирования


L_L>Так ведь если для него сам Бьярн уже не авторитет, то тем более мало что значат слова Джоссутиса. Или Вандевурда.


количеством брать будем
"Что не завершено, не сделано вовсе" Гаусс
Re[2]: using namespace std
От: Tuo_Bellas Россия  
Дата: 13.10.04 12:48
Оценка:
Здравствуйте, sadomovalex, Вы писали:

T_B>>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


S>Может слова Н. Джосьютиса окажутся веским аргументом:

S>

S>Никогда не используйте директиву using при отсутствии полной информации о контексте (например, в заголовочных файлах, модулях и библиотеках). Директива может изменить область видимости идентификаторов в пространстве имен, что приведет к нарушению работы программы при включении или использовании программного кода другого модуля. Вообще говоря, присутствие директив using в заголовочных файлах считается признаком плохого проектирования


А можно ссылочку на источник?

Спасибо.
Tuo_Bellas.
Re[3]: using namespace std
От: sadomovalex Россия http://sadomovalex.blogspot.com
Дата: 13.10.04 12:58
Оценка: 3 (1)
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Здравствуйте, sadomovalex, Вы писали:


T_B>>>Как грамотно объяснить человеку (лид в соседнем проекте), что использовать using namespace std, тем более в precompiled header, это... как это сказать... не хорошо. У меня приличные слова на эту тему не хотят говориться...


S>>Может слова Н. Джосьютиса окажутся веским аргументом:

S>>

S>>Никогда не используйте директиву using при отсутствии полной информации о контексте (например, в заголовочных файлах, модулях и библиотеках). Директива может изменить область видимости идентификаторов в пространстве имен, что приведет к нарушению работы программы при включении или использовании программного кода другого модуля. Вообще говоря, присутствие директив using в заголовочных файлах считается признаком плохого проектирования


T_B>А можно ссылочку на источник?


T_B>Спасибо.

T_B>Tuo_Bellas.
Эта
Автор(ы): Джосьютис Н.

Книга посвящена стандартной библиотеке C++, значительно расширяющей
возможности базового языка. Особое внимание уделяется стандартной
библиотеке шаблонов STL — ее многочисленным контейнерам, итераторам,
объектам функций и алгоритмам. Также подробно описана библиотека
потокового ввода/вывода IOStream и другие компоненты стандартной
библиотеки C++: специализированные контейнеры, строки, поддержка
математических вычислений, проблемы интернационализации и т.д. Кроме
подробной документации по всем классам и интерфейсам библиотеки, в
книге также разъясняются многие нетривиальные концепции, а также
рассматриваются практические аспекты программирования, необходимые для
эффективного использования стандартной библиотеки, и типичные ошибки.
Материал поясняется многочисленными примерами. Книга может
использоваться и как учебник, и как справочник. Книга рассчитана на
программистов среднего и высокого уровня.
книга. Глава 2, раздел Пространства имен, с. 33 (в конце страницы )
"Что не завершено, не сделано вовсе" Гаусс
Re[6]: using namespace std
От: sadomovalex Россия http://sadomovalex.blogspot.com
Дата: 13.10.04 13:10
Оценка: :)
Здравствуйте, korzhik, Вы писали:

K>выход есть.

K>надо подобрать команду хулиганов из сишников, ну можно из шарпников, мне кажется они (шарпники) должны быть крупнее.

ленивее тобишь
"Что не завершено, не сделано вовсе" Гаусс
Re[3]: .
От: BacCM Россия  
Дата: 13.10.04 16:39
Оценка: 2 (1) :))
Можно подговорить народ из его команды, чтобы начали плодить конфликтный код и шли к нему с "проблемой" через неделю он задолбается
Re[4]: using namespace std
От: denisku Россия  
Дата: 13.10.04 17:10
Оценка:
Здравствуйте, sadomovalex, Вы писали:

S>количеством брать будем

Тогда господин Мейерс с нами
Извините за потраченный траффик..
Re[3]: using namespace std
От: sergey_shandar США http://getboost.codeplex.com/
Дата: 14.10.04 04:13
Оценка: 14 (2)
Здравствуйте, Tuo_Bellas, Вы писали:

T_B>Ответ очевиден. "Нефиг называть свои классы как не надо..."


Тогда пусть предоставит полный список имен которые нельзя использовать.
getboost.codeplex.com
citylizard.codeplex.com
Re: using namespace std
От: saskin http://rsdn.ru/
Дата: 14.10.04 11:05
Оценка: 16 (4)
Здравствуйте, Tuo_Bellas, Вы писали:

вот простенький примерчик того, что привычка бездумного использования using namespace, особенно в заголовках, источник неиссякаемых багов

inc.h
#include <string>
#include <iostream>

#ifdef _USE_NAMESPACE
using namespace std;
#endif


bug.h
namespace bug 
{
    std::ostream& __cdecl operator<< (std::ostream& os, const std::string& s)
    {
        os << ":-O";
        return os;
    }
}

#ifdef _USE_NAMESPACE
using namespace bug;
#endif


main.cpp
//#define _USE_NAMESPACE

#include "inc.h"
#include "bug.h"

#ifndef _USE_STD
using namespace std;
#endif

int main(int argc, char* argv[])
{
    string s("ok");
    cout << "test: " << s << endl;
    return 0;
}


если откоментировать #define _USE_NAMESPACE то на выходе получим соверщенно другой результат. Причем компилер даже предупреждения не выдаст, а поймать баг можно только отладкой.
... << RSDN@Home 1.1.4 beta 3 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.