[英]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.