std :: option - это замена union.
Но объединение может безопасно проходить по сети и получать на другой платформе (другом компиляторе или арке). Может ли std :: option это сделать?
Например, у меня есть две машины A и B. A - это windows, MSVC 19.4. B - это Linux, gcc (или другие компиляторы, например MSVC 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 :: variant не может безопасно пройти по сети. Есть ли какая-нибудь библиотека? boost :: option? или, может быть, создать настраиваемую реализацию, которая действует как std :: variant?
int
по сети таким образом, не говоря уже оstd::variant
. Используйте библиотеку сериализации или сериализуйте ее самостоятельно. - person bolov   schedule 24.02.2020f
- стандартный поток. Вам нужно явно указатьreinterpret_cast
наchar*
, чтобы выполнить эту компиляцию. - person walnut   schedule 24.02.2020