Sun Studio 12 Update 1: C++ ユーザーズガイド

13.3.1 再配布とサポートされる STLport ライブラリ

エンドユーザーオブジェクトコードライセンスの条件に基づいて、作成した実行可能ファイルまたはライブラリとともに再配布可能なライブラリおよびオブジェクトファイルの一覧は、実行時ライブラリの README を参照してください。この README の C++ セクションに、このリリースのコンパイラがサポートしている STLport .so のバージョンが記載されています。この Readme は製品ドキュメントの一部として、Sun Studio SDN ポータルの http://developers.sun.com/sunstudio/documentation/ から入手できます。

次の例は、ライブラリの実装について移植性のない想定が行われているため、STLport を使用してコンパイルできません。特に、<vector> または <iostream><iterator> を自動的にインクルードすることを想定していますが、これは正しい想定ではありません。


#include <vector>
#include <iostream>

using namespace std;

int main ()
{
    vector <int> v1 (10);
    vector <int> v3 (v1.size());
    for (int i = 0; i < v1.size (); i++)
      {v1[i] = i; v3[i] = i;}
    vector <int> v2(v1.size ());
    copy_backward (v1.begin (), v1.end (), v2.end ());
    ostream_iterator<int> iter (cout, " ");
    copy (v2.begin (), v2.end (), iter);
    cout << endl;
    return 0;
}

問題を解決するには、ソースで <iterator> をインクルードします。