Ao fazer uma revisão de código para um colega hoje, vi uma coisa peculiar. Ele havia cercado seu novo código com chaves assim:
Constructor::Constructor()
{
existing code
{
New code: do some new fancy stuff here
}
existing code
}
Qual é o resultado disso, se houver? Qual poderia ser o motivo para fazer isso? De onde vem esse hábito?
Editar:
Com base na entrada e em algumas perguntas abaixo, sinto que tenho que adicionar algumas à pergunta, mesmo que já tenha marcado uma resposta.
O ambiente é dispositivos incorporados. Há muito código C herdado envolto em roupas C ++. Muitos desenvolvedores de C ++ se tornaram C ++.
Não há seções críticas nesta parte do código. Eu só vi isso nesta parte do código. Não há grandes alocações de memória, apenas alguns sinalizadores configurados e alguns ajustes.
O código cercado por chaves é algo como:
{
bool isInit;
(void)isStillInInitMode(&isInit);
if (isInit) {
return isInit;
}
}
(Não se importe com o código, fique com os chavetas ...;)) Após os chavetas, há mais alguns ajustes, verificação de estado e sinalização básica.
Conversei com o cara e sua motivação era limitar o escopo de variáveis, conflitos de nomes e algumas outras que eu realmente não conseguia entender.
Do meu ponto de vista, isso parece um pouco estranho e eu não acho que o aparelho esteja no nosso código. Vi alguns bons exemplos em todas as respostas sobre por que alguém poderia colocar código entre chaves, mas você não deveria separar o código em métodos?