Нюанс c/c++ про возвращаемое значение функции
Почему этот код не вызывает ошибку? Если правильно понимаю даже не смотря на то, что функция возвращает значение, оно просто будет отброшено,верно?
Источник: Stack Overflow на русском
Почему этот код не вызывает ошибку? Если правильно понимаю даже не смотря на то, что функция возвращает значение, оно просто будет отброшено,верно?
Возвращаемое значение имеет тип временного, а временное значение не обязательно должно быть связано с чем-нибудь.
Разрешается даже использовать такие записи :
13 ; // просто число
2+2 ; // 4 - временное число
f(a); // просто результат вызова функции
f ; // просто указатель
и эти временные значения просто игнорируются.
В стандарте C23 , C++17 появилась запись [[nodiscard]] int f(int){..}
для вывода предупреждений, что возвращаемое значение не используется.