With guaranteed copy elision (C++17), how does the language standard model a prvalue returned by value, and what does this imply about the named type's special members?
struct T {
T() = default;
T(const T&) = delete;
T(T&&) = delete;
};
T make() { return T{}; } // legal in C++17?