Большинство вопросов по SO относятся к не пустым типам возврата, но у нас идет пламенная война по этому поводу, и мы хотели выяснить, что думает сообщество.
void DoSomething()
{
return; // Is this needed?
}
Из этого обсуждения похоже, что проблема неопределенного поведения связана с функциями не возвращаемых типов. Имеют ли типы возврата void такое же неопределенное поведение, или это только в функции возврата без void?
Меня беспокоит то, что это просто станет ужасным стилем кодирования, который ничем не оправдан. Однако, если это также неопределенное поведение для функций возврата void, тогда я вижу необходимость добавить его в стандарт кодирования. Если ответ для C и C ++ отличается, это тоже нормально.
§ 6.6.3 Оператор возврата
2 Оператор возврата без выражения может использоваться только в
функции, которые не возвращают значение, то есть функцию с
возвращаемый тип void, contrsuctor (12.1) или деструктор (12.4).
§ 6.6.3 / 2
Вытекает из конца функции
эквивалентно возврату без значения;
это приводит к неопределенному поведению в
функция, возвращающая значение.