Будет ли класс с пустым dtor вызывать dtors своего члена, когда его собственный явно вызывается из объединения?
Это довольно сложно, надеюсь, псевдо-код более понятен. В этом примере будет Texture::~Texture()
вызывать source.bitmap.pixels.~vector()
неявно?
struct Bitmap{
~Bitmap(){} // empty dtor
// members
std::vector<uint8> pixels; // <-- will this dealloc when ~Bitmap() is called manually?
};
struct Texture{
~Texture(){
// assume sourceType is 1
switch(sourceType){
case 1:
source.bitmap.~Bitmap();
break;
}
}
// members
uint sourceType;
union Source{
Source(){}
~Source(){}
// members
Bitmap bitmap;
}source;
};