给出类型为std::variant<A,B,C>
的变量,我检查了它是否不包含C
。如何将其转换为std::variant<A,B>
?
std::variant<A,B> convert(std::variant<A,B,C> value) {
if (std::holds_alternative<C>(value)) {
// die.
}
return ... // what to do here?
}
我知道如何使用here中所述的访问者进行相反的操作(转换为超集变体),但是这种方法不适用于这种情况。