Apple und shared_ptr
Ich scheine hier etwas fehlt. Ich zog von boost::shared_ptr
zu std::shared_ptr
. shared_ptr
war Teil des TR1 zurück in die Mitte der 2000er Jahre, und es sollte überall verfügbar sein im Jahr 2012.
Versuchen, zu verwenden shared_ptr
unter Apple bekommt von mir ein paar Undefinierte Referenzen:
SecureArray.h:26:12: error: no member named 'shared_ptr' in
namespace 'std'
using std::shared_ptr;
~~~~~^
SecureArray.h:27:12: error: no member named 'tr1' in namespace
'std'
using std::tr1::shared_ptr;
~~~~~^
SecureArray.h:487:5: error: unknown type name 'shared_ptr'
shared_ptr<SecureVector> m_vector;
Einem typischen compiler-Befehl lautet wie folgt (beide GCC und Clang fail):
clang++ -g2 -ggdb -O0 -fcatch-undefined-cxx0x-behavior
-DSAFEINT_DISALLOW_UNSIGNED_NEGATION=1 -pipe -std=c++0x -Wall -Wextra
-Wno-unused-parameter -Wno-tautological-compare
-I. -I./esapi -I./deps -I/usr/local/include -I/usr/include -fpic
-c src/DummyConfiguration.cpp -o src/DummyConfiguration.o
Ich versuche zu zählen, es wie folgt (ich glaube, ich brauche, um dies zu tunen, aber ich erinnere mich nicht, die C++ - syntax zu sagen, "schauen Sie hier, oder schauen Sie da"):
#include <memory>
using std::shared_ptr;
using std::tr1::shared_ptr;
Apple ' s man-pages werden nicht drehen bis nichts:
$ man shared_ptr
No manual entry for shared_ptr
$ man -k shared_ptr
shared_ptr: nothing appropriate
Ich habe Mac OS X 10.8 (voll gepatcht), Xcode (voll gepatcht), und Command Line Tools installiert.
Also wie nutzt man einen std::shared_ptr auf Apple-Plattformen?
apple
scheint nicht so ein guter tag- Welche toolchain-Versionen? Das ist, was wirklich wichtig ist. Ehrlich gesagt, ich konnte nicht weniger kümmern uns um Ihr OS!
- Dank Der Leichtigkeit. Verstanden. I don ' T care viel über Apple entweder.
- Leichtigkeit - GCC 4.2.1 und Clang ist 421.11.66 (ohne BS!).
- BTW bitte verwenden
@
Benachrichtigung syntax - scheint nicht so ein guter tag" - fühlen Sie sich frei, es zu ändern. Es scheint zu sein, Apple-spezifisch (Linux, Windows und BSD scheint zu funktionieren wie erwartet).
Du musst angemeldet sein, um einen Kommentar abzugeben.
#include <tr1/memory>
funktionieren entweder mit compiler mit libstdc++. Abwechselnd, mit Clang:kompilieren und mit
c++ -std=c++11 -stdlib=libc++ ...
. Ich habe keine Ahnung, warum das Geräusch ist mit libstdc++ standardmäßig; vermutlich ist es für die GCC-Kompatibilität.Sie nicht finden können, den man-Seiten, da libstdc++ nicht haben man-Seiten. Hilfreich, ist es nicht. Es gibt in der HTML-Dokumentation in der source-distribution.