Remove check for impossible condition in std::variant::index()
The __index_type is only ever unsigned char or unsigned short, so not the same type as size_t. * include/std/variant (variant::index()): Remove impossible case. From-SVN: r276100
This commit is contained in:
parent
a7701dd161
commit
fe69bee34c
|
@ -1,5 +1,7 @@
|
|||
2019-09-24 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
* include/std/variant (variant::index()): Remove impossible case.
|
||||
|
||||
PR libstdc++/91871
|
||||
* testsuite/util/testsuite_hooks.h
|
||||
(conversion::iterator_to_const_iterator()): Do not return an invalid
|
||||
|
|
|
@ -1520,9 +1520,7 @@ namespace __variant
|
|||
constexpr size_t index() const noexcept
|
||||
{
|
||||
using __index_type = typename _Base::__index_type;
|
||||
if constexpr (is_same_v<__index_type, size_t>)
|
||||
return this->_M_index;
|
||||
else if constexpr (__detail::__variant::__never_valueless<_Types...>())
|
||||
if constexpr (__detail::__variant::__never_valueless<_Types...>())
|
||||
return this->_M_index;
|
||||
else if constexpr (sizeof...(_Types) <= __index_type(-1) / 2)
|
||||
return make_signed_t<__index_type>(this->_M_index);
|
||||
|
|
Loading…
Reference in New Issue