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

от вопрос уже есть ответ здесь:

Почему «использование пространства имен X;» недопустимо на уровне класса / структуры? 4 ответа

Я считаю, что мой C ++заголовочные файлы довольно трудно читать (и действительно утомительно печатать) со всеми полностью квалифицированными типами (до 4 вложенных пространств имен). Это вопрос (все ответы дают грязные альтернативы его реализации, но этоне вопрос):Есть ли веская причина против введения директивы using в структурах и классах языка C ++? (в то время как допустимо ограничивать использование-объявление в функциях)?

например

class Foo : public Bar
{
    using namespace System;
    using namespace System::Network;
    using namespace System::Network::Win32::Sockets;
    using Bar::MemberFunc; // no conflict with this

    // e.g. of how messy my header files are without scoped using-directive
    void FooBar(System::Network::Win32::Sockets::Handle handle, System::Network::Win32::Sockets::Error& error /*, more fully-qualified param declarations... */);
};

посколькуnamespace это ключевое слово, я бы подумал, что оно достаточно отчетливое, чтобы не конфликтовать с областью видимости с помощью объявления, такого какBar::MemberFunc.

РЕДАКТИРОВАТЬ: прочитайте вопрос внимательно ---> Я смел это. Напоминание: мыне обсуждая, как улучшить читаемость примера здесь. Предложение о том, как можно реализовать объемную директиву using (то есть путем добавления ключевых слов / конструкций и т. Д.) На языке C ++,НЕ ответ (если бы вы могли найти элегантный способ реализовать это, используя существующие стандарты языка C ++, тогда, конечно, это был бы ответ)!

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

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