STD :: Вариант дает Std @ Bad_alloc в операторе присваивания - PullRequest
0 голосов
/ 04 июля 2019

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 голосов
/ 24 июля 2019

Я думаю, что проблема не в самой Rad Studio. Это о CLANG. Это известная ошибка 33222, которая, по-видимому, влияет только на stst :: Вариант libstdc ++ (и другие конструкции, использующие ту же комбинацию). Проблема связана с функцией друга для шаблонов.

Вариант из libc ++, похоже, не использует технику друзей, которую использовал libstdc ++.

См. get для вариантов сбоя в clang ++, но не в g ++

...