小编Pio*_*trK的帖子

如何在类型变体和类型指针变体之间复制

所以我有两个变体(我缩短了它们,它们有更多类型):

std::variant<int *, double *> PtrVariant;
std::variant<int, double> ValueVariant;
Run Code Online (Sandbox Code Playgroud)

我想在它们之间复制价值。

这不起作用:

ValueVariant = *PtrVariant;
Run Code Online (Sandbox Code Playgroud)

这有效:

if (std::holds_alternative<int>(ValueVariant))
  ValueVariant = *std::get<int *>(PtrVariant);
else if (std::holds_alternative<double>(ValueVariant))
  ValueVariant = *std::get<double *>(PtrVariant);
Run Code Online (Sandbox Code Playgroud)

有没有办法在它们之间复制值而不检查变体持有什么类型?

c++ stl std-variant

3
推荐指数
1
解决办法
64
查看次数

标签 统计

c++ ×1

std-variant ×1

stl ×1