std::variable не работает, если один из параметров его типа имеет тип массива
Работая с std:: Вариант, я обнаружил, что он не очень хорошо работает с типами массивов. Следующий пример не компилируется с новейшими компиляторами Gcc и Clang в проводнике компилятора.
#include <iostream>
#include <variant>
int main()
{
typedef char char_array4_t[4];
char_array4_t ca = {'a', 'b', 'c', 'd'};
std::variant<int, char_array4_t> v = ca;
return 0;
}
Компилятор Clang жалуется, цитата,
примечание: в экземпляре класса шаблона 'std::__1:: option', запрашиваемого здесь.
Что здесь не так?