#include <string>
#include <iostream>
using namespace std;
class foo
{
public:
foo() {}
foo(long long) {}
foo(const string &) {}
operator long long()const { cout << "tutaj2\n"; return 666; }
explicit operator string()const { return "666"; }
};
int main()
{
foo a;
string s(a); // string s=a; to przeżytek który i tak zostanie potraktowany jako string s(a);
cout << "tutaj1\n";
s = a;
cout << "tutaj3\n";
long long b = a;
b = a;
}
ICAgICAgICAjaW5jbHVkZSA8c3RyaW5nPgogICAgICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgICAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOwogICAgIAogICAgICAgIGNsYXNzIGZvbwogICAgICAgICAgewogICAgICAgICAgIHB1YmxpYzoKICAgICAgICAgICBmb28oKSB7fQogICAgICAgICAgIGZvbyhsb25nIGxvbmcpIHt9CiAgICAgICAgICAgZm9vKGNvbnN0IHN0cmluZyAmKSB7fQogICAgICAgICAgIG9wZXJhdG9yIGxvbmcgbG9uZygpY29uc3QgeyBjb3V0IDw8ICJ0dXRhajJcbiI7IHJldHVybiA2NjY7IH0KICAgICAgICAgICBleHBsaWNpdCBvcGVyYXRvciBzdHJpbmcoKWNvbnN0IHsgIHJldHVybiAiNjY2IjsgfQogICAgICAgICAgfTsKICAgICAKICAgICAgICBpbnQgbWFpbigpCiAgICAgICAgICB7CiAgICAJCWZvbyBhOwogICAgIAogICAgCQlzdHJpbmcgcyhhKTsgLy8gc3RyaW5nIHM9YTsgdG8gcHJ6ZcW8eXRlayBrdMOzcnkgaSB0YWsgem9zdGFuaWUgcG90cmFrdG93YW55IGpha28gc3RyaW5nIHMoYSk7CiAgICAJCWNvdXQgPDwgInR1dGFqMVxuIjsKICAgIAkJcyA9IGE7CiAgICAJCWNvdXQgPDwgInR1dGFqM1xuIjsKICAgIAkJCiAgICAJCWxvbmcgbG9uZyBiID0gYTsKICAgIAkJYiA9IGE7CiAgICAgICAgICB9