A POD struct
può essere zero-inizializzati in C++ 11 come segue:Zero-reinizializzazione una struct in C++
SomeStruct s{};
Tuttavia, cosa faccio se ho già un'istanza della struct e vuoi inizializzarlo di nuovo a zero? Quanto segue sembra funzionare:
s = {};
Qualcuno può indicare la standardese rilevante? Presumo questo è ciò che sta accadendo:
- Viene creata una nuova istanza inizializzata a zero.
- La nuova istanza viene assegnata all'istanza esistente, richiamando l'operatore di assegnazione implicita.
Non conosco lo standard, ma - alcuni di questi potrebbero essere ottimizzati. Infatti, se non usi gli 0, forse tutto questo è ottimizzato. – einpoklum
C'è una regola esplicita in là che consente le parentesi sulla mano destra di un compito. La tua ipotesi è praticamente corretta. – chris
Non esiste una "reinizializzazione". Inizializzi qualcosa una volta. Solo una volta. Quello che stai facendo è un incarico ed è molto diverso in modi sottili e non così sottili. –