std::pair - Wofür std::make_pair?



  • Hallo,
    habe mir gerade mal std::pair, bzw std::make_pair angesehen. Warum gibt es letzteres? Ist die Zuweisung durch std::make_pair nicht äquivalent zu:

    std::pair<int, int> new_pair;
    new_pair = std::pair<int, int>(std::pair<int, int>(10, 10));
    

    ?

    Danke im Voraus! :xmas1: :xmas2:



  • der sinn von make_pair ist, dass man die typen nicht explizit angeben muss.

    template <class T, class U>
    void foo(std::pair<U, V> const& a)
    {
        a.first(a.second);
    }
    
    void bar()
    {
        foo(std::make_pair(boost::bind(was_auch_immer), 42));
    }
    


  • Kóyaánasqatsi, du meintest wohl eher:

    new_pair = std::pair<int, int>(10, 10);
    

    Oder eher doch:

    new_pair = std::pair<int, int>(std::pair<int, int>(std::pair<int, int>(std::pair<int, int>(std::pair<int, int>(std::pair<int, int>(10, 10))))));
    

    😃


Anmelden zum Antworten