Мне интересно, каковы различия между вариантом Boost и типом данных union в c/С++. Я знаю, что тип данных union занимает одну и ту же ячейку памяти, а самый большой тип данных в области памяти занимает общий объем используемой памяти, например.
union space {
char CHAR;
float FLOAT;
int INTEGER;
}S;
должен занимать 4 байта памяти, так как int и float являются наибольшим и равным размером. Существуют ли сходства и различия между другими способами между версиями Boost Variant и union?
Я также знаю, что вариант Boost может принимать любой тип данных и позволяет использовать тип данных "полиморфизм" (исправьте меня, если я злоупотребляю текстовым словом ООП). Является ли тип данных объединения таким же типом полиморфизма?