[SOLVED]gcc wie kann ich make_shared benutzen?



  • Hallo Leute,

    ich verzweifle langsam an der Suche wo gcc den make_shared versteckt hat.

    Ich weiss das VS2010 es kann,aber bin unter Linux und daher keinen Zugriff darauf.

    Meine gcc version ist "gcc version 4.6.2 "

    Finde leider auch nix über google.

    Hoffe einer kennt die Antwort.

    greetz

    Demonking


  • Mod

    Das sollte ganz normal in memory sein. Hast du eventuell einen uralten GCC? Eigentlich ist das schon ziemlich lange drin, da die shared_ptr schon ein Teil von tr1 waren. Eventuell musst du dann den entsprechenden tr1 Header nehmen.

    Und du musst natürlich den C++11-Modus anschalten, also -std=c++0x als Schalter.



  • example.cxx

    #include <memory>
    #include <iostream>
    
    struct foo
    {
        foo(int answer)
        {
            std::cout << "The answer is " << answer << ".";
        }
    
        ~foo()
        {
            std::cout << std::endl;
        }
    };
    
    int main()
    {
        auto ptr = std::make_shared<foo>(42);
        return 0;
    }
    

    Kompilieren mit:
    g++ -o example -std=c++0x example.cxx

    Sollte so funktionieren....



  • hast du denn zugriff auf shared_ptr? Falls das der Fall ist und make_shared nicht verfügbar ist, dann wirds auch nicht implementiert sein. Falls du nicht auf shared_ptr zugreifen kannst, dürfte das ein Konfigurationsproblem sein. (-std=c++0x mitgegeben?)



  • ah, thx euch beiden 😃
    klappt nun o.O

    heisst muss irgendwie an meinem Code liegen weil mir der Compiler sagte das er das make_shared nicht gefunden hatte.


Log in to reply