相关疑难解决方法(0)

在struct/class声明中使用using指令?

我发现我的C++ 头文件很难用所有完全限定类型(比4个嵌套命名空间一样深)读取(并且输入真的很繁琐).这是一个问题(所有答案都提供了实现它的混乱替代方案,但这不是问题):是否有强烈的理由反对在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... */);
};
Run Code Online (Sandbox Code Playgroud)

既然namespace是一个关键字,我会认为它足够明显,不会与使用声明的范围发生冲突,例如Bar::MemberFunc.

编辑:仔细阅读问题--->我加粗了.提醒:我们不是在讨论如何提高示例的可读性.提示using指令范围的中如何实现在C++语言(通过增加关键字/结构等手段IE)是不是一个答案(如果你能找到实现这个使用现有的C++语言标准的一个优雅的方式,那么它会的当然是一个答案)!

c++ language-features using-directives

24
推荐指数
2
解决办法
2万
查看次数

"using"命名空间和声明命名空间有什么区别?

有人可以告诉我有什么区别

using namespace android;
    .... 
Run Code Online (Sandbox Code Playgroud)

namespace android {
    ....
}
Run Code Online (Sandbox Code Playgroud)

我发现Android源代码中的几乎所有.cpp文件都使用第二个.cpp文件.
另外,如果我想在我自己的项目中包含一些使用第二种类型的文件,我是否namespace android{...}也需要使用?
因为如果我不这样做,编译器会在调用包含文件的方法时报告错误.或者我需要在方法调用之前添加任何前缀?

c++ namespaces terminology using using-directives

1
推荐指数
1
解决办法
1756
查看次数