template< typename T > struct Test
{
  template< typename U > explicit Test( const Test< U >& other ){}
};

int main()
{
  Test< int > a( Test< int >() ); // warning C4930: 'Test<T> a(Test<T> (__cdecl *)(void))': プロトタイプされている関数が呼び出されませんでした (変数の定義が意図されていますか?)
  return 0;
}

という警告が出るのですが何故ですか