[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
-
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.cxxSollte 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.Oheisst muss irgendwie an meinem Code liegen weil mir der Compiler sagte das er das make_shared nicht gefunden hatte.