diff --git a/include/functional b/include/functional index b4b95d44c..4fcd4b5a7 100644 --- a/include/functional +++ b/include/functional @@ -2473,6 +2473,22 @@ struct _LIBCPP_TYPE_VIS_ONLY hash { }; +#ifndef _LIBCPP_HAS_NO_INT128 + +template <> +struct _LIBCPP_TYPE_VIS_ONLY hash<__int128_t> + : public __scalar_hash<__int128_t> +{ +}; + +template <> +struct _LIBCPP_TYPE_VIS_ONLY hash<__uint128_t> + : public __scalar_hash<__uint128_t> +{ +}; + +#endif + template <> struct _LIBCPP_TYPE_VIS_ONLY hash : public __scalar_hash diff --git a/test/std/utilities/function.objects/unord.hash/integral.pass.cpp b/test/std/utilities/function.objects/unord.hash/integral.pass.cpp index c20f31ff2..3e4dec1e7 100644 --- a/test/std/utilities/function.objects/unord.hash/integral.pass.cpp +++ b/test/std/utilities/function.objects/unord.hash/integral.pass.cpp @@ -67,7 +67,7 @@ int main() test(); test(); test(); - + test(); test(); test(); @@ -80,12 +80,12 @@ int main() test(); test(); - + test(); test(); test(); test(); - + test(); test(); test(); @@ -98,4 +98,9 @@ int main() test(); test(); + +#ifndef _LIBCPP_HAS_NO_INT128 + test<__int128_t>(); + test<__uint128_t>(); +#endif } diff --git a/www/cxx1z_status.html b/www/cxx1z_status.html index 575f9820b..661e312c1 100644 --- a/www/cxx1z_status.html +++ b/www/cxx1z_status.html @@ -167,7 +167,7 @@ 2072Unclear wording about capacity of temporary buffersKonaComplete 2101Some transformation types can produce impossible typesKonaComplete 2111Which unexpected/terminate handler is called from the exception handling runtime?KonaComplete - 2119Missing hash specializations for extended integer typesKona + 2119Missing hash specializations for extended integer typesKonaComplete 2127Move-construction with raw_storage_iteratorKonaComplete 2133Attitude to overloaded comma for iteratorsKonaComplete 2156Unordered containers' reserve(n) reserves for n-1 elementsKonaComplete