crtp

    9熱度

    1回答

    我試圖編寫一個基於策略的宿主類(即從其模板類繼承的類),並帶有扭曲,其中策略類也由主機類,以便它可以訪問它的類型。一個可能有用的例子是一個策略(像mixin那樣使用),用一個多態的clone()方法來擴充宿主類。下面是我想要做的一個小例子: template <template <class> class P> struct Host : public P<Host<P> > { ty

    1熱度

    3回答

    我有一個很簡單的例子,我做了一些基本的通用任務: final Detail detail = field.getAnnotation(Detail.class); final String example = detail.example(); final Class<?> type = field.getType(); if (List.class.isAssignableFrom(typ

    1熱度

    3回答

    我有這3個類。 class A { public: virtual void Func() = 0; }; template<class T> class B : public A { public: void Func() { cout << "In B" << endl; static_cast<T

    6熱度

    2回答

    我想部分專門化一個我無法更改的現有模板(std::tr1::hash),以獲取基類和所有派生類。原因是我使用奇怪的循環模板模式進行多態,而散列函數是在CRTP基類中實現的。如果我只想部分專門用於該CRTP基類,那麼它很容易,我可以只寫: namespace std { namespace tr1 { template <typename Derived> struct hash<CRTPB

    2熱度

    5回答

    我正在使用遺留的框架。可以說'A'是基類,'B'是派生類。這兩個類都執行一些關鍵的框架初始化。 FWIW,它大量使用ACE庫。 我有一種情況,其中; 'B'的一個實例被創建。但'A'的Ctor取決於一些只能從'B'執行的初始化。 正如我們知道'B'實例化時'A'的Ctor在'B'之前被調用。 virtual機制不能從ctors工作,使用static functions被排除(由於static-in

    11熱度

    1回答

    以下是這種情況:我想要一個可以具有可變數量mixin的主機類(對於可變參數模板不太難 - 例如參見http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.103.144)。不過,我還希望mixins被host類參數化,以便它們可以引用它的公共類型(使用CRTP習慣用法)。 嘗試混合兩者時出現問題 - 正確的語法對我來說不清楚。 例如,下面的代

    2熱度

    3回答

    我曾嘗試使用VS2008中的代碼(可能已經包括在樣品中過多的情況下...): class Base { public: void Prepare() { Init(); CreateSelectStatement(); // then open a recordset } void GetNext() { /* retr