summaryrefslogtreecommitdiffstats
path: root/libcxx/include/variant
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/include/variant')
-rw-r--r--libcxx/include/variant6
1 files changed, 4 insertions, 2 deletions
diff --git a/libcxx/include/variant b/libcxx/include/variant
index 4396f1062f5..67d4e3c9992 100644
--- a/libcxx/include/variant
+++ b/libcxx/include/variant
@@ -1534,7 +1534,8 @@ auto swap(variant<_Types...>& __lhs,
}
template <class... _Types>
-struct _LIBCPP_TEMPLATE_VIS hash<variant<_Types...>> {
+struct _LIBCPP_TEMPLATE_VIS hash<
+ __enable_hash_helper<variant<_Types...>, remove_const_t<_Types>...>> {
using argument_type = variant<_Types...>;
using result_type = size_t;
@@ -1547,7 +1548,8 @@ struct _LIBCPP_TEMPLATE_VIS hash<variant<_Types...>> {
: __variant::__visit_alt(
[](const auto& __alt) {
using __alt_type = decay_t<decltype(__alt)>;
- using __value_type = typename __alt_type::__value_type;
+ using __value_type = remove_const_t<
+ typename __alt_type::__value_type>;
return hash<__value_type>{}(__alt.__value);
},
__v);
OpenPOWER on IntegriCloud