Je travaille actuellement sur la programmation d'un allocateur de pool. Ma question se résume au code suivant:Est-ce que la norme C++ 17 garantit que l'adresse d'une union est la même que l'adresse de ses membres?
template <typename T>
union myUnion {
T data;
myUnion<T>* nextUnion;
};
void someFunction(){
myUnion<T> mu;
T* t = new (std::addressof(mu.data)) T();
//some code
myUnion<T>* mu2 = reinterpret_cast<myUnion<T>*>(t);
}
L'adresse de mu alsways est-elle identique à mu2?
Quelle norme? –
Quel serait le but de l'union autrement? –
@MadPhysicist: Presque tout le reste à ce sujet. –