gccでのtemplateとfriend
Posted: 2010年3月24日(水) 11:17
お邪魔します。
自分は常にVC 9.0でコンパイルしていて、以下のクラスはコンパイルできていました。
1>error: a class-key must be used when declaring a friend
1>error: friend declaration does not name a class or function
...
いろいろなサイトを見た結果、次のような解決策がありました。が、すべてダメでした。
1. friend class super_type;
結果 1>error: using typedef-name 'Template<A>::super_type' after 'class'
2. friend class Template<A>::super_type;
結果 1>error: using typedef-name 'Template<A>::super_type' after 'class'
gccのバージョンは3.4.4、4.3.0どちらもダメでした。
解決するにはどうしたらよいでしょうか?
よろしくお願いします。
自分は常にVC 9.0でコンパイルしていて、以下のクラスはコンパイルできていました。
template< typename T > class Template{ typedef Template<T> super_type; ... }; class A : public Template<A>{ friend super_type; ... };しかし、gccでは以下のエラーではじかれます。
1>error: a class-key must be used when declaring a friend
1>error: friend declaration does not name a class or function
...
いろいろなサイトを見た結果、次のような解決策がありました。が、すべてダメでした。
1. friend class super_type;
結果 1>error: using typedef-name 'Template<A>::super_type' after 'class'
2. friend class Template<A>::super_type;
結果 1>error: using typedef-name 'Template<A>::super_type' after 'class'
gccのバージョンは3.4.4、4.3.0どちらもダメでした。
解決するにはどうしたらよいでしょうか?
よろしくお願いします。