// RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s namespace Constructor { struct A { A(int); }; struct B { explicit B(int); }; B::B(int) { } struct C { void f(const A&); void f(const B&); }; void f(C c) { c.f(10); } } namespace Conversion { struct A { operator int(); explicit operator bool(); }; A::operator bool() { return false; } struct B { void f(int); void f(bool); }; void f(A a, B b) { b.f(a); } }