stdbind

    3熱度

    1回答

    如果你要綁定到一個功能f一個參考,你可以使用std::bind(f, std::ref(x))。在這種情況下,f需要參考或複印。 現在我有一個功能void g(T & t)。我想將輸入參數綁定到std::shared_ptr<T> mySharedPtr,如下所示:std::bind(g, mySharedPtr)。這將保證mySharedPtr的數據至少和綁定一樣長。但是由於g需要參考,所以這不

    0熱度

    1回答

    我有一個抽象的基類,需要傳遞給它的構造函數初始化其成員的一些對象。但我想擺脫通過派生類構造函數傳遞這些對象。 class Derived : public Base { public: Derived(type one, type two, type three) : Base(one, two, three) { // ... 傳遞給基類的對象與所有創建的

    1熱度

    1回答

    我想創建一個父類的版本的虛擬和重載函數的一個std ::函數對象,請看下面的例子: #include <iostream> #include <functional> class Parent { public: virtual void func1() { std::cout << "Parent::func1\n"; }

    19熱度

    2回答

    我有以下代碼: #include <stdio.h> #include <functional> template <typename T> auto callback(T&& func) ->decltype(func()) { return func(); } double test(double& value) { value=value+1.0;

    1熱度

    2回答

    功能時,當我這樣做,我得到這個錯誤 運行時檢查失敗#0 - ESP的值沒有正確跨功能保存 呼叫。這通常是因爲調用一個 函數聲明一個調用約定,函數指針 以不同的調用約定聲明。 當致電dutyStack[0]();。但是,如果我添加dutyStack.reserve(10);或者只有矢量中的一個元素,我不會收到錯誤。我懷疑是在調整矢量大小時複製元素時發生了什麼,但我真的不知道。 #include "s

    0熱度

    1回答

    我有一個功能void f (void*, int);,用作回調函數。來電者預計void (*)(int)。我可以使用std::bind1st將一個轉換爲另一個嗎?有沒有辦法做到這一點,而不使用C++ 11 std::bind,只是std::bind1st?

    0熱度

    1回答

    #include <stdio.h> #include <functional> void foo(int a, int b) { printf("%d %d\n", a, b); } int main() { using namespace std::placeholders; auto f1 = std::bind(foo, 10, _1); //

    2熱度

    1回答

    我最近遇到這種使用for_each: std::for_each(ts.begin(), ts.end(), [=](T& t){t *= f;}); 好,它的工作原理。對於Ts和T f的容器,這將每個值乘以f。但是我不喜歡這裏使用lambda。它很短,但在我看來它只是重複了std::multiplies。此外,它不應該是for_each,而是transform,以表達修改的意圖。 但是,st

    1熱度

    1回答

    我有,我不能綁定此模板成員函數一個奇怪的問題, 所有這些代碼編譯:http://ideone.com/wl5hS8 這是一個簡單的代碼:我有一個ExecutionList應持有可調用的函數在std::vector。我現在可以通過調用ExecutionList::addFunctor來添加功能。但在那裏,我不能綁定到template<typename T> void Functor::calcula

    1熱度

    1回答

    給定兩個explicit構造函數重載(根據不同std::function<...>類型)的std::bind返回值是能夠選擇要麼(從而使呼叫曖昧) call of overloaded ‘Bar(std::_Bind_helper<false, void (Foo::*)(int), Foo*, int>::type)’ is ambiguous 如果我註釋掉了,那麼代碼會編譯! 我