IT用語集 › プログラミング › STL (C++)

STL (C++)

プログラミング Svenska → 更新: 2026-10-21

コンテナとアルゴリズムを完全に切り離せることを示し、ジェネリックプログラミングを主流にしたライブラリ。

Alexander Stepanovは、ソートアルゴリズムを一度だけ書いてあらゆるものに使う方法を20年探していた。HPでMeng Leeとともに1994年にStandard Template LibraryをC++委員会へ提示し、1998年の規格に採用された。核心の発想は、アルゴリズムはコンテナを知らず、コンテナもアルゴリズムを知らず、両者をつなぐ薄いインターフェースがイテレータだという点にある。

だからstd::sortはvectorにも、C配列にも、適切なイテレータカテゴリを備えた独自構造にも使える。継承も仮想呼び出しも要らず、すべてコンパイル時に解決される。そのツケはエラーメッセージに回ってきた。型の不一致が1つあるだけで、テンプレートのインスタンス化が何ページも出力された。これがようやく和らいだのはC++20のコンセプトによる。

← 用語集に戻る