株式会社エス・スリー・フォー

12章: 汎用コレクションクラス

汎用コレクションクラスは、Tools.h++ に含まれているコレクションクラスの中で 2 番目に主なカテゴリです。このコレクションクラスを「汎用」と呼ぶのは、『プログラミング言語 C++』(B.ストラウストラップ著、㈱トッパン発行、英語版の 209 ページ) で初めて記述された、初期 C++ 言語におけるパラメータ化された型の試みである、<generic.h> で定義されているマクロを使用するためです。汎用コレクションクラスは、本当のテンプレートより扱いにくい一方1、どんな C++ コンパイラにも移植できる利点があります。[1] 汎用コレクションクラスは、古いコンパイラとでも共用できます。

汎用コレクションクラスの大部分が、参照ベースです。つまり、10.1 節で説明されているように、これらのクラスは他のオブジェクトへのポインタを格納し、それを取り出します。これらのクラスでは、Rogue Wave のすべてのコレクションクラスと同様、オブジェクトのメモリ領域の割り当てと解放はユーザの責任です。

RWGVector(val)RWGOrderedVector(val)、および RWGSortedVector(val) の 3 個のベクトル汎用コレクションは、値ベースです。これらのクラスは、型自体 (オブジェクトへのポインタでもよい) を格納します。

格納と取り出しの方法、および判断基準は、クラスによって異なります。

注釈

  1. ^ 汎用マクロは使うのは簡単ですが、書くのは非常に難しいものです。その上、これらはプリプロセッサマクロのため、ほとんどのデバッガがマクロコードを入力できず、デバッグが困難です。