Как и во многих других вещах, важно не перепутать правило с целью.Цель отступа - сделать код более понятным и легким для чтения, предоставляя дополнительную визуальную подсказку о том, что и где находится.Теперь, в отдельных случаях, которые вы упоминаете, вместе с namespace
s, во многих случаях дополнительные отступы не помогают в удобочитаемости.case
s в переключателе можно понимать как if-else
s, где вы не добавили бы дополнительный отступ.Это разделители блоков , подобные фигурным скобкам.
switch ( var ) {
case 1: // if ( var == 1 ) {
code;
case 2: // } else if ( var == 2 ) {
code;
}
На уровне класса модификаторы доступа можно рассматривать как разделители блоков на том же уровне, что и класс.Добавление дополнительного уровня отступа не делает код более понятным:
class test {
public:
void foo();
private:
int member;
};
То же самое происходит с пространствами имен, где некоторые люди избегают делать отступы для всего уровня пространства имен.Во всех трех случаях нет явного преимущества в добавлении дополнительного отступа, и если вы придерживаетесь коротких строк кода (80/100 символов) и достаточно больших уровней отступа (8 или даже 4 символа), то может быть преимущество в том, чтобы не делать отступы.
Лично я никогда не делаю отступ для case
или модификаторов доступа, в случае namespace
s, это зависит ... a namespace
, охватывающий весь исходный файл, скорее всего, не будет иметь отступ,в то время как пространства имен, которые принимают только часть исходного файла, будут с отступом - логическое обоснование состоит в том, что в первом случае это не добавляет фактического значения, в то время как во втором это делает.