specialization

    2熱度

    1回答

    我剛剛測試了以下代碼,我發現std::is_function不接受成員函數的類型。(我不知道這是不是真的爲其他編譯器,我使用MVC++ 2012年11月CTP) class Ac { public: float af(int) {} }; int main() { std::cout << std::is_function<decltype(A

    3熱度

    2回答

    基本上,我試圖做的是在Template specialization of a single method from a templated class除了我TClass有多個模板參數這樣的討論: template < class KEY, class TYPE > class TClass { public: : void doSomething(KEY * v);

    2熱度

    3回答

    首先,如果我犯了大的英語錯誤,我很抱歉,我是法語的,但我正在努力盡我所能寫出最好的答案!好吧,我正在努力與C++ 11 variadic模板。我想做一些棘手的事情。 事實上,我想專門化我的模板的返回類型,知道它是一個可變模板。 我的目標是要實現這樣的: l.callFun<int>("addition", 40, 1, 1); 專業化對應於用戶想要的返回類型。它是一個Lua綁定,所以如果用戶不

    1熱度

    1回答

    template<typename T,int I=5> struct A{ T _store[I]; }; template<typename T,int I> void doSomething(A<T,I>& a){ std::cout << "basic template for all other types" << std::endl; } te

    7熱度

    2回答

    我很努力地訪問類模板中定義的靜態成員函數。 在頭文件TemplateTest.h我定義的主類模板爲: #include<iostream> template<class T, class U> struct TemplateTest { public: void static invoke(); /*{ std::cout << "Should not

    0熱度

    4回答

    我知道還有其他類似的問題,但他們不是很清楚。 現在我覺得這是一個愚蠢的問題,因爲我確定我已經有了答案,但是讓我反問。 所以我基本上有一個函數,它在一個字符串,然後基於它轉換它,像這樣適當的變量類型: template<class T> void ConvertValue(std::string str, T &variable) { variable = static_cast<T>

    1熱度

    1回答

    我想使用函數簽名作爲模板參數。它的偉大工程類,但是當我嘗試同樣的伎倆函數模板,MSVC拋出一個錯誤: error C2768: 'Func' : illegal use of explicit template arguments 這裏是我的代碼: template <typename Signature> void Func(); template <typename R, typenam

    3熱度

    2回答

    方法我有一個模板action方法接受任何種類的容器STL的C。然而所包含項目(C::value_type)必須是ClassA或ClassB。到目前爲止好: struct Whatever { template<typename C> void action(const C& c) { static_assert(std::is_same<typename C::va

    1熱度

    1回答

    專業一個基類的成員函數有一個看看這個代碼: struct foo { virtual int bleh() { return 42; } }; template<typename T> struct bar : public foo { }; // ERROR template<> int bar<char>::bleh() { re

    2熱度

    2回答

    我嘗試實現一個模板類,並希望將其限制爲專用於某些給定的模板類。例如,在下面的代碼中,我想要定義模板類CTest,該模板類只能針對某些模板參數T專用於std::vector<T>。對於其他模板參數,該類應該是未定義的。如何實現模板類? // the interface should be something like following //template <typename std::vect