`return_if (cond, val)` без обращения к макросам - PullRequest
0 голосов
/ 01 апреля 2020

Я бы хотел создать return_if(cond, val), не прибегая к макросам, для использования в нестатических c функциях-членах. Это должно быть эквивалентно

{
    //do some stuff on non-static data members here
    if (cond) return val; //and don't return otherwise
}

. Я не против использовать расширения G CC. Это будет часто встречаться в коде, поэтому я бы хотел немного.

1 Ответ

3 голосов
/ 01 апреля 2020

Вы не можете. Любой такой механизм, который не является макросом (который вы исключили) или новым ключевым словом (который вы не можете создать), обязательно будет иметь свою собственную область действия.

Даже если бы вы могли, вы не должны , Просто сделайте так, как делают все остальные, и используйте обычный, общепринятый, обычный способ:

if (cond)
{
   return val;
}

Если ваша функция имеет неуправляемое количество ветвей и return точек, возможно, пришло время пересмотреть дизайн вашей функции.

...