[英]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;
如果您不必预测它是否被实现为class
, struct
或union
,那将会更好。 还有那个C ++ 11语法学家吗? ( typename auto
可能是候选人,但我不是C ++语法专家)。
无法避免嵌套的命名空间。
至于class
vs. struct
vs. union
,partial: class
和struct
可以互换使用。 如果它是一个union
,它必须被声明为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.