我想知道 Boost Variant 和union
c/c++ 中的数据类型之间有什么区别。我知道union
数据类型占用相同的内存位置,并且内存区域中最大的数据类型占用所使用的内存总量,例如
union space {
char CHAR;
float FLOAT;
int INTEGER;
}S;
应该占用 4 个字节的内存,因为int
和float
是最大且相等的大小。union
Boost Variant 和数据类型在其他方面是否存在异同?我也知道 Boost Variant 可以采用任何数据类型,并且它允许数据类型“多态性”(如果我误用了 OOP 主题词,请纠正我)。因此,联合数据类型也是一种多态性吗?