Standardではない邪道なC++ライブラリの開発日誌
最近になってTR1のサポートがいろいろな形で現れてきました。Boost C++ Librariesを使用する場合でも、TR1で対応できるものについてはTR1として扱った方が、将来的にBoost C++ Librariesへの依存性を少なくすることができるはずです。
というわけで、Dradnats C++ LibraryではTR1を積極的に使用することにします。ただし、TR1で導入された数学関数などは、サポートされない状況が多いので当面は見合わせることになりそうです。
ところで、C++0Xでは、TR1に相当するライブラリ要素の名前空間がstd::tr1ではなく単にstdになる気配です。これでは移植性に問題が生じます。実際に処理系がC++0Xに対応する際には、後方互換性のためにどちらでも使えるようになる可能性はありますが、過度の期待は禁物です。
そこで、Dradnats C++ Libraryでは、TR1相当のライブラリ要素をいったんdradnats::tr1名前空間内でusing宣言することにします。これにより、将来的にstd::tr1名前空間が使えなくなった場合でも、Dradnats C++ Libraryのバージョンアップすればアプリケーション側で対応しなくてもよくなるはずです。
ところで、C++0Xでは、TR1に相当するライブラリ要素の名前空間がstd::tr1ではなく単にstdになる気配です。これでは移植性に問題が生じます。実際に処理系がC++0Xに対応する際には、後方互換性のためにどちらでも使えるようになる可能性はありますが、過度の期待は禁物です。
そこで、Dradnats C++ Libraryでは、TR1相当のライブラリ要素をいったんdradnats::tr1名前空間内でusing宣言することにします。これにより、将来的にstd::tr1名前空間が使えなくなった場合でも、Dradnats C++ Libraryのバージョンアップすればアプリケーション側で対応しなくてもよくなるはずです。
この記事にコメントする