mercredi 26 février 2020

Avoid field zero initialization in C++14

Since C++14 (it might be C++11, i'm not sure), zero initialization happens on class construction on certain conditions, depending on the way the constructor is called. Is there a way to ensure a raw value field (let's say a pointer) is never zero initialized ?

I guess not because it seems that zero initialization happens at the class level and not at the field level (surely a kind of memset(this, 0, sizeof(TheClass))), but I'm still hoping there is way, a hack, something...

The idea is to be able to initialize a field before a placement new is called so that that member is available during construction time.

Aucun commentaire:

Enregistrer un commentaire