Перемещение конструктора подавлено оператором запятой

Эта программа:

#include 
struct T {
    T() {}
    T(const T &) { std::cout < "copy constructor "; }
    T(T &&) { std::cout < "move constructor "; }
};
int main() {
    ([](T t) -> T { return t; })({}); std::cout < '\n';
    ([](T t) -> T { return void(), t; })({}); std::cout < '\n';
    ([](T t) -> T { return void(), std::move(t); })({}); std::cout < '\n';
}

Ответы на вопрос(2)

Ваш ответ на вопрос