iPhone開発でboost::shared_ptrを使う方法

id:melpon が書かないので代わりに書いちゃいます。


boost::shared_ptrは、環境によってはスレッドセーフなアクセスを行う処理のあたりで
インラインアセンブラを使ってるのでiPhone開発で使おうとするとコンパイルエラーになってしまいます。


なので、<boost/shared_ptr.hpp>をインクルードする前に以下のマクロを定義しておく必要があります。

#define BOOST_SP_USE_PTHREADS

これで、iPhone開発でもboost::shared_ptrを使えます。

#import <UIKit/UIKit.h>

#define BOOST_SP_USE_PTHREADS
#import <boost/shared_ptr.hpp>

struct Hoge {};

@interface MainView : UIView {
    boost::shared_ptr<Hoge> m_hoge; // OK
}

@end