// { dg-do assemble  }
// Copyright (C) 2000 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 7 Sep 2000 <nathan@codesourcery.com>

// Bug 512. Conversion operator functions in template_id's were always
// being looked up in global scope.

class C
{
public:

  template <typename T>
  void f () {}

  template<typename T>
  operator int ()
  { return 0;
  }
};

template void C::f <int>();

template C::operator int<float> ();

template C::operator int<double> ();

typedef int (C::* ptrmem_t) ();

template<ptrmem_t U, ptrmem_t V>
void foo ()
{
}

template void 
foo<&C::operator int<float>, &C::operator int<double> > ();
