c++ 如何在类型变量和类型指针变量之间复制

v6ylcynt  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(88)

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

std::variant<int *, double *> PtrVariant;
std::variant<int, double> ValueVariant;

字符串
我想在它们之间复制价值。
这不起作用:

ValueVariant = *PtrVariant;


这是有效的:

if (std::holds_alternative<int>(ValueVariant))
  ValueVariant = *std::get<int *>(PtrVariant);
else if (std::holds_alternative<double>(ValueVariant))
  ValueVariant = *std::get<double *>(PtrVariant);


有没有一种方法可以在它们之间复制值,而不检查变量持有什么类型?

fzwojiic

fzwojiic1#

使用std::visit执行分派:

std::visit([&](auto* p){ ValueVariant = *p; }, PtrVariant);

字符串

相关问题