std-function

    3熱度

    1回答

    class A { public: std::function<void(int)> f_; void print_num(int i) { cout << i; } void setFuntion(std::function<void(int)> f) { f_=f; } void run() { set

    6熱度

    4回答

    我想在C++類中使用GSL,而不聲明成員函數爲static。原因是因爲我不太瞭解他們,我不確定線程​​安全。從我讀到的,std::function可能是一個解決方案,但我不知道如何使用它。 我的問題歸結爲如何在g的聲明中刪除static? #include<iostream> #include <functional> #include <stdlib.h> #include <gsl/gs

    2熱度

    3回答

    如果我有這個類 class TextBox : public Widget { public: void addKeyPressHandler(std::function<void (std::string)>); private: std::function<void (std::string)> keyPressHandler; }; 我怎麼知道,如果keyPre

    1熱度

    1回答

    我不熟悉函數指針,我正在做一些測試。但在下面的程序中,我不明白爲什麼第一個版本能夠工作,爲什麼第二個版本不能編譯。什麼是正確的語法? #include <iostream> #include <cmath> #include <vector> #include <algorithm> #include <numeric> #include <functional> template<

    0熱度

    1回答

    我將一個方法傳遞給構造函數,但是當我使用另一個類的方法時,它給了我一個錯誤。 它目前以這種形式工作; unsigned int pHash(const std::string& str) { //method } int main() { //stuff HashMap* hm2 = new HashMap(pHash); //stuff } 但是,如果我引用另一個頭

    6熱度

    1回答

    如何將默認函數指定爲類成員的參數? 從我的代碼衍生出的當前的例子是: #include <iostream> #include <functional> template<typename T> struct C { static T test(std::function<T(int)> f = [](int i){return i;}) {return f(42);}

    7熱度

    2回答

    (注:正如應該已經從標籤清楚,這是嚴格C++ 03是的,我知道,拉姆達使得這一切痛苦消失(在新帶來的種類,我打賭),但這是一個嵌入式系統,具有90年代的操作系統版本,我被告知應該很高興我有一個C++ 03編譯器(GCC4.1.x,BTW)或C++因此,請放棄發佈C++ 11解決方案,不需要蹭它,真的。 另外,std::bind(),std::function()等當然實際上在std::tr1,但我

    3熱度

    1回答

    我想創建一個簡單的信號/插槽系統在C + +沒有助力,但我有一些問題,當我嘗試使用它的參數,這裏是我的代碼: 我的信號類: template <typename T> class Signal { private: typedef std::function<T> Slot; public: Signal(); void connect(Slot slot

    18熱度

    2回答

    下面的程序不編譯: #include <iostream> #include <vector> #include <functional> #include <algorithm> #include <cstdlib> #include <cmath> void asort(std::vector<double>& v, std::function<bool(double, doub

    0熱度

    3回答

    我正在使用TR1的std::function來實現一個簡單的回調機制。如果我不想回電話,我註冊nullptr作爲回調處理程序。這將編譯和正常工作: void Foo::MessageHandlingEnabled(bool enable){ if(enable) m_Bar.RegisterMessageHandler(std::bind(&Foo::BarMessageHa