簡體   English   中英

如何在不重復此代碼的情況下將多個函數放入多個名稱空間?

[英]How do I put several functions into multiple namespaces without duplicating this code?

這是對以下內容的跟進:

如何在不重復此代碼的情況下將一些代碼放入多個名稱空間?

我需要更改命名空間的名稱,但希望保持向后兼容性。 上面的解決方案表明我必須為每個函數執行以下操作:

namespace NewNamespaceName
{
        void print()
        {
                //do work...
        }
        // 50 other functions
}

namespace OldNameSpaceName
{
        using NewNamespaceName::print;
        // 50 other using declarations
}

我的問題:有更簡單的方法嗎?

只需使用命名空間別名:

namespace OldNameSpaceName = NewNameSpaceName;

你可以干脆做

namespace NewNamespaceName
{
        void print()
        {
                //do work...
        }
        // 50 other functions
}

namespace OldNameSpaceName
{
        using namespace NewNamespaceName;
}

如果NewNamespaceName包含您想要包含的其他內容,但不希望它們位於OldNamespaceName ,那么只需創建另一個私有名稱空間並將其導入舊名稱空間

namespace NewNamespaceName
{
        namespace Private {
                void print() { ... }
                // 50 other functions
        }
}

namespace OldNameSpaceName
{
        using namespace NewNamespaceName::Private;
}

這里的實例是https://wandbox.org/permlink/taRPm1hAd2FHbAYo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM