diff options
Diffstat (limited to 'libcxx/include')
-rw-r--r-- | libcxx/include/utility | 6 | ||||
-rw-r--r-- | libcxx/include/variant | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/libcxx/include/utility b/libcxx/include/utility index be73207133b..958378b8ba3 100644 --- a/libcxx/include/utility +++ b/libcxx/include/utility @@ -653,6 +653,12 @@ template <class _T1, class _T2> class _LIBCPP_TEMPLATE_VIS tuple_size<pair<_T1, _T2> > : public integral_constant<size_t, 2> {}; +template <size_t _Ip, class _T1, class _T2> +class _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, pair<_T1, _T2> > +{ + static_assert(_Ip < 2, "Index out of bounds in std::tuple_element<std::pair<T1, T2>>"); +}; + template <class _T1, class _T2> class _LIBCPP_TEMPLATE_VIS tuple_element<0, pair<_T1, _T2> > { diff --git a/libcxx/include/variant b/libcxx/include/variant index 8505f3262a1..8711ef6eb38 100644 --- a/libcxx/include/variant +++ b/libcxx/include/variant @@ -278,7 +278,7 @@ struct _LIBCPP_TEMPLATE_VIS variant_alternative<_Ip, const volatile _Tp> template <size_t _Ip, class... _Types> struct _LIBCPP_TEMPLATE_VIS variant_alternative<_Ip, variant<_Types...>> { - static_assert(_Ip < sizeof...(_Types)); + static_assert(_Ip < sizeof...(_Types), "Index out of bounds in std::variant_alternative<>"); using type = __type_pack_element<_Ip, _Types...>; }; |