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