#include <iostream>
using namespace std;

class Foo
{
public:
	Foo() { }
	explicit Foo(const Foo&) { }
	Foo& operator = (const Foo& f) { return *this; }
};

int main()
{
	Foo a;
	Foo b(a);  // OK, copy ctor
	
	Foo c = a; // ERROR, copy ctor is explicit
	
	return 0;
}