2011-01-08 8 views
3

私は最新のC++ 0x言語とライブラリ機能を大量に使用するライブラリを作成しています。私は主にgcc4.6でLinuxで開発していますが、Appleが優れたプロファイリングツールを作っているため、OS Xでテストしたいと考えています。残念ながら、私が見つけたOS Xのgcc4.6に付属しているlibstdC++のすべてのバージョンでは、<thread>機能が無効になっています(この問題を解決する方法については私の質問でhereを参照してください)。ブーストをC++に置き換える0xライブラリの機能

一方で、誰も私のライブラリのための低侵襲(私のライブラリのための)私は標準のもののためのブーストのスレッドライブラリを置き換えることができます任意のアイデアを持っていますか? SVNを使ってこのプロジェクトを共有しているので、他の人にboost :: thread、boost :: mutexなどに切り替えさせることなく変更をチェックインしたいので、私はむしろsedに気を配りません。あなたが名前空間stdの内部を変更することが許可されていないので、

答えて

4

これは、標準的な苦情のコードではありませんが、ほとんどのコンパイラで動作するはずです:

#include <boost/your_headers.hpp> 
namespace std { 
    using boost::thread; 
    using boost::mutex; 
    // ... 
} 

残りのコードは変更されません。

+1

代替アプローチとして、ネームスペースcxx0x = std;または名前空間cxx0x =ブースト;これにより、stdでのmuckingが回避されます。名前空間cxx0x {std :: mutexを使用しても構いません。 }対ネームスペースcxx0x {boost :: mutexを使う; } –

+0

@Logan:申し訳ありませんが、どのように役立ちますか?上記のコードは何をしていませんか? – ybungalobill

+0

これはまさに私が必要なもののように見えます!私は私の仕事用機械に着くと、少しはあなたの答えを受け入れるときにテストします。 – rcv

関連する問題