Оператор return 2 * 3 + 1, 1 + 5;
возвращает значение 6 .
Это хитрость оператора запятой в C ++. Подробнее об этом можно прочитать здесь: https://en.cppreference.com/w/cpp/language/operator_other
Оператор запятой в основном представляет собой список выражений, разделенных запятыми, они будут оцениваться слева направо , а результат последнего элемента будет рассматриваться как результат целого оператора запятой .
Вот простой пример, демонстрирующий, как оператор запятой работает.
int foo() {
int i = 1;
return i += 2, i++, i + 5; // This is a comma operator with three items
// i += 2 will be evaluated first, then i == 3
// i++ will be evaluated second, then i == 4
// i + 5 will be evaluate last, and the result is 9
// the result of the last item is returned by the return statement
}
int main() {
std::cout << foo();
return 0;
}
Этот код печатает 9.