[英]simplify using base template class statement
通常在派生模板類中,我需要引用基類來訪問成員。 我最終編寫了這樣的代碼:
template<typename A>
struct BaseClass
{
};
template<typename B>
struct Derived : public BaseClass<int>
{
using Base = BaseClass<int>;
};
對於具有大量模板參數的大量類,這變得更加冗長且難以維護。
在這種情況下,有沒有更簡潔的方法來導入基本符號?
我認為你可以用另一種方式做事,即將基類解析推遲到基類,這樣它就會為任何新的派生類自動解析,而無需為每個派生類重寫它。
就像是:
template <typename A>
struct BaseClass
{
using Base = BaseClass<A>;
};
template <typename B>
struct Derived : public BaseClass<int>
{};
如果Derived
本身不是模板類:您可以簡單地使用BaseClass
(繼承的注入類名稱):
struct Derived : public BaseClass<int>
{
void f()
{
BaseClass::f();
}
};
如果也是模板, using Base = BaseClass<int>;
可能是最好的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.