Item 55:Boostに詳しい


Item 55: Familiarize yourself with Boost.

BoostはC++開発者のコミュニティであり、C++標準の試験場として、多くのTR 1コンポーネントの実現を含む多くの高品質、オープンソース、プラットフォーム間、コンパイラとは独立したC++ライブラリを収容している.
Boostは他のC++組織とコミュニティとは比べものにならない:
  • とC++標準委員会との親近関係.BoostコミュニティメンバーとC++標準委員会メンバーは大きな交差がある.多くのC++次世代標準はBoostコミュニティから来ています.
  • 特別なプロジェクト受信プロセス.まずメールリストに提出し、満足するまで議論、最適化、再提出のプロセス全体を開きます.

  • Boostコミュニティのライブラリは千差万別で、小さなライブラリ(例えばConvention)はエラー処理とプラットフォーム間以外に数行のコードしかありません.大きなライブラリ(例えばBoost Graph Library、Boost MPL Library)は、本全体を書く必要があります.これらのライブラリは、次の大きなカテゴリに分類できます.
  • 文字列およびテキスト処理.タイプが安全なprintf、正規表現、分詞(tokenizing)、変換(parsing).
  • 容器.STLスタイルの固定サイズ配列、可変サイズのBitset、多次元配列.
  • 関数オブジェクトと高次プログラミング.例えば面白いLambdaライブラリ:
  • using namespace boost::lambda;
      std::vector<int> v;
      std::for_each(v.begin(), v.end(), std::cout<< _1 * 2 + 10 << "
    "
    );
    _1   Lambda      ,      
    
  • 汎用プログラミング.Item 47を参照して、拡張可能なtraitsクラスが含まれています.
  • テンプレートメタプログラミング(TMP、Item 48参照).
  • 数値計算.有理数、八元数、最大公約数、最小公倍数などを含む.
  • の正確性とテスト.暗黙的なテンプレートインタフェースの形式化とテスト駆動プログラミング.
  • データ構造.タイプの安全な連合体、メタグループが含まれます.
  • 言語間サポート.例えば、C++とPythonはシームレスな相互運用性のライブラリを提供します.
  • メモリ.固定サイズのメモリプールのディスペンサなどです.
  • その他.CRCチェック、日時操作、ファイルシステム遍歴など.

  • GUI開発やデータベース接続など、Boostには含まれていないプログラミング分野もあります.
    転載先:http://harttle.land/2015/09/25/effective-cpp-55.html作者ハートルに感謝