ここで何かが足りないようです。からに移動しboost::shared_ptr
ましたstd::shared_ptr
。shared_ptr
2000年代半ばにはTR1の一部でしたが、2012年にはどこでも利用できるようになるはずです。
Appleの下で使おうとするとshared_ptr
、たくさんの未定義の参照が表示されます。
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;
一般的なコンパイラコマンドは次のとおりです(GCCとClangの両方が失敗します)。
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
私はそれを次のように含めようとしています(これを微調整する必要があると思いますが、「ここを見て、またはそこを見て」と言うC ++構文を思い出せません):
#include <memory>
using std::shared_ptr;
using std::tr1::shared_ptr;
Appleのマニュアルページは何も表示されていません:
$ man shared_ptr
No manual entry for shared_ptr
$ man -k shared_ptr
shared_ptr: nothing appropriate
Mac OS X 10.8(完全にパッチが適用されている)、Xcode(完全にパッチが適用されている)、およびコマンドラインツールがインストールされています。
では、Appleプラットフォームでstd :: shared_ptrをどのように使用するのでしょうか?