pointer-to-member

    2熱度

    1回答

    class A{ virtual int foo1(int a){ return foo1_1(a,filler(a)); } template<typename FunctionPtr_filler> int foo1_1(int a, FunctionPtr_filler ptrFn) { int b;

    1熱度

    1回答

    我遇到C2783錯誤用Visual C++(不能推斷模板參數),我有以下測試例: enum SPKType { A, B, C, D }; template<SPKType TypeCode, class ObjectType, typename U> struct SPKSetterPattern { typedef void (ObjectType::* func)(U);

    13熱度

    4回答

    它看起來像std::cout不能打印成員函數的地址,例如打印成員函數地址: #include <iostream> using std::cout; using std::endl; class TestClass { void MyFunc(void); public: void PrintMyFuncAddress(void); }; void Tes

    1熱度

    2回答

    我試圖傳遞成員函數指針作爲模板參數。下面是代碼: template <typename Ret, typename T, Ret(T::*mptr)()> Handle<Value> get_value (Local<String> name, const AccessorInfo& info) { ... } template <typename Ret, typename

    2熱度

    2回答

    我一直在研究如何成功將C++指針轉換成C#,但是我還沒有找到任何有用的東西。假設我有這個功能。 typedef int STRUCT::*DEFINED; protected static Method(STRUCT* sampleStruct, DEFINED pMember) { return (sampleStruct->*pMember); } 我通

    4熱度

    3回答

    我想定義一個nullary靜態模板成員函數,它將(針對數據成員的指針)明確地專門化,並且可以針對每個專業化有不同的返回類型。 它應該返回關於每個屬性的一些詳細信息,因此我將這種方法稱爲trait。返回的特徵對象類型將被其他模板檢查,因此整個機器必須在編譯時可用。 到目前爲止,我有這樣的事(斷碼,當然): class Foo{ // some data members int a

    2熱度

    1回答

    我想爲應用程序編譯插件作爲動態庫。通常,插件是用VisualC++編譯的,但我想用G ++。 SDK文檔明確規定 爲指針到成員表示編譯器選項必須設置爲「通用始終」和「點對單繼承的類」,在C++標籤/ C++語言(/ vmg/vms)。如果沒有設置插件會立即崩潰! 事實上,只要我將值從我的插件傳遞到應用程序,就會立即崩潰。是否有任何選項會導致在VisualC++中與/vmg /vms具有相同的行爲?

    3熱度

    2回答

    我在C++中做了一個小遊戲,並且發現了類成員函數指針。 我沒有任何想法讓他們以正確的方式工作,但這是我的嘗試。 // A struct where the function pointer will be stored for the call // By the way, is there a way to do the same thing with classes ? // or are

    2熱度

    1回答

    ,因爲我需要用一個指針成員的類模板參數之一: template <class Base, typename Member, Member Base::*m> class MemPtrTestUgly { ... }; 這需要作爲 struct S { int t; } MembPtrTestUgly <S, int, &S::t> m; 但我想使用它作爲此: Me

    1熱度

    1回答

    經過大量的閱讀here和here,我仍然無法讓我的代碼正常工作。這裏的問題是: 我有兩個類,先進先出: #ifdef __cplusplus extern "C" { #endif class Fifo { public: Fifo(int len); ~Fifo(); void AddTokens(void* buffer, unsigned len