boost::TR1

トップページ > 互換性 >

abstract

必要なヘッダ
<boost/tr1/array.hpp> (<array>,
<boost/tr1/complex.hpp> (<complex>),
<boost/tr1/functional.hpp> (<functional> == ref/result_of/mem_fn/bind/function/hash),
<boost/tr1/memory.hpp> (<memory> == shared_ptr/weak_ptr),
<boost/tr1/random.hpp> (<random>),
<boost/tr1/regex.hpp> (<regex>),
<boost/tr1/type_tuple.hpp> (<tuple>),
<boost/tr1/type_traits.hpp> (<type_traits>),
<boost/tr1/utility.hpp> (<utility> == pairをtupleぽく使う)
出来ること
TR1ヘッダの#include
リファレンス
en

etc

C++標準ライブラリ拡張案 TR1 は、gcc4 などいくつかの環境では実装されはじめていますが、 まだ、未実装の環境も多いです。このライブラリは、 TR1実装済みの環境ではネイティブのヘッダを読み込み、 未実装の環境では、TR1に対応するBoostのライブラリのヘッダを名前空間を std::tr1 に変えて読み込んでくれる切り替え用ライブラリです。

例えば、boost/tr1/memory.hpp を #include すると、TR1のmemoryヘッダが実装されている環境なら、 単にそのmemoryが#includeされます。実装されていない環境では、boost/shared_ptr.hpp 等が代わりに #include されます。どちらの場合も std::tr1::shared_ptr という形で shared_ptr を使うことができます。

BoostからTR1に入ったライブラリは標準ライブラリとしてstd::tr1::で使いたい! けど、移植性を考えるとBoostの実装を使うべきかも…と悩んだときに使えるのがBoost.TR1というわけです。

現時点では、TR1 の <cmath> <unordered_set> <unordered_map> にはまだ対応していないため、このライブラリを使っても正しく動作しません。 将来的にはこれらの実装もBoostに入れる予定だそうです。

presented by k.inaba (kiki .a.t. kmonos.net) under CC0