簡體   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