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', запрашиваемого здесь.

Что здесь не так?

0 ответов

Другие вопросы по тегам