C++ Library Links

このページの他に、岡野原さんの "C++の便利ツール・ライブラリ" がオススメです。

標準ライブラリ

STL
その1。主に、リストやマップなどのコレクションに関する generic なデータ構造とアルゴリズム。
iostream
その2。ストリーム入出力。
C.std
その3。まだまだ現役。
boost
準標準。上の3つを超強力にした/するライブラリ達の集合体。

並列・ネットワーク・XML

TBB (Thread Building Blocks)
スレッドセーフなコンテナやスレッドをフル活用した並列アルゴリズムなど
TinyXML
名前の通り軽量でまとまってるXMLパーザ。
MiX
Minimalists XML parser。同じくXMLパーザ。
libcurlpp
FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE, LDAP によるファイル転送をサポート。
POCO
C++ Portable Components。 ネットワーク関係を中心にしたポータブルなライブラリだそうです。
ACE
ADAPTIVE Communication Environment。 ポータブルかつ強力な、ネットワーク&並列ライブラリ。
Addison-Wesley から も出ています。
Xerces-C++
定番XMLパーザ。
CSE
C++ Servlet Environment。名前の通り、C++でServletをやろうというもの。
CGI++
C++ で CGI を作るのに便利なライブラリ。
gimite::socket
WinSock2とPOSIX socketのラッパ。 iostreamのインターフェイスでソケット操作ができる。

データベース

OTL
Oracle、ODBC、DB2-CLI 向けのデータベース操作ライブラリ。

色々

STXXL
メモリに乗らないような巨大なデータをディスク上で扱うためのライブラリ。 STL風のインターフェイス。
ICU
IBMより。文字コード変換やUnicode関係の処理をまとめてこなします。
SWIG
各種スクリプト言語とC/C++を繋ぐ橋渡し。
caper
LALR(1) パーサジェネレータ。 「手書きのパーサですがなにか?」と強弁できるというコンセプト。
Crypto++
古今東西、多数の暗号化やメッセージ認証方式に対応したライブラリ。
ixlib
JavaScriptインタプリタとかGCとかXMLパーザとか正規表現とか、 なんだか色々多彩。
STLSoft
STLをもうちょっと拡張するもの。Windows向け?
VTL
View Template Library。コンテナを、 中の特定の条件を満たす要素だけ取り出したコンテナとしてみるとか、 ある範囲だけのサブコンテナとして見るとか、 各要素にフィルタを噛まして見るとか、そういう感じの。
CppUnit
UnitTestフレームワーク。
libcwd
デバッグ支援。デバッグ用ストリーム処理や、メモリ確保、 クラス名のdemanglingなどが強力です。
xbyak
x86アセンブラライブラリ。実行時のコード生成とか、 スクリプト言語のJITコンパイルなどに使えそうです。
SoftWire
こちらもJIT用ライブラリ。
libsigc++
Callback Framework for C++、とな。boost::signals みたいなもんでしょうか。
metakit
アプリケーション埋め込み型の簡易データベースライブラリ。C++-bindingアリ。
Aapl
二分木とか簡単なFSMとか。

数値計算など

Eigen
行列計算。速くて使いやすいのでおすすめ。
Blitz++
技術計算ライブラリ。行列とか乱数とか差分計算とか他色々。
MTL
Matrix Template Library。
tvmet
こちらもわりと有名な行列・ベクトル演算ライブラリ。
NTL
数論のためのライブラリだそうな。多倍長数とか、 多項式とか群とか体とか。
LiDIA
こちらもNTLと同じような方面。
XR
eXact Real、任意精度の実数演算。

GUI・マルチメディア

Win32 GUI Generics
Win32 API による GUI 作成の、今風C++ラッパ。
wxWidgets
クロスプラットフォームなUI構築。定番。旧wxWindowsが改名。
Visibility for C++
専用のダイアログエディタ等を使わずに C++ のソースからGUI設計できるライブラリらしい。Windows専用。
Crystal Space
3Dグラフィックスのエンジン。
VIGRA
Generic Programming for Computer Vision。 コンピュータビジョン関係のテンプレートライブラリらしいです。

メタプログラミング

PETE
Portable Expression Template Engine ということで、 expression template 技法を汎用化したライブラリ。
Daixtrose
Diffrentiable EXpression Templates - a Reusable Open Source Engine の略とのこと。こちらもETの汎用化。演算子で書いた式を、 template上でのツリーに展開する枠組みを提供してくれます。 コンパイル時に記号微分ができる、のが "Diffrentiable" の由来らしい。
Reflection for C++
リフレクション。
あるクラスのメソッド一覧を手に入れるとか、 クラス名からそのインスタンスを生成とか。結構無理があるかも…。
Boost Interfaces Library
結局Boostに入ってはいないですが、この名前。 非侵入的に外付けできるインターフェイスを作る技法を汎用化したライブラリ。

マルチパラダイム

FC++
関数型プログラミング in C++。
cons方式リスト、カリー化、関数の中置表記、ML風サブ言語による無名関数生成、 無限リスト、モナド、などなどなど。
FACT!
FC++と同じ方向性の。
clamp
厳密に言うとライブラリじゃないですが。その名も C++ LAmbda Preprocessor で、 C++の式中に無名関数を埋め込むことを可能にするC++のプリプロセッサです。
LC++
論理型プログラミング in C++。
宣言→単一化による推論→答えを返す、 という論理型言語風のプログラムが書けます。
Loki
書籍 Modern C++ Design の Lokiライブラリです。スマートポインタ、 Factory Method, Sigleton などのパターン、DoubleDispatchなどなど。 "ポリシーに基づく設計" という考え方は必読。
BSFC++
bulk synchronous parallel 計算モデルに基づく並行計算ライブラリだそうな。
presented by k.inaba (kiki .a.t. kmonos.net) under CC0