Implement P0599: 'noexcept for hash functions'. Fix a couple of hash functions (optional<T> and unique_ptr<T>) which were mistakenly marked as 'noexcept'. Reviewed as https://reviews.llvm.org/D31234

llvm-svn: 298573
This commit is contained in:
Marshall Clow
2017-03-23 02:40:28 +00:00
parent 6974dd6412
commit 7c803385a7
18 changed files with 69 additions and 30 deletions

View File

@@ -22,6 +22,8 @@
#include <cassert>
#include <type_traits>
#include "test_macros.h"
template <class T>
void
test()
@@ -29,6 +31,8 @@ test()
typedef std::hash<T> H;
static_assert((std::is_same<typename H::argument_type, T>::value), "" );
static_assert((std::is_same<typename H::result_type, std::size_t>::value), "" );
ASSERT_NOEXCEPT(H()(T()));
H h;
std::string g1 = "1234567890";
std::string g2 = "1234567891";