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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #include <string> #include <type_traits> struct Wrapper { std::string value; Wrapper() { } Wrapper( Wrapper const& rhs ) :value(rhs.value) { } Wrapper( Wrapper&& rhs ) :value(std::move(rhs.value)) { } Wrapper& operator=( Wrapper const& rhs ) { value = rhs.value; return *this; } Wrapper& operator=( Wrapper&& rhs ) { value = std::move(rhs.value); return *this; } template <typename StringT> Wrapper(StringT&& value, typename std::enable_if< !std::is_same< StringT, Wrapper& >::value >::type* = 0) : value(std::forward<StringT>(value)) { } }; int main() { Wrapper w0; std::string a; Wrapper w1(a); Wrapper w2(w0); } |
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgoKc3RydWN0IFdyYXBwZXIKewogIHN0ZDo6c3RyaW5nIHZhbHVlOwoKICBXcmFwcGVyKCkKICB7CiAgfQoKICBXcmFwcGVyKCBXcmFwcGVyIGNvbnN0JiByaHMgKQogICAgOnZhbHVlKHJocy52YWx1ZSkKICB7CiAgfQoKICBXcmFwcGVyKCBXcmFwcGVyJiYgcmhzICkKICAgIDp2YWx1ZShzdGQ6Om1vdmUocmhzLnZhbHVlKSkKICB7CiAgfQoKICBXcmFwcGVyJiBvcGVyYXRvcj0oIFdyYXBwZXIgY29uc3QmIHJocyApCiAgewogICAgdmFsdWUgPSByaHMudmFsdWU7CiAgICByZXR1cm4gKnRoaXM7CiAgfQoKICBXcmFwcGVyJiBvcGVyYXRvcj0oIFdyYXBwZXImJiByaHMgKQogIHsKICAgIHZhbHVlID0gc3RkOjptb3ZlKHJocy52YWx1ZSk7CiAgICByZXR1cm4gKnRoaXM7CiAgfQoKCiAgdGVtcGxhdGUgPHR5cGVuYW1lIFN0cmluZ1Q+CiAgV3JhcHBlcihTdHJpbmdUJiYgdmFsdWUsCiAgICB0eXBlbmFtZSBzdGQ6OmVuYWJsZV9pZjwKICAgICAgIXN0ZDo6aXNfc2FtZTwKICAgICAgICBTdHJpbmdULAogICAgICAgIFdyYXBwZXImCiAgICAgID46OnZhbHVlCiAgICA+Ojp0eXBlKiA9IDApCiAgICA6IHZhbHVlKHN0ZDo6Zm9yd2FyZDxTdHJpbmdUPih2YWx1ZSkpCiAgeyB9Cn07CgppbnQgbWFpbigpCnsKICBXcmFwcGVyIHcwOwogIHN0ZDo6c3RyaW5nIGE7CiAgCiAgV3JhcHBlciB3MShhKTsKICBXcmFwcGVyIHcyKHcwKTsKfQ==
-
upload with new input
-
result: Success time: 0s memory: 2824 kB returned value: 0


