| Home | Libraries | People | FAQ | More

# Compiler Status

Introduction
Compiler Status Tables
Understanding the Tables
Acknowledgements

## Introduction

全ての Boost ライブラリはあなたのコンパイラで動くのか？不幸なことに、 答えは「コンパイラに依る」だ。

Boost ライブラリはテンプレートのような現代的な C++ の機能と C++ 標準 ライブラリに依っている。多くの現代的なコンパイラはそれらの有名な機能をな かなか良くサポートしている。しかし C++ 標準の採択から数年を経た今となっ ても、いくつかのコンパイラは部分特別化のような、重要なマイナー機能をサポー トしていない。

Boost ライブラリの作者はしばしば機能の不足しているコンパイラ環境で作 うまく動かそうとしてたくさんの努力を費やす。それにもかかわらず、いくつか のライブラリはいくかのコンパイラで全くコンパイルされないか、機能を減らさ れているかもしれない。たとえコンパイラの最新リリースが Boost ライブラリ をサポートするとしても、古いバージョンのコンパイラは正しく動かないかもし れない。

Boost のリリースには様々なプラットホームで Compiler Status Table を自 動的に生成する 退行テスト が実行さ れている。特に明記しない限り、C++ 標準ライブラリの実装はコンパイラに同梱 されるものである。

## Compiler Status Tables

Compiler Status Tables は 退行テス ト を要約したものだ。

Warnings:

- これらの表はコンパイラの C++ 標準準拠度を現わす良い指標では無い。 Boost ライブラリはしばしばコンパイラの機能不足を補う回避方法を含ん でいる。
- 退行テストが時々しか行なわれていない比較的時代遅れな退行テストも存 在する。それぞれの表の頭の日付けをチェックしなさい。

もし www.boost.org ウェブサイトの最新 リリースのコードに対してのステータスを知りたければ、最新リリース リンクを選択しなさい。

もし Boost CVS レポジトリ の コードに対してのステータスを知りたければ CVS リンクを選択しなさい。 CVS コードは数日ごとに更新され、それはバグフィックスや、コンパイラ対応や、 新しい機能や、全く新しいライブラリを含んでいたりする。それはしかし不安定 であろう。

Operating System | Current Release | CVS | Contributed by
Apple Mac OS X | Table Messages |  | Darin Adler
Compaq Tru64 Unix 5.0 | Table Messages Times |  | Jens Maurer in cooperation with Ralf W. Grosse-Kunstleve
HP/UX 11.0 | Table Messages Times |  | Jens Maurer in cooperation with Thomas Matelich and Hewlett-Packard
IBM Aix | Table Messages |  | Toon Knapen
Linux x86 | Table Messages Times | Full results | Jens Maurer
Microsoft Windows 2000 | Table | Full results - Recent changes emphasized More choices | Beman Dawes
SGI IRIX 6.5 | Table Messages Times |  | Jens Maurer in cooperation with Ralf W. Grosse-Kunstleve
Sun Solaris SPARC 2.8 | Table Messages Times |  | Jens Maurer in cooperation with Andrew Lumsdaine

## Understanding the Tables

表はこのような外見だろう:

> Run Date: 21 Sep 2001 15:31 GMT

> System Configuration: Microsoft Windows 32bit

> Program | Test Type | BelchFire Rev 5280 | WorkHorse 5.3
> libs/foo/test/foo_test.cpp | compile | Pass | Pass
> libs/bar/bar_test.cpp | run | Fail | Pass

Run Date は退行テストは非同期で行なわれたステータス表を作成す るので、重要である。それゆえに多くの最新リリースを表していないだろう。

Program という列はテストの実際のソースファイルを示している。表 の中のそれぞれの行は異なるテストを示している。

Test Type という列は行なわれるテストの 種類を表している:

Test Type | Action | Required to Pass | Description and Use
compile | compile only | コンパイラが 0 を返す。 | ソースファイルが正しくコンパイルされるかどうかを検査する。し かしリンクや実行の試験は全くしない。必要なオブジェクトライブラ リが入手困難であるなど、実行テストが非現実的な場合に使われる。
compile-fail | compile only | コンパイラは非 0 を返さなければならない。 | ソースファイルがコンパイルに失敗するかどうかを検査する。予期 されたコンパイルタイムエラーが発見されるかどうかを検査するため に使われる。
link | compile, link | コンパイラとリンカが 0 を返す。 | ソースファイルが正しくコンパイルされてリンクされるかどうかを 検査する。しかし実行のテストは行なわない。必要なデータが入手困 難であるなど、実行テストが非現実的な場合に使われる。
link-fail | compile, link | コンパイラかリンカが非 0 を返さなければならない。 | ソースファイルがコンパイルとリンクに失敗するかどうかを検査す る。未解決の外部作業に依存するエラーを正しく確認するために使わ れる。
run | compile, link, execute | コンパイラ、リンカ、実行ファイルが全て 0 を返さなければなら ない。 | ソースファイルが正しくコンパイル、リンクされ、出力されたプロ グラムが正しく実行されるかどうか (リターンコードが 0 であること よって判定する) を検査する。これは大部分の使用のための主なテス トタイプである。
run-fail | compile, link, execute | コンパイラとリンカは 0 を返さなければならず、実行ファイルは 非 0 を返す。 | ソースファイルが正しくコンパイル、リンクされ、出力されたプロ グラムの実行でエラーを発見するかどうかを検出する。実行時エラー を発見するコードがきちんと動くかどうかを検査するために使われる。

テーブルの残っているおのおののカラムは、記されている個々のコンパイラ を表わす。特に明記しない限り C++ 標準ライブラリの実装はコンパイラに同梱 されるものである。Pass エントリは Test Type の成功を示し、 一方、Fail エントリは失敗を示す。詳 しくは上記テーブルの Required to Pass を参照のこと。

## Acknowledgements

コンパイラステータステーブルはたくさんの個人、教育機関や会社によって 贈与されたリソースを用いて作成されている。Boost は彼らのサポートに感謝し たいと思う。

- Intel Corporation, California, USA
- KAI Software, Illinois, USA
- Hewlett-Packard Company, USA
- Lawrence Berkeley National Laboratory, California, USA
- University of Notre Dame, Indiana, USA

注、しかしながら、Boost はいずれの製品やサービスの裏書もしないし、い くつかまたは全ての Boost ライブラリが、上記製品やサービスどれかと共に機 能することを保証しない。

Revised 11 October 2002

Japanese Translation Copyright (C) 2003 shinichiro.h <g940455@mail.ecc.u-tokyo.ac.jp>.

オリジナルの、及びこの著作権表示が全ての複製の中に現れる限り、この文書の 複製、利用、変更、販売そして配布を認める。このドキュメントは「あるがまま」 に提供されており、いかなる明示的、暗黙的保証も行わない。また、 いかなる目的に対しても、その利用が適していることを関知しない。