Sto guardando un codice legacy e ho trovato x=new(Foo);
(nota la parentesi attorno al tipo fornito). Ho provato le varianti e sembra essere lo stesso di x=new Foo;
"x = new (Foo)" è uguale a "x = new Foo" per un Foo arbitrario?
Foo è una struttura dati non POD. Qualche programma di perdita di memoria esterna sta segnalando la linea - sta allocando memoria per un parametro di uscita CORBA, quindi il chiamante dovrebbe occuparsi dell'eliminazione, ma questo è un problema separato con molti livelli di riferimento indiretto.
La mia analisi è corretta ed è accettabile?
Questo è quello che ho pensato troppo, ma si scopre che deve essere più sottile di quello. Ad esempio, il seguente codice non viene compilato: '(int) main() {return 0; } '. –
Non è vero, le parentesi intorno ai tipi non sono generalmente consentite. – zch
@zch Quindi, c'è un breve elenco di parentesi * quando * sono in arrivo? –