From 5ee778af752f9d0f97226365a5c73823ad9c2ffb Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Thu, 19 May 2016 17:13:07 +0200 Subject: [PATCH] Remove support/metahash.h It turns out that it did not take off since introduced in 2011. It is better to remove it and the associated boost headers (extract.sh was run against boost 1.60 to do the update). Since we will move away from several boost classes when transitioning to C++11, it is good to start by removing lesser used ones. --- .../boost/boost/iterator/minimum_category.hpp | 95 --- 3rdparty/boost/boost/mpl/aux_/empty_impl.hpp | 43 -- 3rdparty/boost/boost/mpl/aux_/insert_impl.hpp | 68 -- .../boost/mpl/aux_/insert_range_impl.hpp | 80 --- .../boost/boost/mpl/aux_/iter_push_front.hpp | 36 -- 3rdparty/boost/boost/mpl/aux_/joint_iter.hpp | 120 ---- 3rdparty/boost/boost/mpl/char.hpp | 22 - 3rdparty/boost/boost/mpl/char_fwd.hpp | 27 - 3rdparty/boost/boost/mpl/copy.hpp | 58 -- 3rdparty/boost/boost/mpl/empty.hpp | 39 -- 3rdparty/boost/boost/mpl/insert.hpp | 41 -- 3rdparty/boost/boost/mpl/insert_fwd.hpp | 24 - 3rdparty/boost/boost/mpl/insert_range.hpp | 41 -- 3rdparty/boost/boost/mpl/insert_range_fwd.hpp | 24 - 3rdparty/boost/boost/mpl/joint_view.hpp | 65 -- 3rdparty/boost/boost/mpl/limits/string.hpp | 21 - 3rdparty/boost/boost/mpl/string.hpp | 607 ------------------ .../boost/preprocessor/arithmetic/div.hpp | 39 -- .../boost/boost/type_traits/same_traits.hpp | 15 - 3rdparty/boost/extract.sh | 4 - src/Text.cpp | 24 - src/support/metahash.h | 73 --- 22 files changed, 1566 deletions(-) delete mode 100644 3rdparty/boost/boost/iterator/minimum_category.hpp delete mode 100644 3rdparty/boost/boost/mpl/aux_/empty_impl.hpp delete mode 100644 3rdparty/boost/boost/mpl/aux_/insert_impl.hpp delete mode 100644 3rdparty/boost/boost/mpl/aux_/insert_range_impl.hpp delete mode 100644 3rdparty/boost/boost/mpl/aux_/iter_push_front.hpp delete mode 100644 3rdparty/boost/boost/mpl/aux_/joint_iter.hpp delete mode 100644 3rdparty/boost/boost/mpl/char.hpp delete mode 100644 3rdparty/boost/boost/mpl/char_fwd.hpp delete mode 100644 3rdparty/boost/boost/mpl/copy.hpp delete mode 100644 3rdparty/boost/boost/mpl/empty.hpp delete mode 100644 3rdparty/boost/boost/mpl/insert.hpp delete mode 100644 3rdparty/boost/boost/mpl/insert_fwd.hpp delete mode 100644 3rdparty/boost/boost/mpl/insert_range.hpp delete mode 100644 3rdparty/boost/boost/mpl/insert_range_fwd.hpp delete mode 100644 3rdparty/boost/boost/mpl/joint_view.hpp delete mode 100644 3rdparty/boost/boost/mpl/limits/string.hpp delete mode 100644 3rdparty/boost/boost/mpl/string.hpp delete mode 100644 3rdparty/boost/boost/preprocessor/arithmetic/div.hpp delete mode 100644 3rdparty/boost/boost/type_traits/same_traits.hpp delete mode 100644 src/support/metahash.h diff --git a/3rdparty/boost/boost/iterator/minimum_category.hpp b/3rdparty/boost/boost/iterator/minimum_category.hpp deleted file mode 100644 index 15679bc77d..0000000000 --- a/3rdparty/boost/boost/iterator/minimum_category.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright David Abrahams 2003. Use, modification and distribution is -// subject to 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) -#ifndef BOOST_ITERATOR_MINIMUM_CATEGORY_HPP_INCLUDED_ -# define BOOST_ITERATOR_MINIMUM_CATEGORY_HPP_INCLUDED_ - -# include -# include -# include - -# include -# include - -namespace boost { -namespace iterators { -namespace detail { - -template -struct minimum_category_impl; - -template -struct error_not_related_by_convertibility; - -template <> -struct minimum_category_impl -{ - template struct apply - { - typedef T2 type; - }; -}; - -template <> -struct minimum_category_impl -{ - template struct apply - { - typedef T1 type; - }; -}; - -template <> -struct minimum_category_impl -{ - template struct apply - { - BOOST_STATIC_ASSERT((is_same::value)); - typedef T1 type; - }; -}; - -template <> -struct minimum_category_impl -{ - template struct apply - : error_not_related_by_convertibility - { - }; -}; - -} // namespace detail - -// -// Returns the minimum category type or fails to compile -// if T1 and T2 are unrelated. -// -template -struct minimum_category -{ - typedef boost::iterators::detail::minimum_category_impl< - ::boost::is_convertible::value - , ::boost::is_convertible::value - > outer; - - typedef typename outer::template apply inner; - typedef typename inner::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,minimum_category,(T1,T2)) -}; - -template <> -struct minimum_category -{ - template - struct apply : minimum_category - {}; - - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,minimum_category,(mpl::_1,mpl::_2)) -}; - -} // namespace iterators - -} // namespace boost - -#endif // BOOST_ITERATOR_MINIMUM_CATEGORY_HPP_INCLUDED_ diff --git a/3rdparty/boost/boost/mpl/aux_/empty_impl.hpp b/3rdparty/boost/boost/mpl/aux_/empty_impl.hpp deleted file mode 100644 index cfe55ae252..0000000000 --- a/3rdparty/boost/boost/mpl/aux_/empty_impl.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'empty_impl' or the primary 'empty' template - -template< typename Tag > -struct empty_impl -{ - template< typename Sequence > struct apply - : is_same< - typename begin::type - , typename end::type - > - { - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,empty_impl) - -}} - -#endif // BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/aux_/insert_impl.hpp b/3rdparty/boost/boost/mpl/aux_/insert_impl.hpp deleted file mode 100644 index 03a304b580..0000000000 --- a/3rdparty/boost/boost/mpl/aux_/insert_impl.hpp +++ /dev/null @@ -1,68 +0,0 @@ - -#ifndef BOOST_MPL_INSERT_IMPL_HPP_INCLUDED -#define BOOST_MPL_INSERT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'insert_impl' or the primary 'insert' template - -template< typename Tag > -struct insert_impl -{ - template< - typename Sequence - , typename Pos - , typename T - > - struct apply - { - typedef iterator_range< - typename begin::type - , Pos - > first_half_; - - typedef iterator_range< - Pos - , typename end::type - > second_half_; - - typedef typename reverse_fold< - second_half_ - , typename clear::type - , push_front<_,_> - >::type half_sequence_; - - typedef typename reverse_fold< - first_half_ - , typename push_front::type - , push_front<_,_> - >::type type; - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(3,insert_impl) - -}} - -#endif // BOOST_MPL_INSERT_IMPL_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/aux_/insert_range_impl.hpp b/3rdparty/boost/boost/mpl/aux_/insert_range_impl.hpp deleted file mode 100644 index fa4331562d..0000000000 --- a/3rdparty/boost/boost/mpl/aux_/insert_range_impl.hpp +++ /dev/null @@ -1,80 +0,0 @@ - -#ifndef BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'insert_range_impl' or the primary -// 'insert_range' template - - -template< typename Tag > -struct insert_range_impl -{ - template< - typename Sequence - , typename Pos - , typename Range - > - struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : reverse_fold< - joint_view< - iterator_range::type,Pos> - , joint_view< - Range - , iterator_range::type> - > - > - , typename clear::type - , insert<_1, begin<_1>, _2> - > - { -#else - { - typedef typename reverse_fold< - joint_view< - iterator_range::type,Pos> - , joint_view< - Range - , iterator_range::type> - > - > - , typename clear::type - , insert<_1, begin<_1>, _2> - >::type type; -#endif - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(3,insert_range_impl) - -}} - -#endif // BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/aux_/iter_push_front.hpp b/3rdparty/boost/boost/mpl/aux_/iter_push_front.hpp deleted file mode 100644 index 35ccc4dfbb..0000000000 --- a/3rdparty/boost/boost/mpl/aux_/iter_push_front.hpp +++ /dev/null @@ -1,36 +0,0 @@ - -#ifndef BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED -#define BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< - typename Sequence - , typename Iterator - > -struct iter_push_front -{ - typedef typename push_front< - Sequence - , typename deref::type - >::type type; -}; - -}}} - -#endif // BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/aux_/joint_iter.hpp b/3rdparty/boost/boost/mpl/aux_/joint_iter.hpp deleted file mode 100644 index 277580eebf..0000000000 --- a/3rdparty/boost/boost/mpl/aux_/joint_iter.hpp +++ /dev/null @@ -1,120 +0,0 @@ - -#ifndef BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED -#define BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# include -#endif - -namespace boost { namespace mpl { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< - typename Iterator1 - , typename LastIterator1 - , typename Iterator2 - > -struct joint_iter -{ - typedef Iterator1 base; - typedef forward_iterator_tag category; -}; - -template< - typename LastIterator1 - , typename Iterator2 - > -struct joint_iter -{ - typedef Iterator2 base; - typedef forward_iterator_tag category; -}; - - -template< typename I1, typename L1, typename I2 > -struct deref< joint_iter > -{ - typedef typename joint_iter::base base_; - typedef typename deref::type type; -}; - -template< typename I1, typename L1, typename I2 > -struct next< joint_iter > -{ - typedef joint_iter< typename mpl::next::type,L1,I2 > type; -}; - -template< typename L1, typename I2 > -struct next< joint_iter > -{ - typedef joint_iter< L1,L1,typename mpl::next::type > type; -}; - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template< - typename Iterator1 - , typename LastIterator1 - , typename Iterator2 - > -struct joint_iter; - -template< bool > struct joint_iter_impl -{ - template< typename I1, typename L1, typename I2 > struct result_ - { - typedef I1 base; - typedef forward_iterator_tag category; - typedef joint_iter< typename mpl::next::type,L1,I2 > next; - typedef typename deref::type type; - }; -}; - -template<> struct joint_iter_impl -{ - template< typename I1, typename L1, typename I2 > struct result_ - { - typedef I2 base; - typedef forward_iterator_tag category; - typedef joint_iter< L1,L1,typename mpl::next::type > next; - typedef typename deref::type type; - }; -}; - -template< - typename Iterator1 - , typename LastIterator1 - , typename Iterator2 - > -struct joint_iter - : joint_iter_impl< is_same::value > - ::template result_ -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3, joint_iter) - -}} - -#endif // BOOST_MPL_AUX_JOINT_ITER_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/char.hpp b/3rdparty/boost/boost/mpl/char.hpp deleted file mode 100644 index 08828c247a..0000000000 --- a/3rdparty/boost/boost/mpl/char.hpp +++ /dev/null @@ -1,22 +0,0 @@ - -#ifndef BOOST_MPL_CHAR_HPP_INCLUDED -#define BOOST_MPL_CHAR_HPP_INCLUDED - -// Copyright Eric Niebler 2008 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Source$ -// $Date: 2008-06-14 08:41:37 -0700 (Sat, 16 Jun 2008) $ -// $Revision: 24874 $ - -#include - -#define AUX_WRAPPER_VALUE_TYPE char -#include - -#endif // BOOST_MPL_CHAR_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/char_fwd.hpp b/3rdparty/boost/boost/mpl/char_fwd.hpp deleted file mode 100644 index 442d0a1619..0000000000 --- a/3rdparty/boost/boost/mpl/char_fwd.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_CHAR_FWD_HPP_INCLUDED -#define BOOST_MPL_CHAR_FWD_HPP_INCLUDED - -// Copyright Eric Niebler 2008 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Source$ -// $Date: 2008-06-14 08:41:37 -0700 (Sat, 16 Jun 2008) $ -// $Revision: 24874 $ - -#include -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< BOOST_MPL_AUX_NTTP_DECL(char, N) > struct char_; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(char_) - -#endif // BOOST_MPL_CHAR_FWD_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/copy.hpp b/3rdparty/boost/boost/mpl/copy.hpp deleted file mode 100644 index 6eafba3982..0000000000 --- a/3rdparty/boost/boost/mpl/copy.hpp +++ /dev/null @@ -1,58 +0,0 @@ - -#ifndef BOOST_MPL_COPY_HPP_INCLUDED -#define BOOST_MPL_COPY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright David Abrahams 2003-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename Sequence - , typename Inserter - > -struct copy_impl - : fold< - Sequence - , typename Inserter::state - , typename Inserter::operation - > -{ -}; - -template< - typename Sequence - , typename Inserter - > -struct reverse_copy_impl - : reverse_fold< - Sequence - , typename Inserter::state - , typename Inserter::operation - > -{ -}; - -} // namespace aux - -BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(2, copy) - -}} - -#endif // BOOST_MPL_COPY_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/empty.hpp b/3rdparty/boost/boost/mpl/empty.hpp deleted file mode 100644 index 1185324c1b..0000000000 --- a/3rdparty/boost/boost/mpl/empty.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_EMPTY_HPP_INCLUDED -#define BOOST_MPL_EMPTY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - > -struct empty - : empty_impl< typename sequence_tag::type > - ::template apply< Sequence > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,empty,(Sequence)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, empty) - -}} - -#endif // BOOST_MPL_EMPTY_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/insert.hpp b/3rdparty/boost/boost/mpl/insert.hpp deleted file mode 100644 index 5e379a4978..0000000000 --- a/3rdparty/boost/boost/mpl/insert.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_INSERT_HPP_INCLUDED -#define BOOST_MPL_INSERT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Pos_or_T) - , typename BOOST_MPL_AUX_NA_PARAM(T) - > -struct insert - : insert_impl< typename sequence_tag::type > - ::template apply< Sequence,Pos_or_T,T > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,insert,(Sequence,Pos_or_T,T)) -}; - -BOOST_MPL_AUX_NA_SPEC(3, insert) - -}} - -#endif // BOOST_MPL_INSERT_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/insert_fwd.hpp b/3rdparty/boost/boost/mpl/insert_fwd.hpp deleted file mode 100644 index ba6b161760..0000000000 --- a/3rdparty/boost/boost/mpl/insert_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_INSERT_FWD_HPP_INCLUDED -#define BOOST_MPL_INSERT_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct insert_impl; -template< typename Sequence, typename Pos_or_T, typename T > struct insert; - -}} - -#endif // BOOST_MPL_INSERT_FWD_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/insert_range.hpp b/3rdparty/boost/boost/mpl/insert_range.hpp deleted file mode 100644 index 0c362f5ae1..0000000000 --- a/3rdparty/boost/boost/mpl/insert_range.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_INSERT_RANGE_HPP_INCLUDED -#define BOOST_MPL_INSERT_RANGE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(Pos) - , typename BOOST_MPL_AUX_NA_PARAM(Range) - > -struct insert_range - : insert_range_impl< typename sequence_tag::type > - ::template apply< Sequence,Pos,Range > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(3,insert_range,(Sequence,Pos,Range)) -}; - -BOOST_MPL_AUX_NA_SPEC(3, insert_range) - -}} - -#endif // BOOST_MPL_INSERT_RANGE_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/insert_range_fwd.hpp b/3rdparty/boost/boost/mpl/insert_range_fwd.hpp deleted file mode 100644 index d9c946f2a9..0000000000 --- a/3rdparty/boost/boost/mpl/insert_range_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED -#define BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -namespace boost { namespace mpl { - -template< typename Tag > struct insert_range_impl; -template< typename Sequence, typename Pos, typename Range > struct insert_range; - -}} - -#endif // BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/joint_view.hpp b/3rdparty/boost/boost/mpl/joint_view.hpp deleted file mode 100644 index cd9cddac7e..0000000000 --- a/3rdparty/boost/boost/mpl/joint_view.hpp +++ /dev/null @@ -1,65 +0,0 @@ - -#ifndef BOOST_MPL_JOINT_VIEW_HPP_INCLUDED -#define BOOST_MPL_JOINT_VIEW_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2004 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id$ -// $Date$ -// $Revision$ - -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -namespace aux { -struct joint_view_tag; -} - -template<> -struct size_impl< aux::joint_view_tag > -{ - template < typename JointView > struct apply - : plus< - size - , size - > - {}; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence1_) - , typename BOOST_MPL_AUX_NA_PARAM(Sequence2_) - > -struct joint_view -{ - typedef typename mpl::begin::type first1_; - typedef typename mpl::end::type last1_; - typedef typename mpl::begin::type first2_; - typedef typename mpl::end::type last2_; - - // agurt, 25/may/03: for the 'size_traits' implementation above - typedef Sequence1_ sequence1_; - typedef Sequence2_ sequence2_; - - typedef joint_view type; - typedef aux::joint_view_tag tag; - typedef joint_iter begin; - typedef joint_iter end; -}; - -BOOST_MPL_AUX_NA_SPEC(2, joint_view) - -}} - -#endif // BOOST_MPL_JOINT_VIEW_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/limits/string.hpp b/3rdparty/boost/boost/mpl/limits/string.hpp deleted file mode 100644 index eb85aa389f..0000000000 --- a/3rdparty/boost/boost/mpl/limits/string.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LIMITS_STRING_HPP_INCLUDED -#define BOOST_MPL_LIMITS_STRING_HPP_INCLUDED - -// Copyright Eric Niebler 2009 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: string.hpp 49239 2009-04-01 09:10:26Z eric_niebler $ -// $Date: 2009-04-01 02:10:26 -0700 (Wed, 1 Apr 2009) $ -// $Revision: 49239 $ - -#if !defined(BOOST_MPL_LIMIT_STRING_SIZE) -# define BOOST_MPL_LIMIT_STRING_SIZE 32 -#endif - -#endif // BOOST_MPL_LIMITS_STRING_HPP_INCLUDED diff --git a/3rdparty/boost/boost/mpl/string.hpp b/3rdparty/boost/boost/mpl/string.hpp deleted file mode 100644 index e7898562df..0000000000 --- a/3rdparty/boost/boost/mpl/string.hpp +++ /dev/null @@ -1,607 +0,0 @@ - -#ifndef BOOST_MPL_STRING_HPP_INCLUDED -#define BOOST_MPL_STRING_HPP_INCLUDED - -// Copyright Eric Niebler 2009 -// -// 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) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: string.hpp 49239 2009-04-01 09:10:26Z eric_niebler $ -// $Date: 2009-04-01 02:10:26 -0700 (Wed, 1 Apr 2009) $ -// $Revision: 49239 $ -// -// Thanks to: -// Dmitry Goncharov for porting this to the Sun compiler - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include // for bidirectional_iterator_tag -#include - -namespace boost { namespace mpl -{ - #define BOOST_MPL_STRING_MAX_PARAMS \ - BOOST_PP_DIV(BOOST_PP_ADD(BOOST_MPL_LIMIT_STRING_SIZE, 3), 4) - - // Low-level bit-twiddling is done by macros. Any implementation-defined behavior of - // multi-character literals should be localized to these macros. - - #define BOOST_MPL_MULTICHAR_LENGTH(c) \ - (std::size_t)((c0xffffff)+(c>0xffff)+(c>0xff)+1)) - - #if BOOST_ENDIAN_LITTLE_BYTE && defined(__SUNPRO_CC) - - #define BOOST_MPL_MULTICHAR_AT(c,i) \ - (char)(0xff&((unsigned)(c)>>(8*(std::size_t)(i)))) - - #define BOOST_MPL_MULTICHAR_PUSH_BACK(c,i) \ - ((((unsigned char)(i))<<(BOOST_MPL_MULTICHAR_LENGTH(c)*8))|(unsigned)(c)) - - #define BOOST_MPL_MULTICHAR_PUSH_FRONT(c,i) \ - (((unsigned)(c)<<8)|(unsigned char)(i)) - - #define BOOST_MPL_MULTICHAR_POP_BACK(c) \ - (((1<<((BOOST_MPL_MULTICHAR_LENGTH(c)-1)*8))-1)&(unsigned)(c)) - - #define BOOST_MPL_MULTICHAR_POP_FRONT(c) \ - ((unsigned)(c)>>8) - - #else - - #define BOOST_MPL_MULTICHAR_AT(c,i) \ - (char)(0xff&((unsigned)(c)>>(8*(BOOST_MPL_MULTICHAR_LENGTH(c)-(std::size_t)(i)-1)))) - - #define BOOST_MPL_MULTICHAR_PUSH_BACK(c,i) \ - (((unsigned)(c)<<8)|(unsigned char)(i)) - - #define BOOST_MPL_MULTICHAR_PUSH_FRONT(c,i) \ - ((((unsigned char)(i))<<(BOOST_MPL_MULTICHAR_LENGTH(c)*8))|(unsigned)(c)) - - #define BOOST_MPL_MULTICHAR_POP_BACK(c) \ - ((unsigned)(c)>>8) - - #define BOOST_MPL_MULTICHAR_POP_FRONT(c) \ - (((1<<((BOOST_MPL_MULTICHAR_LENGTH(c)-1)*8))-1)&(unsigned)(c)) - - #endif - - struct string_tag; - struct string_iterator_tag; - - template - struct string; - - template - struct string_iterator; - - template - struct sequence_tag; - - template - struct size_impl; - - template<> - struct size_impl - { - template - struct apply; - - #define M0(z, n, data) \ - + BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C,n)) - - #define M1(z, n, data) \ - template \ - struct apply > \ - : mpl::size_t<(0 BOOST_PP_REPEAT_ ## z(n, M0, ~))> \ - {}; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M1, ~) - #undef M0 - #undef M1 - }; - - template<> - struct size_impl::apply > - : mpl::size_t<0> - {}; - - template - struct begin_impl; - - template<> - struct begin_impl - { - template - struct apply - { - typedef mpl::string_iterator type; - }; - }; - - template - struct end_impl; - - template<> - struct end_impl - { - template - struct apply; - - #define M0(z,n,data) \ - template \ - struct apply > \ - { \ - typedef mpl::string_iterator, n, 0> type; \ - }; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M0, ~) - #undef M0 - }; - - template<> - struct end_impl::apply > - { - typedef mpl::string_iterator, 0, 0> type; - }; - - template - struct push_back_impl; - - template<> - struct push_back_impl - { - template - struct apply - { - BOOST_MPL_ASSERT_MSG( - (BOOST_MPL_LIMIT_STRING_SIZE != mpl::size::type::value) - , PUSH_BACK_FAILED_MPL_STRING_IS_FULL - , (Sequence) - ); - // If the above assertion didn't fire, then the string is sparse. - // Repack the string and retry the push_back - typedef - typename mpl::push_back< - typename mpl::copy< - Sequence - , mpl::back_inserter > - >::type - , Value - >::type - type; - }; - - template - struct apply, Value, false> - { - typedef mpl::string<(char)Value::value> type; - }; - - #define M0(z,n,data) \ - template \ - struct apply, Value, false> \ - { \ - typedef \ - mpl::string< \ - BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_DEC(n), C) \ - BOOST_PP_COMMA_IF(BOOST_PP_DEC(n)) \ - ((unsigned)BOOST_PP_CAT(C,BOOST_PP_DEC(n))>0xffffff) \ - ?BOOST_PP_CAT(C,BOOST_PP_DEC(n)) \ - :BOOST_MPL_MULTICHAR_PUSH_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(n)), Value::value) \ - , ((unsigned)BOOST_PP_CAT(C,BOOST_PP_DEC(n))>0xffffff) \ - ?(char)Value::value \ - :0 \ - > \ - type; \ - }; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~) - #undef M0 - - template - struct apply, Value, false> - { - typedef - mpl::string< - BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS), C) - , BOOST_MPL_MULTICHAR_PUSH_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS)), Value::value) - > - type; - }; - }; - - template - struct has_push_back_impl; - - template<> - struct has_push_back_impl - { - template - struct apply - : mpl::true_ - {}; - }; - - template - struct pop_back_impl; - - template<> - struct pop_back_impl - { - template - struct apply; - - #define M0(z,n,data) \ - template \ - struct apply > \ - { \ - BOOST_MPL_ASSERT_MSG((C0 != 0), POP_BACK_FAILED_MPL_STRING_IS_EMPTY, (mpl::string<>)); \ - typedef \ - mpl::string< \ - BOOST_PP_ENUM_PARAMS_Z(z, BOOST_PP_DEC(n), C) \ - BOOST_PP_COMMA_IF(BOOST_PP_DEC(n)) \ - BOOST_MPL_MULTICHAR_POP_BACK(BOOST_PP_CAT(C,BOOST_PP_DEC(n))) \ - > \ - type; \ - }; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(BOOST_MPL_STRING_MAX_PARAMS), M0, ~) - #undef M0 - }; - - template - struct has_pop_back_impl; - - template<> - struct has_pop_back_impl - { - template - struct apply - : mpl::true_ - {}; - }; - - template - struct push_front_impl; - - template<> - struct push_front_impl - { - template - struct apply - { - BOOST_MPL_ASSERT_MSG( - (BOOST_MPL_LIMIT_STRING_SIZE != mpl::size::type::value) - , PUSH_FRONT_FAILED_MPL_STRING_IS_FULL - , (Sequence) - ); - // If the above assertion didn't fire, then the string is sparse. - // Repack the string and retry the push_front. - typedef - typename mpl::push_front< - typename mpl::reverse_copy< - Sequence - , mpl::front_inserter > - >::type - , Value - >::type - type; - }; - - #if !BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) - template - struct apply, Value, false> - { - typedef mpl::string<(char)Value::value> type; - }; - #endif - - #define M0(z,n,data) \ - template \ - struct apply, Value, true> \ - { \ - typedef \ - mpl::string< \ - (char)Value::value \ - BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, C) \ - > \ - type; \ - }; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~) - #undef M0 - - template - struct apply, Value, false> - { - typedef - mpl::string< - BOOST_MPL_MULTICHAR_PUSH_FRONT(C0, Value::value) - , BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C) - > - type0; - - #if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) - typedef - typename mpl::if_< - mpl::empty > - , mpl::string<(char)Value::value> - , type0 - >::type - type; - #else - typedef type0 type; - #endif - }; - }; - - template - struct has_push_front_impl; - - template<> - struct has_push_front_impl - { - template - struct apply - : mpl::true_ - {}; - }; - - template - struct pop_front_impl; - - template<> - struct pop_front_impl - { - template - struct apply; - - #define M0(z,n,data) \ - template \ - struct apply, true> \ - { \ - BOOST_MPL_ASSERT_MSG((C0 != 0), POP_FRONT_FAILED_MPL_STRING_IS_EMPTY, (mpl::string<>)); \ - typedef \ - mpl::string \ - type; \ - }; - - BOOST_PP_REPEAT_FROM_TO(1, BOOST_MPL_STRING_MAX_PARAMS, M0, ~) - #undef M0 - - template - struct apply, false> - { - typedef - mpl::string< - BOOST_MPL_MULTICHAR_POP_FRONT(C0) - , BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_MPL_STRING_MAX_PARAMS, C) - > - type; - }; - }; - - template - struct has_pop_front_impl; - - template<> - struct has_pop_front_impl - { - template - struct apply - : mpl::true_ - {}; - }; - - template - struct insert_range_impl; - - template<> - struct insert_range_impl - { - template - struct apply - : mpl::copy< - mpl::joint_view< - mpl::iterator_range< - mpl::string_iterator - , Pos - > - , mpl::joint_view< - Range - , mpl::iterator_range< - Pos - , typename mpl::end::type - > - > - > - , mpl::back_inserter > - > - {}; - }; - - template - struct insert_impl; - - template<> - struct insert_impl - { - template - struct apply - : mpl::insert_range > - {}; - }; - - template - struct erase_impl; - - template<> - struct erase_impl - { - template - struct apply - : mpl::copy< - mpl::joint_view< - mpl::iterator_range< - mpl::string_iterator - , First - > - , mpl::iterator_range< - typename mpl::if_na::type>::type - , typename mpl::end::type - > - > - , mpl::back_inserter > - > - {}; - }; - - template - struct clear_impl; - - template<> - struct clear_impl - { - template - struct apply - { - typedef mpl::string<> type; - }; - }; - - #define M0(z, n, data) \ - template \ - struct string_iterator, n, J> \ - { \ - enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == J + 1) }; \ - typedef mpl::string string; \ - typedef std::bidirectional_iterator_tag category; \ - typedef \ - mpl::string_iterator \ - next; \ - typedef \ - mpl::string_iterator \ - prior; \ - typedef mpl::char_ type; \ - }; \ - template \ - struct string_iterator, n, 0> \ - { \ - enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == 1) }; \ - typedef mpl::string string; \ - typedef std::bidirectional_iterator_tag category; \ - typedef \ - mpl::string_iterator \ - next; \ - typedef \ - mpl::string_iterator< \ - string \ - , n - 1 \ - , BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, BOOST_PP_DEC(n))) - 1 \ - > \ - prior; \ - typedef mpl::char_ type; \ - }; - - BOOST_PP_REPEAT(BOOST_MPL_STRING_MAX_PARAMS, M0, ~) - #undef M0 - - template - struct string - { - /// INTERNAL ONLY - enum - { - front_ = C0 - , back_ = BOOST_PP_CAT(C, BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS)) - }; - - typedef char value_type; - typedef string type; - typedef string_tag tag; - }; - - namespace aux_ - { - template - struct next_unless - : mpl::next - {}; - - template - struct next_unless - { - typedef End type; - }; - - template - struct deref_unless - : mpl::deref - {}; - - template - struct deref_unless - { - typedef mpl::char_<'\0'> type; - }; - } - - template - struct c_str - { - typedef typename mpl::end::type iend; - typedef typename mpl::begin::type i0; - #define M0(z, n, data) \ - typedef \ - typename mpl::aux_::next_unless::type \ - BOOST_PP_CAT(i, BOOST_PP_INC(n)); - BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~) - #undef M0 - - typedef c_str type; - static typename Sequence::value_type const value[BOOST_MPL_LIMIT_STRING_SIZE+1]; - }; - - template - typename Sequence::value_type const c_str::value[BOOST_MPL_LIMIT_STRING_SIZE+1] = - { - #define M0(z, n, data) \ - mpl::aux_::deref_unless::type::value, - BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~) - #undef M0 - '\0' - }; - -}} // namespace boost - -#endif // BOOST_MPL_STRING_HPP_INCLUDED diff --git a/3rdparty/boost/boost/preprocessor/arithmetic/div.hpp b/3rdparty/boost/boost/preprocessor/arithmetic/div.hpp deleted file mode 100644 index 277596cea9..0000000000 --- a/3rdparty/boost/boost/preprocessor/arithmetic/div.hpp +++ /dev/null @@ -1,39 +0,0 @@ -# /* Copyright (C) 2001 -# * Housemarque Oy -# * http://www.housemarque.com -# * -# * 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) -# */ -# -# /* Revised by Paul Mensonides (2002) */ -# -# /* See http://www.boost.org for most recent version. */ -# -# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DIV_HPP -# define BOOST_PREPROCESSOR_ARITHMETIC_DIV_HPP -# -# include -# include -# include -# -# /* BOOST_PP_DIV */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_DIV(x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE(x, y)) -# else -# define BOOST_PP_DIV(x, y) BOOST_PP_DIV_I(x, y) -# define BOOST_PP_DIV_I(x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE(x, y)) -# endif -# -# /* BOOST_PP_DIV_D */ -# -# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() -# define BOOST_PP_DIV_D(d, x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE_D(d, x, y)) -# else -# define BOOST_PP_DIV_D(d, x, y) BOOST_PP_DIV_D_I(d, x, y) -# define BOOST_PP_DIV_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(3, 0, BOOST_PP_DIV_BASE_D(d, x, y)) -# endif -# -# endif diff --git a/3rdparty/boost/boost/type_traits/same_traits.hpp b/3rdparty/boost/boost/type_traits/same_traits.hpp deleted file mode 100644 index dab7dac783..0000000000 --- a/3rdparty/boost/boost/type_traits/same_traits.hpp +++ /dev/null @@ -1,15 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. -// Use, modification and distribution are subject to 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). -// -// See http://www.boost.org/libs/type_traits for most recent version including documentation. -// -// defines is_same: - -#ifndef BOOST_TT_SAME_TRAITS_HPP_INCLUDED -#define BOOST_TT_SAME_TRAITS_HPP_INCLUDED - -#include - -#endif // BOOST_TT_SAME_TRAITS_HPP_INCLUDED diff --git a/3rdparty/boost/extract.sh b/3rdparty/boost/extract.sh index 879a92634a..f37448456b 100755 --- a/3rdparty/boost/extract.sh +++ b/3rdparty/boost/extract.sh @@ -37,10 +37,6 @@ bcp --boost=$1 \ boost/signals/connection.hpp \ boost/signals/trackable.hpp \ boost/tuple/tuple.hpp \ - boost/mpl/string.hpp \ - boost/mpl/fold.hpp \ - boost/mpl/size_t.hpp \ - boost/functional/hash.hpp \ \ needed diff --git a/src/Text.cpp b/src/Text.cpp index 416a67bf0d..f51646e55e 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -73,30 +73,6 @@ #include -// TODO: replace if in Text::readParToken() with compile time switch -#if 0 - -#include "support/metahash.h" - -typedef boost::mpl::string<'\\end','_lay','out'> end_layout; -typedef boost::mpl::string<'\\end','in','set'> end_inset; - -void foo() -{ - std::string token = "\\end_layout"; - - switch (boost::hash_value(token)) { - case lyx::support::hash_string::value: - return; - case lyx::support::hash_string::value: - return; - default: ; - }; - -} -#endif - - using namespace std; using namespace lyx::support; diff --git a/src/support/metahash.h b/src/support/metahash.h deleted file mode 100644 index 84f6062bc2..0000000000 --- a/src/support/metahash.h +++ /dev/null @@ -1,73 +0,0 @@ -// -*- C++ -*- -/** - * \file methash.h - * This file is part of LyX, the document processor. - * Licence details can be found in the file COPYING. - * - * \author Peter Kümmel - * - * Full author contact details are available in file CREDITS. - * - * Code by Tor Brede Vekterli - * http://arcticinteractive.com/2009/04/18/compile-time-string-hashing-boost-mpl/ - * (Boost 1.0 license.) - * - */ - -#ifndef LYX_META_HASH_H -#define LYX_META_HASH_H - -#include -#include -#include -#include - - - -namespace lyx { -namespace support { - -#ifdef _MSC_VER -#pragma warning(push) -// disable addition overflow warning -#pragma warning(disable:4307) -#endif - - template - struct hash_combine - { - typedef boost::mpl::size_t< - Seed::value ^ (static_cast(Value::value) - + 0x9e3779b9 + (Seed::value << 6) + (Seed::value >> 2)) - > type; - }; - -#ifdef _MSC_VER -#pragma warning(pop) -#endif - - // Hash any sequence of integral wrapper types - template - struct hash_sequence - : boost::mpl::fold< - Sequence - , boost::mpl::size_t<0> - , hash_combine - >::type - {}; - - // For hashing std::strings et al that don't include the zero-terminator - template - struct hash_string : hash_sequence - {}; - - // Hash including terminating zero for char arrays - template - struct hash_cstring - : hash_combine< hash_sequence, boost::mpl::size_t<0> >::type - {}; - -} -} - -#endif