Visual C++ 6.0 って、メンバテンプレート使えないのでしょうか?

template <class U> struct hoge {
    template <class T> void foo(T a);
};

template <class U> template <class T> void hoge<U>::foo(T a) {
    std::cout<<typeid(T).name()<<std::endl;
    std::cout<<typeid(U).name()<<std::endl;
}

int main(){
    hoge<int> h;
    h.foo("文字 ");
}

BCC55 では問題なく通るのですが、
VC6.0 だと、関数テンプレート定義の部分で、
    error C2059: 構文エラー : ''template<''
となってしまいます。

また、

struct hoge {
    template <class T> void foo(T a);
};

template <class T> void hoge::foo(T a) {
    std::cout<<typeid(T).name()<<std::endl;
}

int main(){
    hoge h;
    h.foo("文字 ");
}

このような場合では、
    error C2893: 関数テンプレート 'void __thiscall hoge::foo(T)' の特定に失敗しました
になります。


マイクロソフトの VC のページには、
>● Visual C++ 6.0 ではメンバ テンプレートがサポートされていますか ? 
>はい。メンバ テンプレートは、Visual C++ 6.0 と Visual C++ 5.0 でサポートされています。

とかかれているのですが……。


VC7 だとうまくいくのでしょうか?
(VC + Intelのコンパイラの組み合わせだと多分ばっちりでしょうね)



Re: [vcpp 0058611]
かもめsan>Realese版では何の不都合も無いはずなので、堂々と無視しちゃってください
  言い切っちゃいました(笑)
  堂々と無視する自信がつきました (^^;;;

                                                                                        みかり☆でした