Top | Wiki | Blog | Github  

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
boost [2007/01/04 16:40]
takaxp
boost [2016/08/22 15:37] (現在)
ライン 1: ライン 1:
 +====== Boost ======
  
 +Boost は,C++ 用のライブラリです.C++ 用のライブラリとしてはSTLが有名ですが,Boost は,C++ の言語として標準化が一度完了した後に登場したライブラリで,STL では不足しているといわれる機能を実装しています.個人的にはまだSTLのすべてを使いこなしているわけではないですが,Boost ならではの魅力的な部分は積極的に使っていこう!ということで,勉強を始めました.
 +
 +以下,勉強過程で必要と感じたメモです.
 +
 +
 +===== インストール =====
 +
 +Boost は,現在 [[http://​sourceforge.net/​|Sourceforge]] で管理されています.一部のライブラリを使用するために,コンパイル作業が必要になります.まずは,必要なパッケージを入手します.2006.9.10 現在のバージョンは,1.33.1 です.
 +
 +[[http://​sourceforge.net/​projects/​boost/​|Boost C++ Libraries]]
 +
 +必要なのは,Boost 本体と Boost-jam という make の代わりになるものです.Boost-jam は,RPM でも提供されているので,すぐにインストールできます.
 +
 +<​code>​
 +1: rpm -ivh boost-jam-3.1.13-1.i386.rpm
 +</​code>​
 +
 +続いて,ビルドとインストールを行います.
 +
 +<​code>​
 +1: bjam -sTOOLS=gcc --prefix=/​usr/​local install
 +</​code>​
 +
 +-sTOOLS には,コンパイラを指定します.インテルコンパイラならば,intel-linux とします.このインストール作業により,ヘッダファイルが,
 +
 +> /​usr/​local/​include/​boost-1_31
 +
 +に.ライブラリファイルが,
 +
 +> /​usr/​local/​lib
 +
 +に格納されるので,それらにコンパイラのパスを通せばよい.ヘッダファイルについては,いちいち名前を指定し直すのも面倒なので,
 +
 +<​code>​
 +1: cd /​usr/​local/​include
 +2: ln -s boost-X_XX_X/​boost
 +</​code>​
 +
 +としておけばよい.
 +
 +apt-get できる場合には,
 +
 +<​code>​
 +1: apt-get install boost
 +2: apt-get instlal boost-devel
 +</​code>​
 +
 +で簡単にインストールできる.
 +
 +===== とりあえず使ってみたいライブラリ =====
 +
 +  - スマートポインタ
 +  - 乱数
 +  - interval (精度補償)
 +  - バイナリデータの扱い (dynamic_bitset)
 +  - tuple (関数の戻り値を簡単に2つ以上にする)
 +  - optional
 +  - timer (std::​clock を使った一連の作業を効率化)
 +  - noncopyalbe (オブジェクトの実体のコピーを明示的に禁止する)
 +
 +
 +
 +==== timer ====
 +
 +たとえばこんな感じで使えます.
 +
 +<code cpp>
 +#include <​iostream>​
 +#include <​boost/​timer.hpp>​
 +
 +using namespace std;
 +using namespace boost;
 +
 +int main(){
 +
 +  timer t; // クロック動作開始
 +  for(int i=0; i<​100000;​ i++){
 +    cout << "​timer"​ << endl;
 +  }
 +  cout << t.elapsed() << " [sec]" << endl;
 +  return 1;
 +}
 +</​code>​
 +
 +===== リンク =====
 +
 +  * [[http://​www.amazon.co.jp/​exec/​obidos/​ASIN/​4798007862/​ref=nosim/​pastelwill-22|Boost C++ Libraryプログラミング]] (現在使用している参考書です.)
 +  * [[http://​www.kmonos.net/​alang/​boost/​|Let'​s Boost]]
 +  * [[http://​www.boost.org/​|Boost C++ Libraries]] (Boost の総本山)
 +
 +  * [[http://​www.wakhok.ac.jp/​~sumi/​stl/​index.html|STL(Standard Template Library)]] (角氏のSTL解説ページ)