是否将一个具有空dtor的类在联合中显式调用它自己的类时称为成员的dtor?
这很难说,希望伪代码更直接。在此示例中,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;
};