std :: variant在赋值操作符中给出std @ bad_alloc

时间:2019-07-04 16:38:33

标签: c++builder

Rad Studio Rio 10.3.1,CLANG。

简单的代码在赋值运算符(y = x)中引发异常:'std @ bad_alloc'

typedef std::variant< std::string, int> MVariant;
MVariant x=10;
MVariant y;
y=x;

我看不出原因。我想念什么?

1 个答案:

答案 0 :(得分:0)

我认为问题不在于Rad Studio本身。关于CLANG。这是已知的错误33222,似乎只影响libstdc ++的std :: variant(以及使用相同组合的其他构造)。问题与模板的好友功能有关。

libc ++的变体似乎没有使用libstdc ++所使用的朋友技术。

请参见get<string> for variants fail under clang++ but not g++