#include <iostream>
#include <string>
using namespace std;
struct base
{
string &s;
base(string &s1) : s(s1) {}
//base(base&&) = default;
};
struct base2
{
string &s;
base2(string &s1) : s(s1) {}
//base2(base2&&) = default;
};
struct derived
:base
,base2
{
derived(string &arg)
:base(arg)
,base2(arg)
{}
//derived(derived&&) = default;
//derived(const derived&) = delete;
};
int main() {
string s;
derived d1(s);
derived d2(std::move(d1));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGJhc2UKewoJc3RyaW5nICZzOwoJYmFzZShzdHJpbmcgJnMxKSA6IHMoczEpIHt9CgkvL2Jhc2UoYmFzZSYmKSA9IGRlZmF1bHQ7Cn07CgpzdHJ1Y3QgYmFzZTIKewoJc3RyaW5nICZzOwoJYmFzZTIoc3RyaW5nICZzMSkgOiBzKHMxKSB7fQoJLy9iYXNlMihiYXNlMiYmKSA9IGRlZmF1bHQ7Cn07CgpzdHJ1Y3QgZGVyaXZlZAogICAgOmJhc2UKICAgICxiYXNlMgp7CiAgICBkZXJpdmVkKHN0cmluZyAmYXJnKQogICAgICAgIDpiYXNlKGFyZykKICAgICAgICAsYmFzZTIoYXJnKQogICAge30KICAgIAogICAgLy9kZXJpdmVkKGRlcml2ZWQmJikgPSBkZWZhdWx0OwogICAgLy9kZXJpdmVkKGNvbnN0IGRlcml2ZWQmKSA9IGRlbGV0ZTsKfTsKCmludCBtYWluKCkgewoJc3RyaW5nIHM7CglkZXJpdmVkIGQxKHMpOwoJZGVyaXZlZCBkMihzdGQ6Om1vdmUoZDEpKTsKCXJldHVybiAwOwp9Cgo=