[PATCH] D23331: Implement LWG 2148: Make non-enum default hash specialization well-formed

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 9 12:37:07 PDT 2016


EricWF created this revision.
EricWF added a reviewer: mclow.lists.
EricWF added a subscriber: cfe-commits.

This patch removes the static_assert for non-enum types in the primary hash template. Instead non-enum types create a hash<T> specialization that is not constructible nor callable.

See also:
  * http://cplusplus.github.io/LWG/lwg-active.html#2543
  * https://llvm.org/bugs/show_bug.cgi?id=28917

https://reviews.llvm.org/D23331

Files:
  include/functional
  test/std/utilities/function.objects/unord.hash/enum.pass.cpp
  test/std/utilities/function.objects/unord.hash/non_enum.pass.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D23331.67395.patch
Type: text/x-patch
Size: 3202 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160809/d84f3f5b/attachment.bin>


More information about the cfe-commits mailing list