std :: variable является заменой union.
Но union может безопасно передавать данные по сети и получать данные на другой платформе (другой компилятор или архив). Может ли STD :: Вариант сделать это?
Например, у меня есть две машины A и B. A это windows, MSV C 19.4. B равен Linux, g cc (или другим компиляторам, таким как MSV C 17). Я скомпилировал код под A (или B):
std::variant<int, double> v = 1; // holds int.
f.write(&v, sizeof(v));
Может ли B прочитать правильное значение, используя следующий код из того же файла?
std::variant<int, double> v;
f.read(&v, sizeof(v));
Если std :: variable не мог ' безопасно пройти через сеть. Есть какая-нибудь библиотека, предоставляющая один? повышение :: вариант? или, может быть, создать реализацию настройки, которая будет действовать как std :: variable?