Документирование кода метками
Насколько хорошей практикой является документирование кода метками? В каких ситуациях стоит её использовать?
К примеру, если надо акцентировать внимание в алгоритме:
special_case:
if (cond) {
...
return true;
}
usual_path:
return false;
Из плюсов:
- меньше символов;
- можно написать в начале строки перед кодом с более простым синтаксисом, чем
/* */.
Из минусов:
- только короткие фразы;
- предупреждения компиляторов.
Ответы (1 шт):
Довольно неожиданное предложение по использованию меток и как уже было упомянуто, такое действие будет порождать предупреждения компилятора со всеми вытекающими. Его придётся подавлять, чтобы не отвлекало внимание от других проблем, или вовсе не блокировало сборку при наличии опции "treat warning as an error". Но в таком случае этот тип предупреждений (пусть и редкий в наши дни) можно пропустить в другом коде, где "метки используются как метки, а не альтернатива комментариям".
Вообще, в современном C++ для указания на наиболее вероятную ветвь ветвления стоит использовать атрибуты [[likely]], [[unlikely]]. Атрибуты не только могут быть подспорьем документированию кода, но и дадут подсказку компилятору, чтобы сделать код более эффективным.
if (cond) [[unlikely]] {
...
return true;
}
return false;