Ich bin gerade so frustriert, nachdem ich mehrere Stunden lang versucht habe herauszufinden, wo sich shared_ptr befindet. Keines der Beispiele, die ich sehe, zeigt vollständigen Code, der die Überschriften für shared_ptr
(und das Arbeiten) enthält. Einfach gesagt std
, tr1
und <memory>
hilft überhaupt nicht! Ich habe Boosts heruntergeladen und alles, aber es wird immer noch nicht angezeigt! Kann mir jemand helfen, indem er genau sagt, wo ich es finde?
Danke, dass ich meine Frustrationen ablassen durfte!
EDIT: Ich sehe, mein Titel wurde geändert. Das tut mir leid. Also ... es lag auch daran, dass mir nicht klar war, dass shared_ptr "C ++ - versionabhängig" ist -> deshalb habe ich meine Umgebung nicht angegeben -> daher wahrscheinlich, warum es für mich so schwierig war, sie zu finden.
Ich arbeite an MSVS2008.
EDIT 2: Ich weiß nicht warum, aber ich habe [memory] und [boost / tr1 / memory.hpp] und [boost / tr1 / tr1 / memory] eingeschlossen, während ich überall nach dem shared_ptr gesucht habe. Natürlich konnte ich nicht 't.
Vielen Dank für alle Antworten.
shared_ptr
ist dies nicht Teil des Standards. Es ist jedoch so häufig, dass einige es als Standard behandeln, obwohl es noch nicht vorhanden ist.Antworten:
Es gibt mindestens drei Orte, an denen Sie möglicherweise finden
shared_ptr
:Wenn Ihre C ++ - Implementierung C ++ 11 (oder zumindest C ++ 11
shared_ptr
) unterstützt,std::shared_ptr
wird dies in definiert<memory>
.Wenn Ihre C ++ - Implementierung die C ++ TR1-Bibliothekserweiterungen unterstützt, befindet sie
std::tr1::shared_ptr
sich wahrscheinlich in<memory>
(Microsoft Visual C ++) oder<tr1/memory>
(libstdc ++ von g ++). Boost bietet auch eine TR1-Implementierung, die Sie verwenden können.Andernfalls können Sie die Boost-Bibliotheken erhalten und verwenden
boost::shared_ptr
, die in zu finden sind<boost/shared_ptr.hpp>
.quelle
tr1
.shared_ptr
immer noch in einemtr1
Namespace saß . Irgendwelche Gedanken dazu?-std=c++11
?Boost Erste Schritte
Wenn Sie es stattdessen von Boost TR1 verwenden möchten
shared_ptr Beispiel
quelle
Für VS2008 mit Feature Pack-Update finden Sie shared_ptr unter dem Namespace std :: tr1.
von
Wenn Sie
C:\Program Files\Boost\boost_1_40_0
Ihren IDE-Einstellungen einen Boost-Installationspfad (z. B. @ ) hinzugefügt haben:quelle
Wenn your'e bor suchen boost ‚s shared_ptr , Sie bequem die Antwort konnte durch gefunden googeln shared_ptr , die Links zu den Dokumenten, und ein komplettes Arbeits Beispiel wie oben ziehen diese .
Auf jeden Fall ist hier ein minimalistisches vollständiges Arbeitsbeispiel für Sie, das ich gerade gehackt habe:
Damit
#include
der Header gefunden werden kann, müssen sich die Bibliotheken offensichtlich im Suchpfad befinden. In MSVC legen Sie dies unter Projekteinstellungen> Konfigurationseigenschaften> C / C ++> Zusätzliche Einschlussverzeichnisse fest. In meinem Fall ist dies auf eingestelltC:\Program Files (x86)\boost\boost_1_42
quelle