std-function

    1熱度

    1回答

    嘗試將拉姆達傳遞給構造函數: #include <functional> #include <exception> template<typename R> class Nisse { private: Nisse(Nisse const&) = delete; Nisse(Nisse&&) = delete; Nisse& o

    2熱度

    1回答

    我遇到了這個奇怪的問題(我在這裏簡化了代碼)和叮噹聲3.1(gcc工作正常)。 它是不正確的使用std :: function(通過值傳遞)或叮噹蟲? template <typename Container> struct A { using function_type = std::function<char(char)>; A(Container c, functi

    0熱度

    3回答

    的地圖我想要一個映射字符串鍵到std::function<T()>或std::function<T(int)>(但不能同時用於給定鍵)的映射。我收到一個編譯錯誤,似乎沒有std::function<T(...)>的模板。我希望能夠使用lambdas作爲值。 首先,它是安全這樣存儲函數嗎?其次,如果是這樣,語法是什麼? (從地圖上檢索時,函數是否是一元函數或是否爲空函數)。如果不是這樣,那將是一個合

    7熱度

    1回答

    我有一個名爲Graph的C++類,它有一個算法方法for_each_node()。我可以使它成爲一個模板,像這樣: template <class UnaryFunction> UnaryFunction Graph::for_each_node (UnaryFunction f) { /* ... */ } 或使其使用std ::函數,就像這樣: typedef std::f

    7熱度

    1回答

    當C++ 11不可用時,應該使用什麼構造作爲std::function<>的代理? 替代方案應該基本上允許從下面的例子中訪問另一個類的一個類的私有成員函數(不使用std :: function的其他功能)。 Foo類是固定的,不能改變太多,我只能訪問類Bar。 class Foo { friend class Bar; // added by me, rest of the class

    2熱度

    3回答

    我有一個模板類Delegate,帶有重載的+ =運算符,它使得使用類似於C#的委託。 // ... generalized version of the template omitted from code template<typename... TArgs> class Delegate<void, TArgs...> { private: us

    1熱度

    1回答

    std :: bind的返回類型是(有意)未指定的。它在std :: function中是可存儲的。 下面的示例程序演示瞭如何將std :: bind()返回的臨時對象顯式轉換爲std :: function以調用fn1()。 如果std :: bind的返回類型是可知的,我可以重載回調構造函數&將不再需要顯式強制轉換std :: bind臨時對象。 有什麼辦法可以避免顯式轉換嗎? // g++

    0熱度

    1回答

    我不知道如何通過以下列方式自定義排序行爲的std::map: Constructor(const std::function<bool(const Obj&, const Obj&)>& ac_xNewComparator) : mNewMap(xNewComparator(/*...???....*/)) {} 我怎麼能傳遞比較的地圖?

    2熱度

    1回答

    下面的代碼用mingw 4.7.2和-m64標誌編譯並運行得很好。 但使用-m32或任何mingw 32bit版本,它無法編譯。這是一個錯誤還是我錯過了一個編譯器標誌? #include <iostream> #include <functional> using namespace std; int __cdecl ccall(int i) {

    0熱度

    2回答

    我有一個C++類,其中一個字段是一個std ::對象集。我想寫我自己的比較函數,或讓用戶指定一個。在C++ 11中,有一種處理通用函數類型的新方法:std :: function。它可以與函數指針,成員函數指針,lambda函數等一起工作。 我試着編寫一個簡單的實驗程序,但它始終如一地工作,即使我做C++ 11維基百科文章的建議。也許我只是不明白如何使用std :: function和std ::