Рассмотрим следующий надуманный пример:
void HandleThat() { ... }
void HandleThis()
{
if (That) return HandleThat();
...
}
Этот код работает просто отлично, и я вполне уверен, что он корректен по спецификации, но я (возможно, сам по себе) рассматриваю этот необычный стиль, так как кажется, что вызов возвращает результат функции, несмотря на то, функции являются прототипами, чтобы быть недействительными.
Как правило, я ожидаю увидеть:
if (That) {HandleThat(); return;}
что, я чувствую, не оставляет двусмысленности относительно того, что происходит.
ТАК сообщество, могу ли я узнать ваше мнение о том, является ли стиль кодирования возврата-пустоты запутанным или проблематичным? У этого есть чувство идиомы; я должен использовать это или избежать этого?
Обычно я бы стремился к ясности и использовал второй стиль. С другой стороны, в первой форме есть аккуратность, которая меня несколько привлекает.