// Test for explicit conversion ops in various conversion situations.
// { dg-do compile { target c++11 } }

typedef void (*pfn)();

struct A
{
  explicit operator int() const;
  explicit operator pfn() const;
};

int main()
{
  A a;
  int i = a;			// { dg-error "" }
  const int &ir = a;		// { dg-error "" }
  a();				// { dg-error "" }
  a + 1;			// { dg-message "" } (error and note on same line)

  int j (a);
  (int)a;
  static_cast<int>(a);
}

struct B
{
  int i;
  B(const A& a): i(a) { }
};
