std::variant 是联合的替代品。
但是联合可以通过网络安全地在另一个平台(不同的编译器或架构)中接收。std::variant 可以这样做吗?
比如我有两台机器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 不能安全地通过网络。有没有图书馆提供?提升::变体?或者也许创建一个像 std::variant 一样的自定义实现?