template-specialization

    2熱度

    1回答

    我正在使用C++(vc2008)讀取/寫入結構,其類型在運行時明顯根據ID標誌更改。創建正確的類型和/或讀寫需要一個開關。現有的最接近的例子是Using template instead of switch,但這不允許在運行時指定類型。爲了避免在多個地方創建相同的交換機,我一直在研究使用遞歸模板來解決這個問題。這是我第一次使用這些代碼,因此可能會對代碼示例做一些重大改進! 下面是一個工作示例。正如

    1熱度

    2回答

    下面的代碼適用於gcc 4.7。這個想法是我有這些泛型函數,這些泛型函數在序列,指針,圖簇,對,用戶定義的類型以及其他類型上工作。如果其中一個函數是爲一個類型定義的,那麼全部都應該是。我遇到的問題是確定如何專門化他們。我決定定義一個專門用於每種類型的模板類,實現每個函數,然後定義一個自由函數,將其轉發給課堂實現。 #include <utility> #include <vector> #in

    3熱度

    1回答

    是否可以編寫一個僅用於類類型的部分模板專業化,例如,從特定類繼承或遵守可以通過類型特徵表達的其他約束? 即是這樣的: class A{} class B : public A{} template<typename T> class X{ int foo(){ return 4; } }; //Insert some magic that allows this part

    3熱度

    1回答

    假設我有這樣的功能: template<typename T> inline typename std::enable_if<has_member_foo<T>::value,int>::type foo(T const &t) { return t.foo(); } template<typename T> inline typename std::enable_if<!h

    4熱度

    2回答

    我有一個類模板,讓我們稱之爲A,其中有一個成員函數abc(): template <typename T> class A{ public: T value; void abc(); }; 我可以實現類的聲明之外的成員函數abc(),使用以下語法: template <typename T> void A<T>::abc() { value++; }

    2熱度

    1回答

    我有一個類: template<typename T> class Foo { public: ... Foo& operator=(const Foo&) { ... } }; 而且我想專門Foo<std::string>添加Foo<std::string>::operator=(const char*)過載和重用Foo<T>實施的其餘部分。是否有可能利用專門化實

    4熱度

    1回答

    Possible Duplicate: 「invalid use of incomplete type」 error with partial template specialization 爲什麼我能做到這一點: template <typename T> struct A { void foo(int); }; template <> void A<int>::foo(i

    1熱度

    1回答

    template<typename T> class C { void f() { } }; /*template<typename T> void C<T*>::f() { }*/ template<> void C<int*>::f() { } 如果我們刪除註釋,代碼將不會編譯。我知道這一點(我也知道,我們應該有partial specialization爲C<

    0熱度

    3回答

    我有一個模板類。該類有一個私人成員變量,我喜歡預設一個不同的模板類型的特定值。 我正在考慮不同類型的不同構造函數,但由於構造函數沒有參數,我不知道如何去做。 反正有可能嗎? 感謝,

    1熱度

    2回答

    對於我的程序,我需要定義一個求解器類,它可以解決問題或嵌套問題。 template< typename ProblemT > struct Solver { static void a() { ProblemT::func(); } }; template< typename < typename SubT> ProblemT > struct Solve