__v);
https://github.com/gcc-mirror/gcc/blob/gcc-9_1_0-release/libstdc%2B%2B-v3/include/std/variant#L1559
без 'noexcept'
в то время как
https://github.com/gcc-mirror/gcc/blob/gcc-9_1_0-release/libstdc%2B%2B-v3/include/std/variant#L263
поэтому https://github.com/gcc-mirror/gcc/blob/gcc-9_1_0-release/libstdc%2B%2B-v3/include/std/variant#L265
return __variant::__get(std::in_place_index<_Np>,
std::forward<_Variant>(__v)._M_u);
не может обращаться к приватному полю _M_u (из-за private наследования на https://github.com/gcc-mirror/gcc/blob/gcc-9_1_0-release/libstdc%2B%2B-v3/include/std/variant#L1220)
что ведёт к ошибке
error: '_M_u' is a private member of 'std::__detail::__variant::_Variant_storage<false, nullptr_t, char, unsigned short, int, unsigned int, unsigned long long, float, double, std::basic_string<char>, slave::decimal::Decimal>'
Я прав или ошибаюсь?
бага проявляется при сборке проекта (с инстанцированием std::variant) с помощью clang 8 c тулчейнном gcc 9.1.0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90397
Обсуждают сегодня