stdbind

    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

    0熱度

    1回答

    據http://en.cppreference.com/w/cpp/utility/functional/bind,爲std::bind 成員函數運算符() ... 如果某些被呼叫提供給克的參數()不 通過匹配在g中存儲的任何佔位符,未使用的參數是 評估和丟棄。 引用的例子,一個可以這樣做: void f(int n1, int n2, int n3, const int& n4, int n5)

    1熱度

    1回答

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

    1熱度

    1回答

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

    12熱度

    2回答

    有沒有辦法通過部分綁定第一個/最後一個?可調用對象(例如函數)的參數沒有明確指定其餘參數? std::bind()似乎要求所有參數都被綁定,那些被留下應該綁定到std::placeholders::_1,_2,_3等 是否可以寫一個部分bind_first()/bind_last()綁定從第一個/最後一個參數開始,並自動插入佔位符的任何剩餘的未綁定參數的原始順序在他們的原始位置?

    0熱度

    1回答

    嗨我有一個問題編譯下面的代碼。我使用auto和std :: bind來綁定一個帶參數的回調函數。但是,在將此回調函數作爲參數傳遞之後,它會出現編譯問題。你看到的問題與下面的函數聲明: #include <iostream> #include <functional> using namespace std; class VmapPlayer { public: vo

    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); //

    1熱度

    1回答

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