テンプレートを使ったコードをビルドしようとして???ってなってる
コメントで返信するには、的を外している上に、長くなったので、こっちで。
id:E_Mattsan さんから頂いたコメントを読んだ後、おぉあのデフォルト値を与える行のコンパイルエラーはVC特有なのか、と愚かな誤解をしまして・・・。VCで実行していたコードをFedoraに持っていき、gccでビルドを試みていました(何をしているのか・・・)
gccでコンパイルすると、利用する型に合わせたコードがテンプレートから生成されている最中に、undefinedのエラーが出まくりです。なんだこりゃ。
VCとgccコンパイル時の違いメモ
その1
VCではこれで通るけど、
template<class T, class A = allocator1<T>> class vector1 {
// ...
}
gccではこうしないとダメ。
template<class T, class A = allocator1<T> > class vector1 {
// ...
}
閉じカッコが間にスペースを挟まずに続くと、operator>>とみなされるのでしょうか?
その2
関数の宣言部と定義部の両方で、テンプレート引数にデフォルト値を与えると、エラーになる。宣言部だけにする。
↑が、E_Mattsanさんご指摘のお話ですね。勉強になりました。。。