」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在 C++ 中將模板化結構/類別宣告為友元?

如何在 C++ 中將模板化結構/類別宣告為友元?

發佈於2024-11-19
瀏覽:950

How Can You Declare Templated Structs/Classes as Friends in C  ?

將模板化結構/類別聲明為友元

在C 領域,將模板化結構或類別聲明為友元可能會出現與語法相關的障礙。要實現此目的,請考慮以下方法:

template 
struct foo
{
    template 
    friend class foo;

private:
    // ...
};

此語法似乎編譯成功。但是,它將 foo 的所有模板實例宣告為彼此的友元,無論它們採用什麼模板參數。這可能符合或可能不符合您的預期用例。

如果您需要將友誼限制為僅特定實例,您可以使用以下語法來實現此目的:

template 
struct foo
{
    template 
    friend struct foo;

private:
    // ...
};

不幸的是,此語法不允許包含 foo 的所有可能實例化的通用聲明。

因此,如果您的目標是在 foo 的所有模板實例化之間建立友誼,考慮到 C 語法的限制,使用友元類 foo 的第二種方法是最接近的。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3