, если был способ вернуть целочисленный ввод из функции напрямую, не сохраняя его в переменной.
Нет. Все стандартные интерфейсы ввода принимают объектный аргумент, который они модифицируют, а не возвращают результирующее значение 1 .
Возможная причина такой конструкции состоит в том, что очень типично плохой ввод. Единственный способ избежать возврата int
из функции, объявленной как return int
, - это выбросить (или завершить процесс, но это было бы глупо). И ошибка ввода, возможно, считается настолько неисключительной, что использование исключений для потока управления обработки ввода может считаться неуместным. Это всего лишь мои рассуждения, а не авторитетное объяснение выбора дизайна.
Если вы исправите свой function
, чтобы он был правильным, с необходимой переменной и проверкой ошибок, то вы можете использовать эту функцию для сделайте именно это:
return function();
1 За исключением std::istream::get()
и соответствующих C style std::getc
и std::fgetc
, которые вы можете использовать для извлечения один символ, который они возвращают напрямую.