#include <cstdio>
struct custom;
struct converted {
operator custom();
};
struct custom {
custom(int i): i(i) { }
struct converted : ::converted {};
friend inline custom operator + (const custom &lhs, const custom &rhs) {
return lhs.i + rhs.i;
}
private:
int i;
};
inline converted::operator custom() {
return custom(2);
}
int main()
{
custom::converted c;
printf("%d\n", c + c);
return 0;
}