std::bind mit VS2010



  • Hallo zusammen,
    ich verstehe das Verhalten von std::bind (mit Visuals Studio 2010) nicht.
    Folgender Code

    #include <iostream>
    #include <functional>
    using namespace std;
    
    void foo(int a, int b)
    {
      cout<<"a: "<<a<<", b :"<<b<<endl;
    }
    
    int main()
    {
      function<void(int)> f = bind(foo, placeholders::_1, 1);
      f(2);
      return 0;
    }
    

    liefert bei mir wider erwarten "a:2, b:1", es wurde also das zweite Argument statt das erste gebunden.
    Ist das normales Verhalten? Wie würde ich denn das erste Argument binden?



  • Ist das normales Verhalten?

    Ja.

    Wie würde ich denn das erste Argument binden?

    So:

    function<void(int)> f = bind(foo, 1, placeholders::_1);
    

    Verstehst du es jetzt?



  • Sone schrieb:

    Verstehst du es jetzt?

    Ja, danke.


Anmelden zum Antworten