Я нахожу, что мои файлы заголовков С++ довольно трудно читать (и очень утомительно печатать) со всеми полностью квалифицированными типами (которые занимают до 4 вложенных пространств имен). Это вопрос (все ответы дают беспорядочные альтернативы его реализации, но это не вопрос): Есть ли веская причина не вводить облачную директиву-директиву в структурах и классах на языке С++ (while разрешено ли использовать функции-декларации в функциях)?
например.
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
.
EDIT: внимательно прочитайте вопрос --- > Я выделил его. Напоминание: мы не обсуждаем, как улучшить читаемость примера здесь. Представление о том, как можно реализовать реализованную директиву с использованием (например, путем добавления ключевых слов/конструкций и т.д.) На языке С++, НЕ является ответом (если бы вы могли найти элегантный способ реализовать это, используя существующие стандарты языка С++, то это конечно, ответ)!