Nel mio codice, a volte c'è una lunga funzione, per evitare di incasinare le variabili locali, vorrei usare un paio di parentesi per abbracciare i dettagli in modo che le variabili locali non siano visibili al resto del codice, ad esempio:
bool pricing_deals()
{
  //prepare deal type lookup table
  vector<DealType> deal_types; // deal type lookup table
  {
    vector<DealType> deal_types_TRF; 
    vector<DealType> deal_types_DCI; 
    ...
    // code that prepare deal_types by merging deal_types_TRF and deal_types_DCI etc
  }
  // from now on deal_types_TRF and deal_types_DCI are invisible
  //prepare ccy pair lookup table
  vector<CcyPair> ccy_pairs; // ccy pair lookup table
  {
    // code that prepare ccy_pairs;
  }
  // from now on local variables preparing ccy_pairs are invisible
  // real computation starts
  ...
}
Mi chiedo se questa è una buona pratica, o ci sono altri modi per farlo?
P.S. Preferisco non suddividerlo in funzioni più piccole in questo caso, poiché la sub-logica non è suscettibile di essere riutilizzata da altri, e il refactoring causerà il passaggio di molti parametri, il che aumenterebbe la complessità.