Top | Wiki | Blog | Github  

差分

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

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

boost [2007/01/04 14:36]
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>​ 
- 
-としておけばよい. 
- 
-===== とりあえず使ってみたいライブラリ ===== 
- 
-  - スマートポインタ 
-  - 乱数 
-  - 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解説ページ)