« VC2003のマクロエクスプローラーの挙動 | トップページ | 自己言及型テンプレート »

2004年2月14日 (土)

クラステンプレートのテンプレートメンバ関数。

#include <windows.h>

template< typename T >
class	A
{
public:
	template< typename U >
	void	foo( A<U> pU );
};
template< typename T >
template< typename U >
inline void	A<T>::foo( A<U> pU )
{
	int t = 0;
}


int __stdcall	WinMain( HINSTANCE, HINSTANCE, LPSTR, int )
{
	A<int>	a;
	A<char>().foo( a );
	return 0;
}
俺は今まで


template< typename T, typename U >
inline void	A<T>::foo( A<U> pU )
{
	int t = 0;
}
こう書くもんだと思ってたんですが実は


template< typename T >
template< typename U >
inline void	A<T>::foo( A<U> pU )
{
	int t = 0;
}
こうらしいですね。

|

« VC2003のマクロエクスプローラーの挙動 | トップページ | 自己言及型テンプレート »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« VC2003のマクロエクスプローラーの挙動 | トップページ | 自己言及型テンプレート »