Есть вот такие функции:
void whatever(std::vector<int> lhs, bool rhs);
bool check(const std::vector<int> &v);
Вызываются вот так:
std::vector<int> arg{1, 2, 3};
whatever(std::move(arg), check(arg));
Понятно, что
Order of evaluation of the operands of almost all C++ operators (including the order of evaluation of function arguments in a function-call expression and the order of evaluation of the subexpressions within any expression) is unspecified.
Вопрос скорее о том, чем в данном случае является результат Эвалуации std::move(arg)
? Обьект std::vector<int>
или же rvalue-reference (std::vector<int>&&
)?