#include <iostream>
#include <ios>
#include <string>
#include <type_traits>
struct value
{
~value() = default;
std::string s;
};
int main()
{
std::cout << std::boolalpha;
std::cout << std::is_move_constructible<value>::value << '\n';
std::cout << std::is_move_assignable<value>::value << '\n';
std::cout << std::is_move_constructible<std::string>::value << '\n';
std::cout << std::is_move_assignable<std::string>::value << '\n';
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9zPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CgpzdHJ1Y3QgdmFsdWUKewogICAgfnZhbHVlKCkgPSBkZWZhdWx0OwogICAgc3RkOjpzdHJpbmcgczsKfTsKCmludCBtYWluKCkKewogICAgc3RkOjpjb3V0IDw8IHN0ZDo6Ym9vbGFscGhhOwogICAgc3RkOjpjb3V0IDw8IHN0ZDo6aXNfbW92ZV9jb25zdHJ1Y3RpYmxlPHZhbHVlPjo6dmFsdWUgPDwgJ1xuJzsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmlzX21vdmVfYXNzaWduYWJsZTx2YWx1ZT46OnZhbHVlICAgIDw8ICdcbic7CgogICAgc3RkOjpjb3V0IDw8IHN0ZDo6aXNfbW92ZV9jb25zdHJ1Y3RpYmxlPHN0ZDo6c3RyaW5nPjo6dmFsdWUgPDwgJ1xuJzsKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmlzX21vdmVfYXNzaWduYWJsZTxzdGQ6OnN0cmluZz46OnZhbHVlICAgIDw8ICdcbic7CgogICAgcmV0dXJuIDA7Cn0K