2004/01/12 (月)

(/_;) std::vector<std::vector< typename T >>

VC++ 6.0 では、std::vector<std::vector< typename T >> がコンパイルエラー。2次元配列くらい作らせてくれてもいいじゃんかよぅ。

仕方ないので、std::vector< typename T > を typedef で宣言すると通るらしい。むぅ。

VC++ 7.x だと直ってるんだろうなぁ、きっと。

もっとも、こういう富豪的プログラムがどうかと言われると…微妙なんだよなぁ…。まだ何もしないプログラムなのに使用メモリ 7MB 超えてたりするしなぁ…。

低レベルな部分はもうちょっと低レベルらしく C 風味でコード書いたほうがいいのかも…。

本日のツッコミ(全3件) [ツッコミを入れる]
・・)ノvalda(1970/01/01 (木) 09:00)

std::vector<std::vector<T> > のように、>> の間にスペースをいっこかませれば通る気がするのです

・・)ノfetus(1970/01/01 (木) 09:00)

うわー、本当だ…。
std::vector<int> fuga; // ok.
// std::vector<std::vector<int>> hoge; // compile error
std::vector<std::vector<int> > piyo;

って、何ででしょう? C++ の仕様ですか?VC++ のバグですか?

というか、日記見てたんですね (;´Д`)

・・)ノfetus(1970/01/01 (木) 09:00)

gcc 先生(g++ (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5))に尋ねたところ、

> `>>' はテンプレートクラス名は `> >' とすべきです

警告どまりか…。gcc の親切なのか、作者の好みに反するのか……。
勝手に本を見させていただきます>valda 氏

[]