C++ bitset は使えない2011年01月19日 12時00分48秒

C++ の bitset が使えないと言われる理由はテンプレートクラスだからの様だ。定数を取るテンプレートの為、宣言時に大きさが固定されてしまう。

丁度ビットマップが使いたくなったので、ポインタ型で使って動的に大きさを決めようと思った。

いざ、使おうとすると大きさが固定になるので、動的には決められない。しかし、利用箇所によって大きさがまちまちで、大きく異なるので簡単には決め打ちできないのだ。

提供する関数自体は便利そうだと思ってはいたが、実際に使おうとすると思ったようにオブジェクトを生成できなかった。

同じテンプレートクラスを二度基底クラスにしてみる2010年06月06日 11時41分19秒

今回もまた、同じクラスを基底クラスとして二回指定してみる。すこし違うところはテンプレートクラスだと言うこと。今回のはコンパイルは通るはずだ。


% cat b.cpp 
template
class A
{
};

class B: public A<1>, public A<2>
{
};

int main()
{
}
sun% CC b.cpp
sun%
frebsd% g++ b.cpp
freebsd%
ibm% xlC_r a.cpp
ibm%
hp% aCC a.cpp
hp%

全てのプラットフォームで成功。

前回