libstdc++: Fix variant build on 32-bit targets [PR95904]
authorVille Voutilainen <ville.voutilainen@gmail.com>
Sat, 10 Oct 2020 10:57:17 +0000 (13:57 +0300)
committerVille Voutilainen <ville.voutilainen@gmail.com>
Sat, 10 Oct 2020 11:03:00 +0000 (14:03 +0300)
    libstdc++-v3/ChangeLog:

* include/std/variant (__check_visitor_result):
Use size_t for indexes.
(__check_visitor_results): Likewise.

libstdc++-v3/include/std/variant

index b32e564fd41c1bafb9f8667b575a043eed72f941..a29c5bf513bf3f3ccc5a194c3799defc914279f5 100644 (file)
@@ -1714,7 +1714,7 @@ namespace __variant
   template<typename _Tp, typename... _Types>
      constexpr inline bool __same_types = (is_same_v<_Tp, _Types> && ...);
 
-  template <unsigned long int _Idx, typename _Visitor, typename _Variant>
+  template <size_t _Idx, typename _Visitor, typename _Variant>
     decltype(auto)
     __check_visitor_result(_Visitor&& __vis, _Variant&& __variant)
     {
@@ -1722,7 +1722,7 @@ namespace __variant
                           std::get<_Idx>(std::forward<_Variant>(__variant)));
     }
 
-  template <typename _Visitor, typename _Variant, unsigned long int... _Idxs>
+  template <typename _Visitor, typename _Variant, size_t... _Idxs>
     constexpr bool __check_visitor_results(std::index_sequence<_Idxs...>)
     {
       return __same_types<decltype(__check_visitor_result<_Idxs>(