我发现我的C++头文件非常难读(而且键入非常繁琐),因为它们包含了所有完全限定类型(深达4个嵌套命名空间)。这是问题(所有答案都给出了混乱的替代方法来实现它,但那不是问题):在C++语言中,在结构体和类中引入作用域using指令是否存在重要的理由(虽然在函数中允许使用声明)。例如:
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
是一个关键字,我本以为它足够独特,不会与作用域限定的using声明(如Bar::MemberFunc
)发生冲突。
编辑:请仔细阅读问题--->我已经将其加粗了。提醒:我们不讨论如何改进示例的可读性。建议如何实现作用域限定的using指令(即通过添加关键字/结构等方式在C++语言中实现),不是一个答案(如果您能找到一种优雅的方法来使用现有的C++语言标准实现这个,那当然是一个答案)!