繁体   English   中英

在嵌套命名空间中转发声明

[英]Forward declare in nested namespace

我正在写一个类(在头文件中),需要以下方法:

static const foo::bar::clz* getSomething(void);

由于我不想用#include污染头文件,我选择转发声明 clz

namespace foo
{
    namespace bar
    {
        class clz;
    }
}

但那也很笨拙。 在C ++ 11中有一种可行的方法吗? 有点像

class foo::bar::clz;

如果您不必预测它是否被实现为classstructunion ,那将会更好。 还有那个C ++ 11语法学家吗? typename auto可能是候选人,但我不是C ++语法专家)。

无法避免嵌套的命名空间。

至于class vs. struct vs. union ,partial: classstruct可以互换使用。 如果它是一个union ,它必须被声明为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM