Нюанс c/c++ про возвращаемое значение функции

Рейтинг: -3Ответов: 1Опубликовано: 04.07.2023

введите сюда описание изображения

Почему этот код не вызывает ошибку? Если правильно понимаю даже не смотря на то, что функция возвращает значение, оно просто будет отброшено,верно?

Ответы

▲ 2

Возвращаемое значение имеет тип временного, а временное значение не обязательно должно быть связано с чем-нибудь.
Разрешается даже использовать такие записи :

  13 ; // просто число
  2+2 ; // 4 - временное число
  f(a); // просто результат вызова функции
  f ; // просто указатель

и эти временные значения просто игнорируются.

В стандарте C23 , C++17 появилась запись [[nodiscard]] int f(int){..} для вывода предупреждений, что возвращаемое значение не используется.