Last update 1999/08/07
海外(daigoさん)
Standard Template Library Programmer's Guide SGIのSTLページ。STLインプリメンテーション、リファレンスなど。 SGI STL Adaptation Page SGI版のSTLをいろんなコンパイラで動かすための情報、SGI版のSTLの修正版があります。 Hewlett Packard's STL 本家HPのSTLインプリメンテーションがあります。 The STL Resource List STL関連のリンク集。
国内(全文検索)
角 正史のページ STLの網羅的な解説を行う予定のようです。 尾高雄吾ホームページ 仕様よりの解説がされています。 Iimori's Home Page CodeWarriorへのSGI STLの導入の説明などがあります。 AAA (Amris Amusing Atlas) 「C++との付き合い方」ではmapの説明などが行われています。 Takuya NISHIMOTO Homepage STLのG++への導入などが書かれています。
VC++情報(掲示板から)
- VisualC++4.2ではnamespace stdが使われていない。またnamespaceで内部コンパイラエラーが出る
- VisualC++4.2以前では、boolが予約語として定義されていない。
- template関数にinlineをつけると内部コンパイラエラーで止まることがある(確定条件ではない)
- テンプレートクラスにテンプレート引数を使わないと内部コンパイラエラーで止まる(一定の条件でほぼ確実)
SGI版STLの導入ガイド(VisualC++5.0以降)(daigoさん)
1.
SGI STL Adaptation Page
から、STLport-3_01.zipをダウンロードします。 SGIのサイトにはこれより新しいバージョンのものがありますが、SGI STL Adaptation Pageによると、VC5.0でSGI版STLと<iostream>、<string>を一緒に使うとコンパイルエラーが発生します(これはVC6.0でも確認できます)。2.
ダウンロードしたファイルを適当なディレクトリに解凍します。あとで元に戻せるようにVisualC++のIncludeディレクトリに上書きしない方が無難だと思います。
3.
VisualC++のメニューから[ツール]→[オプション]を選択して、[ディレクトリ]タブを表示します。
[表示するディレクトリ]のリストをインクルードファイルにして、[ディレクトリ]のところに先程STLを解凍したディレクトリを入力します。
右の方の矢印のボタン(?)を使って、入力したディレクトリの項目が一番上になるようにします。4.
終わりです。
SGI版のレビュー(TAOSさん)
こちら。
sh/csh/perlライクなマクロ(平山)
#define foreach(a,b,c) \ for(a::iterator c=(b).begin();(c)!=(b).end();(c)++) #define const_foreach(a,b,c) \ for(a::const_iterator c=(b).begin();(c)!=(b).end();(c)++)こういうふうに使います。
foreach(std::vector<int>,v,i){ ... }
バッファとして使う(平山)
メモリの確保にはvector<byte>を使うと解放の必要がなくて便利。アドレスを取るにはbegin()を使う。
関連情報はこちら。
例外処理を取り除く(TAOSさん)
#ifdef NDEBUG #define at(a) operator[](a) #endif
(C) 1998 Naoyuki Hirayama. All rights reserved.