#include <iostream>
class Foo
{
public:
Foo() : x(0) {}
operator int () { return x; }
private:
int x;
};
void testFoo(Foo& foo)
{
std::cout << "In testFoo(Foo& foo)\n";
}
void testFoo(int x)
{
std::cout << "In testFoo(int x)\n";
}
int main()
{
Foo f;
testFoo(f);
testFoo((int)f);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgRm9vCnsKICAgcHVibGljOgogICAgICBGb28oKSA6IHgoMCkge30KICAgICAgb3BlcmF0b3IgaW50ICgpIHsgcmV0dXJuIHg7IH0KICAgcHJpdmF0ZToKICAgICAgaW50IHg7Cn07Cgp2b2lkIHRlc3RGb28oRm9vJiBmb28pCnsKICAgc3RkOjpjb3V0IDw8ICJJbiB0ZXN0Rm9vKEZvbyYgZm9vKVxuIjsKfQoKdm9pZCB0ZXN0Rm9vKGludCB4KQp7CiAgIHN0ZDo6Y291dCA8PCAiSW4gdGVzdEZvbyhpbnQgeClcbiI7Cn0KCmludCBtYWluKCkKewogICBGb28gZjsKICAgdGVzdEZvbyhmKTsKICAgdGVzdEZvbygoaW50KWYpOwp9Cg==