Где следует размещать перегрузки операторов, не являющихся членами?

Я хочу перегрузитьoperator<< для моего класса. Должен ли я добавить это перегруженное определение кstd Пространство имен? (так какostream operator<< является частьюstd namespace) Или я должен просто оставить его в глобальном пространстве имен?

Короче:

class MyClass {

};

namespace std {
    ostream& operator<< ( ostream& Ostr, const MyClass& MyType ) {}
}

ИЛИ ЖЕ

class MyClass {

};

std::ostream& operator<< ( std::ostream& Ostr, const MyClass& MyType ) {}

Что более уместно и почему? Заранее спасибо за ваши ответы.

Ответы на вопрос(3)

Ваш ответ на вопрос