[packages/boost] - fix hash_value() issue in wesnoth - rel 3
baggins
baggins at pld-linux.org
Sat Sep 22 23:54:59 CEST 2012
commit 36d5b5f2a07193878bc06ddec3069e05758f8f78
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sat Sep 22 23:54:39 2012 +0200
- fix hash_value() issue in wesnoth
- rel 3
boost-hash-enum.patch | 40 ++++++++++++++++++++++++++++++++++++++++
boost.spec | 4 +++-
2 files changed, 43 insertions(+), 1 deletion(-)
---
diff --git a/boost.spec b/boost.spec
index 43d9bac..18967aa 100644
--- a/boost.spec
+++ b/boost.spec
@@ -11,12 +11,13 @@ Summary: The Boost C++ Libraries
Summary(pl.UTF-8): Biblioteki C++ "Boost"
Name: boost
Version: 1.51.0
-Release: 2
+Release: 3
License: Boost Software License and others
Group: Libraries
Source0: http://downloads.sourceforge.net/boost/%{name}_%{fver}.tar.bz2
# Source0-md5: 4b6bd483b692fd138aef84ed2c8eb679
Patch0: %{name}-link.patch
+Patch1: %{name}-hash-enum.patch
URL: http://www.boost.org/
BuildRequires: bzip2-devel
BuildRequires: expat-devel
@@ -365,6 +366,7 @@ Dokumentacja dla biblioteki Boost C++.
%prep
%setup -q -n %{name}_%{fver}
%patch0 -p1
+%patch1 -p0
# - don't know how to pass it through (b)jam -s (no way?)
# due to oversophisticated build flags system.
diff --git a/boost-hash-enum.patch b/boost-hash-enum.patch
new file mode 100644
index 0000000..e00795f
--- /dev/null
+++ b/boost-hash-enum.patch
@@ -0,0 +1,40 @@
+$NetBSD: patch-boost_functional_hash_hash.hpp,v 1.1 2012/08/31 12:20:56 adam Exp $
+
+Allow hashing enums.
+
+--- boost/functional/hash/hash.hpp.orig 2012-07-15 23:28:30.000000000 +0000
++++ boost/functional/hash/hash.hpp
+@@ -15,6 +15,8 @@
+ #include <boost/functional/hash/detail/hash_float.hpp>
+ #include <string>
+ #include <boost/limits.hpp>
++#include <boost/type_traits/is_enum.hpp>
++#include <boost/utility/enable_if.hpp>
+
+ #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
+ #include <boost/type_traits/is_pointer.hpp>
+@@ -90,6 +92,10 @@ namespace boost
+ template <typename T>
+ typename boost::hash_detail::ulong_numbers<T>::type hash_value(T);
+
++ template <typename T>
++ typename boost::enable_if<boost::is_enum<T>, std::size_t>::type
++ hash_value(T);
++
+ #if !BOOST_WORKAROUND(__DMC__, <= 0x848)
+ template <class T> std::size_t hash_value(T* const&);
+ #else
+@@ -179,6 +185,13 @@ namespace boost
+ return hash_detail::hash_value_unsigned(v);
+ }
+
++ template <typename T>
++ typename boost::enable_if<boost::is_enum<T>, std::size_t>::type
++ hash_value(T v)
++ {
++ return static_cast<std::size_t>(v);
++ }
++
+ // Implementation by Alberto Barbati and Dave Harris.
+ #if !BOOST_WORKAROUND(__DMC__, <= 0x848)
+ template <class T> std::size_t hash_value(T* const& v)
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/boost.git/commitdiff/36d5b5f2a07193878bc06ddec3069e05758f8f78
More information about the pld-cvs-commit
mailing list