#include <iostream>
struct B;
struct A
{
operator B();
};
struct B
{
B(A const &) { std::cout << "conversion constructor" << std::endl; }
};
A::operator B() { std::cout << "conversion operator" << std::endl; }
int main()
{
A a;
B b = a;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEI7CgpzdHJ1Y3QgQQp7CiAgb3BlcmF0b3IgQigpOyAgCn07CgpzdHJ1Y3QgQgp7CiAgICBCKEEgY29uc3QgJikgeyBzdGQ6OmNvdXQgPDwgImNvbnZlcnNpb24gY29uc3RydWN0b3IiIDw8IHN0ZDo6ZW5kbDsgfQp9OwoKQTo6b3BlcmF0b3IgQigpIHsgc3RkOjpjb3V0IDw8ICJjb252ZXJzaW9uIG9wZXJhdG9yIiA8PCBzdGQ6OmVuZGw7IH0KCmludCBtYWluKCkgCnsKICAgIEEgYTsKICAgIEIgYiA9IGE7CiAgICByZXR1cm4gMDsKfQ==