1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include<memory> #include<stdio.h> #include<map> #include<set> #include<string> using namespace std; struct StubClass { weak_ptr<string> b; int c; friend bool operator==(StubClass x,StubClass y); friend bool operator<(StubClass x,StubClass y); StubClass(weak_ptr<string> x):b(x){c=5;} }; bool operator<(StubClass d,StubClass c) { std::shared_ptr<std::string> a = d.b.lock(); std::shared_ptr<std::string> b = c.b.lock(); if (!a) return true; if (!b) return false; return *a < *b; } int main() { shared_ptr<string> spPtr(new string("Hello")); weak_ptr<string> wpPtr(spPtr); StubClass hello(wpPtr); set<StubClass> helloSet; helloSet.insert(hello); if(helloSet.find(StubClass(wpPtr))!=helloSet.end()) printf("YAYA"); else puts("Bye"); } |
I2luY2x1ZGU8bWVtb3J5PgojaW5jbHVkZTxzdGRpby5oPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPHNldD4KI2luY2x1ZGU8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgU3R1YkNsYXNzCgl7Cgl3ZWFrX3B0cjxzdHJpbmc+IGI7CglpbnQgYzsKCWZyaWVuZCBib29sIG9wZXJhdG9yPT0oU3R1YkNsYXNzIHgsU3R1YkNsYXNzIHkpOwoJZnJpZW5kIGJvb2wgb3BlcmF0b3I8KFN0dWJDbGFzcyB4LFN0dWJDbGFzcyB5KTsKCVN0dWJDbGFzcyh3ZWFrX3B0cjxzdHJpbmc+IHgpOmIoeCl7Yz01O30JCgl9Owpib29sIG9wZXJhdG9yPChTdHViQ2xhc3MgZCxTdHViQ2xhc3MgYykgCnsKICAgIHN0ZDo6c2hhcmVkX3B0cjxzdGQ6OnN0cmluZz4gYSA9IGQuYi5sb2NrKCk7CiAgICBzdGQ6OnNoYXJlZF9wdHI8c3RkOjpzdHJpbmc+IGIgPSBjLmIubG9jaygpOwoKICAgIGlmICghYSkKICAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICBpZiAoIWIpCiAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgIHJldHVybiAqYSA8ICpiOwp9CgoKaW50IG1haW4oKQp7CnNoYXJlZF9wdHI8c3RyaW5nPiBzcFB0cihuZXcgc3RyaW5nKCJIZWxsbyIpKTsKd2Vha19wdHI8c3RyaW5nPiB3cFB0cihzcFB0cik7ClN0dWJDbGFzcyBoZWxsbyh3cFB0cik7CnNldDxTdHViQ2xhc3M+IGhlbGxvU2V0OwpoZWxsb1NldC5pbnNlcnQoaGVsbG8pOwppZihoZWxsb1NldC5maW5kKFN0dWJDbGFzcyh3cFB0cikpIT1oZWxsb1NldC5lbmQoKSkgcHJpbnRmKCJZQVlBIik7CmVsc2UgcHV0cygiQnllIik7Cn0K
-
upload with new input
-
result: Success time: 0s memory: 3068 kB returned value: 0
YAYA


