所以我有两个变体(我缩短了它们,它们有更多类型):
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)
有没有办法在它们之间复制值而不检查变体持有什么类型?