#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;
}
