移植性と保守性を最大化するために、および他の TR1/BOOST C++0x テンプレートとautoconf
組み合わせて使用するためのベスト プラクティスは何ですか?shared_ptr
がおよび/またはとして利用可能autoconf
かどうかを判断できます。同じ機能に 2 つの異なる名前があることを考えると、次の質問があります。shared_ptr
std::tr1::shared_ptr
boost::shared_ptr
- コードでは、どの
shared_ptr
ように参照する必要がありますか? std::tr1::shared_ptr
よりも優先する必要がありboost::shared_ptr
ますか?
shared_ptr
まず、コードは現在、プリプロセッサ条件を使用して、への非修飾参照を許可しています。
#if HAVE_STD_TR1_SHARED_PTR
using std::tr1::shared_ptr;
#elif HAVE_BOOST_SHARED_PTR
using boost::shared_ptr;
#else
#error "No definition for shared_ptr found"
#endif
次に、コードはstd::tr1::
overboost::
を使用して、外部ライブラリへの依存を最小限に抑えます (ライブラリが広く使用されている場合でも)。
これらの 2 つのソリューションは一般的ですか? より良いものはありますか?