Hash: Use SFINAE to avoid implicit casts to numbers.

[SVN r78391]
This commit is contained in:
Daniel James
2012-05-08 22:24:46 +00:00
parent 68f0d9bc6b
commit 8bc410f571
3 changed files with 91 additions and 145 deletions
+21
View File
@@ -0,0 +1,21 @@
// Copyright 2010 Daniel James.
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/functional/hash.hpp>
namespace test
{
struct base {};
std::size_t hash_value(base const&) { return 0; }
struct converts { operator base() const { return base(); } };
}
int main() {
boost::hash<test::converts> hash;
test::converts x;
hash(x);
}