teacup. [ 掲示板 ] [ 掲示板作成 ] [ 有料掲示板 ] [ ブログ ]


新着順:44/226 記事一覧表示 | 《前のページ | 次のページ》

Boostとは何か?

 投稿者:KAWASAKI  投稿日:2011年 7月30日(土)03時11分20秒
  通報 返信・引用
   -------------------------------------------------------------
  Boost C++ Libraryに関する重要項目解説(仮)
 -------------------------------------------------------------

◎ Boostとは何か?

  ・ライブラリの拡張
  ・数学ライブラリの拡張
  ・STLライブラリの拡張
    (データ構造とアルゴリズムの抽象化)
  ・メタプログラミング
  ・関数型プログラミング
  ・その他小枝的なライブラリ

  *Boostはフリーライセンスであり、著作権表示を行う必要はない。

◎ Boostはライブラリにはビルドを実行を必要とするライブラリ機能がある。

◎ 文字列処理
   1、Tokenizer (文字列の切り分け)
   2、Regex (正規表現)
   3、データの文字列変換
      (1) Lexical_cast
      (2) Format

◎ スマートポインタ
   様々なスマートポインタ
   ・chared_ptr
   ・weak_ptr
   ・scoped_ptr
   ・intrusive_ptr

◎ システムに関する機能
   ・gregorian
   ・posix_time (日付)
   ・file system
   ・thread/ ユティリティー

◎ 数学関連

   ・random(乱数)
   ・rational
   ・quertanion
   ・cctonion
   ・CRC (CRC符号)
   ・intrrval (区間演算)

◎ データ構造と反復子
   ・Array
   ・multi_array
   ・dynamic_bitset
   ・イテレータ自動合成
   ・拡張データ型
     ・any
     ・tuple
     ・optional
     ・variant

◎ 関数型プログラミング

   ・純粋な関数の組合せのみで記述する
   ・関数そのものを値として扱う(高階関数)を積極的に利用する。
    (代入はない)

   ・bind
   ・function
   ・lambad
   ・構文解析(spirit)

◎ メタプログラミング (’メタ’とは「高次の、より上の」)

   ・プログラムを入力や出力として扱う。
     (例として、コンパイラやインタプリタ、lexやyacc)
   ・プリプロセッサ
   ・マクロ
   ・クオート

◎ Boostにおけるメタプログラミング

   ・MPLテンプレートライブラリの機能を活用する。
   ・Boost・pp プリプロセッサ活用
   ・Boost・test 単体テストのフレームワーク

   ・メタプログラミング

     ・テンプレートでメタプログラミング
     ・プリプロセッサでメタプログラミング
     ・コード検証  (Unit-test / コンパイル時)

   ・ユティリティー

     ・timer
     ・io_state_savers
     ・noncopyaple
     ・value_initialized
     ・ref
     ・演算子の補助

   ・その他ライブラリ

     ・signals
     ・graper
     ・uBLAS
     ・python

◎ Tokenizer

   ・csv解析
   ・タグの処理

◎ regex

   ・regex_match (テスト)
   ・regex_search (マッチ、サーチ)
   ・qsregx_iterator (列挙するイテレータ)
   ・regex_reaplace (サーチと置換)
   ・wregex (日本語対応)

◎ スマートポインタ(スマートな機能を持つ)

   ・参照カウンタ方式(自動Delete)
   ・shared(自動Delete)
     注)複数の別のポインタを作成するとdeleteしてしまう。
     注)循環参照を正しく扱えない

◎ Weak (sharedポインタは循環する参照を正しく扱えない)

   ・二つのオブジェクトがスマートポインタによってお互いを指しあっている
    ときdeleteされないゾンビオブジェクトができる。

   ・weakポインタはsharedポインタの補助として使用するポインタで何個あ
    ってもsharedポインタが0個になったらオブジェクトは破棄される。

◎ Scopedポインタ

   ・純粋にnewで作られたコンストラクタで受け取り、デストラクト時にdelete
    する。
   ・interusiveポインタ (侵入型) 参照カウンタ方式

   利点① 内部の機構を再利用した方が効率が上がる可能性がある。
   利点② オブジェクトからいつでもintrusiveポインタを作成できる。が、
        別の場所で別のshardポインタを作ってしまうと二重deleteの
        バグが発生する。

◎ 日付と時刻

   ・日付 Boost.Gregorin ライブラリ
   ・時刻 Boost.Posix.Timeライブラリ

◎ Boost.Thread

   ・共通インターフェイス
   ・協調処理 mutexによるロック(同時アクセスの排他制御)

◎ CRC CxclicRedurdanexChechk : 巡回冗長検査

    (CRC符号 ; ビット列からCRC値を計算)

◎ bind

   例 2引数関数から1引数関数を合成する。
      (第2引数を固定した。)

 -------------------------------------------------------------
  参考文献

   「Boost C++ Library プログラミング」
    秀和システム出版 稲葉一浩著
      (サンプルコードの入手は学習の手助けになる。)
 -------------------------------------------------------------

以上。2011年7月30日。川崎公平が記述。










 
 
》記事一覧表示

新着順:44/226 《前のページ | 次のページ》
/226