#include <stdio.h>
class RtR {
public:
operator int() const
{
puts("operator int()");
return 42;
}
operator double() const
{
puts("operator double()");
return 3.14;
}
};
void f(int) {}
int main()
{
RtR x;
int i = x; // or int i = RtR();
double d = x;
f(x);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpjbGFzcyBSdFIgewpwdWJsaWM6CiAgICBvcGVyYXRvciBpbnQoKSBjb25zdAogICAgewogICAgICAgIHB1dHMoIm9wZXJhdG9yIGludCgpIik7CiAgICAgICAgcmV0dXJuIDQyOwogICAgfQogICAgb3BlcmF0b3IgZG91YmxlKCkgY29uc3QKICAgIHsKICAgICAgICBwdXRzKCJvcGVyYXRvciBkb3VibGUoKSIpOwogICAgICAgIHJldHVybiAzLjE0OwogICAgfQp9OwoKdm9pZCBmKGludCkge30KCmludCBtYWluKCkKewogICAgUnRSIHg7CiAgICBpbnQgaSA9IHg7IC8vIG9yIGludCBpID0gUnRSKCk7CiAgICBkb3VibGUgZCA9IHg7CiAgICBmKHgpOwp9