Sostituto di Whit ... do del Delphi

Intanto auguro una buona giornata a tutti. Mi chiamo Giorgio e utilizzo con soddisfazione Arduino per implementare il software che gestisce diversi integrati a Radiofrequenza: AD9959; ADF4351;.. ecc
Desideravo conoscere se esiste il sostituto in C++ di questo codice Delphi:

In Delphi posso scrivere entrambi i codici equivalenti (inventati per dare l'idea):
1- Eprom.Scrivi(a);
Eprom.Scrivi(b);
oppure specie se le righe sono molte:

2- with Eprom do
begin
Scrivi(a);
Scrivi(b);
end;

In c++ di Arduino esiste una scrittura analoga al "with ... do" del Delphi?

Grazie dell'eventuale risposta.

Giorgio Padoan

No. Non c'e'

Al limite se cerchi con google troverai degli "escamotage" ma nulla di veramente utile.

nid69ita:
Al limite se cerchi con google troverai degli "escamotage" ma nulla di veramente utile.

Quel with, che è come creare un micro namespace locale valido per un solo nome, l'ho visto solo in Delphi (ai tempi di Delphi 1.0). Adesso ritengo che sia meglio per la leggibilità usare sempre nomi/percorsi espliciti (o come si dice "parlanti"), il che mi ricorda il punto 2 dello zen di Python: «Explicit is better than implicit»

@God Member esisteva anche in vb6 e precedenti :slight_smile:
Non è molto "sensato" programmo ad oggetti e voglio evitare di scrivere il nome oggetto o classe...

Il problema risulta essere che nel linguaggio arduino non esiste.

Domanda da uno che non conosce Delphi se non per oravoli dal nome simile: cosa farebbe quel comando?

Come nell'esempio 2 di padoang evita di scrivere il nome Eprom nelle righe successive. Può avere una sua utilità in caso di nomi composti di oggetti molto lunghi come: modulo.funzione.attributi.scrittura.esegui

La cosa più simile che mi viene in mente tu possa fare è usare #de fine per accorciare. #define funziona come un “cerca e sostituisci” per tutto il testo del programma. Sintassi:
#define terminedacercare termine da sostituire
Il problema è che funziona per tutto il programma, ergo non puoi più usare quel nome se non per farlo sostituire da quello che sostituisce . Tarocca pesantemente, ma il risultato finale è simile

#define Scrivi Serial.print
......
Scrivi ("testo");//vale
Scrivi (valore);//vale
Scriviln (...);//NON vale

Vi ringrazio. il With..do l'ho usato parecchio in Delphi specie se richiami in successione molti campi dell'oggetto.
Giorgio Padoan