diff options
| author | Remko Tronçon <git@el-tramo.be> | 2011-03-14 18:35:17 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2011-03-14 18:35:17 (GMT) | 
| commit | a135c6ff4dcded5661a2321512960b14cf8c15c8 (patch) | |
| tree | b0017ecfe702304f592b9d4e8b943784cff26fb2 /3rdParty/Boost/src | |
| parent | 02d6188ab335e6c62b8341b84579d9549d215118 (diff) | |
| download | swift-contrib-a135c6ff4dcded5661a2321512960b14cf8c15c8.zip swift-contrib-a135c6ff4dcded5661a2321512960b14cf8c15c8.tar.bz2  | |
Updated Boost to 1.46.1.
This should hopefuily fix a hang on shutdown on Mac OS X.
Resolves: #782
Release-Notes: Fixed a potential hang on shutdown on Mac OS X.
Diffstat (limited to '3rdParty/Boost/src')
506 files changed, 2279 insertions, 20041 deletions
diff --git a/3rdParty/Boost/src/boost/algorithm/string/detail/find_format.hpp b/3rdParty/Boost/src/boost/algorithm/string/detail/find_format.hpp index 7f5f780..8b9ad42 100644 --- a/3rdParty/Boost/src/boost/algorithm/string/detail/find_format.hpp +++ b/3rdParty/Boost/src/boost/algorithm/string/detail/find_format.hpp @@ -74,17 +74,17 @@ namespace boost {                  const InputT& Input,                  FormatterT Formatter,                  const FindResultT& FindResult ) -            {        +            {                     if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { -                return ::boost::algorithm::detail::find_format_copy_impl2(  -                    Output, -                    Input, -                    Formatter, -                    FindResult, -                    Formatter(FindResult) ); +                    return ::boost::algorithm::detail::find_format_copy_impl2(  +                        Output, +                        Input, +                        Formatter, +                        FindResult, +                        Formatter(FindResult) );                  } else {                      return std::copy( ::boost::begin(Input), ::boost::end(Input), Output ); -            } +                }              } @@ -137,14 +137,14 @@ namespace boost {                  const FindResultT& FindResult)              {                  if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { -                return ::boost::algorithm::detail::find_format_copy_impl2( -                    Input, -                    Formatter, -                    FindResult, -                    Formatter(FindResult) ); +                    return ::boost::algorithm::detail::find_format_copy_impl2( +                        Input, +                        Formatter, +                        FindResult, +                        Formatter(FindResult) );                  } else {                      return Input; -            } +                }              }   // replace implementation ----------------------------------------------------// @@ -189,12 +189,12 @@ namespace boost {                  const FindResultT& FindResult)              {                  if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { -                ::boost::algorithm::detail::find_format_impl2( -                    Input, -                    Formatter, -                    FindResult, -                    Formatter(FindResult) ); -            } +                    ::boost::algorithm::detail::find_format_impl2( +                        Input, +                        Formatter, +                        FindResult, +                        Formatter(FindResult) ); +                }              }          } // namespace detail diff --git a/3rdParty/Boost/src/boost/algorithm/string/detail/find_format_all.hpp b/3rdParty/Boost/src/boost/algorithm/string/detail/find_format_all.hpp index 0f184a3..978710c 100644 --- a/3rdParty/Boost/src/boost/algorithm/string/detail/find_format_all.hpp +++ b/3rdParty/Boost/src/boost/algorithm/string/detail/find_format_all.hpp @@ -84,18 +84,18 @@ namespace boost {                  FinderT Finder,                  FormatterT Formatter,                  const FindResultT& FindResult ) -            {        +            {                     if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { -                return ::boost::algorithm::detail::find_format_all_copy_impl2(  -                    Output, -                    Input, -                    Finder, -                    Formatter, -                    FindResult, -                    Formatter(FindResult) ); +                    return ::boost::algorithm::detail::find_format_all_copy_impl2(  +                        Output, +                        Input, +                        Finder, +                        Formatter, +                        FindResult, +                        Formatter(FindResult) );                  } else {                      return std::copy( ::boost::begin(Input), ::boost::end(Input), Output ); -            } +                }              }   // find_format_all_copy implementation ----------------------------------------------// @@ -161,15 +161,15 @@ namespace boost {                  const FindResultT& FindResult)              {                  if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { -                return ::boost::algorithm::detail::find_format_all_copy_impl2( -                    Input, -                    Finder, -                    Formatter, -                    FindResult, -                    Formatter(FindResult) ); +                    return ::boost::algorithm::detail::find_format_all_copy_impl2( +                        Input, +                        Finder, +                        Formatter, +                        FindResult, +                        Formatter(FindResult) );                  } else {                      return Input; -            } +                }              }   // find_format_all implementation ------------------------------------------------// @@ -257,13 +257,13 @@ namespace boost {                  FindResultT FindResult)              {                  if( ::boost::algorithm::detail::check_find_result(Input, FindResult) ) { -                ::boost::algorithm::detail::find_format_all_impl2( -                    Input, -                    Finder, -                    Formatter, -                    FindResult, -                    Formatter(FindResult) ); -            } +                    ::boost::algorithm::detail::find_format_all_impl2( +                        Input, +                        Finder, +                        Formatter, +                        FindResult, +                        Formatter(FindResult) ); +                }              }          } // namespace detail diff --git a/3rdParty/Boost/src/boost/algorithm/string/detail/find_format_store.hpp b/3rdParty/Boost/src/boost/algorithm/string/detail/find_format_store.hpp index 4872c5a..e8bd84a 100644 --- a/3rdParty/Boost/src/boost/algorithm/string/detail/find_format_store.hpp +++ b/3rdParty/Boost/src/boost/algorithm/string/detail/find_format_store.hpp @@ -53,7 +53,7 @@ namespace boost {                  {                      iterator_range<ForwardIteratorT>::operator=(FindResult);                      if( !this->empty() ) { -                    m_FormatResult=m_Formatter(FindResult); +                        m_FormatResult=m_Formatter(FindResult);                      }                      return *this; diff --git a/3rdParty/Boost/src/boost/algorithm/string/find_iterator.hpp b/3rdParty/Boost/src/boost/algorithm/string/find_iterator.hpp index 72696c7..b72ba7c 100644 --- a/3rdParty/Boost/src/boost/algorithm/string/find_iterator.hpp +++ b/3rdParty/Boost/src/boost/algorithm/string/find_iterator.hpp @@ -259,7 +259,11 @@ namespace boost {                  m_End(End),                  m_bEof(false)              { -                increment(); +                // force the correct behavior for empty sequences and yield at least one token +                if(Begin!=End) +                { +                    increment(); +                }              }              //! Constructor              /*! @@ -278,7 +282,11 @@ namespace boost {                  m_Next=::boost::begin(lit_col);                  m_End=::boost::end(lit_col); -                increment(); +                // force the correct behavior for empty sequences and yield at least one token +                if(m_Next!=m_End) +                { +                    increment(); +                }              } diff --git a/3rdParty/Boost/src/boost/archive/archive_exception.hpp b/3rdParty/Boost/src/boost/archive/archive_exception.hpp deleted file mode 100644 index 242f752..0000000 --- a/3rdParty/Boost/src/boost/archive/archive_exception.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef BOOST_ARCHIVE_ARCHIVE_EXCEPTION_HPP -#define BOOST_ARCHIVE_ARCHIVE_EXCEPTION_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// archive/archive_exception.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <exception> -#include <cassert> -#include <string> - -#include <boost/config.hpp>  -#include <boost/preprocessor/empty.hpp> -#include <boost/archive/detail/decl.hpp> - -// note: the only reason this is in here is that windows header -// includes #define exception_code _exception_code (arrrgghhhh!). -// the most expedient way to address this is be sure that this -// header is always included whenever this header file is included. -#if defined(BOOST_WINDOWS)  -#include <excpt.h>  -#endif  - -#include <boost/archive/detail/abi_prefix.hpp> // must be the last header - -namespace boost { -namespace archive { - -////////////////////////////////////////////////////////////////////// -// exceptions thrown by archives -// -class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) archive_exception :  -    public virtual std::exception -{ -public: -    typedef enum { -        no_exception,       // initialized without code -        other_exception,    // any excepton not listed below -        unregistered_class, // attempt to serialize a pointer of an -                            // an unregistered class -        invalid_signature,  // first line of archive does not contain -                            // expected string -        unsupported_version,// archive created with library version -                            // subsequent to this one -        pointer_conflict,   // an attempt has been made to directly -                            // serialize an object which has -                            // already been serialzed through a pointer.   -                            // Were this permited, the archive load would result  -                            // in the creation of an extra copy of the obect. -        incompatible_native_format, // attempt to read native binary format -                            // on incompatible platform -        array_size_too_short,// array being loaded doesn't fit in array allocated -        input_stream_error, // error on input stream -        invalid_class_name, // class name greater than the maximum permitted. -                            // most likely a corrupted archive or an attempt -                            // to insert virus via buffer overrun method. -        unregistered_cast,   // base - derived relationship not registered with  -                            // void_cast_register -        unsupported_class_version, // type saved with a version # greater than the  -                            // one used by the program.  This indicates that the proggram -                            // needs to be rebuilt. -        multiple_code_instantiation, // code for implementing serialization for some -                            // type has been instantiated in more than one module. -        output_stream_error // error on input stream -    } exception_code; -protected: -    std::string m_msg; -public: -    exception_code code; -    archive_exception( -        exception_code c,  -        const char * e1 = NULL, -        const char * e2 = NULL -    ); -    ~archive_exception() throw (); -    virtual const char *what( ) const throw(); -protected: -    archive_exception(); -}; - -}// namespace archive -}// namespace boost - -#include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas - -#endif //BOOST_ARCHIVE_ARCHIVE_EXCEPTION_HPP diff --git a/3rdParty/Boost/src/boost/archive/detail/abi_prefix.hpp b/3rdParty/Boost/src/boost/archive/detail/abi_prefix.hpp deleted file mode 100644 index e39ef11..0000000 --- a/3rdParty/Boost/src/boost/archive/detail/abi_prefix.hpp +++ /dev/null @@ -1,20 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// abi_prefix.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <boost/config/abi_prefix.hpp> // must be the last header -#ifdef BOOST_MSVC -#  pragma warning(push) -#  pragma warning(disable : 4251 4231 4660 4275) -#endif - -#if defined( __BORLANDC__ ) -#pragma nopushoptwarn -#endif - diff --git a/3rdParty/Boost/src/boost/archive/detail/abi_suffix.hpp b/3rdParty/Boost/src/boost/archive/detail/abi_suffix.hpp deleted file mode 100644 index a283b36..0000000 --- a/3rdParty/Boost/src/boost/archive/detail/abi_suffix.hpp +++ /dev/null @@ -1,19 +0,0 @@ -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// abi_suffix.hpp - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif -#include <boost/config/abi_suffix.hpp> // pops abi_suffix.hpp pragmas - -#if defined( __BORLANDC__ ) -#pragma nopushoptwarn -#endif - diff --git a/3rdParty/Boost/src/boost/archive/detail/decl.hpp b/3rdParty/Boost/src/boost/archive/detail/decl.hpp deleted file mode 100644 index 9695001..0000000 --- a/3rdParty/Boost/src/boost/archive/detail/decl.hpp +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef BOOST_ARCHIVE_DETAIL_DECL_HPP -#define BOOST_ARCHIVE_DETAIL_DECL_HPP  - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif  - -/////////1/////////2///////// 3/////////4/////////5/////////6/////////7/////////8 -//  decl.hpp -// -//  (c) Copyright Robert Ramey 2004 -//  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) - -//  See library home page at http://www.boost.org/libs/serialization - -//----------------------------------------------------------------------------//  - -// This header implements separate compilation features as described in -// http://www.boost.org/more/separate_compilation.html - -#include <boost/config.hpp> -#include <boost/preprocessor/facilities/empty.hpp> - -#if defined(BOOST_HAS_DECLSPEC) -    #if (defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SERIALIZATION_DYN_LINK)) -        #if defined(BOOST_ARCHIVE_SOURCE) -            #if defined(__BORLANDC__) -            #define BOOST_ARCHIVE_DECL(T) T __export -            #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T)  T __export -            #else -            #define BOOST_ARCHIVE_DECL(T) __declspec(dllexport) T -            #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T)  __declspec(dllexport) T -            #endif -        #else -            #if defined(__BORLANDC__) -            #define BOOST_ARCHIVE_DECL(T) T __import -            #else -            #define BOOST_ARCHIVE_DECL(T) __declspec(dllimport) T -            #endif -        #endif -        #if defined(BOOST_WARCHIVE_SOURCE) -            #if defined(__BORLANDC__) -            #define BOOST_WARCHIVE_DECL(T) T __export -            #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __export -            #else -            #define BOOST_WARCHIVE_DECL(T) __declspec(dllexport) T -            #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __declspec(dllexport) T -            #endif -        #else -            #if defined(__BORLANDC__) -            #define BOOST_WARCHIVE_DECL(T) T __import -            #else -            #define BOOST_WARCHIVE_DECL(T) __declspec(dllimport) T -            #endif -        #endif -        #if !defined(BOOST_WARCHIVE_SOURCE) && !defined(BOOST_ARCHIVE_SOURCE) -            #if defined(__BORLANDC__) -            #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T __import -            #else -            #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) __declspec(dllimport) T -            #endif -        #endif -    #endif -#endif // BOOST_HAS_DECLSPEC - -#if ! defined(BOOST_ARCHIVE_DECL) -    #define BOOST_ARCHIVE_DECL(T) T -#endif -#if ! defined(BOOST_WARCHIVE_DECL) -    #define BOOST_WARCHIVE_DECL(T) T -#endif -#if ! defined(BOOST_ARCHIVE_OR_WARCHIVE_DECL) -    #define BOOST_ARCHIVE_OR_WARCHIVE_DECL(T) T -#endif - -#endif // BOOST_ARCHIVE_DETAIL_DECL_HPP diff --git a/3rdParty/Boost/src/boost/array.hpp b/3rdParty/Boost/src/boost/array.hpp index 7df2771..85b63a2 100644 --- a/3rdParty/Boost/src/boost/array.hpp +++ b/3rdParty/Boost/src/boost/array.hpp @@ -13,6 +13,7 @@   * accompanying file LICENSE_1_0.txt or copy at   * http://www.boost.org/LICENSE_1_0.txt)   * + * 28 Dec 2010 - (mtc) Added cbegin and cend (and crbegin and crend) for C++Ox compatibility.   * 10 Mar 2010 - (mtc) fill method added, matching resolution of the standard library working group.   *      See <http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#776> or Trac issue #3168   *      Eventually, we should remove "assign" which is now a synonym for "fill" (Marshall Clow) @@ -69,10 +70,13 @@ namespace boost {          typedef std::ptrdiff_t difference_type;          // iterator support -        iterator begin() { return elems; } -        const_iterator begin() const { return elems; } -        iterator end() { return elems+N; } -        const_iterator end() const { return elems+N; } +        iterator        begin()       { return elems; } +        const_iterator  begin() const { return elems; } +        const_iterator cbegin() const { return elems; } +         +        iterator        end()       { return elems+N; } +        const_iterator  end() const { return elems+N; } +        const_iterator cend() const { return elems+N; }          // reverse iterator support  #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) @@ -99,10 +103,17 @@ namespace boost {          const_reverse_iterator rbegin() const {              return const_reverse_iterator(end());          } +        const_reverse_iterator crbegin() const { +            return const_reverse_iterator(end()); +        } +          reverse_iterator rend() { return reverse_iterator(begin()); }          const_reverse_iterator rend() const {              return const_reverse_iterator(begin());          } +        const_reverse_iterator crend() const { +            return const_reverse_iterator(begin()); +        }          // operator[]          reference operator[](size_type i)  @@ -200,10 +211,13 @@ namespace boost {          typedef std::ptrdiff_t difference_type;          // iterator support -        iterator begin() { return iterator( reinterpret_cast< T * >( this ) ); } -        const_iterator begin() const { return const_iterator(  reinterpret_cast< const T * >( this ) ); } -        iterator end() { return begin(); } -        const_iterator end() const { return begin(); } +        iterator        begin()       { return       iterator( reinterpret_cast<       T * >( this ) ); } +        const_iterator  begin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); } +        const_iterator cbegin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); } + +        iterator        end()       { return  begin(); } +        const_iterator  end() const { return  begin(); } +        const_iterator cend() const { return cbegin(); }          // reverse iterator support  #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) @@ -230,10 +244,17 @@ namespace boost {          const_reverse_iterator rbegin() const {              return const_reverse_iterator(end());          } +        const_reverse_iterator crbegin() const { +            return const_reverse_iterator(end()); +        } +          reverse_iterator rend() { return reverse_iterator(begin()); }          const_reverse_iterator rend() const {              return const_reverse_iterator(begin());          } +        const_reverse_iterator crend() const { +            return const_reverse_iterator(begin()); +        }          // operator[]          reference operator[](size_type /*i*/) @@ -346,7 +367,34 @@ namespace boost {          x.swap(y);      } -    // Specific for boost::array: simply returns its elems data member. +#if defined(__SUNPRO_CC) +//  Trac ticket #4757; the Sun Solaris compiler can't handle +//  syntax like 'T(&get_c_array(boost::array<T,N>& arg))[N]' +//   +//  We can't just use this for all compilers, because the  +//      borland compilers can't handle this form.  +    namespace detail { +       template <typename T, std::size_t N> struct c_array +       { +           typedef T type[N]; +       }; +    } +     +   // Specific for boost::array: simply returns its elems data member. +   template <typename T, std::size_t N> +   typename detail::c_array<T,N>::type& get_c_array(boost::array<T,N>& arg) +   { +       return arg.elems; +   } + +   // Specific for boost::array: simply returns its elems data member. +   template <typename T, std::size_t N> +   typename const detail::c_array<T,N>::type& get_c_array(const boost::array<T,N>& arg) +   { +       return arg.elems; +   } +#else +// Specific for boost::array: simply returns its elems data member.      template <typename T, std::size_t N>      T(&get_c_array(boost::array<T,N>& arg))[N]      { @@ -359,7 +407,8 @@ namespace boost {      {          return arg.elems;      } - +#endif +      #if 0      // Overload for std::array, assuming that std::array will have      // explicit conversion functions as discussed at the WG21 meeting diff --git a/3rdParty/Boost/src/boost/asio.hpp b/3rdParty/Boost/src/boost/asio.hpp index f94e0d6..2681806 100644 --- a/3rdParty/Boost/src/boost/asio.hpp +++ b/3rdParty/Boost/src/boost/asio.hpp @@ -2,7 +2,7 @@  // asio.hpp  // ~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/basic_datagram_socket.hpp b/3rdParty/Boost/src/boost/asio/basic_datagram_socket.hpp index 5272809..a79967f 100644 --- a/3rdParty/Boost/src/boost/asio/basic_datagram_socket.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_datagram_socket.hpp @@ -2,7 +2,7 @@  // basic_datagram_socket.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/basic_deadline_timer.hpp b/3rdParty/Boost/src/boost/asio/basic_deadline_timer.hpp index dc471e2..452999d 100644 --- a/3rdParty/Boost/src/boost/asio/basic_deadline_timer.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_deadline_timer.hpp @@ -2,7 +2,7 @@  // basic_deadline_timer.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/basic_io_object.hpp b/3rdParty/Boost/src/boost/asio/basic_io_object.hpp index 414f365..8e137e7 100644 --- a/3rdParty/Boost/src/boost/asio/basic_io_object.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_io_object.hpp @@ -2,7 +2,7 @@  // basic_io_object.hpp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/basic_raw_socket.hpp b/3rdParty/Boost/src/boost/asio/basic_raw_socket.hpp index 0b877de..0e58e7f 100644 --- a/3rdParty/Boost/src/boost/asio/basic_raw_socket.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_raw_socket.hpp @@ -2,7 +2,7 @@  // basic_raw_socket.hpp  // ~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/basic_serial_port.hpp b/3rdParty/Boost/src/boost/asio/basic_serial_port.hpp index 4936c9c..744fd3b 100644 --- a/3rdParty/Boost/src/boost/asio/basic_serial_port.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_serial_port.hpp @@ -2,7 +2,7 @@  // basic_serial_port.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/basic_socket.hpp b/3rdParty/Boost/src/boost/asio/basic_socket.hpp index 50a0c47..11ce5c9 100644 --- a/3rdParty/Boost/src/boost/asio/basic_socket.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_socket.hpp @@ -2,7 +2,7 @@  // basic_socket.hpp  // ~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/basic_socket_acceptor.hpp b/3rdParty/Boost/src/boost/asio/basic_socket_acceptor.hpp index 5192df7..a877bc3 100644 --- a/3rdParty/Boost/src/boost/asio/basic_socket_acceptor.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_socket_acceptor.hpp @@ -2,7 +2,7 @@  // basic_socket_acceptor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/basic_socket_iostream.hpp b/3rdParty/Boost/src/boost/asio/basic_socket_iostream.hpp index a8cea4f..142f404 100644 --- a/3rdParty/Boost/src/boost/asio/basic_socket_iostream.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_socket_iostream.hpp @@ -2,7 +2,7 @@  // basic_socket_iostream.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/basic_socket_streambuf.hpp b/3rdParty/Boost/src/boost/asio/basic_socket_streambuf.hpp index 35e96d0..c2a9a99 100644 --- a/3rdParty/Boost/src/boost/asio/basic_socket_streambuf.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_socket_streambuf.hpp @@ -2,7 +2,7 @@  // basic_socket_streambuf.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/basic_stream_socket.hpp b/3rdParty/Boost/src/boost/asio/basic_stream_socket.hpp index 956d623..87bd035 100644 --- a/3rdParty/Boost/src/boost/asio/basic_stream_socket.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_stream_socket.hpp @@ -2,7 +2,7 @@  // basic_stream_socket.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/basic_streambuf.hpp b/3rdParty/Boost/src/boost/asio/basic_streambuf.hpp index 546a4ac..7a04c69 100644 --- a/3rdParty/Boost/src/boost/asio/basic_streambuf.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_streambuf.hpp @@ -2,7 +2,7 @@  // basic_streambuf.hpp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) @@ -237,6 +237,8 @@ public:     */    void consume(std::size_t n)    { +    if (egptr() < pptr()) +      setg(&buffer_[0], gptr(), pptr());      if (gptr() + n > pptr())        n = pptr() - gptr();      gbump(static_cast<int>(n)); diff --git a/3rdParty/Boost/src/boost/asio/basic_streambuf_fwd.hpp b/3rdParty/Boost/src/boost/asio/basic_streambuf_fwd.hpp index 215937e..a7d82d3 100644 --- a/3rdParty/Boost/src/boost/asio/basic_streambuf_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/basic_streambuf_fwd.hpp @@ -2,7 +2,7 @@  // basic_streambuf_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/buffer.hpp b/3rdParty/Boost/src/boost/asio/buffer.hpp index f925361..15eaad4 100644 --- a/3rdParty/Boost/src/boost/asio/buffer.hpp +++ b/3rdParty/Boost/src/boost/asio/buffer.hpp @@ -2,7 +2,7 @@  // buffer.hpp  // ~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/buffered_read_stream.hpp b/3rdParty/Boost/src/boost/asio/buffered_read_stream.hpp index 935f5b9..af24dd6 100644 --- a/3rdParty/Boost/src/boost/asio/buffered_read_stream.hpp +++ b/3rdParty/Boost/src/boost/asio/buffered_read_stream.hpp @@ -2,7 +2,7 @@  // buffered_read_stream.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/buffered_read_stream_fwd.hpp b/3rdParty/Boost/src/boost/asio/buffered_read_stream_fwd.hpp index 87f27d9..9c8a1af 100644 --- a/3rdParty/Boost/src/boost/asio/buffered_read_stream_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/buffered_read_stream_fwd.hpp @@ -2,7 +2,7 @@  // buffered_read_stream_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/buffered_stream.hpp b/3rdParty/Boost/src/boost/asio/buffered_stream.hpp index ceeb6f2..43d21de 100644 --- a/3rdParty/Boost/src/boost/asio/buffered_stream.hpp +++ b/3rdParty/Boost/src/boost/asio/buffered_stream.hpp @@ -2,7 +2,7 @@  // buffered_stream.hpp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/buffered_stream_fwd.hpp b/3rdParty/Boost/src/boost/asio/buffered_stream_fwd.hpp index d23bc26..042b990 100644 --- a/3rdParty/Boost/src/boost/asio/buffered_stream_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/buffered_stream_fwd.hpp @@ -2,7 +2,7 @@  // buffered_stream_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/buffered_write_stream.hpp b/3rdParty/Boost/src/boost/asio/buffered_write_stream.hpp index c918a0a..a163b13 100644 --- a/3rdParty/Boost/src/boost/asio/buffered_write_stream.hpp +++ b/3rdParty/Boost/src/boost/asio/buffered_write_stream.hpp @@ -2,7 +2,7 @@  // buffered_write_stream.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/buffered_write_stream_fwd.hpp b/3rdParty/Boost/src/boost/asio/buffered_write_stream_fwd.hpp index 8f0f409..0590a96 100644 --- a/3rdParty/Boost/src/boost/asio/buffered_write_stream_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/buffered_write_stream_fwd.hpp @@ -2,7 +2,7 @@  // buffered_write_stream_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/buffers_iterator.hpp b/3rdParty/Boost/src/boost/asio/buffers_iterator.hpp index 1ffd02d..3375361 100644 --- a/3rdParty/Boost/src/boost/asio/buffers_iterator.hpp +++ b/3rdParty/Boost/src/boost/asio/buffers_iterator.hpp @@ -2,7 +2,7 @@  // buffers_iterator.hpp  // ~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/completion_condition.hpp b/3rdParty/Boost/src/boost/asio/completion_condition.hpp index dfb48ed..7f5fc09 100644 --- a/3rdParty/Boost/src/boost/asio/completion_condition.hpp +++ b/3rdParty/Boost/src/boost/asio/completion_condition.hpp @@ -2,7 +2,7 @@  // completion_condition.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/datagram_socket_service.hpp b/3rdParty/Boost/src/boost/asio/datagram_socket_service.hpp index 4d324e2..0db1f34 100644 --- a/3rdParty/Boost/src/boost/asio/datagram_socket_service.hpp +++ b/3rdParty/Boost/src/boost/asio/datagram_socket_service.hpp @@ -2,7 +2,7 @@  // datagram_socket_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/deadline_timer.hpp b/3rdParty/Boost/src/boost/asio/deadline_timer.hpp index 3ed7b67..866588b 100644 --- a/3rdParty/Boost/src/boost/asio/deadline_timer.hpp +++ b/3rdParty/Boost/src/boost/asio/deadline_timer.hpp @@ -2,7 +2,7 @@  // deadline_timer.hpp  // ~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/deadline_timer_service.hpp b/3rdParty/Boost/src/boost/asio/deadline_timer_service.hpp index 77060c4..ce8fd13 100644 --- a/3rdParty/Boost/src/boost/asio/deadline_timer_service.hpp +++ b/3rdParty/Boost/src/boost/asio/deadline_timer_service.hpp @@ -2,7 +2,7 @@  // deadline_timer_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/array_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/array_fwd.hpp index 3d47a9a..b7a27bf 100644 --- a/3rdParty/Boost/src/boost/asio/detail/array_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/array_fwd.hpp @@ -2,7 +2,7 @@  // detail/array_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/base_from_completion_cond.hpp b/3rdParty/Boost/src/boost/asio/detail/base_from_completion_cond.hpp index 797e3ce..b2b76d6 100644 --- a/3rdParty/Boost/src/boost/asio/detail/base_from_completion_cond.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/base_from_completion_cond.hpp @@ -2,7 +2,7 @@  // detail/base_from_completion_cond.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/bind_handler.hpp b/3rdParty/Boost/src/boost/asio/detail/bind_handler.hpp index 6b515db..0199643 100644 --- a/3rdParty/Boost/src/boost/asio/detail/bind_handler.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/bind_handler.hpp @@ -2,7 +2,7 @@  // detail/bind_handler.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/buffer_resize_guard.hpp b/3rdParty/Boost/src/boost/asio/detail/buffer_resize_guard.hpp index bcffc1a..7df4128 100644 --- a/3rdParty/Boost/src/boost/asio/detail/buffer_resize_guard.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/buffer_resize_guard.hpp @@ -2,7 +2,7 @@  // detail/buffer_resize_guard.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/buffer_sequence_adapter.hpp b/3rdParty/Boost/src/boost/asio/detail/buffer_sequence_adapter.hpp index 214cd41..fdda23f 100644 --- a/3rdParty/Boost/src/boost/asio/detail/buffer_sequence_adapter.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/buffer_sequence_adapter.hpp @@ -2,7 +2,7 @@  // detail/buffer_sequence_adapter.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/buffered_stream_storage.hpp b/3rdParty/Boost/src/boost/asio/detail/buffered_stream_storage.hpp index 9a2929e..86763b5 100644 --- a/3rdParty/Boost/src/boost/asio/detail/buffered_stream_storage.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/buffered_stream_storage.hpp @@ -2,7 +2,7 @@  // detail/buffered_stream_storage.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/call_stack.hpp b/3rdParty/Boost/src/boost/asio/detail/call_stack.hpp index 561a826..d5f9099 100644 --- a/3rdParty/Boost/src/boost/asio/detail/call_stack.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/call_stack.hpp @@ -2,7 +2,7 @@  // detail/call_stack.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/completion_handler.hpp b/3rdParty/Boost/src/boost/asio/detail/completion_handler.hpp index 6701fb3..3b023d1 100644 --- a/3rdParty/Boost/src/boost/asio/detail/completion_handler.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/completion_handler.hpp @@ -2,7 +2,7 @@  // detail/completion_handler.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/config.hpp b/3rdParty/Boost/src/boost/asio/detail/config.hpp index abd2044..45c2415 100644 --- a/3rdParty/Boost/src/boost/asio/detail/config.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/config.hpp @@ -2,7 +2,7 @@  // detail/config.hpp  // ~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/consuming_buffers.hpp b/3rdParty/Boost/src/boost/asio/detail/consuming_buffers.hpp index 23114a0..f50d4e0 100644 --- a/3rdParty/Boost/src/boost/asio/detail/consuming_buffers.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/consuming_buffers.hpp @@ -2,7 +2,7 @@  // detail/consuming_buffers.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/deadline_timer_service.hpp b/3rdParty/Boost/src/boost/asio/detail/deadline_timer_service.hpp index c391824..82e0d43 100644 --- a/3rdParty/Boost/src/boost/asio/detail/deadline_timer_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/deadline_timer_service.hpp @@ -2,7 +2,7 @@  // detail/deadline_timer_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/descriptor_ops.hpp b/3rdParty/Boost/src/boost/asio/detail/descriptor_ops.hpp index 4f82cd6..f92a7b4 100644 --- a/3rdParty/Boost/src/boost/asio/detail/descriptor_ops.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/descriptor_ops.hpp @@ -2,7 +2,7 @@  // detail/descriptor_ops.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/descriptor_read_op.hpp b/3rdParty/Boost/src/boost/asio/detail/descriptor_read_op.hpp index c068108..884f8f6 100644 --- a/3rdParty/Boost/src/boost/asio/detail/descriptor_read_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/descriptor_read_op.hpp @@ -2,7 +2,7 @@  // detail/descriptor_read_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/descriptor_write_op.hpp b/3rdParty/Boost/src/boost/asio/detail/descriptor_write_op.hpp index 0983854..805eb0b 100644 --- a/3rdParty/Boost/src/boost/asio/detail/descriptor_write_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/descriptor_write_op.hpp @@ -2,7 +2,7 @@  // detail/descriptor_write_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/dev_poll_reactor.hpp b/3rdParty/Boost/src/boost/asio/detail/dev_poll_reactor.hpp index ef2b0dc..79c1cbb 100644 --- a/3rdParty/Boost/src/boost/asio/detail/dev_poll_reactor.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/dev_poll_reactor.hpp @@ -2,7 +2,7 @@  // detail/dev_poll_reactor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) @@ -46,7 +46,7 @@ class dev_poll_reactor    : public boost::asio::detail::service_base<dev_poll_reactor>  {  public: -  enum { read_op = 0, write_op = 1, +  enum op_types { read_op = 0, write_op = 1,      connect_op = 1, except_op = 2, max_ops = 3 };    // Per-descriptor data. diff --git a/3rdParty/Boost/src/boost/asio/detail/dev_poll_reactor_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/dev_poll_reactor_fwd.hpp index 7e8defc..c5ceab2 100644 --- a/3rdParty/Boost/src/boost/asio/detail/dev_poll_reactor_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/dev_poll_reactor_fwd.hpp @@ -2,7 +2,7 @@  // detail/dev_poll_reactor_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/epoll_reactor.hpp b/3rdParty/Boost/src/boost/asio/detail/epoll_reactor.hpp index 18d87ee..1889017 100644 --- a/3rdParty/Boost/src/boost/asio/detail/epoll_reactor.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/epoll_reactor.hpp @@ -2,7 +2,7 @@  // detail/epoll_reactor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) @@ -42,7 +42,7 @@ class epoll_reactor    : public boost::asio::detail::service_base<epoll_reactor>  {  public: -  enum { read_op = 0, write_op = 1, +  enum op_types { read_op = 0, write_op = 1,      connect_op = 1, except_op = 2, max_ops = 3 };    // Per-descriptor queues. diff --git a/3rdParty/Boost/src/boost/asio/detail/epoll_reactor_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/epoll_reactor_fwd.hpp index dc0e92d..01ee84c 100644 --- a/3rdParty/Boost/src/boost/asio/detail/epoll_reactor_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/epoll_reactor_fwd.hpp @@ -2,7 +2,7 @@  // detail/epoll_reactor_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/event.hpp b/3rdParty/Boost/src/boost/asio/detail/event.hpp index c33b65a..c8109d1 100644 --- a/3rdParty/Boost/src/boost/asio/detail/event.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/event.hpp @@ -2,7 +2,7 @@  // detail/event.hpp  // ~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/eventfd_select_interrupter.hpp b/3rdParty/Boost/src/boost/asio/detail/eventfd_select_interrupter.hpp index b2cb68b..954fe79 100644 --- a/3rdParty/Boost/src/boost/asio/detail/eventfd_select_interrupter.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/eventfd_select_interrupter.hpp @@ -2,7 +2,7 @@  // detail/eventfd_select_interrupter.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Roelof Naude (roelof.naude at gmail dot com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/fd_set_adapter.hpp b/3rdParty/Boost/src/boost/asio/detail/fd_set_adapter.hpp index 138264f..8df0426 100644 --- a/3rdParty/Boost/src/boost/asio/detail/fd_set_adapter.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/fd_set_adapter.hpp @@ -2,7 +2,7 @@  // detail/fd_set_adapter.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/fenced_block.hpp b/3rdParty/Boost/src/boost/asio/detail/fenced_block.hpp index 443f487..4cb27dc 100644 --- a/3rdParty/Boost/src/boost/asio/detail/fenced_block.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/fenced_block.hpp @@ -2,7 +2,7 @@  // detail/fenced_block.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/gcc_arm_fenced_block.hpp b/3rdParty/Boost/src/boost/asio/detail/gcc_arm_fenced_block.hpp index 1350f09..58cdfb4 100644 --- a/3rdParty/Boost/src/boost/asio/detail/gcc_arm_fenced_block.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/gcc_arm_fenced_block.hpp @@ -2,7 +2,7 @@  // detail/gcc_arm_fenced_block.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/gcc_hppa_fenced_block.hpp b/3rdParty/Boost/src/boost/asio/detail/gcc_hppa_fenced_block.hpp index ef5c093..6c5226b 100644 --- a/3rdParty/Boost/src/boost/asio/detail/gcc_hppa_fenced_block.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/gcc_hppa_fenced_block.hpp @@ -2,7 +2,7 @@  // detail/gcc_hppa_fenced_block.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/gcc_sync_fenced_block.hpp b/3rdParty/Boost/src/boost/asio/detail/gcc_sync_fenced_block.hpp index 83341d5..65472cc 100644 --- a/3rdParty/Boost/src/boost/asio/detail/gcc_sync_fenced_block.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/gcc_sync_fenced_block.hpp @@ -2,7 +2,7 @@  // detail/gcc_sync_fenced_block.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/gcc_x86_fenced_block.hpp b/3rdParty/Boost/src/boost/asio/detail/gcc_x86_fenced_block.hpp index 5353f87..fb8473c 100644 --- a/3rdParty/Boost/src/boost/asio/detail/gcc_x86_fenced_block.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/gcc_x86_fenced_block.hpp @@ -2,7 +2,7 @@  // detail/gcc_x86_fenced_block.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/handler_alloc_helpers.hpp b/3rdParty/Boost/src/boost/asio/detail/handler_alloc_helpers.hpp index 00d4c02..fc3ec33 100644 --- a/3rdParty/Boost/src/boost/asio/detail/handler_alloc_helpers.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/handler_alloc_helpers.hpp @@ -2,7 +2,7 @@  // detail/handler_alloc_helpers.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/handler_invoke_helpers.hpp b/3rdParty/Boost/src/boost/asio/detail/handler_invoke_helpers.hpp index 996bde9..3b44997 100644 --- a/3rdParty/Boost/src/boost/asio/detail/handler_invoke_helpers.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/handler_invoke_helpers.hpp @@ -2,7 +2,7 @@  // detail/handler_invoke_helpers.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/hash_map.hpp b/3rdParty/Boost/src/boost/asio/detail/hash_map.hpp index c58096b..4f4eed3 100644 --- a/3rdParty/Boost/src/boost/asio/detail/hash_map.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/hash_map.hpp @@ -2,7 +2,7 @@  // detail/hash_map.hpp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/descriptor_ops.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/descriptor_ops.ipp index 74a8e6f..9a2bb3b 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/descriptor_ops.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/descriptor_ops.ipp @@ -2,7 +2,7 @@  // detail/impl/descriptor_ops.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/dev_poll_reactor.hpp b/3rdParty/Boost/src/boost/asio/detail/impl/dev_poll_reactor.hpp index 2aed0a8..a6b7078 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/dev_poll_reactor.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/dev_poll_reactor.hpp @@ -2,7 +2,7 @@  // detail/impl/dev_poll_reactor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/dev_poll_reactor.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/dev_poll_reactor.ipp index 67f6d50..b9d5e61 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/dev_poll_reactor.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/dev_poll_reactor.ipp @@ -2,7 +2,7 @@  // detail/impl/dev_poll_reactor.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/epoll_reactor.hpp b/3rdParty/Boost/src/boost/asio/detail/impl/epoll_reactor.hpp index 49f0d50..0339cfd 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/epoll_reactor.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/epoll_reactor.hpp @@ -2,7 +2,7 @@  // detail/impl/epoll_reactor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/epoll_reactor.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/epoll_reactor.ipp index a4c2491..5afb891 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/epoll_reactor.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/epoll_reactor.ipp @@ -2,7 +2,7 @@  // detail/impl/epoll_reactor.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) @@ -357,7 +357,7 @@ void epoll_reactor::update_timeout()      return;    }  #endif // defined(BOOST_ASIO_HAS_TIMERFD) -  interrupter_.interrupt(); +  interrupt();  }  int epoll_reactor::get_timeout() diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/eventfd_select_interrupter.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/eventfd_select_interrupter.ipp index 5bcc55b..d270b31 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/eventfd_select_interrupter.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/eventfd_select_interrupter.ipp @@ -2,7 +2,7 @@  // detail/impl/eventfd_select_interrupter.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Roelof Naude (roelof.naude at gmail dot com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.hpp b/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.hpp index 7bb0269..779f272 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.hpp @@ -2,7 +2,7 @@  // detail/impl/kqueue_reactor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.ipp index 08209bd..3ac9eae 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.ipp @@ -2,7 +2,7 @@  // detail/impl/kqueue_reactor.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying @@ -47,9 +47,9 @@ kqueue_reactor::kqueue_reactor(boost::asio::io_service& io_service)      interrupter_(),      shutdown_(false)  { -  // The interrupter is put into a permanently readable state. Whenever we -  // want to interrupt the blocked kevent call we register a one-shot read -  // operation against the descriptor. +  // The interrupter is put into a permanently readable state. Whenever we want +  // to interrupt the blocked kevent call we register a read operation against +  // the descriptor.    interrupter_.interrupt();  } @@ -139,17 +139,17 @@ void kqueue_reactor::start_op(int op_type, socket_type descriptor,      {      case read_op:        BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ, -          EV_ADD | EV_ONESHOT, 0, 0, descriptor_data); +          EV_ADD | EV_CLEAR, 0, 0, descriptor_data);        break;      case write_op:        BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_WRITE, -          EV_ADD | EV_ONESHOT, 0, 0, descriptor_data); +          EV_ADD | EV_CLEAR, 0, 0, descriptor_data);        break;      case except_op:        if (!descriptor_data->op_queue_[read_op].empty())          return; // Already registered for read events.        BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ, -          EV_ADD | EV_ONESHOT, EV_OOBAND, 0, descriptor_data); +          EV_ADD | EV_CLEAR, EV_OOBAND, 0, descriptor_data);        break;      } @@ -247,7 +247,7 @@ void kqueue_reactor::run(bool block, op_queue<operation>& ops)      if (ptr == &interrupter_)      {        // No need to reset the interrupter since we're leaving the descriptor -      // in a ready-to-read state and relying on one-shot notifications. +      // in a ready-to-read state and relying on edge-triggered notifications.      }      else      { @@ -296,18 +296,20 @@ void kqueue_reactor::run(bool block, op_queue<operation>& ops)        case EVFILT_READ:          if (!descriptor_data->op_queue_[read_op].empty())            BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ, -              EV_ADD | EV_ONESHOT, 0, 0, descriptor_data); +              EV_ADD | EV_CLEAR, 0, 0, descriptor_data);          else if (!descriptor_data->op_queue_[except_op].empty())            BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_READ, -              EV_ADD | EV_ONESHOT, EV_OOBAND, 0, descriptor_data); +              EV_ADD | EV_CLEAR, EV_OOBAND, 0, descriptor_data);          else            continue; +        break;        case EVFILT_WRITE:          if (!descriptor_data->op_queue_[write_op].empty())            BOOST_ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_WRITE, -              EV_ADD | EV_ONESHOT, 0, 0, descriptor_data); +              EV_ADD | EV_CLEAR, 0, 0, descriptor_data);          else            continue; +        break;        default:          break;        } @@ -336,7 +338,7 @@ void kqueue_reactor::interrupt()  {    struct kevent event;    BOOST_ASIO_KQUEUE_EV_SET(&event, interrupter_.read_descriptor(), -      EVFILT_READ, EV_ADD | EV_ONESHOT, 0, 0, &interrupter_); +      EVFILT_READ, EV_ADD | EV_CLEAR, 0, 0, &interrupter_);    ::kevent(kqueue_fd_, &event, 1, 0, 0, 0);  } diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/pipe_select_interrupter.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/pipe_select_interrupter.ipp index f2a7291..9a0a872 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/pipe_select_interrupter.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/pipe_select_interrupter.ipp @@ -2,7 +2,7 @@  // detail/impl/pipe_select_interrupter.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/posix_event.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/posix_event.ipp index 7e89b6c..893e8cc 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/posix_event.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/posix_event.ipp @@ -2,7 +2,7 @@  // detail/impl/posix_event.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/posix_mutex.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/posix_mutex.ipp index a4f81bb..908bfab 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/posix_mutex.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/posix_mutex.ipp @@ -2,7 +2,7 @@  // detail/impl/posix_mutex.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/posix_thread.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/posix_thread.ipp index 5dc41fa..feb6dd1 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/posix_thread.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/posix_thread.ipp @@ -2,7 +2,7 @@  // detail/impl/posix_thread.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/posix_tss_ptr.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/posix_tss_ptr.ipp index 1c626e5..89c1bf5 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/posix_tss_ptr.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/posix_tss_ptr.ipp @@ -2,7 +2,7 @@  // detail/impl/posix_tss_ptr.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/reactive_descriptor_service.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/reactive_descriptor_service.ipp index 6f0dc5a..a1ee09a 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/reactive_descriptor_service.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/reactive_descriptor_service.ipp @@ -2,7 +2,7 @@  // detail/impl/reactive_descriptor_service.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/reactive_serial_port_service.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/reactive_serial_port_service.ipp index b467209..ece61d3 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/reactive_serial_port_service.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/reactive_serial_port_service.ipp @@ -2,7 +2,7 @@  // detail/impl/reactive_serial_port_service.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/reactive_socket_service_base.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/reactive_socket_service_base.ipp index cecbe73..31f5bc4 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/reactive_socket_service_base.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/reactive_socket_service_base.ipp @@ -2,7 +2,7 @@  // detail/reactive_socket_service_base.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) @@ -64,7 +64,7 @@ boost::system::error_code reactive_socket_service_base::close(    if (is_open(impl))      reactor_.close_descriptor(impl.socket_, impl.reactor_data_); -  if (socket_ops::close(impl.socket_, impl.state_, true, ec) == 0) +  if (socket_ops::close(impl.socket_, impl.state_, false, ec) == 0)      construct(impl);    return ec; diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/resolver_service_base.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/resolver_service_base.ipp index d1af0be..e456bb9 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/resolver_service_base.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/resolver_service_base.ipp @@ -2,7 +2,7 @@  // detail/impl/resolver_service_base.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/select_reactor.hpp b/3rdParty/Boost/src/boost/asio/detail/impl/select_reactor.hpp index 55e064e..3773bfb 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/select_reactor.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/select_reactor.hpp @@ -2,7 +2,7 @@  // detail/impl/select_reactor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/select_reactor.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/select_reactor.ipp index af6e6c1..8fcf68e 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/select_reactor.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/select_reactor.ipp @@ -2,7 +2,7 @@  // detail/impl/select_reactor.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/service_registry.hpp b/3rdParty/Boost/src/boost/asio/detail/impl/service_registry.hpp index 59eb3f7..97f5771 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/service_registry.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/service_registry.hpp @@ -2,7 +2,7 @@  // detail/impl/service_registry.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/service_registry.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/service_registry.ipp index 9f7381e..c2f07ec 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/service_registry.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/service_registry.ipp @@ -2,7 +2,7 @@  // detail/impl/service_registry.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/socket_ops.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/socket_ops.ipp index 5ac052a..e240acd 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/socket_ops.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/socket_ops.ipp @@ -2,7 +2,7 @@  // detail/impl/socket_ops.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/socket_select_interrupter.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/socket_select_interrupter.ipp index d697a6e..3b64771 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/socket_select_interrupter.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/socket_select_interrupter.ipp @@ -2,7 +2,7 @@  // detail/impl/socket_select_interrupter.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/strand_service.hpp b/3rdParty/Boost/src/boost/asio/detail/impl/strand_service.hpp index e959947..5cb320d 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/strand_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/strand_service.hpp @@ -2,7 +2,7 @@  // detail/impl/strand_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/strand_service.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/strand_service.ipp index f94570a..6a42146 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/strand_service.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/strand_service.ipp @@ -2,7 +2,7 @@  // detail/impl/strand_service.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/task_io_service.hpp b/3rdParty/Boost/src/boost/asio/detail/impl/task_io_service.hpp index ed5b2c4..a002189 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/task_io_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/task_io_service.hpp @@ -2,7 +2,7 @@  // detail/impl/task_io_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/task_io_service.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/task_io_service.ipp index 4cc2326..babfa7b 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/task_io_service.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/task_io_service.ipp @@ -2,7 +2,7 @@  // detail/impl/task_io_service.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/throw_error.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/throw_error.ipp index e66cca5..5ba6b9c 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/throw_error.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/throw_error.ipp @@ -2,7 +2,7 @@  // detail/impl/throw_error.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/timer_queue_set.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/timer_queue_set.ipp index 275b9c5..d1027e6 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/timer_queue_set.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/timer_queue_set.ipp @@ -2,7 +2,7 @@  // detail/impl/timer_queue_set.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/win_event.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/win_event.ipp index d383c5b..fe904fb 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/win_event.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/win_event.ipp @@ -2,7 +2,7 @@  // detail/win_event.ipp  // ~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_handle_service.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_handle_service.ipp index 3169632..eb6643a 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_handle_service.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_handle_service.ipp @@ -2,7 +2,7 @@  // detail/impl/win_iocp_handle_service.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_io_service.hpp b/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_io_service.hpp index cccff70..18b9413 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_io_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_io_service.hpp @@ -2,7 +2,7 @@  // detail/impl/win_iocp_io_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_io_service.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_io_service.ipp index 08b81e9..9711702 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_io_service.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_io_service.ipp @@ -2,7 +2,7 @@  // detail/impl/win_iocp_io_service.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_serial_port_service.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_serial_port_service.ipp index bd2310c..32ab6d1 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_serial_port_service.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_serial_port_service.ipp @@ -2,7 +2,7 @@  // detail/impl/win_iocp_serial_port_service.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_socket_service_base.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_socket_service_base.ipp index e301658..0a2825b 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_socket_service_base.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/win_iocp_socket_service_base.ipp @@ -2,7 +2,7 @@  // detail/impl/win_iocp_socket_service_base.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/win_mutex.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/win_mutex.ipp index 65ffb3b..af0d20e 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/win_mutex.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/win_mutex.ipp @@ -2,7 +2,7 @@  // detail/impl/win_mutex.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/win_thread.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/win_thread.ipp index 22d2300..07cc5c2 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/win_thread.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/win_thread.ipp @@ -2,7 +2,7 @@  // detail/impl/win_thread.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/win_tss_ptr.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/win_tss_ptr.ipp index 7da9be3..02abd55 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/win_tss_ptr.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/win_tss_ptr.ipp @@ -2,7 +2,7 @@  // detail/impl/win_tss_ptr.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/winsock_init.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/winsock_init.ipp index 082ea84..e8fd647 100644 --- a/3rdParty/Boost/src/boost/asio/detail/impl/winsock_init.ipp +++ b/3rdParty/Boost/src/boost/asio/detail/impl/winsock_init.ipp @@ -2,7 +2,7 @@  // detail/impl/winsock_init.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/io_control.hpp b/3rdParty/Boost/src/boost/asio/detail/io_control.hpp index cb02fee..c63e6e5 100644 --- a/3rdParty/Boost/src/boost/asio/detail/io_control.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/io_control.hpp @@ -2,7 +2,7 @@  // detail/io_control.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/kqueue_reactor.hpp b/3rdParty/Boost/src/boost/asio/detail/kqueue_reactor.hpp index eb2a243..80f7ca3 100644 --- a/3rdParty/Boost/src/boost/asio/detail/kqueue_reactor.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/kqueue_reactor.hpp @@ -2,7 +2,7 @@  // detail/kqueue_reactor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/kqueue_reactor_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/kqueue_reactor_fwd.hpp index 97f8c96..1bceb30 100644 --- a/3rdParty/Boost/src/boost/asio/detail/kqueue_reactor_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/kqueue_reactor_fwd.hpp @@ -2,7 +2,7 @@  // detail/kqueue_reactor_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/macos_fenced_block.hpp b/3rdParty/Boost/src/boost/asio/detail/macos_fenced_block.hpp index a653aee..d37eea6 100644 --- a/3rdParty/Boost/src/boost/asio/detail/macos_fenced_block.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/macos_fenced_block.hpp @@ -2,7 +2,7 @@  // detail/macos_fenced_block.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/mutex.hpp b/3rdParty/Boost/src/boost/asio/detail/mutex.hpp index f601996..988dd3a 100644 --- a/3rdParty/Boost/src/boost/asio/detail/mutex.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/mutex.hpp @@ -2,7 +2,7 @@  // detail/mutex.hpp  // ~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/noncopyable.hpp b/3rdParty/Boost/src/boost/asio/detail/noncopyable.hpp index 65ae9a2..234ce93 100644 --- a/3rdParty/Boost/src/boost/asio/detail/noncopyable.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/noncopyable.hpp @@ -2,7 +2,7 @@  // detail/noncopyable.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/null_event.hpp b/3rdParty/Boost/src/boost/asio/detail/null_event.hpp index 3acc26c..7f079ae 100644 --- a/3rdParty/Boost/src/boost/asio/detail/null_event.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/null_event.hpp @@ -2,7 +2,7 @@  // detail/null_event.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/null_fenced_block.hpp b/3rdParty/Boost/src/boost/asio/detail/null_fenced_block.hpp index ead4c87..70680c5 100644 --- a/3rdParty/Boost/src/boost/asio/detail/null_fenced_block.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/null_fenced_block.hpp @@ -2,7 +2,7 @@  // detail/null_fenced_block.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/null_mutex.hpp b/3rdParty/Boost/src/boost/asio/detail/null_mutex.hpp index 8fca31c..e095e01 100644 --- a/3rdParty/Boost/src/boost/asio/detail/null_mutex.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/null_mutex.hpp @@ -2,7 +2,7 @@  // detail/null_mutex.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/null_signal_blocker.hpp b/3rdParty/Boost/src/boost/asio/detail/null_signal_blocker.hpp index 9eeccb9..bcf813b 100644 --- a/3rdParty/Boost/src/boost/asio/detail/null_signal_blocker.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/null_signal_blocker.hpp @@ -2,7 +2,7 @@  // detail/null_signal_blocker.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/null_thread.hpp b/3rdParty/Boost/src/boost/asio/detail/null_thread.hpp index 1745011..ae32014 100644 --- a/3rdParty/Boost/src/boost/asio/detail/null_thread.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/null_thread.hpp @@ -2,7 +2,7 @@  // detail/null_thread.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/null_tss_ptr.hpp b/3rdParty/Boost/src/boost/asio/detail/null_tss_ptr.hpp index 3eff2dc..c44b4de 100644 --- a/3rdParty/Boost/src/boost/asio/detail/null_tss_ptr.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/null_tss_ptr.hpp @@ -2,7 +2,7 @@  // detail/null_tss_ptr.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/object_pool.hpp b/3rdParty/Boost/src/boost/asio/detail/object_pool.hpp index 87f3902..69790a0 100644 --- a/3rdParty/Boost/src/boost/asio/detail/object_pool.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/object_pool.hpp @@ -2,7 +2,7 @@  // detail/object_pool.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/old_win_sdk_compat.hpp b/3rdParty/Boost/src/boost/asio/detail/old_win_sdk_compat.hpp index 10cd898..d385d3e 100644 --- a/3rdParty/Boost/src/boost/asio/detail/old_win_sdk_compat.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/old_win_sdk_compat.hpp @@ -2,7 +2,7 @@  // detail/old_win_sdk_compat.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/op_queue.hpp b/3rdParty/Boost/src/boost/asio/detail/op_queue.hpp index e35e82d..d508e9d 100644 --- a/3rdParty/Boost/src/boost/asio/detail/op_queue.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/op_queue.hpp @@ -2,7 +2,7 @@  // detail/op_queue.hpp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/operation.hpp b/3rdParty/Boost/src/boost/asio/detail/operation.hpp index e42455c..d2015e7 100644 --- a/3rdParty/Boost/src/boost/asio/detail/operation.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/operation.hpp @@ -2,7 +2,7 @@  // detail/operation.hpp  // ~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/pipe_select_interrupter.hpp b/3rdParty/Boost/src/boost/asio/detail/pipe_select_interrupter.hpp index 054f731..ad32736 100644 --- a/3rdParty/Boost/src/boost/asio/detail/pipe_select_interrupter.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/pipe_select_interrupter.hpp @@ -2,7 +2,7 @@  // detail/pipe_select_interrupter.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/pop_options.hpp b/3rdParty/Boost/src/boost/asio/detail/pop_options.hpp index d589cb7..75afc2b 100644 --- a/3rdParty/Boost/src/boost/asio/detail/pop_options.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/pop_options.hpp @@ -2,7 +2,7 @@  // detail/pop_options.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/posix_event.hpp b/3rdParty/Boost/src/boost/asio/detail/posix_event.hpp index 13fa3d4..dc2ed31 100644 --- a/3rdParty/Boost/src/boost/asio/detail/posix_event.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/posix_event.hpp @@ -2,7 +2,7 @@  // detail/posix_event.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/posix_fd_set_adapter.hpp b/3rdParty/Boost/src/boost/asio/detail/posix_fd_set_adapter.hpp index 5395eb9..b8be596 100644 --- a/3rdParty/Boost/src/boost/asio/detail/posix_fd_set_adapter.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/posix_fd_set_adapter.hpp @@ -2,7 +2,7 @@  // detail/posix_fd_set_adapter.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/posix_mutex.hpp b/3rdParty/Boost/src/boost/asio/detail/posix_mutex.hpp index 4fcd8ac..5f5fd83 100644 --- a/3rdParty/Boost/src/boost/asio/detail/posix_mutex.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/posix_mutex.hpp @@ -2,7 +2,7 @@  // detail/posix_mutex.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/posix_signal_blocker.hpp b/3rdParty/Boost/src/boost/asio/detail/posix_signal_blocker.hpp index 247a7a8..88fa330 100644 --- a/3rdParty/Boost/src/boost/asio/detail/posix_signal_blocker.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/posix_signal_blocker.hpp @@ -2,7 +2,7 @@  // detail/posix_signal_blocker.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/posix_thread.hpp b/3rdParty/Boost/src/boost/asio/detail/posix_thread.hpp index a87e396..5d8b684 100644 --- a/3rdParty/Boost/src/boost/asio/detail/posix_thread.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/posix_thread.hpp @@ -2,7 +2,7 @@  // detail/posix_thread.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/posix_tss_ptr.hpp b/3rdParty/Boost/src/boost/asio/detail/posix_tss_ptr.hpp index dfe8369..2edcbc1 100644 --- a/3rdParty/Boost/src/boost/asio/detail/posix_tss_ptr.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/posix_tss_ptr.hpp @@ -2,7 +2,7 @@  // detail/posix_tss_ptr.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/push_options.hpp b/3rdParty/Boost/src/boost/asio/detail/push_options.hpp index 587aef9..050549d 100644 --- a/3rdParty/Boost/src/boost/asio/detail/push_options.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/push_options.hpp @@ -2,7 +2,7 @@  // detail/push_options.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_descriptor_service.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_descriptor_service.hpp index 993211a..510c505 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_descriptor_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_descriptor_service.hpp @@ -2,7 +2,7 @@  // detail/reactive_descriptor_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_null_buffers_op.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_null_buffers_op.hpp index a2a6911..6ccc19e 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_null_buffers_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_null_buffers_op.hpp @@ -2,7 +2,7 @@  // detail/reactive_null_buffers_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_serial_port_service.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_serial_port_service.hpp index 0955f1d..303c1f0 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_serial_port_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_serial_port_service.hpp @@ -2,7 +2,7 @@  // detail/reactive_serial_port_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_accept_op.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_accept_op.hpp index 3b2413f..3805c9f 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_accept_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_accept_op.hpp @@ -2,7 +2,7 @@  // detail/reactive_socket_accept_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_connect_op.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_connect_op.hpp index 2bfb55d..6de7474 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_connect_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_connect_op.hpp @@ -2,7 +2,7 @@  // detail/reactive_socket_connect_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_recv_op.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_recv_op.hpp index d58aa3f..75ce44f 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_recv_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_recv_op.hpp @@ -2,7 +2,7 @@  // detail/reactive_socket_recv_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_recvfrom_op.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_recvfrom_op.hpp index 469b6a5..b496ea0 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_recvfrom_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_recvfrom_op.hpp @@ -2,7 +2,7 @@  // detail/reactive_socket_recvfrom_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_send_op.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_send_op.hpp index 157d075..2fe195e 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_send_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_send_op.hpp @@ -2,7 +2,7 @@  // detail/reactive_socket_send_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_sendto_op.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_sendto_op.hpp index 6199ec2..12046c3 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_sendto_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_sendto_op.hpp @@ -2,7 +2,7 @@  // detail/reactive_socket_sendto_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_service.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_service.hpp index 7288881..92eef4a 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_service.hpp @@ -2,7 +2,7 @@  // detail/reactive_socket_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_service_base.hpp b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_service_base.hpp index 1733ce1..df87ddb 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactive_socket_service_base.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactive_socket_service_base.hpp @@ -2,7 +2,7 @@  // detail/reactive_socket_service_base.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactor.hpp b/3rdParty/Boost/src/boost/asio/detail/reactor.hpp index 468276d..f225ea0 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactor.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactor.hpp @@ -2,7 +2,7 @@  // detail/reactor.hpp  // ~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactor_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/reactor_fwd.hpp index 3fae83c..a4ff94a 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactor_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactor_fwd.hpp @@ -2,7 +2,7 @@  // detail/reactor_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactor_op.hpp b/3rdParty/Boost/src/boost/asio/detail/reactor_op.hpp index ed4a33d..0c8271c 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactor_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactor_op.hpp @@ -2,7 +2,7 @@  // detail/reactor_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/reactor_op_queue.hpp b/3rdParty/Boost/src/boost/asio/detail/reactor_op_queue.hpp index 830e9b3..02b8ea2 100644 --- a/3rdParty/Boost/src/boost/asio/detail/reactor_op_queue.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/reactor_op_queue.hpp @@ -2,7 +2,7 @@  // detail/reactor_op_queue.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/regex_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/regex_fwd.hpp index 2ccb5d1..d61ad61 100644 --- a/3rdParty/Boost/src/boost/asio/detail/regex_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/regex_fwd.hpp @@ -2,7 +2,7 @@  // detail/regex_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/resolve_endpoint_op.hpp b/3rdParty/Boost/src/boost/asio/detail/resolve_endpoint_op.hpp index ccf5f53..46acda3 100644 --- a/3rdParty/Boost/src/boost/asio/detail/resolve_endpoint_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/resolve_endpoint_op.hpp @@ -2,7 +2,7 @@  // detail/resolve_endpoint_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/resolve_op.hpp b/3rdParty/Boost/src/boost/asio/detail/resolve_op.hpp index aff6104..379ec39 100644 --- a/3rdParty/Boost/src/boost/asio/detail/resolve_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/resolve_op.hpp @@ -2,7 +2,7 @@  // detail/resolve_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/resolver_service.hpp b/3rdParty/Boost/src/boost/asio/detail/resolver_service.hpp index 1b734a0..1c343cb 100644 --- a/3rdParty/Boost/src/boost/asio/detail/resolver_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/resolver_service.hpp @@ -2,7 +2,7 @@  // detail/resolver_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/resolver_service_base.hpp b/3rdParty/Boost/src/boost/asio/detail/resolver_service_base.hpp index cc6ede6..60e9e09 100644 --- a/3rdParty/Boost/src/boost/asio/detail/resolver_service_base.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/resolver_service_base.hpp @@ -2,7 +2,7 @@  // detail/resolver_service_base.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/scoped_lock.hpp b/3rdParty/Boost/src/boost/asio/detail/scoped_lock.hpp index 247411e..b523ae5 100644 --- a/3rdParty/Boost/src/boost/asio/detail/scoped_lock.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/scoped_lock.hpp @@ -2,7 +2,7 @@  // detail/scoped_lock.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/select_interrupter.hpp b/3rdParty/Boost/src/boost/asio/detail/select_interrupter.hpp index 9683e63..f0a1275 100644 --- a/3rdParty/Boost/src/boost/asio/detail/select_interrupter.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/select_interrupter.hpp @@ -2,7 +2,7 @@  // detail/select_interrupter.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/select_reactor.hpp b/3rdParty/Boost/src/boost/asio/detail/select_reactor.hpp index 55a819d..f4f8bdf 100644 --- a/3rdParty/Boost/src/boost/asio/detail/select_reactor.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/select_reactor.hpp @@ -2,7 +2,7 @@  // detail/select_reactor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) @@ -51,10 +51,10 @@ class select_reactor  {  public:  #if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -  enum { read_op = 0, write_op = 1, except_op = 2, +  enum op_types { read_op = 0, write_op = 1, except_op = 2,      max_select_ops = 3, connect_op = 3, max_ops = 4 };  #else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -  enum { read_op = 0, write_op = 1, except_op = 2, +  enum op_types { read_op = 0, write_op = 1, except_op = 2,      max_select_ops = 3, connect_op = 1, max_ops = 3 };  #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) diff --git a/3rdParty/Boost/src/boost/asio/detail/select_reactor_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/select_reactor_fwd.hpp index f4f9f65..78ff61b 100644 --- a/3rdParty/Boost/src/boost/asio/detail/select_reactor_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/select_reactor_fwd.hpp @@ -2,7 +2,7 @@  // detail/select_reactor_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/service_registry.hpp b/3rdParty/Boost/src/boost/asio/detail/service_registry.hpp index 6ba30f1..a247ea8 100644 --- a/3rdParty/Boost/src/boost/asio/detail/service_registry.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/service_registry.hpp @@ -2,7 +2,7 @@  // detail/service_registry.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/service_registry_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/service_registry_fwd.hpp index 8713a30..a6bb25e 100644 --- a/3rdParty/Boost/src/boost/asio/detail/service_registry_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/service_registry_fwd.hpp @@ -2,7 +2,7 @@  // detail/service_registry_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/shared_ptr.hpp b/3rdParty/Boost/src/boost/asio/detail/shared_ptr.hpp index 0c5586e..fe497b7 100644 --- a/3rdParty/Boost/src/boost/asio/detail/shared_ptr.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/shared_ptr.hpp @@ -2,7 +2,7 @@  // detail/shared_ptr.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/signal_blocker.hpp b/3rdParty/Boost/src/boost/asio/detail/signal_blocker.hpp index 67eaac0..cc00482 100644 --- a/3rdParty/Boost/src/boost/asio/detail/signal_blocker.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/signal_blocker.hpp @@ -2,7 +2,7 @@  // detail/signal_blocker.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/signal_init.hpp b/3rdParty/Boost/src/boost/asio/detail/signal_init.hpp index 76d21bf..f346956 100644 --- a/3rdParty/Boost/src/boost/asio/detail/signal_init.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/signal_init.hpp @@ -2,7 +2,7 @@  // detail/signal_init.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/socket_holder.hpp b/3rdParty/Boost/src/boost/asio/detail/socket_holder.hpp index 7815acc..52d2e4d 100644 --- a/3rdParty/Boost/src/boost/asio/detail/socket_holder.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/socket_holder.hpp @@ -2,7 +2,7 @@  // detail/socket_holder.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/socket_ops.hpp b/3rdParty/Boost/src/boost/asio/detail/socket_ops.hpp index a32b4cc..18a8131 100644 --- a/3rdParty/Boost/src/boost/asio/detail/socket_ops.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/socket_ops.hpp @@ -2,7 +2,7 @@  // detail/socket_ops.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/socket_option.hpp b/3rdParty/Boost/src/boost/asio/detail/socket_option.hpp index 37efa83..c841033 100644 --- a/3rdParty/Boost/src/boost/asio/detail/socket_option.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/socket_option.hpp @@ -2,7 +2,7 @@  // detail/socket_option.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/socket_select_interrupter.hpp b/3rdParty/Boost/src/boost/asio/detail/socket_select_interrupter.hpp index b674514..6d68d5a 100644 --- a/3rdParty/Boost/src/boost/asio/detail/socket_select_interrupter.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/socket_select_interrupter.hpp @@ -2,7 +2,7 @@  // detail/socket_select_interrupter.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/socket_types.hpp b/3rdParty/Boost/src/boost/asio/detail/socket_types.hpp index 616e85a..f0679b6 100644 --- a/3rdParty/Boost/src/boost/asio/detail/socket_types.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/socket_types.hpp @@ -2,7 +2,7 @@  // detail/socket_types.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/solaris_fenced_block.hpp b/3rdParty/Boost/src/boost/asio/detail/solaris_fenced_block.hpp index db6cb98..0b117ad 100644 --- a/3rdParty/Boost/src/boost/asio/detail/solaris_fenced_block.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/solaris_fenced_block.hpp @@ -2,7 +2,7 @@  // detail/solaris_fenced_block.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/strand_service.hpp b/3rdParty/Boost/src/boost/asio/detail/strand_service.hpp index 24bec7c..0783ac4 100644 --- a/3rdParty/Boost/src/boost/asio/detail/strand_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/strand_service.hpp @@ -2,7 +2,7 @@  // detail/strand_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/task_io_service.hpp b/3rdParty/Boost/src/boost/asio/detail/task_io_service.hpp index a9a7053..c014855 100644 --- a/3rdParty/Boost/src/boost/asio/detail/task_io_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/task_io_service.hpp @@ -2,7 +2,7 @@  // detail/task_io_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/task_io_service_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/task_io_service_fwd.hpp index 24dd11b..b3243b7 100644 --- a/3rdParty/Boost/src/boost/asio/detail/task_io_service_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/task_io_service_fwd.hpp @@ -2,7 +2,7 @@  // detail/task_io_service_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/task_io_service_operation.hpp b/3rdParty/Boost/src/boost/asio/detail/task_io_service_operation.hpp index e234c07..08164fa 100644 --- a/3rdParty/Boost/src/boost/asio/detail/task_io_service_operation.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/task_io_service_operation.hpp @@ -2,7 +2,7 @@  // detail/task_io_service_operation.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/thread.hpp b/3rdParty/Boost/src/boost/asio/detail/thread.hpp index 8848cd0..48cffb1 100644 --- a/3rdParty/Boost/src/boost/asio/detail/thread.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/thread.hpp @@ -2,7 +2,7 @@  // detail/thread.hpp  // ~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/throw_error.hpp b/3rdParty/Boost/src/boost/asio/detail/throw_error.hpp index 713a196..43bc9c3 100644 --- a/3rdParty/Boost/src/boost/asio/detail/throw_error.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/throw_error.hpp @@ -2,7 +2,7 @@  // detail/throw_error.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/timer_op.hpp b/3rdParty/Boost/src/boost/asio/detail/timer_op.hpp index 8f82339..24a536c 100644 --- a/3rdParty/Boost/src/boost/asio/detail/timer_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/timer_op.hpp @@ -2,7 +2,7 @@  // detail/timer_op.hpp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/timer_queue.hpp b/3rdParty/Boost/src/boost/asio/detail/timer_queue.hpp index 09eb825..328a9ed 100644 --- a/3rdParty/Boost/src/boost/asio/detail/timer_queue.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/timer_queue.hpp @@ -2,7 +2,7 @@  // detail/timer_queue.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/timer_queue_base.hpp b/3rdParty/Boost/src/boost/asio/detail/timer_queue_base.hpp index 0290308..d493871 100644 --- a/3rdParty/Boost/src/boost/asio/detail/timer_queue_base.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/timer_queue_base.hpp @@ -2,7 +2,7 @@  // detail/timer_queue_base.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/timer_queue_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/timer_queue_fwd.hpp index 0a62a44..14c6319 100644 --- a/3rdParty/Boost/src/boost/asio/detail/timer_queue_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/timer_queue_fwd.hpp @@ -2,7 +2,7 @@  // detail/timer_queue_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/timer_queue_set.hpp b/3rdParty/Boost/src/boost/asio/detail/timer_queue_set.hpp index c2cea66..549d7e6 100644 --- a/3rdParty/Boost/src/boost/asio/detail/timer_queue_set.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/timer_queue_set.hpp @@ -2,7 +2,7 @@  // detail/timer_queue_set.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/timer_scheduler.hpp b/3rdParty/Boost/src/boost/asio/detail/timer_scheduler.hpp index ec80f40..2edc0c8 100644 --- a/3rdParty/Boost/src/boost/asio/detail/timer_scheduler.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/timer_scheduler.hpp @@ -2,7 +2,7 @@  // detail/timer_scheduler.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/timer_scheduler_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/timer_scheduler_fwd.hpp index 77d6c99..e01b657 100644 --- a/3rdParty/Boost/src/boost/asio/detail/timer_scheduler_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/timer_scheduler_fwd.hpp @@ -2,7 +2,7 @@  // detail/timer_scheduler_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/tss_ptr.hpp b/3rdParty/Boost/src/boost/asio/detail/tss_ptr.hpp index 8edf15b..35ed8e2 100644 --- a/3rdParty/Boost/src/boost/asio/detail/tss_ptr.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/tss_ptr.hpp @@ -2,7 +2,7 @@  // detail/tss_ptr.hpp  // ~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/wait_handler.hpp b/3rdParty/Boost/src/boost/asio/detail/wait_handler.hpp index e451f19..95be6bd 100644 --- a/3rdParty/Boost/src/boost/asio/detail/wait_handler.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/wait_handler.hpp @@ -2,7 +2,7 @@  // detail/wait_handler.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/weak_ptr.hpp b/3rdParty/Boost/src/boost/asio/detail/weak_ptr.hpp index 9a14297..81a8b06 100644 --- a/3rdParty/Boost/src/boost/asio/detail/weak_ptr.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/weak_ptr.hpp @@ -2,7 +2,7 @@  // detail/weak_ptr.hpp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_event.hpp b/3rdParty/Boost/src/boost/asio/detail/win_event.hpp index 736ebb2..63c25c4 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_event.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_event.hpp @@ -2,7 +2,7 @@  // detail/win_event.hpp  // ~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_fd_set_adapter.hpp b/3rdParty/Boost/src/boost/asio/detail/win_fd_set_adapter.hpp index 4a5d7fa..8636a91 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_fd_set_adapter.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_fd_set_adapter.hpp @@ -2,7 +2,7 @@  // detail/win_fd_set_adapter.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp b/3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp index 928395e..769db2e 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_fenced_block.hpp @@ -2,7 +2,7 @@  // detail/win_fenced_block.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_read_op.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_read_op.hpp index f1a9b1f..5edffa3 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_read_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_read_op.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_handle_read_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_service.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_service.hpp index 291a06f..86c4391 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_service.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_handle_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_write_op.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_write_op.hpp index 971f174..574dc22 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_write_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_handle_write_op.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_handle_write_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_io_service.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_io_service.hpp index 235424e..4c88e7b 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_io_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_io_service.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_io_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_io_service_fwd.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_io_service_fwd.hpp index 1357603..b6da9ec 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_io_service_fwd.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_io_service_fwd.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_io_service_fwd.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_null_buffers_op.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_null_buffers_op.hpp index ed1c28f..b3ecbbd 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_null_buffers_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_null_buffers_op.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_null_buffers_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_operation.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_operation.hpp index c9b3041..3963479 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_operation.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_operation.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_operation.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_overlapped_op.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_overlapped_op.hpp index 911449d..149eaa5 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_overlapped_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_overlapped_op.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_overlapped_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_overlapped_ptr.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_overlapped_ptr.hpp index 5589c11..c560bc3 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_overlapped_ptr.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_overlapped_ptr.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_overlapped_ptr.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_serial_port_service.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_serial_port_service.hpp index a0caa69..8b543d2 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_serial_port_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_serial_port_service.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_serial_port_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_accept_op.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_accept_op.hpp index 89dff0c..ecc1f2d 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_accept_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_accept_op.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_socket_accept_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_recv_op.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_recv_op.hpp index 98d7e99..61d053c 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_recv_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_recv_op.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_socket_recv_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_recvfrom_op.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_recvfrom_op.hpp index eca34df..6b364ee 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_recvfrom_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_recvfrom_op.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_socket_recvfrom_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_send_op.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_send_op.hpp index 2dcb4af..33bd380 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_send_op.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_send_op.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_socket_send_op.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_service.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_service.hpp index 6f1f2bd..183b74b 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_service.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_service.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_socket_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_service_base.hpp b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_service_base.hpp index 2dd3ba3..32532f9 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_service_base.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_iocp_socket_service_base.hpp @@ -2,7 +2,7 @@  // detail/win_iocp_socket_service_base.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_mutex.hpp b/3rdParty/Boost/src/boost/asio/detail/win_mutex.hpp index 3f6dadb..0c5dc26 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_mutex.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_mutex.hpp @@ -2,7 +2,7 @@  // detail/win_mutex.hpp  // ~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_thread.hpp b/3rdParty/Boost/src/boost/asio/detail/win_thread.hpp index cba546f..4e33bd9 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_thread.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_thread.hpp @@ -2,7 +2,7 @@  // detail/win_thread.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/win_tss_ptr.hpp b/3rdParty/Boost/src/boost/asio/detail/win_tss_ptr.hpp index 2c5ee3b..75811c1 100644 --- a/3rdParty/Boost/src/boost/asio/detail/win_tss_ptr.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/win_tss_ptr.hpp @@ -2,7 +2,7 @@  // detail/win_tss_ptr.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/wince_thread.hpp b/3rdParty/Boost/src/boost/asio/detail/wince_thread.hpp index 82ca544..7f7b1e4 100644 --- a/3rdParty/Boost/src/boost/asio/detail/wince_thread.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/wince_thread.hpp @@ -2,7 +2,7 @@  // detail/wince_thread.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/winsock_init.hpp b/3rdParty/Boost/src/boost/asio/detail/winsock_init.hpp index ac24b0d..dc50fbf 100644 --- a/3rdParty/Boost/src/boost/asio/detail/winsock_init.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/winsock_init.hpp @@ -2,7 +2,7 @@  // detail/winsock_init.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/detail/wrapped_handler.hpp b/3rdParty/Boost/src/boost/asio/detail/wrapped_handler.hpp index 9645b64..b326847 100644 --- a/3rdParty/Boost/src/boost/asio/detail/wrapped_handler.hpp +++ b/3rdParty/Boost/src/boost/asio/detail/wrapped_handler.hpp @@ -2,7 +2,7 @@  // detail/wrapped_handler.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/error.hpp b/3rdParty/Boost/src/boost/asio/error.hpp index 569ad80..d0287a0 100644 --- a/3rdParty/Boost/src/boost/asio/error.hpp +++ b/3rdParty/Boost/src/boost/asio/error.hpp @@ -2,7 +2,7 @@  // error.hpp  // ~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/handler_alloc_hook.hpp b/3rdParty/Boost/src/boost/asio/handler_alloc_hook.hpp index 179f75e..ca56871 100644 --- a/3rdParty/Boost/src/boost/asio/handler_alloc_hook.hpp +++ b/3rdParty/Boost/src/boost/asio/handler_alloc_hook.hpp @@ -2,7 +2,7 @@  // handler_alloc_hook.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/handler_invoke_hook.hpp b/3rdParty/Boost/src/boost/asio/handler_invoke_hook.hpp index f997f11..f4f6831 100644 --- a/3rdParty/Boost/src/boost/asio/handler_invoke_hook.hpp +++ b/3rdParty/Boost/src/boost/asio/handler_invoke_hook.hpp @@ -2,7 +2,7 @@  // handler_invoke_hook.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/impl/error.ipp b/3rdParty/Boost/src/boost/asio/impl/error.ipp index 708654e..7c045c0 100644 --- a/3rdParty/Boost/src/boost/asio/impl/error.ipp +++ b/3rdParty/Boost/src/boost/asio/impl/error.ipp @@ -2,7 +2,7 @@  // impl/error.ipp  // ~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/impl/io_service.hpp b/3rdParty/Boost/src/boost/asio/impl/io_service.hpp index 3c082cb..152f983 100644 --- a/3rdParty/Boost/src/boost/asio/impl/io_service.hpp +++ b/3rdParty/Boost/src/boost/asio/impl/io_service.hpp @@ -2,7 +2,7 @@  // impl/io_service.hpp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/impl/io_service.ipp b/3rdParty/Boost/src/boost/asio/impl/io_service.ipp index 731adb8..a0b34af 100644 --- a/3rdParty/Boost/src/boost/asio/impl/io_service.ipp +++ b/3rdParty/Boost/src/boost/asio/impl/io_service.ipp @@ -2,7 +2,7 @@  // impl/io_service.ipp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/impl/read.hpp b/3rdParty/Boost/src/boost/asio/impl/read.hpp index 6f9842c..9fba190 100644 --- a/3rdParty/Boost/src/boost/asio/impl/read.hpp +++ b/3rdParty/Boost/src/boost/asio/impl/read.hpp @@ -2,7 +2,7 @@  // impl/read.hpp  // ~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/impl/read_at.hpp b/3rdParty/Boost/src/boost/asio/impl/read_at.hpp index f6ea0b3..dcf2c33 100644 --- a/3rdParty/Boost/src/boost/asio/impl/read_at.hpp +++ b/3rdParty/Boost/src/boost/asio/impl/read_at.hpp @@ -2,7 +2,7 @@  // impl/read_at.hpp  // ~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/impl/read_until.hpp b/3rdParty/Boost/src/boost/asio/impl/read_until.hpp index 73f8773..5eeb1bc 100644 --- a/3rdParty/Boost/src/boost/asio/impl/read_until.hpp +++ b/3rdParty/Boost/src/boost/asio/impl/read_until.hpp @@ -2,7 +2,7 @@  // impl/read_until.hpp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/impl/serial_port_base.hpp b/3rdParty/Boost/src/boost/asio/impl/serial_port_base.hpp index 2b291f3..c75f8c2 100644 --- a/3rdParty/Boost/src/boost/asio/impl/serial_port_base.hpp +++ b/3rdParty/Boost/src/boost/asio/impl/serial_port_base.hpp @@ -2,7 +2,7 @@  // impl/serial_port_base.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/impl/serial_port_base.ipp b/3rdParty/Boost/src/boost/asio/impl/serial_port_base.ipp index 2bfe58a..c665ac8 100644 --- a/3rdParty/Boost/src/boost/asio/impl/serial_port_base.ipp +++ b/3rdParty/Boost/src/boost/asio/impl/serial_port_base.ipp @@ -2,7 +2,7 @@  // impl/serial_port_base.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/impl/write.hpp b/3rdParty/Boost/src/boost/asio/impl/write.hpp index fa2982a..ae420bc 100644 --- a/3rdParty/Boost/src/boost/asio/impl/write.hpp +++ b/3rdParty/Boost/src/boost/asio/impl/write.hpp @@ -2,7 +2,7 @@  // impl/write.hpp  // ~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/impl/write_at.hpp b/3rdParty/Boost/src/boost/asio/impl/write_at.hpp index aad64ef..39dc1af 100644 --- a/3rdParty/Boost/src/boost/asio/impl/write_at.hpp +++ b/3rdParty/Boost/src/boost/asio/impl/write_at.hpp @@ -2,7 +2,7 @@  // impl/write_at.hpp  // ~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/io_service.hpp b/3rdParty/Boost/src/boost/asio/io_service.hpp index 9350a84..a6a27fa 100644 --- a/3rdParty/Boost/src/boost/asio/io_service.hpp +++ b/3rdParty/Boost/src/boost/asio/io_service.hpp @@ -2,7 +2,7 @@  // io_service.hpp  // ~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/address.hpp b/3rdParty/Boost/src/boost/asio/ip/address.hpp index 8cc3a4b..4ecae7a 100644 --- a/3rdParty/Boost/src/boost/asio/ip/address.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/address.hpp @@ -2,7 +2,7 @@  // ip/address.hpp  // ~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/address_v4.hpp b/3rdParty/Boost/src/boost/asio/ip/address_v4.hpp index 21c1a7f..5728a17 100644 --- a/3rdParty/Boost/src/boost/asio/ip/address_v4.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/address_v4.hpp @@ -2,7 +2,7 @@  // ip/address_v4.hpp  // ~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/address_v6.hpp b/3rdParty/Boost/src/boost/asio/ip/address_v6.hpp index 7165eac..9155bea 100644 --- a/3rdParty/Boost/src/boost/asio/ip/address_v6.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/address_v6.hpp @@ -2,7 +2,7 @@  // ip/address_v6.hpp  // ~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/basic_endpoint.hpp b/3rdParty/Boost/src/boost/asio/ip/basic_endpoint.hpp index 10459c4..0047adc 100644 --- a/3rdParty/Boost/src/boost/asio/ip/basic_endpoint.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/basic_endpoint.hpp @@ -2,7 +2,7 @@  // ip/basic_endpoint.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/basic_resolver.hpp b/3rdParty/Boost/src/boost/asio/ip/basic_resolver.hpp index 21b83da..f27515a 100644 --- a/3rdParty/Boost/src/boost/asio/ip/basic_resolver.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/basic_resolver.hpp @@ -2,7 +2,7 @@  // ip/basic_resolver.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/basic_resolver_entry.hpp b/3rdParty/Boost/src/boost/asio/ip/basic_resolver_entry.hpp index 84589b5..980b488 100644 --- a/3rdParty/Boost/src/boost/asio/ip/basic_resolver_entry.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/basic_resolver_entry.hpp @@ -2,7 +2,7 @@  // ip/basic_resolver_entry.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/basic_resolver_iterator.hpp b/3rdParty/Boost/src/boost/asio/ip/basic_resolver_iterator.hpp index de42699..465c278 100644 --- a/3rdParty/Boost/src/boost/asio/ip/basic_resolver_iterator.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/basic_resolver_iterator.hpp @@ -2,7 +2,7 @@  // ip/basic_resolver_iterator.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/basic_resolver_query.hpp b/3rdParty/Boost/src/boost/asio/ip/basic_resolver_query.hpp index 38cba01..8fd63bc 100644 --- a/3rdParty/Boost/src/boost/asio/ip/basic_resolver_query.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/basic_resolver_query.hpp @@ -2,7 +2,7 @@  // ip/basic_resolver_query.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/detail/endpoint.hpp b/3rdParty/Boost/src/boost/asio/ip/detail/endpoint.hpp index 9823e72..fe95a00 100644 --- a/3rdParty/Boost/src/boost/asio/ip/detail/endpoint.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/detail/endpoint.hpp @@ -2,7 +2,7 @@  // ip/detail/endpoint.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/detail/impl/endpoint.ipp b/3rdParty/Boost/src/boost/asio/ip/detail/impl/endpoint.ipp index 4a6e395..0443d38 100644 --- a/3rdParty/Boost/src/boost/asio/ip/detail/impl/endpoint.ipp +++ b/3rdParty/Boost/src/boost/asio/ip/detail/impl/endpoint.ipp @@ -2,7 +2,7 @@  // ip/detail/impl/endpoint.ipp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/detail/socket_option.hpp b/3rdParty/Boost/src/boost/asio/ip/detail/socket_option.hpp index 59ce6c3..6fde8c3 100644 --- a/3rdParty/Boost/src/boost/asio/ip/detail/socket_option.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/detail/socket_option.hpp @@ -2,7 +2,7 @@  // detail/socket_option.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/host_name.hpp b/3rdParty/Boost/src/boost/asio/ip/host_name.hpp index f40a9df..33860c9 100644 --- a/3rdParty/Boost/src/boost/asio/ip/host_name.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/host_name.hpp @@ -2,7 +2,7 @@  // ip/host_name.hpp  // ~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/icmp.hpp b/3rdParty/Boost/src/boost/asio/ip/icmp.hpp index ca5d434..14bb944 100644 --- a/3rdParty/Boost/src/boost/asio/ip/icmp.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/icmp.hpp @@ -2,7 +2,7 @@  // ip/icmp.hpp  // ~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/impl/address.hpp b/3rdParty/Boost/src/boost/asio/ip/impl/address.hpp index c19d25d..94dfb17 100644 --- a/3rdParty/Boost/src/boost/asio/ip/impl/address.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/impl/address.hpp @@ -2,7 +2,7 @@  // ip/impl/address.hpp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/impl/address.ipp b/3rdParty/Boost/src/boost/asio/ip/impl/address.ipp index 70513b7..11f06fc 100644 --- a/3rdParty/Boost/src/boost/asio/ip/impl/address.ipp +++ b/3rdParty/Boost/src/boost/asio/ip/impl/address.ipp @@ -2,7 +2,7 @@  // ip/impl/address.ipp  // ~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/impl/address_v4.hpp b/3rdParty/Boost/src/boost/asio/ip/impl/address_v4.hpp index 7e798e8..d27d48d 100644 --- a/3rdParty/Boost/src/boost/asio/ip/impl/address_v4.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/impl/address_v4.hpp @@ -2,7 +2,7 @@  // ip/impl/address_v4.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/impl/address_v4.ipp b/3rdParty/Boost/src/boost/asio/ip/impl/address_v4.ipp index 3cdcbf1..8bdef19 100644 --- a/3rdParty/Boost/src/boost/asio/ip/impl/address_v4.ipp +++ b/3rdParty/Boost/src/boost/asio/ip/impl/address_v4.ipp @@ -2,7 +2,7 @@  // ip/impl/address_v4.ipp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) @@ -141,7 +141,7 @@ bool address_v4::is_multicast() const  address_v4 address_v4::broadcast(const address_v4& addr, const address_v4& mask)  { -  return address_v4(addr.to_ulong() | ~mask.to_ulong()); +  return address_v4(addr.to_ulong() | (mask.to_ulong() ^ 0xFFFFFFFF));  }  address_v4 address_v4::netmask(const address_v4& addr) diff --git a/3rdParty/Boost/src/boost/asio/ip/impl/address_v6.hpp b/3rdParty/Boost/src/boost/asio/ip/impl/address_v6.hpp index 8b39e3e..11e1797 100644 --- a/3rdParty/Boost/src/boost/asio/ip/impl/address_v6.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/impl/address_v6.hpp @@ -2,7 +2,7 @@  // ip/impl/address_v6.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/impl/address_v6.ipp b/3rdParty/Boost/src/boost/asio/ip/impl/address_v6.ipp index a06dfe5..5a3dddd 100644 --- a/3rdParty/Boost/src/boost/asio/ip/impl/address_v6.ipp +++ b/3rdParty/Boost/src/boost/asio/ip/impl/address_v6.ipp @@ -2,7 +2,7 @@  // ip/impl/address_v6.ipp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/impl/basic_endpoint.hpp b/3rdParty/Boost/src/boost/asio/ip/impl/basic_endpoint.hpp index 474c193..9d39c87 100644 --- a/3rdParty/Boost/src/boost/asio/ip/impl/basic_endpoint.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/impl/basic_endpoint.hpp @@ -2,7 +2,7 @@  // ip/impl/basic_endpoint.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/impl/host_name.ipp b/3rdParty/Boost/src/boost/asio/ip/impl/host_name.ipp index a5ba582..734341e 100644 --- a/3rdParty/Boost/src/boost/asio/ip/impl/host_name.ipp +++ b/3rdParty/Boost/src/boost/asio/ip/impl/host_name.ipp @@ -2,7 +2,7 @@  // ip/impl/host_name.ipp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/multicast.hpp b/3rdParty/Boost/src/boost/asio/ip/multicast.hpp index e4d9f88..2a02627 100644 --- a/3rdParty/Boost/src/boost/asio/ip/multicast.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/multicast.hpp @@ -2,7 +2,7 @@  // ip/multicast.hpp  // ~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/resolver_query_base.hpp b/3rdParty/Boost/src/boost/asio/ip/resolver_query_base.hpp index 0173e11..96ad512 100644 --- a/3rdParty/Boost/src/boost/asio/ip/resolver_query_base.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/resolver_query_base.hpp @@ -2,7 +2,7 @@  // ip/resolver_query_base.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/resolver_service.hpp b/3rdParty/Boost/src/boost/asio/ip/resolver_service.hpp index b13e0ad..db0554b 100644 --- a/3rdParty/Boost/src/boost/asio/ip/resolver_service.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/resolver_service.hpp @@ -2,7 +2,7 @@  // ip/resolver_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/tcp.hpp b/3rdParty/Boost/src/boost/asio/ip/tcp.hpp index 2026148..4163a8d 100644 --- a/3rdParty/Boost/src/boost/asio/ip/tcp.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/tcp.hpp @@ -2,7 +2,7 @@  // ip/tcp.hpp  // ~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/udp.hpp b/3rdParty/Boost/src/boost/asio/ip/udp.hpp index 4d78692..40f5d3a 100644 --- a/3rdParty/Boost/src/boost/asio/ip/udp.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/udp.hpp @@ -2,7 +2,7 @@  // ip/udp.hpp  // ~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/unicast.hpp b/3rdParty/Boost/src/boost/asio/ip/unicast.hpp index 1f331de..dc7d8e9 100644 --- a/3rdParty/Boost/src/boost/asio/ip/unicast.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/unicast.hpp @@ -2,7 +2,7 @@  // ip/unicast.hpp  // ~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/ip/v6_only.hpp b/3rdParty/Boost/src/boost/asio/ip/v6_only.hpp index e9aab31..e67a548 100644 --- a/3rdParty/Boost/src/boost/asio/ip/v6_only.hpp +++ b/3rdParty/Boost/src/boost/asio/ip/v6_only.hpp @@ -2,7 +2,7 @@  // ip/v6_only.hpp  // ~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/is_read_buffered.hpp b/3rdParty/Boost/src/boost/asio/is_read_buffered.hpp index e429e6d..1aac50f 100644 --- a/3rdParty/Boost/src/boost/asio/is_read_buffered.hpp +++ b/3rdParty/Boost/src/boost/asio/is_read_buffered.hpp @@ -2,7 +2,7 @@  // is_read_buffered.hpp  // ~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/is_write_buffered.hpp b/3rdParty/Boost/src/boost/asio/is_write_buffered.hpp index fff68d6..03de0f1 100644 --- a/3rdParty/Boost/src/boost/asio/is_write_buffered.hpp +++ b/3rdParty/Boost/src/boost/asio/is_write_buffered.hpp @@ -2,7 +2,7 @@  // is_write_buffered.hpp  // ~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/local/basic_endpoint.hpp b/3rdParty/Boost/src/boost/asio/local/basic_endpoint.hpp index 2cd93f6..fcb53a0 100644 --- a/3rdParty/Boost/src/boost/asio/local/basic_endpoint.hpp +++ b/3rdParty/Boost/src/boost/asio/local/basic_endpoint.hpp @@ -2,7 +2,7 @@  // local/basic_endpoint.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Derived from a public domain implementation written by Daniel Casimiro.  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/local/connect_pair.hpp b/3rdParty/Boost/src/boost/asio/local/connect_pair.hpp index cb08777..9ef6cd3 100644 --- a/3rdParty/Boost/src/boost/asio/local/connect_pair.hpp +++ b/3rdParty/Boost/src/boost/asio/local/connect_pair.hpp @@ -2,7 +2,7 @@  // local/connect_pair.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/local/datagram_protocol.hpp b/3rdParty/Boost/src/boost/asio/local/datagram_protocol.hpp index 2d78773..eaa0241 100644 --- a/3rdParty/Boost/src/boost/asio/local/datagram_protocol.hpp +++ b/3rdParty/Boost/src/boost/asio/local/datagram_protocol.hpp @@ -2,7 +2,7 @@  // local/datagram_protocol.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/local/detail/endpoint.hpp b/3rdParty/Boost/src/boost/asio/local/detail/endpoint.hpp index 5fb7297..c527793 100644 --- a/3rdParty/Boost/src/boost/asio/local/detail/endpoint.hpp +++ b/3rdParty/Boost/src/boost/asio/local/detail/endpoint.hpp @@ -2,7 +2,7 @@  // local/detail/endpoint.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Derived from a public domain implementation written by Daniel Casimiro.  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/local/detail/impl/endpoint.ipp b/3rdParty/Boost/src/boost/asio/local/detail/impl/endpoint.ipp index ffbc44e..a4c1e56 100644 --- a/3rdParty/Boost/src/boost/asio/local/detail/impl/endpoint.ipp +++ b/3rdParty/Boost/src/boost/asio/local/detail/impl/endpoint.ipp @@ -2,7 +2,7 @@  // local/detail/impl/endpoint.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Derived from a public domain implementation written by Daniel Casimiro.  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/local/stream_protocol.hpp b/3rdParty/Boost/src/boost/asio/local/stream_protocol.hpp index 723c348..e8692c5 100644 --- a/3rdParty/Boost/src/boost/asio/local/stream_protocol.hpp +++ b/3rdParty/Boost/src/boost/asio/local/stream_protocol.hpp @@ -2,7 +2,7 @@  // local/stream_protocol.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/placeholders.hpp b/3rdParty/Boost/src/boost/asio/placeholders.hpp index 2940eda..19ddb66 100644 --- a/3rdParty/Boost/src/boost/asio/placeholders.hpp +++ b/3rdParty/Boost/src/boost/asio/placeholders.hpp @@ -2,7 +2,7 @@  // placeholders.hpp  // ~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) @@ -39,7 +39,7 @@ unspecified bytes_transferred;  /// An argument placeholder, for use with boost::bind(), that corresponds to  /// the iterator argument of a handler for asynchronous functions such as -/// boost::asio::basic_resolver::resolve. +/// boost::asio::basic_resolver::async_resolve.  unspecified iterator;  #elif defined(__BORLANDC__) || defined(__GNUC__) diff --git a/3rdParty/Boost/src/boost/asio/posix/basic_descriptor.hpp b/3rdParty/Boost/src/boost/asio/posix/basic_descriptor.hpp index 56ec9d8..cf953db 100644 --- a/3rdParty/Boost/src/boost/asio/posix/basic_descriptor.hpp +++ b/3rdParty/Boost/src/boost/asio/posix/basic_descriptor.hpp @@ -2,7 +2,7 @@  // posix/basic_descriptor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/posix/basic_stream_descriptor.hpp b/3rdParty/Boost/src/boost/asio/posix/basic_stream_descriptor.hpp index 0f70604..ee08567 100644 --- a/3rdParty/Boost/src/boost/asio/posix/basic_stream_descriptor.hpp +++ b/3rdParty/Boost/src/boost/asio/posix/basic_stream_descriptor.hpp @@ -2,7 +2,7 @@  // posix/basic_stream_descriptor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/posix/descriptor_base.hpp b/3rdParty/Boost/src/boost/asio/posix/descriptor_base.hpp index 70bac63..2e5cb47 100644 --- a/3rdParty/Boost/src/boost/asio/posix/descriptor_base.hpp +++ b/3rdParty/Boost/src/boost/asio/posix/descriptor_base.hpp @@ -2,7 +2,7 @@  // posix/descriptor_base.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/posix/stream_descriptor.hpp b/3rdParty/Boost/src/boost/asio/posix/stream_descriptor.hpp index 30b7e37..22551ab 100644 --- a/3rdParty/Boost/src/boost/asio/posix/stream_descriptor.hpp +++ b/3rdParty/Boost/src/boost/asio/posix/stream_descriptor.hpp @@ -2,7 +2,7 @@  // posix/stream_descriptor.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/posix/stream_descriptor_service.hpp b/3rdParty/Boost/src/boost/asio/posix/stream_descriptor_service.hpp index c2034da..c582b8e 100644 --- a/3rdParty/Boost/src/boost/asio/posix/stream_descriptor_service.hpp +++ b/3rdParty/Boost/src/boost/asio/posix/stream_descriptor_service.hpp @@ -2,7 +2,7 @@  // posix/stream_descriptor_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/raw_socket_service.hpp b/3rdParty/Boost/src/boost/asio/raw_socket_service.hpp index 0db83b6..783c4c2 100644 --- a/3rdParty/Boost/src/boost/asio/raw_socket_service.hpp +++ b/3rdParty/Boost/src/boost/asio/raw_socket_service.hpp @@ -2,7 +2,7 @@  // raw_socket_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/read.hpp b/3rdParty/Boost/src/boost/asio/read.hpp index d2339d5..fd13e75 100644 --- a/3rdParty/Boost/src/boost/asio/read.hpp +++ b/3rdParty/Boost/src/boost/asio/read.hpp @@ -2,7 +2,7 @@  // read.hpp  // ~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/read_at.hpp b/3rdParty/Boost/src/boost/asio/read_at.hpp index 27bad65..1feba6c 100644 --- a/3rdParty/Boost/src/boost/asio/read_at.hpp +++ b/3rdParty/Boost/src/boost/asio/read_at.hpp @@ -2,7 +2,7 @@  // read_at.hpp  // ~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/read_until.hpp b/3rdParty/Boost/src/boost/asio/read_until.hpp index aa9d2ba..546537b 100644 --- a/3rdParty/Boost/src/boost/asio/read_until.hpp +++ b/3rdParty/Boost/src/boost/asio/read_until.hpp @@ -2,7 +2,7 @@  // read_until.hpp  // ~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/serial_port.hpp b/3rdParty/Boost/src/boost/asio/serial_port.hpp index 9775739..a2f1721 100644 --- a/3rdParty/Boost/src/boost/asio/serial_port.hpp +++ b/3rdParty/Boost/src/boost/asio/serial_port.hpp @@ -2,7 +2,7 @@  // serial_port.hpp  // ~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/serial_port_base.hpp b/3rdParty/Boost/src/boost/asio/serial_port_base.hpp index a050df2..083d006 100644 --- a/3rdParty/Boost/src/boost/asio/serial_port_base.hpp +++ b/3rdParty/Boost/src/boost/asio/serial_port_base.hpp @@ -2,7 +2,7 @@  // serial_port_base.hpp  // ~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)  // Copyright (c) 2008 Rep Invariant Systems, Inc. (info@repinvariant.com)  //  // Distributed under the Boost Software License, Version 1.0. (See accompanying diff --git a/3rdParty/Boost/src/boost/asio/serial_port_service.hpp b/3rdParty/Boost/src/boost/asio/serial_port_service.hpp index b1c8301..1a8a11b 100644 --- a/3rdParty/Boost/src/boost/asio/serial_port_service.hpp +++ b/3rdParty/Boost/src/boost/asio/serial_port_service.hpp @@ -2,7 +2,7 @@  // serial_port_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/socket_acceptor_service.hpp b/3rdParty/Boost/src/boost/asio/socket_acceptor_service.hpp index 3f7436b..f287c65 100644 --- a/3rdParty/Boost/src/boost/asio/socket_acceptor_service.hpp +++ b/3rdParty/Boost/src/boost/asio/socket_acceptor_service.hpp @@ -2,7 +2,7 @@  // socket_acceptor_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/socket_base.hpp b/3rdParty/Boost/src/boost/asio/socket_base.hpp index 083ffb6..f5bac91 100644 --- a/3rdParty/Boost/src/boost/asio/socket_base.hpp +++ b/3rdParty/Boost/src/boost/asio/socket_base.hpp @@ -2,7 +2,7 @@  // socket_base.hpp  // ~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/strand.hpp b/3rdParty/Boost/src/boost/asio/strand.hpp index e085030..2928167 100644 --- a/3rdParty/Boost/src/boost/asio/strand.hpp +++ b/3rdParty/Boost/src/boost/asio/strand.hpp @@ -2,7 +2,7 @@  // strand.hpp  // ~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/stream_socket_service.hpp b/3rdParty/Boost/src/boost/asio/stream_socket_service.hpp index 101eacb..40d5e18 100644 --- a/3rdParty/Boost/src/boost/asio/stream_socket_service.hpp +++ b/3rdParty/Boost/src/boost/asio/stream_socket_service.hpp @@ -2,7 +2,7 @@  // stream_socket_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/streambuf.hpp b/3rdParty/Boost/src/boost/asio/streambuf.hpp index 30196ad..8f724c3 100644 --- a/3rdParty/Boost/src/boost/asio/streambuf.hpp +++ b/3rdParty/Boost/src/boost/asio/streambuf.hpp @@ -2,7 +2,7 @@  // streambuf.hpp  // ~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/time_traits.hpp b/3rdParty/Boost/src/boost/asio/time_traits.hpp index 9043d7d..0da7e6b 100644 --- a/3rdParty/Boost/src/boost/asio/time_traits.hpp +++ b/3rdParty/Boost/src/boost/asio/time_traits.hpp @@ -2,7 +2,7 @@  // time_traits.hpp  // ~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/version.hpp b/3rdParty/Boost/src/boost/asio/version.hpp index 20858bf..9ef5ab5 100644 --- a/3rdParty/Boost/src/boost/asio/version.hpp +++ b/3rdParty/Boost/src/boost/asio/version.hpp @@ -2,7 +2,7 @@  // version.hpp  // ~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) @@ -18,6 +18,6 @@  // BOOST_ASIO_VERSION % 100 is the sub-minor version  // BOOST_ASIO_VERSION / 100 % 1000 is the minor version  // BOOST_ASIO_VERSION / 100000 is the major version -#define BOOST_ASIO_VERSION 100407 // 1.4.7 +#define BOOST_ASIO_VERSION 100409 // 1.4.9  #endif // BOOST_ASIO_VERSION_HPP diff --git a/3rdParty/Boost/src/boost/asio/windows/basic_handle.hpp b/3rdParty/Boost/src/boost/asio/windows/basic_handle.hpp index 58bb54d..aedd79a 100644 --- a/3rdParty/Boost/src/boost/asio/windows/basic_handle.hpp +++ b/3rdParty/Boost/src/boost/asio/windows/basic_handle.hpp @@ -2,7 +2,7 @@  // windows/basic_handle.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/windows/basic_random_access_handle.hpp b/3rdParty/Boost/src/boost/asio/windows/basic_random_access_handle.hpp index 5c403d0..207e414 100644 --- a/3rdParty/Boost/src/boost/asio/windows/basic_random_access_handle.hpp +++ b/3rdParty/Boost/src/boost/asio/windows/basic_random_access_handle.hpp @@ -2,7 +2,7 @@  // windows/basic_random_access_handle.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/windows/basic_stream_handle.hpp b/3rdParty/Boost/src/boost/asio/windows/basic_stream_handle.hpp index 340e402..105b041 100644 --- a/3rdParty/Boost/src/boost/asio/windows/basic_stream_handle.hpp +++ b/3rdParty/Boost/src/boost/asio/windows/basic_stream_handle.hpp @@ -2,7 +2,7 @@  // windows/basic_stream_handle.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/windows/overlapped_ptr.hpp b/3rdParty/Boost/src/boost/asio/windows/overlapped_ptr.hpp index 24a199f..c9b1889 100644 --- a/3rdParty/Boost/src/boost/asio/windows/overlapped_ptr.hpp +++ b/3rdParty/Boost/src/boost/asio/windows/overlapped_ptr.hpp @@ -2,7 +2,7 @@  // windows/overlapped_ptr.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/windows/random_access_handle.hpp b/3rdParty/Boost/src/boost/asio/windows/random_access_handle.hpp index 03d7055..183ad0d 100644 --- a/3rdParty/Boost/src/boost/asio/windows/random_access_handle.hpp +++ b/3rdParty/Boost/src/boost/asio/windows/random_access_handle.hpp @@ -2,7 +2,7 @@  // windows/random_access_handle.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/windows/random_access_handle_service.hpp b/3rdParty/Boost/src/boost/asio/windows/random_access_handle_service.hpp index e5a2e11..08cb561 100644 --- a/3rdParty/Boost/src/boost/asio/windows/random_access_handle_service.hpp +++ b/3rdParty/Boost/src/boost/asio/windows/random_access_handle_service.hpp @@ -2,7 +2,7 @@  // windows/random_access_handle_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/windows/stream_handle.hpp b/3rdParty/Boost/src/boost/asio/windows/stream_handle.hpp index ca2a56c..67f6452 100644 --- a/3rdParty/Boost/src/boost/asio/windows/stream_handle.hpp +++ b/3rdParty/Boost/src/boost/asio/windows/stream_handle.hpp @@ -2,7 +2,7 @@  // windows/stream_handle.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/windows/stream_handle_service.hpp b/3rdParty/Boost/src/boost/asio/windows/stream_handle_service.hpp index e534646..418ea1e 100644 --- a/3rdParty/Boost/src/boost/asio/windows/stream_handle_service.hpp +++ b/3rdParty/Boost/src/boost/asio/windows/stream_handle_service.hpp @@ -2,7 +2,7 @@  // windows/stream_handle_service.hpp  // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/write.hpp b/3rdParty/Boost/src/boost/asio/write.hpp index 0ec0879..537a8d6 100644 --- a/3rdParty/Boost/src/boost/asio/write.hpp +++ b/3rdParty/Boost/src/boost/asio/write.hpp @@ -2,7 +2,7 @@  // write.hpp  // ~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/asio/write_at.hpp b/3rdParty/Boost/src/boost/asio/write_at.hpp index a078a70..9c0c575 100644 --- a/3rdParty/Boost/src/boost/asio/write_at.hpp +++ b/3rdParty/Boost/src/boost/asio/write_at.hpp @@ -2,7 +2,7 @@  // write_at.hpp  // ~~~~~~~~~~~~  // -// Copyright (c) 2003-2010 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot 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) diff --git a/3rdParty/Boost/src/boost/assert.hpp b/3rdParty/Boost/src/boost/assert.hpp index c227f17..174f084 100644 --- a/3rdParty/Boost/src/boost/assert.hpp +++ b/3rdParty/Boost/src/boost/assert.hpp @@ -1,8 +1,11 @@  //  //  boost/assert.hpp - BOOST_ASSERT(expr) +//                     BOOST_ASSERT_MSG(expr, msg) +//                     BOOST_VERIFY(expr)  //  //  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.  //  Copyright (c) 2007 Peter Dimov +//  Copyright (c) Beman Dawes 2011  //  // Distributed under the Boost Software License, Version 1.0. (See  // accompanying file LICENSE_1_0.txt or copy at @@ -13,6 +16,16 @@  //  See http://www.boost.org/libs/utility/assert.html for documentation.  // +// +// Stop inspect complaining about use of 'assert': +// +// boostinspect:naassert_macro +// + +//--------------------------------------------------------------------------------------// +//                                     BOOST_ASSERT                                     // +//--------------------------------------------------------------------------------------// +  #undef BOOST_ASSERT  #if defined(BOOST_DISABLE_ASSERTS) @@ -25,18 +38,86 @@  namespace boost  { - -void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined - +  void assertion_failed(char const * expr, +                        char const * function, char const * file, long line); // user defined  } // namespace boost -#define BOOST_ASSERT(expr) ((expr)? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) +#define BOOST_ASSERT(expr) ((expr) \ +  ? ((void)0) \ +  : ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))  #else  # include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same  # define BOOST_ASSERT(expr) assert(expr)  #endif +//--------------------------------------------------------------------------------------// +//                                   BOOST_ASSERT_MSG                                   // +//--------------------------------------------------------------------------------------// + +# undef BOOST_ASSERT_MSG + +#if defined(BOOST_DISABLE_ASSERTS) || defined(NDEBUG) + +  #define BOOST_ASSERT_MSG(expr, msg) ((void)0) + +#elif defined(BOOST_ENABLE_ASSERT_HANDLER) + +  #include <boost/current_function.hpp> + +  namespace boost +  { +    void assertion_failed_msg(char const * expr, char const * msg, +                              char const * function, char const * file, long line); // user defined +  } // namespace boost + +  #define BOOST_ASSERT_MSG(expr, msg) ((expr) \ +    ? ((void)0) \ +    : ::boost::assertion_failed_msg(#expr, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) + +#else +  #ifndef BOOST_ASSERT_HPP +    #define BOOST_ASSERT_HPP +    #include <cstdlib> +    #include <iostream> +    #include <boost/current_function.hpp> + +    //  IDE's like Visual Studio perform better if output goes to std::cout or +    //  some other stream, so allow user to configure output stream: +    #ifndef BOOST_ASSERT_MSG_OSTREAM +    # define BOOST_ASSERT_MSG_OSTREAM std::cerr +    #endif + +    namespace boost +    {  +      namespace assertion  +      {  +        namespace detail +        { +          inline void assertion_failed_msg(char const * expr, char const * msg, char const * function, +            char const * file, long line) +          { +            BOOST_ASSERT_MSG_OSTREAM +              << "***** Internal Program Error - assertion (" << expr << ") failed in " +              << function << ":\n" +              << file << '(' << line << "): " << msg << std::endl; +            std::abort(); +          } +        } // detail +      } // assertion +    } // detail +  #endif + +  #define BOOST_ASSERT_MSG(expr, msg) ((expr) \ +    ? ((void)0) \ +    : ::boost::assertion::detail::assertion_failed_msg(#expr, msg, \ +          BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) +#endif + +//--------------------------------------------------------------------------------------// +//                                     BOOST_VERIFY                                     // +//--------------------------------------------------------------------------------------// +  #undef BOOST_VERIFY  #if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) ) diff --git a/3rdParty/Boost/src/boost/concept_check.hpp b/3rdParty/Boost/src/boost/concept_check.hpp index 58bd8b2..01b2f4e 100644 --- a/3rdParty/Boost/src/boost/concept_check.hpp +++ b/3rdParty/Boost/src/boost/concept_check.hpp @@ -38,14 +38,14 @@ namespace boost    //    // Backward compatibility    // -   +    template <class Model>    inline void function_requires(Model* = 0)    {        BOOST_CONCEPT_ASSERT((Model)); -  }     +  }    template <class T> inline void ignore_unused_variable_warning(T const&) {} -   +  #  define BOOST_CLASS_REQUIRE(type_var, ns, concept)    \      BOOST_CONCEPT_ASSERT((ns::concept<type_var>)) @@ -58,20 +58,21 @@ namespace boost  #  define BOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \      BOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3,tv4>)) -   +    //    // Begin concept definitions    //    BOOST_concept(Integer, (T))    {        BOOST_CONCEPT_USAGE(Integer) -        {  +        {              x.error_type_must_be_an_integer_type();          }     private:        T x;    }; +  template <> struct Integer<char> {};    template <> struct Integer<signed char> {};    template <> struct Integer<unsigned char> {};    template <> struct Integer<short> {}; @@ -89,7 +90,7 @@ namespace boost  # endif    BOOST_concept(SignedInteger,(T)) { -    BOOST_CONCEPT_USAGE(SignedInteger) {  +    BOOST_CONCEPT_USAGE(SignedInteger) {        x.error_type_must_be_a_signed_integer_type();      }     private: @@ -103,16 +104,16 @@ namespace boost    template <> struct SignedInteger< ::boost::long_long_type> {};  # elif defined(BOOST_HAS_MS_INT64)    template <> struct SignedInteger<__int64> {}; -# endif       +# endif    BOOST_concept(UnsignedInteger,(T)) { -    BOOST_CONCEPT_USAGE(UnsignedInteger) {  +    BOOST_CONCEPT_USAGE(UnsignedInteger) {        x.error_type_must_be_an_unsigned_integer_type();      }     private:      T x;    }; -   +    template <> struct UnsignedInteger<unsigned char> {};    template <> struct UnsignedInteger<unsigned short> {};    template <> struct UnsignedInteger<unsigned int> {}; @@ -138,23 +139,24 @@ namespace boost    {      BOOST_CONCEPT_USAGE(Assignable) {  #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL -      a = a;             // require assignment operator +      a = b;             // require assignment operator  #endif -      const_constraints(a); +      const_constraints(b);      }     private: -    void const_constraints(const TT& b) { +    void const_constraints(const TT& x) {  #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL -      a = b;              // const required for argument to assignment +      a = x;              // const required for argument to assignment  #else -      ignore_unused_variable_warning(b); +      ignore_unused_variable_warning(x);  #endif      }     private:      TT a; +    TT b;    }; -   +    BOOST_concept(CopyConstructible,(TT))    {      BOOST_CONCEPT_USAGE(CopyConstructible) { @@ -182,22 +184,23 @@ namespace boost    BOOST_concept(SGIAssignable,(TT))    {      BOOST_CONCEPT_USAGE(SGIAssignable) { -      TT b(a); +      TT c(a);  #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL -      a = a;              // require assignment operator +      a = b;              // require assignment operator  #endif -      const_constraints(a); -      ignore_unused_variable_warning(b); +      const_constraints(b); +      ignore_unused_variable_warning(c);      }     private: -    void const_constraints(const TT& b) { -      TT c(b); +    void const_constraints(const TT& x) { +      TT c(x);  #if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL -      a = b;              // const required for argument to assignment +      a = x;              // const required for argument to assignment  #endif        ignore_unused_variable_warning(c);      }      TT a; +    TT b;    };  #if (defined _MSC_VER)  # pragma warning( pop ) @@ -299,7 +302,7 @@ namespace boost    BOOST_concept(Generator,(Func)(Return))    {        BOOST_CONCEPT_USAGE(Generator) { test(is_void<Return>()); } -       +     private:        void test(boost::mpl::false_)        { @@ -312,22 +315,22 @@ namespace boost        {            f();        } -       +        Func f;    };    BOOST_concept(UnaryFunction,(Func)(Return)(Arg))    {        BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void<Return>()); } -       +     private:        void test(boost::mpl::false_)        {            f(arg);               // "priming the pump" this way keeps msvc6 happy (ICE)            Return r = f(arg); -          ignore_unused_variable_warning(r);  +          ignore_unused_variable_warning(r);        } -       +        void test(boost::mpl::true_)        {            f(arg); @@ -356,12 +359,21 @@ namespace boost            Return r = f(first, second); // require operator()            (void)r;        } -       +        void test(boost::mpl::true_)        {            f(first,second);        } -       + +#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ +                      && BOOST_WORKAROUND(__GNUC__, > 3))) +      // Declare a dummy constructor to make gcc happy. +      // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. +      // (warning: non-static reference "const double& boost::BinaryFunction<YourClassHere>::arg" +      // in class without a constructor [-Wuninitialized]) +      BinaryFunction(); +#endif +        Func f;        First first;        Second second; @@ -373,6 +385,15 @@ namespace boost        require_boolean_expr(f(arg)); // require operator() returning bool      }     private: +#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ +                      && BOOST_WORKAROUND(__GNUC__, > 3))) +      // Declare a dummy constructor to make gcc happy. +      // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. +      // (warning: non-static reference "const double& boost::UnaryPredicate<YourClassHere>::arg" +      // in class without a constructor [-Wuninitialized]) +      UnaryPredicate(); +#endif +      Func f;      Arg arg;    }; @@ -383,6 +404,14 @@ namespace boost        require_boolean_expr(f(a, b)); // require operator() returning bool      }     private: +#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ +                      && BOOST_WORKAROUND(__GNUC__, > 3))) +      // Declare a dummy constructor to make gcc happy. +      // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. +      // (warning: non-static reference "const double& boost::BinaryPredicate<YourClassHere>::arg" +      // in class without a constructor [-Wuninitialized]) +      BinaryPredicate(); +#endif      Func f;      First a;      Second b; @@ -392,7 +421,7 @@ namespace boost    BOOST_concept(Const_BinaryPredicate,(Func)(First)(Second))      : BinaryPredicate<Func, First, Second>    { -    BOOST_CONCEPT_USAGE(Const_BinaryPredicate) {  +    BOOST_CONCEPT_USAGE(Const_BinaryPredicate) {        const_constraints(f);      }     private: @@ -400,6 +429,15 @@ namespace boost        // operator() must be a const member function        require_boolean_expr(fun(a, b));      } +#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ +                      && BOOST_WORKAROUND(__GNUC__, > 3))) +      // Declare a dummy constructor to make gcc happy. +      // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. +      // (warning: non-static reference "const double& boost::Const_BinaryPredicate<YourClassHere>::arg" +      // in class without a constructor [-Wuninitialized]) +      Const_BinaryPredicate(); +#endif +      Func f;      First a;      Second b; @@ -409,7 +447,7 @@ namespace boost      : Generator<Func, typename Func::result_type>    {        typedef typename Func::result_type result_type; -       +        BOOST_CONCEPT_USAGE(AdaptableGenerator)        {            BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>)); @@ -440,7 +478,7 @@ namespace boost        typedef typename Func::first_argument_type first_argument_type;        typedef typename Func::second_argument_type second_argument_type;        typedef typename Func::result_type result_type; -       +        ~AdaptableBinaryFunction()        {            BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>)); @@ -478,7 +516,7 @@ namespace boost        {          BOOST_CONCEPT_ASSERT((SignedInteger<difference_type>));          BOOST_CONCEPT_ASSERT((Convertible<iterator_category, std::input_iterator_tag>)); -         +          TT j(i);          (void)*i;           // require dereference operator          ++j;                // require preincrement operator @@ -492,7 +530,7 @@ namespace boost      : Assignable<TT>    {      BOOST_CONCEPT_USAGE(OutputIterator) { -       +        ++i;                // require preincrement operator        i++;                // require postincrement operator        *i++ = t;           // require postincrement and assignment @@ -511,11 +549,11 @@ namespace boost                BOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category              , std::forward_iterator_tag            >)); -           +            typename InputIterator<TT>::reference r = *i;            ignore_unused_variable_warning(r);        } -       +     private:        TT i;    }; @@ -577,7 +615,7 @@ namespace boost            n = i - j;                  // require difference operator            (void)i[n];                 // require element access operator        } -       +     private:      TT a, b;      TT i, j; @@ -615,7 +653,7 @@ namespace boost            BOOST_CONCEPT_ASSERT((InputIterator<const_iterator>));            const_constraints(c);        } -       +     private:        void const_constraints(const C& cc) {            i = cc.begin(); @@ -636,19 +674,19 @@ namespace boost        typedef typename C::reference reference;        typedef typename C::iterator iterator;        typedef typename C::pointer pointer; -     +        BOOST_CONCEPT_USAGE(Mutable_Container)        {            BOOST_CONCEPT_ASSERT((                 Assignable<typename Mutable_Container::value_type>)); -           +            BOOST_CONCEPT_ASSERT((InputIterator<iterator>)); -           +            i = c.begin();            i = c.end();            c.swap(c2);        } -       +     private:        iterator i;        C c, c2; @@ -664,7 +702,7 @@ namespace boost                      typename ForwardContainer::const_iterator                 >));        } -  };   +  };    BOOST_concept(Mutable_ForwardContainer,(C))      : ForwardContainer<C> @@ -677,7 +715,7 @@ namespace boost                     typename Mutable_ForwardContainer::iterator                 >));        } -  };   +  };    BOOST_concept(ReversibleContainer,(C))      : ForwardContainer<C> @@ -691,9 +729,9 @@ namespace boost            BOOST_CONCEPT_ASSERT((                BidirectionalIterator<                    typename ReversibleContainer::const_iterator>)); -           +            BOOST_CONCEPT_ASSERT((BidirectionalIterator<const_reverse_iterator>)); -           +            const_constraints(c);        }     private: @@ -710,17 +748,17 @@ namespace boost      , ReversibleContainer<C>    {        typedef typename C::reverse_iterator reverse_iterator; -       +        BOOST_CONCEPT_USAGE(Mutable_ReversibleContainer)        {            typedef typename Mutable_ForwardContainer<C>::iterator iterator;            BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<iterator>));            BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<reverse_iterator>)); -           +            reverse_iterator i = c.rbegin();            i = c.rend();        } -   private:   +   private:        C c;    }; @@ -736,7 +774,7 @@ namespace boost                RandomAccessIterator<                    typename RandomAccessContainer::const_iterator                >)); -           +            const_constraints(c);        }     private: @@ -745,7 +783,7 @@ namespace boost            const_reference r = cc[n];            ignore_unused_variable_warning(r);        } -     +        C c;        size_type n;    }; @@ -761,11 +799,11 @@ namespace boost        {            BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::iterator>));            BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::reverse_iterator>)); -           +            typename self::reference r = c[i];            ignore_unused_variable_warning(r);        } -       +     private:        typename Mutable_ReversibleContainer<C>::size_type i;        C c; @@ -781,7 +819,7 @@ namespace boost    {        BOOST_CONCEPT_USAGE(Sequence)        { -          S  +          S                c(n),                c2(n, t),                c3(first, last); @@ -806,7 +844,7 @@ namespace boost            typename Sequence::const_reference r = c.front();            ignore_unused_variable_warning(r);        } -     +        typename S::value_type t;        typename S::size_type n;        typename S::value_type* first, *last; @@ -865,11 +903,11 @@ namespace boost            c.erase(r.first, r.second);            const_constraints(c);            BOOST_CONCEPT_ASSERT((BinaryPredicate<key_compare,key_type,key_type>)); -           +            typedef typename AssociativeContainer::value_type value_type_;            BOOST_CONCEPT_ASSERT((BinaryPredicate<value_compare,value_type_,value_type_>));        } -       +        // Redundant with the base concept, but it helps below.        typedef typename C::const_iterator const_iterator;     private: @@ -895,7 +933,7 @@ namespace boost        BOOST_CONCEPT_USAGE(UniqueAssociativeContainer)        {            C c(first, last); -       +            pos_flag = c.insert(t);            c.insert(first, last); @@ -913,7 +951,7 @@ namespace boost        BOOST_CONCEPT_USAGE(MultipleAssociativeContainer)        {            C c(first, last); -       +            pos = c.insert(t);            c.insert(first, last); @@ -956,7 +994,7 @@ namespace boost    {        BOOST_CONCEPT_USAGE(SortedAssociativeContainer)        { -          C  +          C                c(kc),                c2(first, last),                c3(first, last, kc); @@ -964,15 +1002,15 @@ namespace boost            p = c.upper_bound(k);            p = c.lower_bound(k);            r = c.equal_range(k); -       +            c.insert(p, t); -       +            ignore_unused_variable_warning(c);            ignore_unused_variable_warning(c2);            ignore_unused_variable_warning(c3);            const_constraints(c);        } -       +        void const_constraints(const C& c)        {            kc = c.key_comp(); @@ -982,7 +1020,7 @@ namespace boost            cp = c.lower_bound(k);            cr = c.equal_range(k);        } -       +     private:        typename C::key_compare kc;        typename C::value_compare vc; diff --git a/3rdParty/Boost/src/boost/config/auto_link.hpp b/3rdParty/Boost/src/boost/config/auto_link.hpp index e562caf..f5a0a00 100644 --- a/3rdParty/Boost/src/boost/config/auto_link.hpp +++ b/3rdParty/Boost/src/boost/config/auto_link.hpp @@ -414,7 +414,4 @@ BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.  #if defined(BOOST_DYN_LINK)  #  undef BOOST_DYN_LINK  #endif -#if defined(BOOST_AUTO_LINK_NOMANGLE) -#  undef BOOST_AUTO_LINK_NOMANGLE -#endif diff --git a/3rdParty/Boost/src/boost/config/compiler/clang.hpp b/3rdParty/Boost/src/boost/config/compiler/clang.hpp index 2ce6773..0893033 100644 --- a/3rdParty/Boost/src/boost/config/compiler/clang.hpp +++ b/3rdParty/Boost/src/boost/config/compiler/clang.hpp @@ -13,8 +13,7 @@  #  define BOOST_NO_EXCEPTIONS  #endif -#if __has_feature(cxx_rtti) -#else +#if !__has_feature(cxx_rtti)  #  define BOOST_NO_RTTI  #endif @@ -24,35 +23,57 @@  #define BOOST_HAS_NRVO -// NOTE: Clang's C++0x support is not worth detecting. However, it -// supports both extern templates and "long long" even in C++98/03 -// mode. +// Clang supports "long long" in all compilation modes. +  #define BOOST_NO_AUTO_DECLARATIONS  #define BOOST_NO_AUTO_MULTIDECLARATIONS  #define BOOST_NO_CHAR16_T  #define BOOST_NO_CHAR32_T  #define BOOST_NO_CONCEPTS  #define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE + +#if !__has_feature(cxx_decltype) +#  define BOOST_NO_DECLTYPE +#endif +  #define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS + +#if !__has_feature(cxx_deleted_functions) +#  define BOOST_NO_DELETED_FUNCTIONS +#endif +  #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS + +#if !__has_feature(cxx_default_function_template_args) +  #define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif +  #define BOOST_NO_INITIALIZER_LISTS  #define BOOST_NO_LAMBDAS  #define BOOST_NO_NULLPTR  #define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT + +#if !__has_feature(cxx_rvalue_references) +#  define BOOST_NO_RVALUE_REFERENCES +#endif + +#if !__has_feature(cxx_strong_enums) +#  define BOOST_NO_SCOPED_ENUMS +#endif + +#if !__has_feature(cxx_static_assert) +#  define BOOST_NO_STATIC_ASSERT +#endif +  #define BOOST_NO_TEMPLATE_ALIASES  #define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS -// HACK: Clang does support extern templates, but Boost's test for -// them is wrong. -#define BOOST_NO_EXTERN_TEMPLATE +#if !__has_feature(cxx_variadic_templates) +#  define BOOST_NO_VARIADIC_TEMPLATES +#endif + +// Clang always supports variadic macros +// Clang always supports extern templates  #ifndef BOOST_COMPILER  #  define BOOST_COMPILER "Clang version " __clang_version__ diff --git a/3rdParty/Boost/src/boost/config/compiler/common_edg.hpp b/3rdParty/Boost/src/boost/config/compiler/common_edg.hpp index 682c73a..9042578 100644 --- a/3rdParty/Boost/src/boost/config/compiler/common_edg.hpp +++ b/3rdParty/Boost/src/boost/config/compiler/common_edg.hpp @@ -62,10 +62,13 @@  #if (__EDG_VERSION__ < 310)  #  define BOOST_NO_EXTERN_TEMPLATE  #endif -#if (__EDG_VERSION__ <= 310) || !defined(BOOST_STRICT_CONFIG) +#if (__EDG_VERSION__ <= 310)  // No support for initializer lists  #  define BOOST_NO_INITIALIZER_LISTS  #endif +#if (__EDG_VERSION__ < 400) +#  define BOOST_NO_VARIADIC_MACROS +#endif  #define BOOST_NO_AUTO_DECLARATIONS  #define BOOST_NO_AUTO_MULTIDECLARATIONS @@ -88,7 +91,6 @@  #define BOOST_NO_TEMPLATE_ALIASES  #define BOOST_NO_UNICODE_LITERALS  #define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS  #ifdef c_plusplus  // EDG has "long long" in non-strict mode diff --git a/3rdParty/Boost/src/boost/config/compiler/gcc.hpp b/3rdParty/Boost/src/boost/config/compiler/gcc.hpp index eeaf998..f633647 100644 --- a/3rdParty/Boost/src/boost/config/compiler/gcc.hpp +++ b/3rdParty/Boost/src/boost/config/compiler/gcc.hpp @@ -148,8 +148,6 @@  // C++0x features not implemented in any GCC version  // -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_NULLPTR  #define BOOST_NO_TEMPLATE_ALIASES  // C++0x features in 4.3.n and later @@ -211,6 +209,13 @@  #  define BOOST_NO_UNICODE_LITERALS  #endif +// C++0x features in 4.5.n and later +// +#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__) +#define BOOST_NO_CONSTEXPR +#define BOOST_NO_NULLPTR +#endif +  // ConceptGCC compiler:  //   http://www.generic-programming.org/software/ConceptGCC/  #ifdef __GXX_CONCEPTS__ @@ -231,8 +236,8 @@  #  error "Compiler not configured - please reconfigure"  #endif  // -// last known and checked version is 4.4 (Pre-release): -#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 4)) +// last known and checked version is 4.6 (Pre-release): +#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))  #  if defined(BOOST_ASSERT_CONFIG)  #     error "Unknown compiler version - please run the configure tests and report the results"  #  else diff --git a/3rdParty/Boost/src/boost/config/compiler/intel.hpp b/3rdParty/Boost/src/boost/config/compiler/intel.hpp index e7bc95b..f209ae7 100644 --- a/3rdParty/Boost/src/boost/config/compiler/intel.hpp +++ b/3rdParty/Boost/src/boost/config/compiler/intel.hpp @@ -26,7 +26,19 @@  #  define BOOST_INTEL_CXX_VERSION __ECC  #endif +// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x' +#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && __STDC_HOSTED__) || defined(__GXX_EXPERIMENTAL_CPP0X__) +#  define BOOST_INTEL_STDCXX0X +#endif +#if defined(_MSC_VER) && (_MSC_VER >= 1600) +#  define BOOST_INTEL_STDCXX0X +#endif + +#ifdef BOOST_INTEL_STDCXX0X +#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) +#else  #define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) +#endif  #define BOOST_INTEL BOOST_INTEL_CXX_VERSION  #if defined(_WIN32) || defined(_WIN64) @@ -99,7 +111,7 @@  #     define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL  #  endif  #endif -#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1110) +#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1200)  // GCC or VC emulation:  #define BOOST_NO_TWO_PHASE_NAME_LOOKUP  #endif @@ -179,6 +191,32 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};  #  define BOOST_SYMBOL_IMPORT  #  define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))  #endif +// +// C++0x features +//     - ICC added static_assert in 11.0 (first version with C++0x support) +// +#if defined(BOOST_INTEL_STDCXX0X) +#  undef  BOOST_NO_STATIC_ASSERT +// +// These pass our test cases, but aren't officially supported according to: +// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/ +// +//#  undef  BOOST_NO_LAMBDAS +//#  undef  BOOST_NO_DECLTYPE +//#  undef  BOOST_NO_AUTO_DECLARATIONS +//#  undef  BOOST_NO_AUTO_MULTIDECLARATIONS +#endif + +#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200) +#  undef  BOOST_NO_RVALUE_REFERENCES +#  undef  BOOST_NO_SCOPED_ENUMS +#  undef  BOOST_NO_DELETED_FUNCTIONS +#  undef  BOOST_NO_DEFAULTED_FUNCTIONS +#  undef  BOOST_NO_LAMBDAS +#  undef  BOOST_NO_DECLTYPE +#  undef  BOOST_NO_AUTO_DECLARATIONS +#  undef  BOOST_NO_AUTO_MULTIDECLARATIONS +#endif  //  // last known and checked version: diff --git a/3rdParty/Boost/src/boost/config/compiler/nvcc.hpp b/3rdParty/Boost/src/boost/config/compiler/nvcc.hpp index eaecf37..03203fb 100644 --- a/3rdParty/Boost/src/boost/config/compiler/nvcc.hpp +++ b/3rdParty/Boost/src/boost/config/compiler/nvcc.hpp @@ -17,71 +17,12 @@  // Boost support macro for NVCC   // NVCC Basically behaves like some flavor of MSVC6 + some specific quirks -#define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -#define BOOST_MSVC6_MEMBER_TEMPLATES -#define BOOST_HAS_UNISTD_H -#define BOOST_HAS_STDINT_H -#define BOOST_HAS_SIGACTION -#define BOOST_HAS_SCHED_YIELD -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_PTHREAD_YIELD -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -#define BOOST_HAS_PARTIAL_STD_ALLOCATOR -#define BOOST_HAS_NRVO -#define BOOST_HAS_NL_TYPES_H -#define BOOST_HAS_NANOSLEEP -#define BOOST_HAS_LONG_LONG -#define BOOST_HAS_LOG1P -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_EXPM1 -#define BOOST_HAS_DIRENT_H -#define BOOST_HAS_CLOCK_GETTIME -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_TEMPLATE_ALIASES -#define BOOST_NO_STD_UNORDERED -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_NULLPTR -#define BOOST_NO_LAMBDAS -#define BOOST_NO_INITIALIZER_LISTS -#define BOOST_NO_MS_INT64_NUMERIC_LIMITS -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DECLTYPE -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_CONCEPTS -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CHAR16_T -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_0X_HDR_UNORDERED_SET -#define BOOST_NO_0X_HDR_UNORDERED_MAP -#define BOOST_NO_0X_HDR_TYPE_TRAITS -#define BOOST_NO_0X_HDR_TUPLE -#define BOOST_NO_0X_HDR_THREAD -#define BOOST_NO_0X_HDR_TYPEINDEX -#define BOOST_NO_0X_HDR_SYSTEM_ERROR -#define BOOST_NO_0X_HDR_REGEX -#define BOOST_NO_0X_HDR_RATIO -#define BOOST_NO_0X_HDR_RANDOM -#define BOOST_NO_0X_HDR_MUTEX -#define BOOST_NO_0X_HDR_MEMORY_CONCEPTS -#define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS -#define BOOST_NO_0X_HDR_INITIALIZER_LIST -#define BOOST_NO_0X_HDR_FUTURE -#define BOOST_NO_0X_HDR_FORWARD_LIST -#define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS -#define BOOST_NO_0X_HDR_CONDITION_VARIABLE -#define BOOST_NO_0X_HDR_CONCEPTS -#define BOOST_NO_0X_HDR_CODECVT -#define BOOST_NO_0X_HDR_CHRONO -#define BOOST_NO_0X_HDR_ARRAY +#ifdef __GNUC__ +#include <boost/config/compiler/gcc.hpp> + +#elif defined(_MSC_VER) + +#include <boost/config/compiler/visualc.hpp> + +#endif diff --git a/3rdParty/Boost/src/boost/config/compiler/pathscale.hpp b/3rdParty/Boost/src/boost/config/compiler/pathscale.hpp new file mode 100644 index 0000000..13ede88 --- /dev/null +++ b/3rdParty/Boost/src/boost/config/compiler/pathscale.hpp @@ -0,0 +1,82 @@ +//  (C) Copyright Bryce Lelbach 2011 + +//  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 for most recent version. + +// PathScale EKOPath C++ Compiler + +#ifndef BOOST_COMPILER +#  define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__ +#endif + +#if __PATHCC__ >= 4 +#  define BOOST_MSVC6_MEMBER_TEMPLATES +#  define BOOST_HAS_UNISTD_H +#  define BOOST_HAS_STDINT_H +#  define BOOST_HAS_SIGACTION +#  define BOOST_HAS_SCHED_YIELD +#  define BOOST_HAS_THREADS +#  define BOOST_HAS_PTHREADS +#  define BOOST_HAS_PTHREAD_YIELD +#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE +#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR +#  define BOOST_HAS_NRVO +#  define BOOST_HAS_NL_TYPES_H +#  define BOOST_HAS_NANOSLEEP +#  define BOOST_HAS_LONG_LONG +#  define BOOST_HAS_LOG1P +#  define BOOST_HAS_GETTIMEOFDAY +#  define BOOST_HAS_EXPM1 +#  define BOOST_HAS_DIRENT_H +#  define BOOST_HAS_CLOCK_GETTIME +#  define BOOST_NO_VARIADIC_TEMPLATES +#  define BOOST_NO_UNICODE_LITERALS +#  define BOOST_NO_TEMPLATE_ALIASES +#  define BOOST_NO_STD_UNORDERED +#  define BOOST_NO_STATIC_ASSERT +#  define BOOST_NO_SFINAE_EXPR +#  define BOOST_NO_SCOPED_ENUMS +#  define BOOST_NO_RVALUE_REFERENCES +#  define BOOST_NO_RAW_LITERALS +#  define BOOST_NO_NULLPTR +#  define BOOST_NO_NUMERIC_LIMITS_LOWEST +#  define BOOST_NO_LAMBDAS +#  define BOOST_NO_INITIALIZER_LISTS +#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS +#  define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#  define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS +#  define BOOST_NO_DELETED_FUNCTIONS +#  define BOOST_NO_DEFAULTED_FUNCTIONS +#  define BOOST_NO_DECLTYPE +#  define BOOST_NO_CONSTEXPR +#  define BOOST_NO_CONCEPTS +#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION +#  define BOOST_NO_CHAR32_T +#  define BOOST_NO_CHAR16_T +#  define BOOST_NO_AUTO_MULTIDECLARATIONS +#  define BOOST_NO_AUTO_DECLARATIONS +#  define BOOST_NO_0X_HDR_UNORDERED_SET +#  define BOOST_NO_0X_HDR_UNORDERED_MAP +#  define BOOST_NO_0X_HDR_TYPEINDEX +#  define BOOST_NO_0X_HDR_TUPLE +#  define BOOST_NO_0X_HDR_THREAD +#  define BOOST_NO_0X_HDR_SYSTEM_ERROR +#  define BOOST_NO_0X_HDR_REGEX +#  define BOOST_NO_0X_HDR_RATIO +#  define BOOST_NO_0X_HDR_RANDOM +#  define BOOST_NO_0X_HDR_MUTEX +#  define BOOST_NO_0X_HDR_MEMORY_CONCEPTS +#  define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS +#  define BOOST_NO_0X_HDR_INITIALIZER_LIST +#  define BOOST_NO_0X_HDR_FUTURE +#  define BOOST_NO_0X_HDR_FORWARD_LIST +#  define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS +#  define BOOST_NO_0X_HDR_CONDITION_VARIABLE +#  define BOOST_NO_0X_HDR_CONCEPTS +#  define BOOST_NO_0X_HDR_CODECVT +#  define BOOST_NO_0X_HDR_CHRONO +#endif + diff --git a/3rdParty/Boost/src/boost/config/compiler/vacpp.hpp b/3rdParty/Boost/src/boost/config/compiler/vacpp.hpp index 5ae9c28..7ad616e 100644 --- a/3rdParty/Boost/src/boost/config/compiler/vacpp.hpp +++ b/3rdParty/Boost/src/boost/config/compiler/vacpp.hpp @@ -27,7 +27,6 @@  #if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)  #  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS -#  define BOOST_NO_INITIALIZER_LISTS  #endif  #if (__IBMCPP__ <= 1110) @@ -54,44 +53,66 @@  #error "Compiler not supported or configured - please reconfigure"  #endif  // -// last known and checked version is 600: -#if (__IBMCPP__ > 1010) +// last known and checked version is 1110: +#if (__IBMCPP__ > 1110)  #  if defined(BOOST_ASSERT_CONFIG)  #     error "Unknown compiler version - please run the configure tests and report the results"  #  endif  #endif  // Some versions of the compiler have issues with default arguments on partial specializations +#if __IBMCPP__ <= 1010  #define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS +#endif  //  // C++0x features  //  //   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG  // -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T +#if ! __IBMCPP_AUTO_TYPEDEDUCTION +#  define BOOST_NO_AUTO_DECLARATIONS +#  define BOOST_NO_AUTO_MULTIDECLARATIONS +#endif +#if ! __IBMCPP_UTF_LITERAL__ +#  define BOOST_NO_CHAR16_T +#  define BOOST_NO_CHAR32_T +#endif  #define BOOST_NO_CONCEPTS  #define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE +#if ! __IBMCPP_DECLTYPE +#  define BOOST_NO_DECLTYPE +#else +#  define BOOST_HAS_DECLTYPE +#endif  #define BOOST_NO_DEFAULTED_FUNCTIONS  #define BOOST_NO_DELETED_FUNCTIONS  #define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#if ! __IBMCPP_EXTERN_TEMPLATE +#  define BOOST_NO_EXTERN_TEMPLATE +#endif +#if ! __IBMCPP_VARIADIC_TEMPLATES +// not enabled separately at this time +#  define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS +#endif +#define BOOST_NO_INITIALIZER_LISTS  #define BOOST_NO_LAMBDAS  #define BOOST_NO_NULLPTR  #define BOOST_NO_RAW_LITERALS  #define BOOST_NO_RVALUE_REFERENCES  #define BOOST_NO_SCOPED_ENUMS  #define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_STATIC_ASSERT +#if ! __IBMCPP_STATIC_ASSERT +#  define BOOST_NO_STATIC_ASSERT +#endif  #define BOOST_NO_TEMPLATE_ALIASES  #define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_VARIADIC_MACROS +#if ! __IBMCPP_VARIADIC_TEMPLATES +#  define BOOST_NO_VARIADIC_TEMPLATES +#endif +#if ! __C99_MACRO_WITH_VA_ARGS +#  define BOOST_NO_VARIADIC_MACROS +#endif diff --git a/3rdParty/Boost/src/boost/config/compiler/visualc.hpp b/3rdParty/Boost/src/boost/config/compiler/visualc.hpp index 6755287..3878936 100644 --- a/3rdParty/Boost/src/boost/config/compiler/visualc.hpp +++ b/3rdParty/Boost/src/boost/config/compiler/visualc.hpp @@ -37,6 +37,9 @@     //  #endif +/// Visual Studio has no fenv.h +#define BOOST_NO_FENV_H +  #if (_MSC_VER <= 1300)  // 1300 == VC++ 7.0  #  if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS)      // VC7 bug with /Za @@ -94,10 +97,6 @@  #  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS  #endif -#if _MSC_VER <= 1600  // 1600 == VC++ 10.0 -#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif -  #if _MSC_VER == 1500  // 1500 == VC++ 9.0     // A bug in VC9:  #  define BOOST_NO_ADL_BARRIER @@ -181,6 +180,7 @@  #define BOOST_NO_STATIC_ASSERT  #define BOOST_NO_NULLPTR  #endif // _MSC_VER < 1600 +  #if _MSC_VER >= 1600  #define BOOST_HAS_STDINT_H  #endif @@ -198,10 +198,11 @@  #define BOOST_NO_INITIALIZER_LISTS  #define BOOST_NO_RAW_LITERALS  #define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_SFINAE_EXPR  #define BOOST_NO_TEMPLATE_ALIASES  #define BOOST_NO_UNICODE_LITERALS  #define BOOST_NO_VARIADIC_TEMPLATES +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_TWO_PHASE_NAME_LOOKUP  //  // prefix and suffix headers:  // diff --git a/3rdParty/Boost/src/boost/config/platform/cygwin.hpp b/3rdParty/Boost/src/boost/config/platform/cygwin.hpp index 8e1bcb0..b7ef572 100644 --- a/3rdParty/Boost/src/boost/config/platform/cygwin.hpp +++ b/3rdParty/Boost/src/boost/config/platform/cygwin.hpp @@ -39,6 +39,9 @@  #define BOOST_HAS_STDINT_H  #endif +/// Cygwin has no fenv.h +#define BOOST_NO_FENV_H +  // boilerplate code:  #include <boost/config/posix_features.hpp> diff --git a/3rdParty/Boost/src/boost/config/platform/win32.hpp b/3rdParty/Boost/src/boost/config/platform/win32.hpp index f59c4ea..72c3dce 100644 --- a/3rdParty/Boost/src/boost/config/platform/win32.hpp +++ b/3rdParty/Boost/src/boost/config/platform/win32.hpp @@ -31,7 +31,6 @@  #  define BOOST_SYMBOL_IMPORT __declspec(dllimport)  #endif -  #if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))  #  define BOOST_HAS_STDINT_H  #  define __STDC_LIMIT_MACROS @@ -39,6 +38,11 @@  #  define BOOST_HAS_UNISTD_H  #endif +#if defined(__MINGW32__) && (__GNUC__ >= 4) +#  define BOOST_HAS_EXPM1 +#  define BOOST_HAS_LOG1P +#  define BOOST_HAS_GETTIMEOFDAY +#endif  //  // Win32 will normally be using native Win32 threads,  // but there is a pthread library avaliable as an option, diff --git a/3rdParty/Boost/src/boost/config/select_compiler_config.hpp b/3rdParty/Boost/src/boost/config/select_compiler_config.hpp index f9b086a..e19469a 100644 --- a/3rdParty/Boost/src/boost/config/select_compiler_config.hpp +++ b/3rdParty/Boost/src/boost/config/select_compiler_config.hpp @@ -14,25 +14,27 @@  // one identification macro for each of the  // compilers we support: -#   define BOOST_CXX_GCCXML   0 -#   define BOOST_CXX_CLANG    0 -#   define BOOST_CXX_COMO     0 -#   define BOOST_CXX_DMC      0 -#   define BOOST_CXX_INTEL    0 -#   define BOOST_CXX_GNUC     0 -#   define BOOST_CXX_KCC      0 -#   define BOOST_CXX_SGI      0 -#   define BOOST_CXX_TRU64    0 -#   define BOOST_CXX_GHS      0 -#   define BOOST_CXX_BORLAND  0 -#   define BOOST_CXX_CW       0 -#   define BOOST_CXX_SUNPRO   0 -#   define BOOST_CXX_HPACC    0 -#   define BOOST_CXX_MPW      0 -#   define BOOST_CXX_IBMCPP   0 -#   define BOOST_CXX_MSVC     0 -#   define BOOST_CXX_PGI      0 -#   define BOOST_CXX_NVCC     0 +#   define BOOST_CXX_GCCXML     0 +#   define BOOST_CXX_NVCC       0 +#   define BOOST_CXX_COMO       0 +#   define BOOST_CXX_PATHSCALE  0 +#   define BOOST_CXX_CLANG      0 +#   define BOOST_CXX_DMC        0 +#   define BOOST_CXX_INTEL      0 +#   define BOOST_CXX_GNUC       0 +#   define BOOST_CXX_KCC        0 +#   define BOOST_CXX_SGI        0 +#   define BOOST_CXX_TRU64      0 +#   define BOOST_CXX_GHS        0 +#   define BOOST_CXX_BORLAND    0 +#   define BOOST_CXX_CW         0 +#   define BOOST_CXX_SUNPRO     0 +#   define BOOST_CXX_HPACC      0 +#   define BOOST_CXX_MPW        0 +#   define BOOST_CXX_IBMCPP     0 +#   define BOOST_CXX_MSVC       0 +#   define BOOST_CXX_PGI        0 +#   define BOOST_CXX_NVCC       0  // locate which compiler we are using and define @@ -50,6 +52,10 @@  //  Comeau C++  #   define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp" +#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4) +// PathScale EKOPath compiler (has to come before clang and gcc) +#   define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp" +  #elif defined __clang__  //  Clang C++ emulates GCC, so it has to appear early.  #   define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp" diff --git a/3rdParty/Boost/src/boost/config/select_stdlib_config.hpp b/3rdParty/Boost/src/boost/config/select_stdlib_config.hpp index 2a1430a..f020482 100644 --- a/3rdParty/Boost/src/boost/config/select_stdlib_config.hpp +++ b/3rdParty/Boost/src/boost/config/select_stdlib_config.hpp @@ -40,6 +40,10 @@  // Rogue Wave library:  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp" +#elif defined(_LIBCPP_VERSION) +// libc++ +#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp" +  #elif defined(__GLIBCPP__) || defined(__GLIBCXX__)  // GNU libstdc++ 3  #  define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp" diff --git a/3rdParty/Boost/src/boost/config/stdlib/dinkumware.hpp b/3rdParty/Boost/src/boost/config/stdlib/dinkumware.hpp index e33fef1..a7579da 100644 --- a/3rdParty/Boost/src/boost/config/stdlib/dinkumware.hpp +++ b/3rdParty/Boost/src/boost/config/stdlib/dinkumware.hpp @@ -107,6 +107,7 @@  #  define BOOST_NO_0X_HDR_UNORDERED_SET  #  define BOOST_NO_0X_HDR_TUPLE  #  define BOOST_NO_0X_HDR_TYPEINDEX +#  define BOOST_NO_NUMERIC_LIMITS_LOWEST  #endif  #if !defined(_HAS_TR1_IMPORTS) && !defined(BOOST_NO_0X_HDR_TUPLE) @@ -125,7 +126,6 @@  #  define BOOST_NO_0X_HDR_MUTEX  #  define BOOST_NO_0X_HDR_RATIO  #  define BOOST_NO_0X_HDR_THREAD -#  define BOOST_NO_NUMERIC_LIMITS_LOWEST  #ifdef _CPPLIB_VER  #  define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER diff --git a/3rdParty/Boost/src/boost/config/stdlib/libcpp.hpp b/3rdParty/Boost/src/boost/config/stdlib/libcpp.hpp new file mode 100644 index 0000000..db7f6f1 --- /dev/null +++ b/3rdParty/Boost/src/boost/config/stdlib/libcpp.hpp @@ -0,0 +1,34 @@ +//  (C) Copyright Christopher Jefferson 2011. +//  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 for most recent version. + +//  config for libc++ +//  Might need more in here later. + +#if !defined(_LIBCPP_VERSION) +#  include <ciso646> +#  if !defined(_LIBCPP_VERSION) +#      error "This is not libc++!" +#  endif +#endif + +#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION) + +#define BOOST_HAS_THREADS + +#define BOOST_NO_0X_HDR_CONCEPTS +#define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS +#define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS +#define BOOST_NO_0X_HDR_MEMORY_CONCEPTS + +#ifdef _LIBCPP_HAS_NO_VARIADICS +#    define BOOST_NO_0X_HDR_TUPLE +#endif + +// libc++ uses a non-standard messages_base +#define BOOST_NO_STD_MESSAGES + +//  --- end --- diff --git a/3rdParty/Boost/src/boost/config/stdlib/libstdcpp3.hpp b/3rdParty/Boost/src/boost/config/stdlib/libstdcpp3.hpp index 01dd490..c048b89 100644 --- a/3rdParty/Boost/src/boost/config/stdlib/libstdcpp3.hpp +++ b/3rdParty/Boost/src/boost/config/stdlib/libstdcpp3.hpp @@ -9,6 +9,8 @@  //  config for libstdc++ v3  //  not much to go in here: +#define BOOST_GNU_STDLIB 1 +  #ifdef __GLIBCXX__  #define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)  #else @@ -54,7 +56,6 @@  #  define BOOST_HAS_THREADS  #endif -  #if !defined(_GLIBCPP_USE_LONG_LONG) \      && !defined(_GLIBCXX_USE_LONG_LONG)\      && defined(BOOST_HAS_LONG_LONG) @@ -63,6 +64,16 @@  #  undef BOOST_HAS_LONG_LONG  #endif +// Apple doesn't seem to reliably defined a *unix* macro +#if !defined(CYGWIN) && (  defined(__unix__)  \ +                        || defined(__unix)    \ +                        || defined(unix)      \ +                        || defined(__APPLE__) \ +                        || defined(__APPLE)   \ +                        || defined(APPLE)) +#  include <unistd.h> +#endif +  #if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0  #  define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx  #  define BOOST_HAS_SLIST diff --git a/3rdParty/Boost/src/boost/config/stdlib/roguewave.hpp b/3rdParty/Boost/src/boost/config/stdlib/roguewave.hpp index dcd0af8..b43623b 100644 --- a/3rdParty/Boost/src/boost/config/stdlib/roguewave.hpp +++ b/3rdParty/Boost/src/boost/config/stdlib/roguewave.hpp @@ -10,6 +10,8 @@  //  Rogue Wave std lib: +#define BOOST_RW_STDLIB 1  +  #if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)  #  include <boost/config/no_tr1/utility.hpp>  #  if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) @@ -154,7 +156,10 @@  //  C++0x headers not yet implemented  // +#if _RWSTD_VER < 0x05000000  #  define BOOST_NO_0X_HDR_ARRAY +#  define BOOST_NO_0X_HDR_TYPE_TRAITS +#endif  #  define BOOST_NO_0X_HDR_CHRONO  #  define BOOST_NO_0X_HDR_CODECVT  #  define BOOST_NO_0X_HDR_CONCEPTS @@ -172,7 +177,6 @@  #  define BOOST_NO_0X_HDR_SYSTEM_ERROR  #  define BOOST_NO_0X_HDR_THREAD  #  define BOOST_NO_0X_HDR_TUPLE -#  define BOOST_NO_0X_HDR_TYPE_TRAITS  #  define BOOST_NO_0X_HDR_TYPEINDEX  #  define BOOST_NO_STD_UNORDERED        // deprecated; see following  #  define BOOST_NO_0X_HDR_UNORDERED_MAP diff --git a/3rdParty/Boost/src/boost/config/stdlib/sgi.hpp b/3rdParty/Boost/src/boost/config/stdlib/sgi.hpp index 4d42647..5731fe5 100644 --- a/3rdParty/Boost/src/boost/config/stdlib/sgi.hpp +++ b/3rdParty/Boost/src/boost/config/stdlib/sgi.hpp @@ -40,6 +40,17 @@  #  define BOOST_NO_STRINGSTREAM  #endif +// Apple doesn't seem to reliably defined a *unix* macro +#if !defined(CYGWIN) && (  defined(__unix__)  \ +                        || defined(__unix)    \ +                        || defined(unix)      \ +                        || defined(__APPLE__) \ +                        || defined(__APPLE)   \ +                        || defined(APPLE)) +#  include <unistd.h> +#endif + +  //  // Assume no std::locale without own iostreams (this may be an  // incorrect assumption in some cases): diff --git a/3rdParty/Boost/src/boost/config/stdlib/stlport.hpp b/3rdParty/Boost/src/boost/config/stdlib/stlport.hpp index 0e1c9b2..85176a4 100644 --- a/3rdParty/Boost/src/boost/config/stdlib/stlport.hpp +++ b/3rdParty/Boost/src/boost/config/stdlib/stlport.hpp @@ -16,6 +16,16 @@  #  endif  #endif +// Apple doesn't seem to reliably defined a *unix* macro +#if !defined(CYGWIN) && (  defined(__unix__)  \ +                        || defined(__unix)    \ +                        || defined(unix)      \ +                        || defined(__APPLE__) \ +                        || defined(__APPLE)   \ +                        || defined(APPLE)) +#  include <unistd.h> +#endif +  //  // __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS  // for versions prior to 4.1(beta) diff --git a/3rdParty/Boost/src/boost/config/stdlib/vacpp.hpp b/3rdParty/Boost/src/boost/config/stdlib/vacpp.hpp index 0fc092f..3fcf6e0 100644 --- a/3rdParty/Boost/src/boost/config/stdlib/vacpp.hpp +++ b/3rdParty/Boost/src/boost/config/stdlib/vacpp.hpp @@ -12,6 +12,16 @@  #define BOOST_HAS_MACRO_USE_FACET  #define BOOST_NO_STD_MESSAGES +// Apple doesn't seem to reliably defined a *unix* macro +#if !defined(CYGWIN) && (  defined(__unix__)  \ +                        || defined(__unix)    \ +                        || defined(unix)      \ +                        || defined(__APPLE__) \ +                        || defined(__APPLE)   \ +                        || defined(APPLE)) +#  include <unistd.h> +#endif +  //  C++0x headers not yet implemented  //  #  define BOOST_NO_0X_HDR_ARRAY diff --git a/3rdParty/Boost/src/boost/config/suffix.hpp b/3rdParty/Boost/src/boost/config/suffix.hpp index 722758f..9cce6fd 100644 --- a/3rdParty/Boost/src/boost/config/suffix.hpp +++ b/3rdParty/Boost/src/boost/config/suffix.hpp @@ -349,6 +349,13 @@  #define BOOST_HAS_RVALUE_REFS  #endif +// +// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_VARIADIC_TEMPLATES is not defined +// +#if !defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL) +#define BOOST_HAS_VARIADIC_TMPL +#endif +  //  BOOST_HAS_ABI_HEADERS  //  This macro gets set if we have headers that fix the ABI,  //  and prevent ODR violations when linking to external libraries: @@ -593,7 +600,7 @@ namespace boost{  // the global definition into std namespace:  #ifdef BOOST_NO_STD_TYPEINFO  #include <typeinfo> -namespace std{ using ::typeinfo; } +namespace std{ using ::type_info; }  #endif  // ---------------------------------------------------------------------------// @@ -643,5 +650,19 @@ namespace std{ using ::typeinfo; }  #  ifndef BOOST_GPU_ENABLED  #  define BOOST_GPU_ENABLED   #  endif + +// +// constexpr workarounds +//  +#if defined(BOOST_NO_CONSTEXPR) +#define BOOST_CONSTEXPR +#define BOOST_CONSTEXPR_OR_CONST const +#else +#define BOOST_CONSTEXPR constexpr +#define BOOST_CONSTEXPR_OR_CONST constexpr +#endif + +#define BOOST_STATIC_CONSTEXPR  static BOOST_CONSTEXPR_OR_CONST +  #endif diff --git a/3rdParty/Boost/src/boost/detail/bitmask.hpp b/3rdParty/Boost/src/boost/detail/bitmask.hpp new file mode 100644 index 0000000..c6714a1 --- /dev/null +++ b/3rdParty/Boost/src/boost/detail/bitmask.hpp @@ -0,0 +1,47 @@ +//  boost/detail/bitmask.hpp  ------------------------------------------------// + +//  Copyright Beman Dawes 2006 + +//  Distributed under the Boost Software License, Version 1.0 +//  http://www.boost.org/LICENSE_1_0.txt + +//  Usage:  enum foo { a=1, b=2, c=4 }; +//          BOOST_BITMASK( foo ); +// +//          void f( foo arg ); +//          ... +//          f( a | c ); + +#ifndef BOOST_BITMASK_HPP +#define BOOST_BITMASK_HPP + +#include <boost/cstdint.hpp> + +#define BOOST_BITMASK(Bitmask)                                            \ +                                                                          \ +  inline Bitmask operator| (Bitmask x , Bitmask y )                       \ +  { return static_cast<Bitmask>( static_cast<boost::int_least32_t>(x)     \ +      | static_cast<boost::int_least32_t>(y)); }                          \ +                                                                          \ +  inline Bitmask operator& (Bitmask x , Bitmask y )                       \ +  { return static_cast<Bitmask>( static_cast<boost::int_least32_t>(x)     \ +      & static_cast<boost::int_least32_t>(y)); }                          \ +                                                                          \ +  inline Bitmask operator^ (Bitmask x , Bitmask y )                       \ +  { return static_cast<Bitmask>( static_cast<boost::int_least32_t>(x)     \ +      ^ static_cast<boost::int_least32_t>(y)); }                          \ +                                                                          \ +  inline Bitmask operator~ (Bitmask x )                                   \ +  { return static_cast<Bitmask>(~static_cast<boost::int_least32_t>(x)); } \ +                                                                          \ +  inline Bitmask & operator&=(Bitmask & x , Bitmask y)                    \ +  { x = x & y ; return x ; }                                              \ +                                                                          \ +  inline Bitmask & operator|=(Bitmask & x , Bitmask y)                    \ +  { x = x | y ; return x ; }                                              \ +                                                                          \ +  inline Bitmask & operator^=(Bitmask & x , Bitmask y)                    \ +  { x = x ^ y ; return x ; }                                               + +#endif // BOOST_BITMASK_HPP + diff --git a/3rdParty/Boost/src/boost/detail/container_fwd.hpp b/3rdParty/Boost/src/boost/detail/container_fwd.hpp index 67c5a21..9a21252 100644 --- a/3rdParty/Boost/src/boost/detail/container_fwd.hpp +++ b/3rdParty/Boost/src/boost/detail/container_fwd.hpp @@ -68,7 +68,11 @@ namespace std      template <class charT> struct char_traits;  #endif -    template <class T> class complex; +    #if BOOST_CLANG +        template <class T> struct complex; +    #else +        template <class T> class complex; +    #endif  }  // gcc 3.4 and greater diff --git a/3rdParty/Boost/src/boost/detail/endian.hpp b/3rdParty/Boost/src/boost/detail/endian.hpp index 5f9b90e..98c870c 100644 --- a/3rdParty/Boost/src/boost/detail/endian.hpp +++ b/3rdParty/Boost/src/boost/detail/endian.hpp @@ -44,11 +44,13 @@  # endif  # define BOOST_BYTE_ORDER __BYTE_ORDER  #elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) || \ -    defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) +    defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) || \ +    defined(_STLP_BIG_ENDIAN) && !defined(_STLP_LITTLE_ENDIAN)  # define BOOST_BIG_ENDIAN  # define BOOST_BYTE_ORDER 4321  #elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN) || \ -    defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) +    defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) || \ +    defined(_STLP_LITTLE_ENDIAN) && !defined(_STLP_BIG_ENDIAN)  # define BOOST_LITTLE_ENDIAN  # define BOOST_BYTE_ORDER 1234  #elif defined(__sparc) || defined(__sparc__) \ diff --git a/3rdParty/Boost/src/boost/exception/diagnostic_information.hpp b/3rdParty/Boost/src/boost/exception/diagnostic_information.hpp index 1d6bc2c..2297676 100644 --- a/3rdParty/Boost/src/boost/exception/diagnostic_information.hpp +++ b/3rdParty/Boost/src/boost/exception/diagnostic_information.hpp @@ -137,7 +137,7 @@ boost                  }  #ifndef BOOST_NO_RTTI              tmp << std::string("Dynamic exception type: ") << -                units::detail::demangle((be?BOOST_EXCEPTION_DYNAMIC_TYPEID(*be):BOOST_EXCEPTION_DYNAMIC_TYPEID(*se)).type_.name()) << '\n'; +                units::detail::demangle((be?(BOOST_EXCEPTION_DYNAMIC_TYPEID(*be)):(BOOST_EXCEPTION_DYNAMIC_TYPEID(*se))).type_.name()) << '\n';  #endif              if( with_what && se )                  tmp << "std::exception::what: " << wh << '\n'; diff --git a/3rdParty/Boost/src/boost/filesystem.hpp b/3rdParty/Boost/src/boost/filesystem.hpp index f8b9353..d64d760 100644 --- a/3rdParty/Boost/src/boost/filesystem.hpp +++ b/3rdParty/Boost/src/boost/filesystem.hpp @@ -12,13 +12,16 @@  #ifndef BOOST_FILESYSTEM_FILESYSTEM_HPP  #define BOOST_FILESYSTEM_FILESYSTEM_HPP +#include <boost/config.hpp>  // for <boost/config/user.hpp>, in case +                             //  BOOST_FILESYSTEM_VERSION defined there +  # if defined(BOOST_FILESYSTEM_VERSION) \    && BOOST_FILESYSTEM_VERSION != 2  && BOOST_FILESYSTEM_VERSION != 3  #   error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3  # endif  # if !defined(BOOST_FILESYSTEM_VERSION) -#   define BOOST_FILESYSTEM_VERSION 2 +#   define BOOST_FILESYSTEM_VERSION 3  # endif  #if BOOST_FILESYSTEM_VERSION == 2 diff --git a/3rdParty/Boost/src/boost/filesystem/config.hpp b/3rdParty/Boost/src/boost/filesystem/config.hpp index 9d12bce..c813bf5 100644 --- a/3rdParty/Boost/src/boost/filesystem/config.hpp +++ b/3rdParty/Boost/src/boost/filesystem/config.hpp @@ -12,13 +12,16 @@  #ifndef BOOST_FILESYSTEM_CONFIGX_HPP  #define BOOST_FILESYSTEM_CONFIGX_HPP +#include <boost/config.hpp>  // for <boost/config/user.hpp>, in case +                             //  BOOST_FILESYSTEM_VERSION defined there +  # if defined(BOOST_FILESYSTEM_VERSION) \    && BOOST_FILESYSTEM_VERSION != 2  && BOOST_FILESYSTEM_VERSION != 3  #   error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3  # endif  # if !defined(BOOST_FILESYSTEM_VERSION) -#   define BOOST_FILESYSTEM_VERSION 2 +#   define BOOST_FILESYSTEM_VERSION 3  # endif  #if BOOST_FILESYSTEM_VERSION == 2 diff --git a/3rdParty/Boost/src/boost/filesystem/exception.hpp b/3rdParty/Boost/src/boost/filesystem/exception.hpp index cced257..6ba8466 100644 --- a/3rdParty/Boost/src/boost/filesystem/exception.hpp +++ b/3rdParty/Boost/src/boost/filesystem/exception.hpp @@ -12,13 +12,16 @@  #ifndef BOOST_FILESYSTEM_EXCEPTIONX_HPP  #define BOOST_FILESYSTEM_EXCEPTIONX_HPP +#include <boost/config.hpp>  // for <boost/config/user.hpp>, in case +                             //  BOOST_FILESYSTEM_VERSION defined there +  # if defined(BOOST_FILESYSTEM_VERSION) \    && BOOST_FILESYSTEM_VERSION != 2  && BOOST_FILESYSTEM_VERSION != 3  #   error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3  # endif  # if !defined(BOOST_FILESYSTEM_VERSION) -#   define BOOST_FILESYSTEM_VERSION 2 +#   define BOOST_FILESYSTEM_VERSION 3  # endif  #if BOOST_FILESYSTEM_VERSION == 2 diff --git a/3rdParty/Boost/src/boost/filesystem/fstream.hpp b/3rdParty/Boost/src/boost/filesystem/fstream.hpp index ae44cd9..e159e58 100644 --- a/3rdParty/Boost/src/boost/filesystem/fstream.hpp +++ b/3rdParty/Boost/src/boost/filesystem/fstream.hpp @@ -12,13 +12,16 @@  #ifndef BOOST_FILESYSTEM_FSTREAMX_HPP  #define BOOST_FILESYSTEM_FSTREAMX_HPP +#include <boost/config.hpp>  // for <boost/config/user.hpp>, in case +                             //  BOOST_FILESYSTEM_VERSION defined there +  # if defined(BOOST_FILESYSTEM_VERSION) \    && BOOST_FILESYSTEM_VERSION != 2  && BOOST_FILESYSTEM_VERSION != 3  #   error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3  # endif  # if !defined(BOOST_FILESYSTEM_VERSION) -#   define BOOST_FILESYSTEM_VERSION 2 +#   define BOOST_FILESYSTEM_VERSION 3  # endif  #if BOOST_FILESYSTEM_VERSION == 2 diff --git a/3rdParty/Boost/src/boost/filesystem/operations.hpp b/3rdParty/Boost/src/boost/filesystem/operations.hpp index 7dc94e9..db7b123 100644 --- a/3rdParty/Boost/src/boost/filesystem/operations.hpp +++ b/3rdParty/Boost/src/boost/filesystem/operations.hpp @@ -12,13 +12,16 @@  #ifndef BOOST_FILESYSTEM_OPERATIONSX_HPP  #define BOOST_FILESYSTEM_OPERATIONSX_HPP +#include <boost/config.hpp>  // for <boost/config/user.hpp>, in case +                             //  BOOST_FILESYSTEM_VERSION defined there +  # if defined(BOOST_FILESYSTEM_VERSION) \    && BOOST_FILESYSTEM_VERSION != 2  && BOOST_FILESYSTEM_VERSION != 3  #   error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3  # endif  # if !defined(BOOST_FILESYSTEM_VERSION) -#   define BOOST_FILESYSTEM_VERSION 2 +#   define BOOST_FILESYSTEM_VERSION 3  # endif  #if BOOST_FILESYSTEM_VERSION == 2 diff --git a/3rdParty/Boost/src/boost/filesystem/path.hpp b/3rdParty/Boost/src/boost/filesystem/path.hpp index bf12174..3bed7d2 100644 --- a/3rdParty/Boost/src/boost/filesystem/path.hpp +++ b/3rdParty/Boost/src/boost/filesystem/path.hpp @@ -12,13 +12,16 @@  #ifndef BOOST_FILESYSTEM_PATHX_HPP  #define BOOST_FILESYSTEM_PATHX_HPP +#include <boost/config.hpp>  // for <boost/config/user.hpp>, in case +                             //  BOOST_FILESYSTEM_VERSION defined there +  # if defined(BOOST_FILESYSTEM_VERSION) \    && BOOST_FILESYSTEM_VERSION != 2  && BOOST_FILESYSTEM_VERSION != 3  #   error BOOST_FILESYSTEM_VERSION defined, but not as 2 or 3  # endif  # if !defined(BOOST_FILESYSTEM_VERSION) -#   define BOOST_FILESYSTEM_VERSION 2 +#   define BOOST_FILESYSTEM_VERSION 3  # endif  #if BOOST_FILESYSTEM_VERSION == 2 diff --git a/3rdParty/Boost/src/boost/filesystem/v2/config.hpp b/3rdParty/Boost/src/boost/filesystem/v2/config.hpp index 62656ef..7116de5 100644 --- a/3rdParty/Boost/src/boost/filesystem/v2/config.hpp +++ b/3rdParty/Boost/src/boost/filesystem/v2/config.hpp @@ -51,6 +51,16 @@  #   endif  # endif +//  throw an exception  ----------------------------------------------------------------// +// +//  Exceptions were originally thrown via boost::throw_exception(). +//  As throw_exception() became more complex, it caused user error reporting +//  to be harder to interpret, since the exception reported became much more complex. +//  The immediate fix was to throw directly, wrapped in a macro to make any later change +//  easier. + +#define BOOST_FILESYSTEM_THROW(EX) throw EX +  //  narrow support only for badly broken compilers or libraries  -------------//  # if defined(BOOST_NO_STD_WSTRING) || defined(BOOST_NO_SFINAE) || defined(BOOST_NO_STD_LOCALE) || BOOST_WORKAROUND(__BORLANDC__, <0x610) diff --git a/3rdParty/Boost/src/boost/filesystem/v2/convenience.hpp b/3rdParty/Boost/src/boost/filesystem/v2/convenience.hpp index 4695a01..30b6ade 100644 --- a/3rdParty/Boost/src/boost/filesystem/v2/convenience.hpp +++ b/3rdParty/Boost/src/boost/filesystem/v2/convenience.hpp @@ -13,7 +13,8 @@  #ifndef BOOST_FILESYSTEM2_CONVENIENCE_HPP  #define BOOST_FILESYSTEM2_CONVENIENCE_HPP -#include <boost/filesystem/operations.hpp> +#include <boost/filesystem/v2/config.hpp> +#include <boost/filesystem/v2/operations.hpp>  #include <boost/system/error_code.hpp>  #include <vector>  #include <stack> @@ -85,11 +86,11 @@ namespace boost  #   if !defined(_STLPORT_VERSION)        return ph.parent_path() / (basename(ph) + new_extension);   #   else -	    typedef BOOST_FS_TYPENAME Path::string_type string_type;  -	    string_type filename = basename(ph) + new_extension;  -	    return ph.parent_path() / filename; +      typedef BOOST_FS_TYPENAME Path::string_type string_type;  +      string_type filename = basename(ph) + new_extension;  +      return ph.parent_path() / filename;  #   endif -	  }  +    }   # endif  # ifndef BOOST_FILESYSTEM2_NARROW_ONLY diff --git a/3rdParty/Boost/src/boost/filesystem/v2/fstream.hpp b/3rdParty/Boost/src/boost/filesystem/v2/fstream.hpp index bdcd485..887d59d 100644 --- a/3rdParty/Boost/src/boost/filesystem/v2/fstream.hpp +++ b/3rdParty/Boost/src/boost/filesystem/v2/fstream.hpp @@ -12,6 +12,7 @@  #ifndef BOOST_FILESYSTEM2_FSTREAM_HPP  #define BOOST_FILESYSTEM2_FSTREAM_HPP +#include <boost/filesystem/v2/config.hpp>  #include <boost/filesystem/v2/operations.hpp> // for 8.3 hack (see below)  #include <boost/utility/enable_if.hpp>  #include <boost/detail/workaround.hpp> diff --git a/3rdParty/Boost/src/boost/filesystem/v2/operations.hpp b/3rdParty/Boost/src/boost/filesystem/v2/operations.hpp index c60046f..57c406d 100644 --- a/3rdParty/Boost/src/boost/filesystem/v2/operations.hpp +++ b/3rdParty/Boost/src/boost/filesystem/v2/operations.hpp @@ -14,6 +14,7 @@  #ifndef BOOST_FILESYSTEM2_OPERATIONS_HPP  #define BOOST_FILESYSTEM2_OPERATIONS_HPP +#include <boost/filesystem/v2/config.hpp>  #include <boost/filesystem/v2/path.hpp>  #include <boost/detail/scoped_enum_emulation.hpp> @@ -258,7 +259,7 @@ namespace boost        system::error_code ec;        file_status result( detail::status_api( ph.external_file_string(), ec ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(          "boost::filesystem::status", ph, ec ) );        return result;      } @@ -277,7 +278,7 @@ namespace boost        system::error_code ec;        file_status result( symlink_status( ph, ec ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(          "boost::filesystem::symlink_status", ph, ec ) );        return result;      } @@ -292,7 +293,7 @@ namespace boost        system::error_code ec;        file_status result( detail::status_api( ph.external_file_string(), ec ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::exists", ph, ec ) );        return exists( result );      } @@ -302,7 +303,7 @@ namespace boost        system::error_code ec;        file_status result( detail::status_api( ph.external_file_string(), ec ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::is_directory", ph, ec ) );        return is_directory( result );      } @@ -312,7 +313,7 @@ namespace boost        system::error_code ec;        file_status result( detail::status_api( ph.external_file_string(), ec ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::is_regular_file", ph, ec ) );        return is_regular_file( result );      } @@ -323,7 +324,7 @@ namespace boost        system::error_code ec;        file_status result( detail::status_api( ph.external_file_string(), ec ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::is_regular", ph, ec ) );        return is_regular( result );      } @@ -334,7 +335,7 @@ namespace boost        system::error_code ec;        file_status result( detail::status_api( ph.external_file_string(), ec ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::is_other", ph, ec ) );        return is_other( result );      } @@ -350,7 +351,7 @@ namespace boost        system::error_code ec;        file_status result( detail::symlink_status_api( ph.external_file_string(), ec ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::is_symlink", ph, ec ) );        return is_symlink( result );  #   endif @@ -369,7 +370,7 @@ namespace boost        detail::query_pair result(          detail::is_empty_api( ph.external_file_string() ) );        if ( result.first ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::is_empty", ph, result.first ) );        return result.second;      } @@ -379,7 +380,7 @@ namespace boost        detail::query_pair result( detail::equivalent_api(          ph1.external_file_string(), ph2.external_file_string() ) );        if ( result.first ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::equivalent", ph1, ph2, result.first ) );        return result.second;      } @@ -389,7 +390,7 @@ namespace boost        detail::uintmax_pair result          ( detail::file_size_api( ph.external_file_string() ) );        if ( result.first ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::file_size", ph, result.first ) );        return result.second;      } @@ -399,7 +400,7 @@ namespace boost        detail::space_pair result          ( detail::space_api( ph.external_file_string() ) );        if ( result.first ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::space", ph, result.first ) );        return result.second;      } @@ -409,7 +410,7 @@ namespace boost        detail::time_pair result          ( detail::last_write_time_api( ph.external_file_string() ) );        if ( result.first ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::last_write_time", ph, result.first ) );        return result.second;      } @@ -422,7 +423,7 @@ namespace boost        detail::query_pair result(          detail::create_directory_api( dir_ph.external_directory_string() ) );        if ( result.first ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::create_directory",            dir_ph, result.first ) );        return result.second; @@ -437,7 +438,7 @@ namespace boost            to_ph.external_file_string(),            from_ph.external_file_string() ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::create_hard_link",            to_ph, from_ph, ec ) );      } @@ -461,7 +462,7 @@ namespace boost            to_ph.external_file_string(),            from_ph.external_file_string() ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::create_symlink",            to_ph, from_ph, ec ) );      } @@ -481,7 +482,7 @@ namespace boost        system::error_code ec;        file_status f = symlink_status( ph, ec );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::remove", ph, ec ) );        return detail::remove_aux( ph, f );      } @@ -491,7 +492,7 @@ namespace boost        system::error_code ec;        file_status f = symlink_status( ph, ec );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::remove_all", ph, ec ) );        return exists( f ) ? detail::remove_all_aux( ph, f ) : 0;      } @@ -502,7 +503,7 @@ namespace boost          from_path.external_directory_string(),          to_path.external_directory_string() ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::rename",            from_path, to_path, ec ) );      } @@ -518,7 +519,7 @@ namespace boost          from_path.external_directory_string(),          to_path.external_directory_string(), option == copy_option::fail_if_exists ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::copy_file",            from_path, to_path, ec ) );      } @@ -529,7 +530,7 @@ namespace boost        typename Path::external_string_type ph;        system::error_code ec( detail::get_current_path_api( ph ) );        if ( ec ) -          boost::throw_exception( basic_filesystem_error<Path>( +          BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(              "boost::filesystem::current_path", ec ) );        return Path( Path::traits_type::to_internal( ph ) );      } @@ -539,7 +540,7 @@ namespace boost        system::error_code ec( detail::set_current_path_api(          ph.external_directory_string() ) );        if ( ec ) -          boost::throw_exception( basic_filesystem_error<Path>( +          BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(              "boost::filesystem::current_path", ph, ec ) );      } @@ -567,7 +568,7 @@ namespace boost        system::error_code ec( detail::get_full_path_name_api( ph.external_file_string(),                sys_ph ) );        if ( ec ) -          boost::throw_exception( basic_filesystem_error<Path>( +          BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(              "boost::filesystem::system_complete", ph, ec ) );        return Path( Path::traits_type::to_internal( sys_ph ) );  # else @@ -606,7 +607,7 @@ namespace boost        system::error_code ec( detail::last_write_time_api( ph.external_file_string(),            new_time ) );        if ( ec ) -        boost::throw_exception( basic_filesystem_error<Path>( +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(            "boost::filesystem::last_write_time", ph, ec ) );      } @@ -782,7 +783,7 @@ namespace boost          {            system::error_code ec = remove_api( ph.external_file_string() );            if ( ec ) -            boost::throw_exception( basic_filesystem_error<Path>( +            BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(                "boost::filesystem::remove", ph, ec ) );            return true;          } @@ -803,7 +804,7 @@ namespace boost              boost::system::error_code ec;              boost::filesystem2::file_status fn = boost::filesystem2::symlink_status( itr->path(), ec );              if ( ec ) -              boost::throw_exception( basic_filesystem_error<Path>(  +              BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(                   "boost::filesystem:remove_all", ph, ec ) );              count += remove_all_aux( itr->path(), fn );            } @@ -980,7 +981,7 @@ namespace boost        system::error_code ec( m_init(dir_path) );        if ( ec )        { -        boost::throw_exception( basic_filesystem_error<Path>(  +        BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(             "boost::filesystem::basic_directory_iterator constructor",            dir_path, ec ) );        } @@ -1013,7 +1014,7 @@ namespace boost            name, fs, symlink_fs );          if ( ec )          { -          boost::throw_exception( basic_filesystem_error<Path>(   +          BOOST_FILESYSTEM_THROW( basic_filesystem_error<Path>(                "boost::filesystem::basic_directory_iterator increment",              m_imp->m_directory_entry.path().parent_path(), ec ) );          } diff --git a/3rdParty/Boost/src/boost/filesystem/v2/path.hpp b/3rdParty/Boost/src/boost/filesystem/v2/path.hpp index 16d67ca..615b89c 100644 --- a/3rdParty/Boost/src/boost/filesystem/v2/path.hpp +++ b/3rdParty/Boost/src/boost/filesystem/v2/path.hpp @@ -20,16 +20,15 @@  #include <boost/filesystem/v2/config.hpp>  #include <boost/system/system_error.hpp>  #include <boost/iterator/iterator_facade.hpp> -#include <boost/throw_exception.hpp>  #include <boost/shared_ptr.hpp>  #include <boost/type_traits/is_same.hpp>  #include <boost/static_assert.hpp> +#include <boost/assert.hpp>  #include <string>  #include <algorithm> // for lexicographical_compare  #include <iosfwd>    // needed by basic_path inserter and extractor  #include <stdexcept> -#include <cassert>  # ifndef BOOST_FILESYSTEM2_NARROW_ONLY  #   include <locale> @@ -916,7 +915,7 @@ namespace boost            boost::BOOST_FILESYSTEM2_NAMESPACE::basic_path<String, Traits>              path_type; -        assert( !str.empty() && str[pos] == slash<path_type>::value +        BOOST_ASSERT( !str.empty() && str[pos] == slash<path_type>::value            && "precondition violation" );          // subsequent logic expects pos to be for leftmost slash of a set @@ -1380,7 +1379,7 @@ namespace boost          typedef typename Path::string_type string_type;          typedef typename Path::traits_type traits_type; -        assert( itr.m_pos < itr.m_path_ptr->m_path.size() && "basic_path::iterator increment past end()" ); +        BOOST_ASSERT( itr.m_pos < itr.m_path_ptr->m_path.size() && "basic_path::iterator increment past end()" );          bool was_net( itr.m_name.size() > 2            && itr.m_name[0] == slash<Path>::value @@ -1439,7 +1438,7 @@ namespace boost        template<class Path>        void iterator_helper<Path>::do_decrement( iterator & itr )        {                                                                                 -        assert( itr.m_pos && "basic_path::iterator decrement past begin()"  ); +        BOOST_ASSERT( itr.m_pos && "basic_path::iterator decrement past begin()"  );          typedef typename Path::string_type string_type;          typedef typename Path::traits_type traits_type; diff --git a/3rdParty/Boost/src/boost/filesystem/v3/fstream.hpp b/3rdParty/Boost/src/boost/filesystem/v3/fstream.hpp index 235aa79..60a2a3b 100644 --- a/3rdParty/Boost/src/boost/filesystem/v3/fstream.hpp +++ b/3rdParty/Boost/src/boost/filesystem/v3/fstream.hpp @@ -27,7 +27,8 @@  //  on Windows, except for standard libaries known to have wchar_t overloads for  //  file stream I/O, use path::string() to get a narrow character c_str()  #if defined(BOOST_WINDOWS_API) \ -  && !(defined(_CPPLIB_VER) && _CPPLIB_VER >= 405)  // not (Dinkumware with overloads) +  && (!defined(_CPPLIB_VER) || _CPPLIB_VER < 405 || defined(_STLPORT_VERSION)) +  // !Dinkumware || early Dinkumware || STLPort masquerading as Dinkumware  # define BOOST_FILESYSTEM_C_STR string().c_str()  // use narrow, since wide not available  #else  // use the native c_str, which will be narrow on POSIX, wide on Windows  # define BOOST_FILESYSTEM_C_STR c_str() diff --git a/3rdParty/Boost/src/boost/filesystem/v3/operations.hpp b/3rdParty/Boost/src/boost/filesystem/v3/operations.hpp index cf47c56..7d1608d 100644 --- a/3rdParty/Boost/src/boost/filesystem/v3/operations.hpp +++ b/3rdParty/Boost/src/boost/filesystem/v3/operations.hpp @@ -25,6 +25,7 @@  #include <boost/filesystem/v3/path.hpp>  #include <boost/detail/scoped_enum_emulation.hpp> +#include <boost/detail/bitmask.hpp>  #include <boost/system/error_code.hpp>  #include <boost/system/system_error.hpp>  #include <boost/shared_ptr.hpp> @@ -75,8 +76,8 @@ namespace boost      fifo_file,      socket_file,      reparse_file,  // Windows: FILE_ATTRIBUTE_REPARSE_POINT that is not a symlink -    type_unknown, // file does exist, but isn't one of the above types or -                  // we don't have strong enough permission to find its type +    type_unknown,  // file does exist, but isn't one of the above types or +                   // we don't have strong enough permission to find its type      _detail_directory_symlink  // internal use only; never exposed to users    }; @@ -84,7 +85,8 @@ namespace boost    class BOOST_FILESYSTEM_DECL file_status    {    public: -    explicit file_status(file_type v = status_error) : m_value(v) {} +    file_status() : m_value(status_error) {} +    explicit file_status(file_type v) : m_value(v) {}      void type(file_type v)    { m_value = v; }      file_type type() const    { return m_value; } @@ -122,7 +124,7 @@ namespace boost    };    BOOST_SCOPED_ENUM_START(copy_option) -    {fail_if_exists, overwrite_if_exists}; +    {none, fail_if_exists = none, overwrite_if_exists};    BOOST_SCOPED_ENUM_END  //--------------------------------------------------------------------------------------// @@ -191,6 +193,8 @@ namespace boost      BOOST_FILESYSTEM_DECL      path system_complete(const path& p, system::error_code* ec=0);      BOOST_FILESYSTEM_DECL +    path temp_directory_path(system::error_code* ec=0); +    BOOST_FILESYSTEM_DECL      path unique_path(const path& p, system::error_code* ec=0);    }  // namespace detail @@ -258,9 +262,7 @@ namespace boost    //  forward declarations    path current_path();  // fwd declaration -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED    path initial_path(); -# endif    BOOST_FILESYSTEM_DECL    path absolute(const path& p, const path& base=current_path()); @@ -331,17 +333,17 @@ namespace boost    void create_directory_symlink(const path& to, const path& from, system::error_code& ec)                                         {detail::create_directory_symlink(to, from, &ec);}    inline -  void create_hard_link(const path& to, const path& from) {detail::create_hard_link(to, from);} +  void create_hard_link(const path& to, const path& new_hard_link) {detail::create_hard_link(to, new_hard_link);}    inline -  void create_hard_link(const path& to, const path& from, system::error_code& ec) -                                       {detail::create_hard_link(to, from, &ec);} +  void create_hard_link(const path& to, const path& new_hard_link, system::error_code& ec) +                                       {detail::create_hard_link(to, new_hard_link, &ec);}    inline -  void create_symlink(const path& to, const path& from) {detail::create_symlink(to, from);} +  void create_symlink(const path& to, const path& new_symlink) {detail::create_symlink(to, new_symlink);}    inline -  void create_symlink(const path& to, const path& from, system::error_code& ec) -                                       {detail::create_symlink(to, from, &ec);} +  void create_symlink(const path& to, const path& new_symlink, system::error_code& ec) +                                       {detail::create_symlink(to, new_symlink, &ec);}    inline    path current_path()                  {return detail::current_path();} @@ -372,7 +374,6 @@ namespace boost    inline    boost::uintmax_t hard_link_count(const path& p, system::error_code& ec)                                         {return detail::hard_link_count(p, &ec);} -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED    inline    path initial_path()                  {return detail::initial_path();} @@ -383,7 +384,6 @@ namespace boost    path initial_path() {return initial_path();}    template <class Path>    path initial_path(system::error_code& ec) {return detail::initial_path(&ec);} -# endif    inline    std::time_t last_write_time(const path& p) {return detail::last_write_time(p);} @@ -446,6 +446,12 @@ namespace boost    path system_complete(const path& p, system::error_code& ec)                                         {return detail::system_complete(p, &ec);}    inline +  path temp_directory_path()           {return detail::temp_directory_path();} + +  inline +  path temp_directory_path(system::error_code& ec)  +                                       {return detail::temp_directory_path(&ec);} +  inline    path unique_path(const path& p="%%%%-%%%%-%%%%-%%%%")                                         { return detail::unique_path(p); }    inline @@ -633,6 +639,17 @@ namespace detail  //                                                                                      //  //--------------------------------------------------------------------------------------// +  BOOST_SCOPED_ENUM_START(symlink_option) +  { +    none, +    no_recurse = none,         // don't follow directory symlinks (default behavior) +    recurse,                   // follow directory symlinks +    _detail_no_push = recurse << 1  // internal use only +  }; +  BOOST_SCOPED_ENUM_END + +  BOOST_BITMASK(BOOST_SCOPED_ENUM(symlink_option)) +    namespace detail    {      struct recur_dir_itr_imp @@ -640,9 +657,9 @@ namespace detail        typedef directory_iterator element_type;        std::stack< element_type, std::vector< element_type > > m_stack;        int  m_level; -      bool m_no_push_request; +      BOOST_SCOPED_ENUM(symlink_option) m_options; -      recur_dir_itr_imp() : m_level(0), m_no_push_request(false) {} +      recur_dir_itr_imp() : m_level(0), m_options(symlink_option::none) {}        void increment(system::error_code* ec);  // ec == 0 means throw on error @@ -658,9 +675,11 @@ namespace detail      void recur_dir_itr_imp::increment(system::error_code* ec)      // ec == 0 means throw on error      { -      if (m_no_push_request) -        { m_no_push_request = false; } -      else if (is_directory(m_stack.top()->status())) +      if ((m_options & symlink_option::_detail_no_push) == symlink_option::_detail_no_push) +        m_options &= ~symlink_option::_detail_no_push; +      else if (is_directory(m_stack.top()->status()) +        && (!is_symlink(m_stack.top()->symlink_status()) +            || (m_options & symlink_option::recurse) == symlink_option::recurse))        {          if (ec == 0)            m_stack.push(directory_iterator(m_stack.top()->path())); @@ -714,27 +733,41 @@ namespace detail      recursive_directory_iterator(){}  // creates the "end" iterator -    explicit recursive_directory_iterator(const path& dir_path) +    explicit recursive_directory_iterator(const path& dir_path, +      BOOST_SCOPED_ENUM(symlink_option) opt = symlink_option::none)        : m_imp(new detail::recur_dir_itr_imp)      { +      m_imp->m_options = opt;        m_imp->m_stack.push(directory_iterator(dir_path));        if (m_imp->m_stack.top() == directory_iterator())          { m_imp.reset (); }      }      recursive_directory_iterator(const path& dir_path, +      BOOST_SCOPED_ENUM(symlink_option) opt, +      system::error_code & ec) +    : m_imp(new detail::recur_dir_itr_imp) +    { +      m_imp->m_options = opt; +      m_imp->m_stack.push(directory_iterator(dir_path, ec)); +      if (m_imp->m_stack.top() == directory_iterator()) +        { m_imp.reset (); } +    } + +    recursive_directory_iterator(const path& dir_path,        system::error_code & ec)      : m_imp(new detail::recur_dir_itr_imp)      { +      m_imp->m_options = symlink_option::none;        m_imp->m_stack.push(directory_iterator(dir_path, ec));        if (m_imp->m_stack.top() == directory_iterator())          { m_imp.reset (); }      } -    recursive_directory_iterator& increment(system::error_code* ec) +    recursive_directory_iterator& increment(system::error_code& ec)      {        BOOST_ASSERT(m_imp.get() && "increment() on end recursive_directory_iterator"); -      m_imp->increment(ec); +      m_imp->increment(&ec);        return *this;      } @@ -744,12 +777,17 @@ namespace detail        return m_imp->m_level;      } -    bool no_push_request() const +    bool no_push_pending() const      { -      BOOST_ASSERT(m_imp.get() && "no_push_request() on end recursive_directory_iterator"); -      return m_imp->m_no_push_request; +      BOOST_ASSERT(m_imp.get() && "is_no_push_requested() on end recursive_directory_iterator"); +      return (m_imp->m_options & symlink_option::_detail_no_push) +        == symlink_option::_detail_no_push;      } +#   ifndef BOOST_FILESYSTEM_NO_DEPRECATED +    bool no_push_request() const { return no_push_pending(); } +#   endif +      void pop()      {         BOOST_ASSERT(m_imp.get() && "pop() on end recursive_directory_iterator"); @@ -757,10 +795,13 @@ namespace detail        if (m_imp->m_stack.empty()) m_imp.reset(); // done, so make end iterator      } -    void no_push() +    void no_push(bool value=true)      {        BOOST_ASSERT(m_imp.get() && "no_push() on end recursive_directory_iterator"); -      m_imp->m_no_push_request = true; +      if (value) +        m_imp->m_options |= symlink_option::_detail_no_push; +      else +        m_imp->m_options &= ~symlink_option::_detail_no_push;      }      file_status status() const @@ -799,7 +840,8 @@ namespace detail      {         BOOST_ASSERT(m_imp.get() && "increment of end recursive_directory_iterator");        m_imp->increment(0); -      if (m_imp->m_stack.empty()) m_imp.reset(); // done, so make end iterator +      if (m_imp->m_stack.empty()) +        m_imp.reset(); // done, so make end iterator      }      bool equal(const recursive_directory_iterator& rhs) const @@ -963,6 +1005,7 @@ namespace boost      using filesystem3::file_type;      using filesystem3::filesystem_error;      using filesystem3::hard_link_count; +    using filesystem3::initial_path;      using filesystem3::is_directory;      using filesystem3::is_directory;      using filesystem3::is_empty; @@ -973,6 +1016,7 @@ namespace boost      using filesystem3::read_symlink;      using filesystem3::recursive_directory_iterator;      using filesystem3::regular_file; +    using filesystem3::reparse_file;      using filesystem3::remove;      using filesystem3::remove_all;      using filesystem3::rename; @@ -984,12 +1028,13 @@ namespace boost      using filesystem3::status_error;      using filesystem3::status_known;      using filesystem3::symlink_file; +    using filesystem3::symlink_option;      using filesystem3::symlink_status;      using filesystem3::system_complete; +    using filesystem3::temp_directory_path;      using filesystem3::type_unknown;      using filesystem3::unique_path;  # ifndef BOOST_FILESYSTEM_NO_DEPRECATED -    using filesystem3::initial_path;      using filesystem3::is_regular;      using filesystem3::status_unknown;      using filesystem3::symbolic_link_exists; diff --git a/3rdParty/Boost/src/boost/filesystem/v3/path.hpp b/3rdParty/Boost/src/boost/filesystem/v3/path.hpp index 1cd1522..f81b631 100644 --- a/3rdParty/Boost/src/boost/filesystem/v3/path.hpp +++ b/3rdParty/Boost/src/boost/filesystem/v3/path.hpp @@ -452,7 +452,6 @@ namespace filesystem3      void m_erase_redundant_separator(string_type::size_type sep_pos);      string_type::size_type m_parent_path_end() const; -    void m_portable();      path& m_normalize(); @@ -479,7 +478,7 @@ namespace filesystem3    class path::iterator      : public boost::iterator_facade< -      iterator, +      path::iterator,        path const,        boost::bidirectional_traversal_tag >    { diff --git a/3rdParty/Boost/src/boost/functional/hash/detail/hash_float_generic.hpp b/3rdParty/Boost/src/boost/functional/hash/detail/hash_float_generic.hpp index fdbf53f..1278c2f 100644 --- a/3rdParty/Boost/src/boost/functional/hash/detail/hash_float_generic.hpp +++ b/3rdParty/Boost/src/boost/functional/hash/detail/hash_float_generic.hpp @@ -53,7 +53,7 @@ namespace boost              v = ldexp(v, limits<std::size_t>::digits);              std::size_t seed = static_cast<std::size_t>(v); -            v -= seed; +            v -= static_cast<T>(seed);              // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1;              std::size_t const length @@ -66,7 +66,7 @@ namespace boost              {                  v = ldexp(v, limits<std::size_t>::digits);                  std::size_t part = static_cast<std::size_t>(v); -                v -= part; +                v -= static_cast<T>(part);                  hash_float_combine(seed, part);              } diff --git a/3rdParty/Boost/src/boost/functional/hash/hash.hpp b/3rdParty/Boost/src/boost/functional/hash/hash.hpp index 0eedf7f..51ec860 100644 --- a/3rdParty/Boost/src/boost/functional/hash/hash.hpp +++ b/3rdParty/Boost/src/boost/functional/hash/hash.hpp @@ -24,6 +24,10 @@  #include <boost/type_traits/is_pointer.hpp>  #endif +#if !defined(BOOST_NO_0X_HDR_TYPEINDEX) +#include <typeindex> +#endif +  #if BOOST_WORKAROUND(__GNUC__, < 3) \      && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)  #define BOOST_HASH_CHAR_TRAITS string_char_traits @@ -87,6 +91,10 @@ namespace boost      std::size_t hash_value(          std::basic_string<Ch, std::BOOST_HASH_CHAR_TRAITS<Ch>, A> const&); +#if !defined(BOOST_NO_0X_HDR_TYPEINDEX) +    std::size_t hash_value(std::type_index); +#endif +      // Implementation      namespace hash_detail @@ -210,8 +218,8 @@ namespace boost  #endif      {  #if defined(__VMS) && __INITIAL_POINTER_SIZE == 64 -	// for some reason ptrdiff_t on OpenVMS compiler with -	// 64 bit is not 64 bit !!! +    // for some reason ptrdiff_t on OpenVMS compiler with +    // 64 bit is not 64 bit !!!          std::size_t x = static_cast<std::size_t>(             reinterpret_cast<long long int>(v));  #else @@ -331,6 +339,13 @@ namespace boost          return boost::hash_detail::float_hash_value(v);      } +#if !defined(BOOST_NO_0X_HDR_TYPEINDEX) +    inline std::size_t hash_value(std::type_index v) +    { +        return v.hash_code(); +    } +#endif +      //      // boost::hash      // @@ -435,6 +450,10 @@ namespace boost      BOOST_HASH_SPECIALIZE(boost::ulong_long_type)  #endif +#if !defined(BOOST_NO_0X_HDR_TYPEINDEX) +    BOOST_HASH_SPECIALIZE(std::type_index) +#endif +  #undef BOOST_HASH_SPECIALIZE  #undef BOOST_HASH_SPECIALIZE_REF diff --git a/3rdParty/Boost/src/boost/io/detail/quoted_manip.hpp b/3rdParty/Boost/src/boost/io/detail/quoted_manip.hpp index 13cfc35..502f422 100644 --- a/3rdParty/Boost/src/boost/io/detail/quoted_manip.hpp +++ b/3rdParty/Boost/src/boost/io/detail/quoted_manip.hpp @@ -125,15 +125,15 @@ namespace boost        std::basic_istream<Char, Traits>& operator>>(std::basic_istream<Char, Traits>& is,           const quoted_proxy<std::basic_string<Char, Traits, Alloc>&, Char>& proxy)        { +        proxy.string.clear();          Char c;          is >> c;          if (c != proxy.delim)          { -          proxy.string = c; +          is.unget();            is >> proxy.string;            return is;          } -        proxy.string.clear();          {            boost::io::ios_flags_saver ifs(is);            is >> std::noskipws; diff --git a/3rdParty/Boost/src/boost/iterator/iterator_facade.hpp b/3rdParty/Boost/src/boost/iterator/iterator_facade.hpp index 967d60f..5ee73b5 100644 --- a/3rdParty/Boost/src/boost/iterator/iterator_facade.hpp +++ b/3rdParty/Boost/src/boost/iterator/iterator_facade.hpp @@ -105,6 +105,7 @@ namespace boost          typedef typename remove_const<ValueParam>::type value_type; +        // Not the real associated pointer type          typedef typename mpl::eval_if<              boost::detail::iterator_writability_disabled<ValueParam,Reference>            , add_pointer<const value_type> @@ -323,7 +324,7 @@ namespace boost          static type make(Reference x)          { -            return implicit_cast<type>(&x); +            return boost::implicit_cast<type>(&x);          }      }; @@ -617,6 +618,12 @@ namespace boost           Value, CategoryOrTraversal, Reference, Difference        > associated_types; +      typedef boost::detail::operator_arrow_result< +        typename associated_types::value_type +        , Reference +        , typename associated_types::pointer +      > pointer_; +     protected:        // For use by derived classes        typedef iterator_facade<Derived,Value,CategoryOrTraversal,Reference,Difference> iterator_facade_; @@ -626,7 +633,9 @@ namespace boost        typedef typename associated_types::value_type value_type;        typedef Reference reference;        typedef Difference difference_type; -      typedef typename associated_types::pointer pointer; + +      typedef typename pointer_::type pointer; +        typedef typename associated_types::iterator_category iterator_category;        reference operator*() const @@ -634,18 +643,9 @@ namespace boost            return iterator_core_access::dereference(this->derived());        } -      typename boost::detail::operator_arrow_result< -          value_type -        , reference -        , pointer -      >::type -      operator->() const +      pointer operator->() const        { -          return boost::detail::operator_arrow_result< -              value_type -            , reference -            , pointer -          >::make(*this->derived()); +          return pointer_::make(*this->derived());        }        typename boost::detail::operator_brackets_result<Derived,Value,reference>::type diff --git a/3rdParty/Boost/src/boost/mpl/aux_/config/operators.hpp b/3rdParty/Boost/src/boost/mpl/aux_/config/operators.hpp deleted file mode 100644 index 2a38a3d..0000000 --- a/3rdParty/Boost/src/boost/mpl/aux_/config/operators.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_OPERATORS_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_OPERATORS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 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: operators.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/aux_/config/gcc.hpp> -#include <boost/mpl/aux_/config/msvc.hpp> -#include <boost/mpl/aux_/config/workaround.hpp> - -#if !defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) \ -    && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ -        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ -        || BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \ -        || BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, <= 0x0295) \ -        || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \ -        ) - -#   define BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_OPERATORS_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/aux_/has_key_impl.hpp b/3rdParty/Boost/src/boost/mpl/aux_/has_key_impl.hpp deleted file mode 100644 index 3a12a22..0000000 --- a/3rdParty/Boost/src/boost/mpl/aux_/has_key_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_KEY_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_KEY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// Copyright David Abrahams 2003 -// -// 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: has_key_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/has_key_fwd.hpp> -#include <boost/mpl/aux_/traits_lambda_spec.hpp> - -namespace boost { namespace mpl { - -// no default implementation; the definition is needed to make MSVC happy  - -template< typename Tag > struct has_key_impl -{ -    template< typename AssociativeSequence, typename Key > struct apply; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,has_key_impl) - -}} - -#endif // BOOST_MPL_AUX_HAS_KEY_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/aux_/overload_names.hpp b/3rdParty/Boost/src/boost/mpl/aux_/overload_names.hpp deleted file mode 100644 index 0fa4a98..0000000 --- a/3rdParty/Boost/src/boost/mpl/aux_/overload_names.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -#ifndef BOOST_MPL_AUX_OVERLOAD_NAMES_HPP_INCLUDED -#define BOOST_MPL_AUX_OVERLOAD_NAMES_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 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: overload_names.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/aux_/ptr_to_ref.hpp> -#include <boost/mpl/aux_/config/operators.hpp> - -#if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) - -#   include <boost/mpl/aux_/static_cast.hpp> - -#   define BOOST_MPL_AUX_OVERLOAD_VALUE_BY_KEY  operator/ -#   define BOOST_MPL_AUX_OVERLOAD_ITEM_BY_ORDER operator| -#   define BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY  operator|| -#   define BOOST_MPL_AUX_OVERLOAD_IS_MASKED     operator% - -#   define BOOST_MPL_AUX_OVERLOAD_CALL_VALUE_BY_KEY(T, x)   BOOST_MPL_AUX_PTR_TO_REF(T) / x -#   define BOOST_MPL_AUX_OVERLOAD_CALL_ITEM_BY_ORDER(T, x)  BOOST_MPL_AUX_PTR_TO_REF(T) | x -#   define BOOST_MPL_AUX_OVERLOAD_CALL_ORDER_BY_KEY(T, x)   BOOST_MPL_AUX_PTR_TO_REF(T) || x -#   define BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED(T, x)      BOOST_MPL_AUX_PTR_TO_REF(T) % x - -#else - -#   define BOOST_MPL_AUX_OVERLOAD_VALUE_BY_KEY  value_by_key_ -#   define BOOST_MPL_AUX_OVERLOAD_ITEM_BY_ORDER item_by_order_ -#   define BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY  order_by_key_ -#   define BOOST_MPL_AUX_OVERLOAD_IS_MASKED     is_masked_ - -#   define BOOST_MPL_AUX_OVERLOAD_CALL_VALUE_BY_KEY(T, x)   T::BOOST_MPL_AUX_OVERLOAD_VALUE_BY_KEY( BOOST_MPL_AUX_PTR_TO_REF(T), x ) -#   define BOOST_MPL_AUX_OVERLOAD_CALL_ITEM_BY_ORDER(T, x)  T::BOOST_MPL_AUX_OVERLOAD_ITEM_BY_ORDER( BOOST_MPL_AUX_PTR_TO_REF(T), x ) -#   define BOOST_MPL_AUX_OVERLOAD_CALL_ORDER_BY_KEY(T, x)   T::BOOST_MPL_AUX_OVERLOAD_ORDER_BY_KEY( BOOST_MPL_AUX_PTR_TO_REF(T), x ) -#   define BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED(T, x)      T::BOOST_MPL_AUX_OVERLOAD_IS_MASKED( BOOST_MPL_AUX_PTR_TO_REF(T), x ) - -#endif - -#endif // BOOST_MPL_AUX_OVERLOAD_NAMES_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/aux_/ptr_to_ref.hpp b/3rdParty/Boost/src/boost/mpl/aux_/ptr_to_ref.hpp deleted file mode 100644 index 3b5415c..0000000 --- a/3rdParty/Boost/src/boost/mpl/aux_/ptr_to_ref.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED -#define BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 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: ptr_to_ref.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/aux_/static_cast.hpp> -#include <boost/mpl/aux_/config/msvc.hpp> -#include <boost/mpl/aux_/config/workaround.hpp> - - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ -    ||  ( BOOST_WORKAROUND(__EDG_VERSION__, <= 245) \ -        && !(defined(__STD_STRICT_ANSI) \ -            || defined(__STD_STRICT_ANSI_ERRORS)) ) - -#   define BOOST_MPL_AUX_PTR_TO_REF(X) \ -    *BOOST_MPL_AUX_STATIC_CAST(X*, 0) \ -/**/ - -#else - -#   define BOOST_MPL_AUX_PTR_TO_REF(X) \ -    aux::ptr_to_ref(BOOST_MPL_AUX_STATIC_CAST(X*, 0)) \ -/**/ - -#endif - - -namespace boost { namespace mpl { namespace aux { - -template< typename T > static T const& ptr_to_ref(T*); - -}}} - -#endif // BOOST_MPL_AUX_PTR_TO_REF_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/aux_/reverse_iter_fold_impl.hpp b/3rdParty/Boost/src/boost/mpl/aux_/reverse_iter_fold_impl.hpp deleted file mode 100644 index ce9257f..0000000 --- a/3rdParty/Boost/src/boost/mpl/aux_/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_ITER_FOLD_BACKWARD_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: reverse_iter_fold_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -#   include <boost/mpl/next_prior.hpp> -#   include <boost/mpl/apply.hpp> -#   include <boost/mpl/aux_/config/ctps.hpp> -#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ -    || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) -#       include <boost/mpl/if.hpp> -#       include <boost/type_traits/is_same.hpp> -#   endif -#endif - -#include <boost/mpl/aux_/config/use_preprocessed.hpp> - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ -    && !defined(BOOST_MPL_PREPROCESSING_MODE) - -#   define BOOST_MPL_PREPROCESSED_HEADER reverse_iter_fold_impl.hpp -#   include <boost/mpl/aux_/include_preprocessed.hpp> - -#else - -#   define AUX778076_FOLD_IMPL_OP(iter) iter -#   define AUX778076_FOLD_IMPL_NAME_PREFIX reverse_iter_fold -#   include <boost/mpl/aux_/reverse_fold_impl_body.hpp> - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/base.hpp b/3rdParty/Boost/src/boost/mpl/base.hpp deleted file mode 100644 index 3f7e8a4..0000000 --- a/3rdParty/Boost/src/boost/mpl/base.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_BASE_HPP_INCLUDED -#define BOOST_MPL_BASE_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: base.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/aux_/na_spec.hpp> -#include <boost/mpl/aux_/lambda_support.hpp> - -namespace boost { namespace mpl { - -template< -      typename BOOST_MPL_AUX_NA_PARAM(T) -    > -struct base -{ -    typedef typename T::base type; -    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,base,(T)) -}; - -BOOST_MPL_AUX_NA_SPEC(1, base) - -}} - -#endif // BOOST_MPL_BASE_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/comparison.hpp b/3rdParty/Boost/src/boost/mpl/comparison.hpp deleted file mode 100644 index 005d280..0000000 --- a/3rdParty/Boost/src/boost/mpl/comparison.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_COMPARISON_HPP_INCLUDED -#define BOOST_MPL_COMPARISON_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: comparison.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/equal_to.hpp> -#include <boost/mpl/not_equal_to.hpp> -#include <boost/mpl/less.hpp> -#include <boost/mpl/greater.hpp> -#include <boost/mpl/less_equal.hpp> -#include <boost/mpl/greater_equal.hpp> - -#endif // BOOST_MPL_COMPARISON_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/erase_fwd.hpp b/3rdParty/Boost/src/boost/mpl/erase_fwd.hpp deleted file mode 100644 index 0626ecb..0000000 --- a/3rdParty/Boost/src/boost/mpl/erase_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_ERASE_FWD_HPP_INCLUDED -#define BOOST_MPL_ERASE_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: erase_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -namespace boost { namespace mpl { - -template< typename Tag > struct erase_impl; -template< typename Sequence, typename First, typename Last > struct erase; - -}} - -#endif // BOOST_MPL_ERASE_FWD_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/erase_key_fwd.hpp b/3rdParty/Boost/src/boost/mpl/erase_key_fwd.hpp deleted file mode 100644 index 4844893..0000000 --- a/3rdParty/Boost/src/boost/mpl/erase_key_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED -#define BOOST_MPL_ERASE_KEY_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: erase_key_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -namespace boost { namespace mpl { - -template< typename Tag > struct erase_key_impl; -template< typename Sequence, typename Key > struct erase_key; - -}} - -#endif // BOOST_MPL_ERASE_KEY_FWD_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/greater.hpp b/3rdParty/Boost/src/boost/mpl/greater.hpp deleted file mode 100644 index e33ae48..0000000 --- a/3rdParty/Boost/src/boost/mpl/greater.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_GREATER_HPP_INCLUDED -#define BOOST_MPL_GREATER_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: greater.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#define AUX778076_OP_NAME greater -#define AUX778076_OP_TOKEN > -#include <boost/mpl/aux_/comparison_op.hpp> - -#endif // BOOST_MPL_GREATER_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/greater_equal.hpp b/3rdParty/Boost/src/boost/mpl/greater_equal.hpp deleted file mode 100644 index 91ccf83..0000000 --- a/3rdParty/Boost/src/boost/mpl/greater_equal.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED -#define BOOST_MPL_GREATER_EQUAL_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: greater_equal.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#define AUX778076_OP_NAME greater_equal -#define AUX778076_OP_TOKEN >= -#include <boost/mpl/aux_/comparison_op.hpp> - -#endif // BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/has_key.hpp b/3rdParty/Boost/src/boost/mpl/has_key.hpp deleted file mode 100644 index 85102ed..0000000 --- a/3rdParty/Boost/src/boost/mpl/has_key.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_HAS_KEY_HPP_INCLUDED -#define BOOST_MPL_HAS_KEY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: has_key.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/has_key_fwd.hpp> -#include <boost/mpl/sequence_tag.hpp> -#include <boost/mpl/aux_/has_key_impl.hpp> -#include <boost/mpl/aux_/na_spec.hpp> -#include <boost/mpl/aux_/lambda_support.hpp> - -namespace boost { namespace mpl { - -template< -      typename BOOST_MPL_AUX_NA_PARAM(AssociativeSequence) -    , typename BOOST_MPL_AUX_NA_PARAM(Key) -    > -struct has_key -    : has_key_impl< typename sequence_tag<AssociativeSequence>::type > -        ::template apply<AssociativeSequence,Key> -{ -    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,has_key,(AssociativeSequence,Key)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, has_key) - -}} - -#endif // BOOST_MPL_HAS_KEY_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/has_key_fwd.hpp b/3rdParty/Boost/src/boost/mpl/has_key_fwd.hpp deleted file mode 100644 index 49b0fb5..0000000 --- a/3rdParty/Boost/src/boost/mpl/has_key_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED -#define BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: has_key_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -namespace boost { namespace mpl { - -template< typename Tag > struct has_key_impl; -template< typename AssociativeSequence, typename Key > struct has_key; - -}} - -#endif // BOOST_MPL_HAS_KEY_FWD_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/insert_fwd.hpp b/3rdParty/Boost/src/boost/mpl/insert_fwd.hpp deleted file mode 100644 index 9c6ff64..0000000 --- a/3rdParty/Boost/src/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: insert_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -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/src/boost/mpl/key_type_fwd.hpp b/3rdParty/Boost/src/boost/mpl/key_type_fwd.hpp deleted file mode 100644 index 95f8445..0000000 --- a/3rdParty/Boost/src/boost/mpl/key_type_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED -#define BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: key_type_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -namespace boost { namespace mpl { - -template< typename Tag > struct key_type_impl; -template< typename AssociativeSequence, typename T > struct key_type; - -}} - -#endif // BOOST_MPL_KEY_TYPE_FWD_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/less_equal.hpp b/3rdParty/Boost/src/boost/mpl/less_equal.hpp deleted file mode 100644 index 2284d1d..0000000 --- a/3rdParty/Boost/src/boost/mpl/less_equal.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_LESS_EQUAL_HPP_INCLUDED -#define BOOST_MPL_LESS_EQUAL_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: less_equal.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#define AUX778076_OP_NAME less_equal -#define AUX778076_OP_TOKEN <= -#include <boost/mpl/aux_/comparison_op.hpp> - -#endif // BOOST_MPL_LESS_EQUAL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/not_equal_to.hpp b/3rdParty/Boost/src/boost/mpl/not_equal_to.hpp deleted file mode 100644 index 00132b1..0000000 --- a/3rdParty/Boost/src/boost/mpl/not_equal_to.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED -#define BOOST_MPL_NOT_EQUAL_TO_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: not_equal_to.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#define AUX778076_OP_NAME not_equal_to -#define AUX778076_OP_TOKEN != -#include <boost/mpl/aux_/comparison_op.hpp> - -#endif // BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/reverse_iter_fold.hpp b/3rdParty/Boost/src/boost/mpl/reverse_iter_fold.hpp deleted file mode 100644 index e6b3ed3..0000000 --- a/3rdParty/Boost/src/boost/mpl/reverse_iter_fold.hpp +++ /dev/null @@ -1,56 +0,0 @@ - -#ifndef BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED -#define BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Dave Abrahams 2001-2002 -// -// 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: reverse_iter_fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/begin_end.hpp> -#include <boost/mpl/O1_size.hpp> -#include <boost/mpl/arg.hpp> -#include <boost/mpl/lambda.hpp> -#include <boost/mpl/aux_/reverse_iter_fold_impl.hpp> -#include <boost/mpl/aux_/na_spec.hpp> -#include <boost/mpl/aux_/lambda_support.hpp> - -namespace boost { namespace mpl { - -template< -      typename BOOST_MPL_AUX_NA_PARAM(Sequence) -    , typename BOOST_MPL_AUX_NA_PARAM(State) -    , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp) -    , typename ForwardOp = arg<1> -    > -struct reverse_iter_fold -{ -    typedef typename aux::reverse_iter_fold_impl< -          ::boost::mpl::O1_size<Sequence>::value -        , typename begin<Sequence>::type -        , typename end<Sequence>::type -        , State -        , typename lambda<BackwardOp>::type -        , typename lambda<ForwardOp>::type -        >::state type; - -    BOOST_MPL_AUX_LAMBDA_SUPPORT( -          4 -        , reverse_iter_fold -        , (Sequence,State,BackwardOp,ForwardOp) -        ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, reverse_iter_fold) - -}} - -#endif // BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/at_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/at_impl.hpp deleted file mode 100644 index ad74477..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/at_impl.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 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: at_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/at_fwd.hpp> -#include <boost/mpl/set/aux_/has_key_impl.hpp> -#include <boost/mpl/set/aux_/tag.hpp> -#include <boost/mpl/if.hpp> -#include <boost/mpl/void.hpp> - -namespace boost { namespace mpl { - -template<> -struct at_impl< aux::set_tag > -{ -    template< typename Set, typename T > struct apply -    { -        typedef typename if_<  -              has_key_impl<aux::set_tag>::apply<Set,T> -            , T -            , void_ -            >::type type;             -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_AT_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/begin_end_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/begin_end_impl.hpp deleted file mode 100644 index f012c2a..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/begin_end_impl.hpp +++ /dev/null @@ -1,43 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_BEGIN_END_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_BEGIN_END_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2007 -// 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: begin_end_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/begin_end_fwd.hpp> -#include <boost/mpl/set/aux_/iterator.hpp> - -namespace boost { namespace mpl { - -template<> -struct begin_impl< aux::set_tag > -{ -    template< typename Set > struct apply -        : s_iter_get<Set,typename Set::item_> -    { -    }; -}; - -template<> -struct end_impl< aux::set_tag > -{ -    template< typename Set > struct apply -    { -        typedef s_iter< Set,set0<> > type; -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_BEGIN_END_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/clear_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/clear_impl.hpp deleted file mode 100644 index 4c965f6..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/clear_impl.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: clear_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/clear_fwd.hpp> -#include <boost/mpl/set/aux_/set0.hpp> -#include <boost/mpl/set/aux_/tag.hpp> - -namespace boost { namespace mpl { - -template<> -struct clear_impl< aux::set_tag > -{ -    template< typename Set > struct apply -    { -        typedef set0<> type; -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_CLEAR_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/empty_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/empty_impl.hpp deleted file mode 100644 index d40a9c4..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/empty_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 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: empty_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/empty_fwd.hpp> -#include <boost/mpl/not.hpp> -#include <boost/mpl/set/aux_/tag.hpp> - -namespace boost { namespace mpl { - -template<> -struct empty_impl< aux::set_tag > -{ -    template< typename Set > struct apply -        : not_< typename Set::size > -    { -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_EMPTY_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/erase_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/erase_impl.hpp deleted file mode 100644 index 954a70c..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/erase_impl.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_ERASE_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_ERASE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: erase_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/erase_fwd.hpp> -#include <boost/mpl/set/aux_/erase_key_impl.hpp> -#include <boost/mpl/set/aux_/tag.hpp> - -namespace boost { namespace mpl { - -template<> -struct erase_impl< aux::set_tag > -{ -    template<  -          typename Set -        , typename Pos -        , typename unused_ -        >  -    struct apply -        : erase_key_impl<aux::set_tag> -            ::apply<Set,typename Pos::type> -    { -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_ERASE_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/erase_key_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/erase_key_impl.hpp deleted file mode 100644 index 9885196..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/erase_key_impl.hpp +++ /dev/null @@ -1,53 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_ERASE_KEY_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_ERASE_KEY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2007 -// 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: erase_key_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/erase_key_fwd.hpp> -#include <boost/mpl/set/aux_/has_key_impl.hpp> -#include <boost/mpl/set/aux_/item.hpp> -#include <boost/mpl/set/aux_/tag.hpp> -#include <boost/mpl/identity.hpp> -#include <boost/mpl/base.hpp> -#include <boost/mpl/eval_if.hpp> - -#include <boost/type_traits/is_same.hpp> - -namespace boost { namespace mpl { - -template<> -struct erase_key_impl< aux::set_tag > -{ -    template<  -          typename Set -        , typename T -        >  -    struct apply -        : eval_if<  -              has_key_impl<aux::set_tag>::apply<Set,T> -            , eval_if<  -                  is_same< T,typename Set::item_type_ >  -                , base<Set> -                , identity< s_mask<T,typename Set::item_> > -                > -            , identity<Set> -            > -    { -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_ERASE_KEY_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/has_key_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/has_key_impl.hpp deleted file mode 100644 index d3cae50..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/has_key_impl.hpp +++ /dev/null @@ -1,60 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_HAS_KEY_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_HAS_KEY_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: has_key_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/set/aux_/tag.hpp> -#include <boost/mpl/has_key_fwd.hpp> -#include <boost/mpl/bool.hpp> -#include <boost/mpl/aux_/overload_names.hpp> -#include <boost/mpl/aux_/static_cast.hpp> -#include <boost/mpl/aux_/yes_no.hpp> -#include <boost/mpl/aux_/type_wrapper.hpp> -#include <boost/mpl/aux_/config/workaround.hpp> -#include <boost/mpl/aux_/config/static_constant.hpp> - -namespace boost { namespace mpl { - -template<> -struct has_key_impl< aux::set_tag > -{ -    template< typename Set, typename T > struct apply -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ -    || BOOST_WORKAROUND(__EDG_VERSION__, <= 245) -    { -        BOOST_STATIC_CONSTANT(bool, value =  -              ( sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED( -                    Set -                  , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<T>*, 0) -                  ) ) == sizeof(aux::no_tag) ) -            ); - -        typedef bool_<value> type; - -#else // ISO98 C++ -        : bool_<  -              ( sizeof( BOOST_MPL_AUX_OVERLOAD_CALL_IS_MASKED( -                    Set -                  , BOOST_MPL_AUX_STATIC_CAST(aux::type_wrapper<T>*, 0) -                  ) ) == sizeof(aux::no_tag) ) -            > -    { -#endif -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_HAS_KEY_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/insert_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/insert_impl.hpp deleted file mode 100644 index f1d72ec..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/insert_impl.hpp +++ /dev/null @@ -1,65 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_INSERT_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_INSERT_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2007 -// 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: insert_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/insert_fwd.hpp> -#include <boost/mpl/set/aux_/has_key_impl.hpp> -#include <boost/mpl/set/aux_/item.hpp> -#include <boost/mpl/set/aux_/tag.hpp> -#include <boost/mpl/identity.hpp> -#include <boost/mpl/base.hpp> -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/aux_/na.hpp> - -#include <boost/type_traits/is_same.hpp> - -namespace boost { namespace mpl { - -namespace aux { -template<  typename Set, typename T > struct set_insert_impl -    : eval_if<  -          has_key_impl<aux::set_tag>::apply<Set,T> -        , identity<Set> -        , eval_if<  -              is_same< T,typename Set::last_masked_ >  -            , base<Set> -            , identity< s_item<T,typename Set::item_> > -            > -        > -{ -}; -} - -template<> -struct insert_impl< aux::set_tag > -{ -    template<  -          typename Set -        , typename PosOrKey -        , typename KeyOrNA -        >  -    struct apply -        : aux::set_insert_impl< -              Set -            , typename if_na<KeyOrNA,PosOrKey>::type -            > -    { -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_INSERT_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/item.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/item.hpp deleted file mode 100644 index b9ca19e..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/item.hpp +++ /dev/null @@ -1,80 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_ITEM_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_ITEM_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2007 -// 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: item.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/long.hpp> -#include <boost/mpl/void.hpp> -#include <boost/mpl/next.hpp> -#include <boost/mpl/prior.hpp> -#include <boost/mpl/set/aux_/set0.hpp> -#include <boost/mpl/aux_/type_wrapper.hpp> -#include <boost/mpl/aux_/config/arrays.hpp> - -namespace boost { namespace mpl { - -template< typename T, typename Base > -struct s_item -    : Base -{ -    typedef s_item<T,Base> item_; -    typedef void_       last_masked_; -    typedef T           item_type_; -    typedef Base        base; -     -    typedef typename next< typename Base::size >::type  size; -    typedef typename next< typename Base::order >::type order; - -#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) -    typedef typename aux::weighted_tag<BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value>::type order_tag_; -#else -    typedef char (&order_tag_)[BOOST_MPL_AUX_MSVC_VALUE_WKND(order)::value]; -#endif - -    BOOST_MPL_AUX_SET_OVERLOAD( order_tag_, ORDER_BY_KEY, s_item, aux::type_wrapper<T>* ); -    BOOST_MPL_AUX_SET_OVERLOAD( aux::no_tag, IS_MASKED, s_item, aux::type_wrapper<T>* ); -}; - - -template< typename T, typename Base > -struct s_mask -    : Base -{ -    typedef s_mask<T,Base> item_; -    typedef T       last_masked_; -    typedef void_   item_type_; -    typedef Base    base; -    typedef typename prior< typename Base::size >::type  size; - -    BOOST_MPL_AUX_SET_OVERLOAD( aux::yes_tag, IS_MASKED, s_mask, aux::type_wrapper<T>* ); -}; - - -template< typename T, typename Base > -struct s_unmask -    : Base -{ -    typedef s_unmask<T,Base> item_; -    typedef void_   last_masked_; -    typedef T       item_type_; -    typedef Base    base; -    typedef typename next< typename Base::size >::type  size; - -    BOOST_MPL_AUX_SET_OVERLOAD( aux::no_tag, IS_MASKED, s_unmask, aux::type_wrapper<T>* ); -}; - -}} - -#endif // BOOST_MPL_SET_AUX_ITEM_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/iterator.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/iterator.hpp deleted file mode 100644 index 90666a6..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/iterator.hpp +++ /dev/null @@ -1,98 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-2007 -// 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: iterator.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/set/aux_/set0.hpp> -#include <boost/mpl/has_key.hpp> -#include <boost/mpl/iterator_tags.hpp> -#include <boost/mpl/next.hpp> -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/if.hpp> -#include <boost/mpl/identity.hpp> -#include <boost/mpl/aux_/config/ctps.hpp> - -namespace boost { namespace mpl { - -// used by 's_iter_get' -template< typename Set, typename Tail > struct s_iter; - -template< typename Set, typename Tail > struct s_iter_get -    : eval_if<  -          has_key< Set,typename Tail::item_type_ > -        , identity< s_iter<Set,Tail> > -        , next< s_iter<Set,Tail> > -        > -{ -}; - -template< typename Set, typename Tail > struct s_iter_impl -{ -    typedef Tail                        tail_; -    typedef forward_iterator_tag        category; -    typedef typename Tail::item_type_   type; - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -    typedef typename s_iter_get< Set,typename Tail::base >::type next; -#endif -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< typename Set, typename Tail >  -struct next< s_iter<Set,Tail> > -    : s_iter_get< Set,typename Tail::base > -{ -}; - -template< typename Set >  -struct next< s_iter<Set,set0<> > > -{ -    typedef s_iter<Set,set0<> > type; -}; - -template< typename Set, typename Tail > struct s_iter -    : s_iter_impl<Set,Tail> -{ -}; - -template< typename Set > struct s_iter<Set, set0<> > -{ -    typedef forward_iterator_tag category; -}; - -#else - -template< typename Set > -struct s_end_iter -{ -    typedef forward_iterator_tag    category; -    typedef s_iter<Set,set0<> >     next; -}; - -template< typename Set, typename Tail > struct s_iter -    : if_<  -          is_same< Tail,set0<> > -        , s_end_iter<Set> -        , s_iter_impl<Set,Tail> -        >::type -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -}} - -#endif // BOOST_MPL_SET_AUX_ITERATOR_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/key_type_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/key_type_impl.hpp deleted file mode 100644 index 23b1a18..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/key_type_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: key_type_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/key_type_fwd.hpp> -#include <boost/mpl/set/aux_/tag.hpp> - -namespace boost { namespace mpl { - -template<> -struct key_type_impl< aux::set_tag > -{ -    template< typename Set, typename T > struct apply -    { -        typedef T type; -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_KEY_TYPE_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/set0.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/set0.hpp deleted file mode 100644 index 58f1d7d..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/set0.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: set0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/long.hpp> -#include <boost/mpl/void.hpp> -#include <boost/mpl/aux_/na.hpp> -#include <boost/mpl/set/aux_/tag.hpp> -#include <boost/mpl/aux_/yes_no.hpp> -#include <boost/mpl/aux_/overload_names.hpp> -#include <boost/mpl/aux_/config/operators.hpp> - -#include <boost/preprocessor/cat.hpp> - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING) - -#   define BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \ -    friend R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \ -/**/ - -#   define BOOST_MPL_AUX_SET_OVERLOAD(R, f, X, T) \ -    BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \ -/**/ - -#else - -#   define BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \ -    static R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \ -/**/ - -#   define BOOST_MPL_AUX_SET_OVERLOAD(R, f, X, T) \ -    BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T); \ -    using Base::BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f) \ -/**/ - -#endif - -template< typename Dummy = na > struct set0 -{ -    typedef set0<>          item_; -    typedef item_           type; -    typedef aux::set_tag    tag; -    typedef void_           last_masked_; -    typedef void_           item_type_; -    typedef long_<0>        size; -    typedef long_<1>        order; - -    BOOST_MPL_AUX_SET0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, set0<>, void const volatile* ); -    BOOST_MPL_AUX_SET0_OVERLOAD( aux::yes_tag, IS_MASKED, set0<>, void const volatile* ); -}; - -}} - -#endif // BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/size_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/size_impl.hpp deleted file mode 100644 index 0443776..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/size_impl.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 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: size_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/size_fwd.hpp> -#include <boost/mpl/set/aux_/tag.hpp> - -namespace boost { namespace mpl { - -template<> -struct size_impl< aux::set_tag > -{ -    template< typename Set > struct apply -        : Set::size -    { -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_SIZE_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/tag.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/tag.hpp deleted file mode 100644 index 651ed44..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/tag.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -namespace boost { namespace mpl { namespace aux { - -struct set_tag; - -}}} - -#endif // BOOST_MPL_SET_AUX_TAG_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/aux_/value_type_impl.hpp b/3rdParty/Boost/src/boost/mpl/set/aux_/value_type_impl.hpp deleted file mode 100644 index 7166dae..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/aux_/value_type_impl.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED -#define BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: value_type_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/value_type_fwd.hpp> -#include <boost/mpl/set/aux_/tag.hpp> - -namespace boost { namespace mpl { - -template<> -struct value_type_impl< aux::set_tag > -{ -    template< typename Set, typename T > struct apply -    { -        typedef T type; -    }; -}; - -}} - -#endif // BOOST_MPL_SET_AUX_VALUE_TYPE_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/set/set0.hpp b/3rdParty/Boost/src/boost/mpl/set/set0.hpp deleted file mode 100644 index f6e5b60..0000000 --- a/3rdParty/Boost/src/boost/mpl/set/set0.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_SET_SET0_HPP_INCLUDED -#define BOOST_MPL_SET_SET0_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: set0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include <boost/mpl/set/aux_/at_impl.hpp> -#include <boost/mpl/set/aux_/clear_impl.hpp> -//#include <boost/mpl/set/aux_/O1_size.hpp> -#include <boost/mpl/set/aux_/size_impl.hpp> -#include <boost/mpl/set/aux_/empty_impl.hpp> -#include <boost/mpl/set/aux_/insert_impl.hpp> -#include <boost/mpl/set/aux_/erase_impl.hpp> -#include <boost/mpl/set/aux_/erase_key_impl.hpp> -#include <boost/mpl/set/aux_/has_key_impl.hpp> -#include <boost/mpl/set/aux_/key_type_impl.hpp> -#include <boost/mpl/set/aux_/value_type_impl.hpp> -#include <boost/mpl/set/aux_/begin_end_impl.hpp> -#include <boost/mpl/set/aux_/iterator.hpp> -#include <boost/mpl/set/aux_/item.hpp> -#include <boost/mpl/set/aux_/set0.hpp> -#include <boost/mpl/set/aux_/tag.hpp> - -#endif // BOOST_MPL_SET_SET0_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/mpl/value_type_fwd.hpp b/3rdParty/Boost/src/boost/mpl/value_type_fwd.hpp deleted file mode 100644 index 96de3ad..0000000 --- a/3rdParty/Boost/src/boost/mpl/value_type_fwd.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED -#define BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2003-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: value_type_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -namespace boost { namespace mpl { - -template< typename Tag > struct value_type_impl; -template< typename AssociativeSequence, typename T > struct value_type; - -}} - -#endif // BOOST_MPL_VALUE_TYPE_FWD_HPP_INCLUDED diff --git a/3rdParty/Boost/src/boost/multi_index/detail/access_specifier.hpp b/3rdParty/Boost/src/boost/multi_index/detail/access_specifier.hpp deleted file mode 100644 index 84c2f7d..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/access_specifier.hpp +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_ACCESS_SPECIFIER_HPP -#define BOOST_MULTI_INDEX_DETAIL_ACCESS_SPECIFIER_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> -#include <boost/detail/workaround.hpp> - -/* In those compilers that do not accept the member template friend syntax, - * some protected and private sections might need to be specified as - * public. - */ - -#if defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) -#define BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS public -#define BOOST_MULTI_INDEX_PRIVATE_IF_MEMBER_TEMPLATE_FRIENDS public -#else -#define BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS protected -#define BOOST_MULTI_INDEX_PRIVATE_IF_MEMBER_TEMPLATE_FRIENDS private -#endif - -/* GCC does not correctly support in-class using declarations for template - * functions. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9810 - * MSVC 7.1/8.0 seem to have a similar problem, though the conditions in - * which the error happens are not that simple. I have yet to isolate this - * into a snippet suitable for bug reporting. - * Sun Studio also has this problem, which might be related, from the - * information gathered at Sun forums, with a known issue notified at the - * internal bug report 6421933. The bug is present up to Studio Express 2, - * the latest preview version of the future Sun Studio 12. As of this writing - * (October 2006) it is not known whether a fix will finally make it into the - * official Sun Studio 12. - */ - -#if BOOST_WORKAROUND(__GNUC__, <3)||\ -    BOOST_WORKAROUND(__GNUC__,==3)&&(__GNUC_MINOR__<4)||\ -    BOOST_WORKAROUND(BOOST_MSVC,==1310)||\ -    BOOST_WORKAROUND(BOOST_MSVC,==1400)||\ -    BOOST_WORKAROUND(__SUNPRO_CC,BOOST_TESTED_AT(0x590)) -#define BOOST_MULTI_INDEX_PRIVATE_IF_USING_DECL_FOR_TEMPL_FUNCTIONS public -#else -#define BOOST_MULTI_INDEX_PRIVATE_IF_USING_DECL_FOR_TEMPL_FUNCTIONS private -#endif - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/adl_swap.hpp b/3rdParty/Boost/src/boost/multi_index/detail/adl_swap.hpp deleted file mode 100644 index e78235d..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/adl_swap.hpp +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_ADL_SWAP_HPP -#define BOOST_MULTI_INDEX_DETAIL_ADL_SWAP_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <algorithm> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -template<typename T> -void adl_swap(T& x,T& y) -{ - -#if !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) -  using std::swap; -  swap(x,y); -#else -  std::swap(x,y); -#endif - -} - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/archive_constructed.hpp b/3rdParty/Boost/src/boost/multi_index/detail/archive_constructed.hpp deleted file mode 100644 index ee00dfa..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/archive_constructed.hpp +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_ARCHIVE_CONSTRUCTED_HPP -#define BOOST_MULTI_INDEX_DETAIL_ARCHIVE_CONSTRUCTED_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/detail/no_exceptions_support.hpp> -#include <boost/noncopyable.hpp> -#include <boost/serialization/serialization.hpp> -#include <boost/type_traits/aligned_storage.hpp> -#include <boost/type_traits/alignment_of.hpp>  - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* constructs a stack-based object from a serialization archive */ - -template<typename T> -struct archive_constructed:private noncopyable -{ -  template<class Archive> -  archive_constructed(Archive& ar,const unsigned int version) -  { -    serialization::load_construct_data_adl(ar,&get(),version); -    BOOST_TRY{ -      ar>>get(); -    } -    BOOST_CATCH(...){ -      (&get())->~T(); -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -  template<class Archive> -  archive_constructed(const char* name,Archive& ar,const unsigned int version) -  { -    serialization::load_construct_data_adl(ar,&get(),version); -    BOOST_TRY{ -      ar>>serialization::make_nvp(name,get()); -    } -    BOOST_CATCH(...){ -      (&get())->~T(); -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -  ~archive_constructed() -  { -    (&get())->~T(); -  } - -  T& get(){return *static_cast<T*>(static_cast<void*>(&space));} - -private: -  typename aligned_storage<sizeof(T),alignment_of<T>::value>::type space; -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/auto_space.hpp b/3rdParty/Boost/src/boost/multi_index/detail/auto_space.hpp deleted file mode 100644 index 9b0a0dc..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/auto_space.hpp +++ /dev/null @@ -1,95 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_AUTO_SPACE_HPP -#define BOOST_MULTI_INDEX_DETAIL_AUTO_SPACE_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <algorithm> -#include <boost/detail/allocator_utilities.hpp> -#include <boost/multi_index/detail/adl_swap.hpp> -#include <boost/multi_index/detail/prevent_eti.hpp> -#include <boost/noncopyable.hpp> -#include <memory> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* auto_space provides uninitialized space suitably to store - * a given number of elements of a given type. - */ - -/* NB: it is not clear whether using an allocator to handle - * zero-sized arrays of elements is conformant or not. GCC 3.3.1 - * and prior fail here, other stdlibs handle the issue gracefully. - * To be on the safe side, the case n==0 is given special treatment. - * References: - *   GCC Bugzilla, "standard allocator crashes when deallocating segment - *    "of zero length", http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14176 - *   C++ Standard Library Defect Report List (Revision 28), issue 199 - *     "What does allocate(0) return?", - *     http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/lwg-defects.html#199 - */ - -template<typename T,typename Allocator=std::allocator<T> > -struct auto_space:private noncopyable -{ -  typedef typename prevent_eti< -    Allocator, -    typename boost::detail::allocator::rebind_to< -      Allocator,T -    >::type -  >::type::pointer pointer; - -  explicit auto_space(const Allocator& al=Allocator(),std::size_t n=1): -  al_(al),n_(n),data_(n_?al_.allocate(n_):pointer(0)) -  {} - -  ~auto_space() -  { -    if(n_)al_.deallocate(data_,n_); -  } - -  Allocator get_allocator()const{return al_;} - -  pointer data()const{return data_;} - -  void swap(auto_space& x) -  { -    if(al_!=x.al_)adl_swap(al_,x.al_); -    std::swap(n_,x.n_); -    std::swap(data_,x.data_); -  } -     -private: -  typename boost::detail::allocator::rebind_to< -    Allocator,T>::type                          al_; -  std::size_t                                   n_; -  pointer                                       data_; -}; - -template<typename T,typename Allocator> -void swap(auto_space<T,Allocator>& x,auto_space<T,Allocator>& y) -{ -  x.swap(y); -} - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/base_type.hpp b/3rdParty/Boost/src/boost/multi_index/detail/base_type.hpp deleted file mode 100644 index d25332e..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/base_type.hpp +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_BASE_TYPE_HPP -#define BOOST_MULTI_INDEX_DETAIL_BASE_TYPE_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/detail/workaround.hpp> -#include <boost/mpl/at.hpp> -#include <boost/mpl/apply.hpp> -#include <boost/mpl/size.hpp> -#include <boost/multi_index/detail/index_base.hpp> -#include <boost/multi_index/detail/is_index_list.hpp> -#include <boost/multi_index/detail/msvc_index_specifier.hpp> -#include <boost/static_assert.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* MPL machinery to construct a linear hierarchy of indices out of - * a index list. - */ - -#if BOOST_WORKAROUND(BOOST_MSVC,<1310) -struct index_applier -{ -  template<typename IndexSpecifierMeta,typename SuperMeta> -  struct apply: -    msvc_index_specifier<IndexSpecifierMeta::type>:: -      template result_index_class<SuperMeta> -  { -  };  -}; -#else -struct index_applier -{ -  template<typename IndexSpecifierMeta,typename SuperMeta> -  struct apply -  { -    typedef typename IndexSpecifierMeta::type            index_specifier; -    typedef typename index_specifier:: -      BOOST_NESTED_TEMPLATE index_class<SuperMeta>::type type; -  };  -}; -#endif - -template<int N,typename Value,typename IndexSpecifierList,typename Allocator> -struct nth_layer -{ -  BOOST_STATIC_CONSTANT(int,length=mpl::size<IndexSpecifierList>::value); - -  typedef typename  mpl::eval_if_c< -    N==length, -    mpl::identity<index_base<Value,IndexSpecifierList,Allocator> >, -    mpl::apply2< -      index_applier, -      mpl::at_c<IndexSpecifierList,N>, -      nth_layer<N+1,Value,IndexSpecifierList,Allocator> -    > -  >::type type; -}; - -template<typename Value,typename IndexSpecifierList,typename Allocator> -struct multi_index_base_type:nth_layer<0,Value,IndexSpecifierList,Allocator> -{ -  BOOST_STATIC_ASSERT(detail::is_index_list<IndexSpecifierList>::value); -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/bidir_node_iterator.hpp b/3rdParty/Boost/src/boost/multi_index/detail/bidir_node_iterator.hpp deleted file mode 100644 index 2155255..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/bidir_node_iterator.hpp +++ /dev/null @@ -1,113 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_BIDIR_NODE_ITERATOR_HPP -#define BOOST_MULTI_INDEX_DETAIL_BIDIR_NODE_ITERATOR_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/operators.hpp> - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -#include <boost/serialization/nvp.hpp> -#include <boost/serialization/split_member.hpp> -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* Iterator class for node-based indices with bidirectional - * iterators (ordered and sequenced indices.) - */ - -template<typename Node> -class bidir_node_iterator: -  public bidirectional_iterator_helper< -    bidir_node_iterator<Node>, -    typename Node::value_type, -    std::ptrdiff_t, -    const typename Node::value_type*, -    const typename Node::value_type&> -{ -public: -  bidir_node_iterator(){} -  explicit bidir_node_iterator(Node* node_):node(node_){} - -  const typename Node::value_type& operator*()const -  { -    return node->value(); -  } - -  bidir_node_iterator& operator++() -  { -    Node::increment(node); -    return *this; -  } - -  bidir_node_iterator& operator--() -  { -    Node::decrement(node); -    return *this; -  } - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  /* Serialization. As for why the following is public, -   * see explanation in safe_mode_iterator notes in safe_mode.hpp. -   */ - -  BOOST_SERIALIZATION_SPLIT_MEMBER() - -  typedef typename Node::base_type node_base_type; - -  template<class Archive> -  void save(Archive& ar,const unsigned int)const -  { -    node_base_type* bnode=node; -    ar<<serialization::make_nvp("pointer",bnode); -  } - -  template<class Archive> -  void load(Archive& ar,const unsigned int) -  { -    node_base_type* bnode; -    ar>>serialization::make_nvp("pointer",bnode); -    node=static_cast<Node*>(bnode); -  } -#endif - -  /* get_node is not to be used by the user */ - -  typedef Node node_type; - -  Node* get_node()const{return node;} - -private: -  Node* node; -}; - -template<typename Node> -bool operator==( -  const bidir_node_iterator<Node>& x, -  const bidir_node_iterator<Node>& y) -{ -  return x.get_node()==y.get_node(); -} - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/converter.hpp b/3rdParty/Boost/src/boost/multi_index/detail/converter.hpp deleted file mode 100644 index a46cff6..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/converter.hpp +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_CONVERTER_HPP -#define BOOST_MULTI_INDEX_DETAIL_CONVERTER_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* converter offers means to access indices of a given multi_index_container - * and for convertibilty between index iterators, so providing a - * localized access point for get() and project() functions. - */ - -template<typename MultiIndexContainer,typename Index> -struct converter -{ -  static const Index& index(const MultiIndexContainer& x){return x;} -  static Index&       index(MultiIndexContainer& x){return x;} - -  static typename Index::const_iterator const_iterator( -    const MultiIndexContainer& x,typename MultiIndexContainer::node_type* node) -  { -    return x.Index::make_iterator(node); -  } - -  static typename Index::iterator iterator( -    MultiIndexContainer& x,typename MultiIndexContainer::node_type* node) -  { -    return x.Index::make_iterator(node); -  } -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/copy_map.hpp b/3rdParty/Boost/src/boost/multi_index/detail/copy_map.hpp deleted file mode 100644 index 4279a8d..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/copy_map.hpp +++ /dev/null @@ -1,140 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_COPY_MAP_HPP -#define BOOST_MULTI_INDEX_DETAIL_COPY_MAP_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <algorithm> -#include <boost/detail/no_exceptions_support.hpp> -#include <boost/multi_index/detail/auto_space.hpp> -#include <boost/multi_index/detail/prevent_eti.hpp> -#include <boost/noncopyable.hpp> -#include <cstddef> -#include <functional> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* copy_map is used as an auxiliary structure during copy_() operations. - * When a container with n nodes is replicated, node_map holds the pairings - * between original and copied nodes, and provides a fast way to find a - * copied node from an original one. - * The semantics of the class are not simple, and no attempt has been made - * to enforce it: multi_index_container handles it right. On the other hand, - * the const interface, which is the one provided to index implementations, - * only allows for: - *   - Enumeration of pairs of (original,copied) nodes (excluding the headers), - *   - fast retrieval of copied nodes (including the headers.) - */ - -template <typename Node> -struct copy_map_entry -{ -  copy_map_entry(Node* f,Node* s):first(f),second(s){} - -  Node* first; -  Node* second; - -  bool operator<(const copy_map_entry<Node>& x)const -  { -    return std::less<Node*>()(first,x.first); -  } -}; - -template <typename Node,typename Allocator> -class copy_map:private noncopyable -{ -public: -  typedef const copy_map_entry<Node>* const_iterator; - -  copy_map( -    const Allocator& al,std::size_t size,Node* header_org,Node* header_cpy): -    al_(al),size_(size),spc(al_,size_),n(0), -    header_org_(header_org),header_cpy_(header_cpy),released(false) -  {} - -  ~copy_map() -  { -    if(!released){ -      for(std::size_t i=0;i<n;++i){ -        boost::detail::allocator::destroy(&(spc.data()+i)->second->value()); -        deallocate((spc.data()+i)->second); -      } -    } -  } - -  const_iterator begin()const{return &*spc.data();} -  const_iterator end()const{return &*(spc.data()+n);} - -  void clone(Node* node) -  { -    (spc.data()+n)->first=node; -    (spc.data()+n)->second=&*al_.allocate(1); -    BOOST_TRY{ -      boost::detail::allocator::construct( -        &(spc.data()+n)->second->value(),node->value()); -    } -    BOOST_CATCH(...){ -      deallocate((spc.data()+n)->second); -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -    ++n; - -    if(n==size_)std::sort(&*spc.data(),&*spc.data()+size_); -  } - -  Node* find(Node* node)const -  { -    if(node==header_org_)return header_cpy_; -    return std::lower_bound( -      begin(),end(),copy_map_entry<Node>(node,0))->second; -  } - -  void release() -  { -    released=true; -  } - -private: -  typedef typename prevent_eti< -    Allocator, -    typename boost::detail::allocator::rebind_to< -      Allocator,Node>::type -  >::type                                         allocator_type; -  typedef typename allocator_type::pointer        allocator_pointer; - -  allocator_type                                  al_; -  std::size_t                                     size_; -  auto_space<copy_map_entry<Node>,Allocator>      spc; -  std::size_t                                     n; -  Node*                                           header_org_; -  Node*                                           header_cpy_; -  bool                                            released; - -  void deallocate(Node* node) -  { -    al_.deallocate(static_cast<allocator_pointer>(node),1); -  } -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/duplicates_iterator.hpp b/3rdParty/Boost/src/boost/multi_index/detail/duplicates_iterator.hpp deleted file mode 100644 index 027dabd..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/duplicates_iterator.hpp +++ /dev/null @@ -1,120 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_DUPLICATES_ITERATOR_HPP -#define BOOST_MULTI_INDEX_DETAIL_DUPLICATES_ITERATOR_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <cstddef> -#include <iterator> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* duplicates_operator is given a range of ordered elements and - * passes only over those which are duplicated. - */ - -template<typename Node,typename Predicate> -class duplicates_iterator -{ -public: -  typedef typename Node::value_type        value_type; -  typedef std::ptrdiff_t                   difference_type; -  typedef const typename Node::value_type* pointer; -  typedef const typename Node::value_type& reference; -  typedef std::forward_iterator_tag        iterator_category; - -  duplicates_iterator(Node* node_,Node* end_,Predicate pred_): -    node(node_),begin_chunk(0),end(end_),pred(pred_) -  { -    advance(); -  } - -  duplicates_iterator(Node* end_,Predicate pred_): -    node(end_),begin_chunk(end_),end(end_),pred(pred_) -  { -  } - -  reference operator*()const -  { -    return node->value(); -  } - -  pointer operator->()const -  { -    return &node->value(); -  } - -  duplicates_iterator& operator++() -  { -    Node::increment(node); -    sync(); -    return *this; -  } - -  duplicates_iterator operator++(int) -  { -    duplicates_iterator tmp(*this); -    ++(*this); -    return tmp; -  } - -  Node* get_node()const{return node;} - -private: -  void sync() -  { -    if(node!=end&&pred(begin_chunk->value(),node->value()))advance(); -  } - -  void advance() -  { -    for(Node* node2=node;node!=end;node=node2){ -      Node::increment(node2); -      if(node2!=end&&!pred(node->value(),node2->value()))break; -    } -    begin_chunk=node; -  } - -  Node*     node; -  Node*     begin_chunk; -  Node*     end; -  Predicate pred; -}; - -template<typename Node,typename Predicate> -bool operator==( -  const duplicates_iterator<Node,Predicate>& x, -  const duplicates_iterator<Node,Predicate>& y) -{ -  return x.get_node()==y.get_node(); -} - -template<typename Node,typename Predicate> -bool operator!=( -  const duplicates_iterator<Node,Predicate>& x, -  const duplicates_iterator<Node,Predicate>& y) -{ -  return !(x==y); -} - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/has_tag.hpp b/3rdParty/Boost/src/boost/multi_index/detail/has_tag.hpp deleted file mode 100644 index 83b28cc..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/has_tag.hpp +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_HAS_TAG_HPP -#define BOOST_MULTI_INDEX_DETAIL_HAS_TAG_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/mpl/contains.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* determines whether an index type has a given tag in its tag list */ - -template<typename Tag> -struct has_tag -{ -  template<typename Index> -  struct apply:mpl::contains<BOOST_DEDUCED_TYPENAME Index::tag_list,Tag> -  { -  };  -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/header_holder.hpp b/3rdParty/Boost/src/boost/multi_index/detail/header_holder.hpp deleted file mode 100644 index 8716e83..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/header_holder.hpp +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_HEADER_HOLDER_HPP -#define BOOST_MULTI_INDEX_DETAIL_HEADER_HOLDER_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/noncopyable.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* A utility class used to hold a pointer to the header node. - * The base from member idiom is used because index classes, which are - * superclasses of multi_index_container, need this header in construction - * time. The allocation is made by the allocator of the multi_index_container - * class --hence, this allocator needs also be stored resorting - * to the base from member trick. - */ - -template<typename NodeTypePtr,typename Final> -struct header_holder:private noncopyable -{ -  header_holder():member(final().allocate_node()){} -  ~header_holder(){final().deallocate_node(&*member);} - -  NodeTypePtr member; - -private: -  Final& final(){return *static_cast<Final*>(this);} -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/index_base.hpp b/3rdParty/Boost/src/boost/multi_index/detail/index_base.hpp deleted file mode 100644 index 9b73a4b..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/index_base.hpp +++ /dev/null @@ -1,185 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_INDEX_BASE_HPP -#define BOOST_MULTI_INDEX_DETAIL_INDEX_BASE_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/call_traits.hpp> -#include <boost/detail/workaround.hpp> -#include <boost/mpl/vector.hpp> -#include <boost/multi_index/detail/copy_map.hpp> -#include <boost/multi_index/detail/node_type.hpp> -#include <boost/multi_index_container_fwd.hpp> -#include <boost/tuple/tuple.hpp> -#include <utility> - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -#include <boost/multi_index/detail/index_loader.hpp> -#include <boost/multi_index/detail/index_saver.hpp> -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* The role of this class is threefold: - *   - tops the linear hierarchy of indices. - *   - terminates some cascading backbone function calls (insert_, etc.), - *   - grants access to the backbone functions of the final - *     multi_index_container class (for access restriction reasons, these - *     cannot be called directly from the index classes.) - */ - -template<typename Value,typename IndexSpecifierList,typename Allocator> -class index_base -{ -protected: -  typedef index_node_base<Value,Allocator>    node_type; -  typedef typename multi_index_node_type< -    Value,IndexSpecifierList,Allocator>::type final_node_type; -  typedef multi_index_container< -    Value,IndexSpecifierList,Allocator>       final_type; -  typedef tuples::null_type                   ctor_args_list; -  typedef typename  -    boost::detail::allocator::rebind_to< -      Allocator, -      typename Allocator::value_type>::type   final_allocator_type; -  typedef mpl::vector0<>                      index_type_list; -  typedef mpl::vector0<>                      iterator_type_list; -  typedef mpl::vector0<>                      const_iterator_type_list; -  typedef copy_map< -    final_node_type, -    final_allocator_type>                     copy_map_type; - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  typedef index_saver< -    node_type, -    final_allocator_type>                     index_saver_type; -  typedef index_loader< -    node_type, -    final_node_type, -    final_allocator_type>                     index_loader_type; -#endif - -private: -  typedef typename call_traits<Value>::param_type value_param_type; - -protected: -  explicit index_base(const ctor_args_list&,const Allocator&){} - -  void copy_( -    const index_base<Value,IndexSpecifierList,Allocator>&,const copy_map_type&) -  {} - -  node_type* insert_(value_param_type v,node_type* x) -  { -    boost::detail::allocator::construct(&x->value(),v); -    return x; -  } - -  node_type* insert_(value_param_type v,node_type*,node_type* x) -  { -    boost::detail::allocator::construct(&x->value(),v); -    return x; -  } - -  void erase_(node_type* x) -  { -    boost::detail::allocator::destroy(&x->value()); -  } - -  void delete_node_(node_type* x) -  { -    boost::detail::allocator::destroy(&x->value()); -  } - -  void clear_(){} - -  void swap_(index_base<Value,IndexSpecifierList,Allocator>&){} - -  bool replace_(value_param_type v,node_type* x) -  { -    x->value()=v; -    return true; -  } - -  bool modify_(node_type*){return true;} - -  bool modify_rollback_(node_type*){return true;} - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  /* serialization */ - -  template<typename Archive> -  void save_(Archive&,const unsigned int,const index_saver_type&)const{} - -  template<typename Archive> -  void load_(Archive&,const unsigned int,const index_loader_type&){} -#endif - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING) -  /* invariant stuff */ - -  bool invariant_()const{return true;} -#endif - -  /* access to backbone memfuns of Final class */ - -  final_type&       final(){return *static_cast<final_type*>(this);} -  const final_type& final()const{return *static_cast<const final_type*>(this);} - -  final_node_type* final_header()const{return final().header();} - -  bool        final_empty_()const{return final().empty_();} -  std::size_t final_size_()const{return final().size_();} -  std::size_t final_max_size_()const{return final().max_size_();} - -  std::pair<final_node_type*,bool> final_insert_(value_param_type x) -    {return final().insert_(x);} -  std::pair<final_node_type*,bool> final_insert_( -    value_param_type x,final_node_type* position) -    {return final().insert_(x,position);} - -  void final_erase_(final_node_type* x){final().erase_(x);} - -  void final_delete_node_(final_node_type* x){final().delete_node_(x);} -  void final_delete_all_nodes_(){final().delete_all_nodes_();} -  void final_clear_(){final().clear_();} - -  void final_swap_(final_type& x){final().swap_(x);} -  bool final_replace_( -    value_param_type k,final_node_type* x) -    {return final().replace_(k,x);} - -  template<typename Modifier> -  bool final_modify_(Modifier& mod,final_node_type* x) -    {return final().modify_(mod,x);} - -  template<typename Modifier,typename Rollback> -  bool final_modify_(Modifier& mod,Rollback& back,final_node_type* x) -    {return final().modify_(mod,back,x);} - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING) -  void final_check_invariant_()const{final().check_invariant_();} -#endif -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/index_loader.hpp b/3rdParty/Boost/src/boost/multi_index/detail/index_loader.hpp deleted file mode 100644 index 001c01b..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/index_loader.hpp +++ /dev/null @@ -1,138 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_INDEX_LOADER_HPP -#define BOOST_MULTI_INDEX_DETAIL_INDEX_LOADER_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <algorithm> -#include <boost/archive/archive_exception.hpp> -#include <boost/noncopyable.hpp> -#include <boost/multi_index/detail/auto_space.hpp> -#include <boost/serialization/nvp.hpp> -#include <boost/throw_exception.hpp>  -#include <cstddef> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* Counterpart of index_saver (check index_saver.hpp for serialization - * details.)* multi_index_container is in charge of supplying the info about - * the base sequence, and each index can subsequently load itself using the - * const interface of index_loader. - */ - -template<typename Node,typename FinalNode,typename Allocator> -class index_loader:private noncopyable -{ -public: -  index_loader(const Allocator& al,std::size_t size): -    spc(al,size),size_(size),n(0),sorted(false) -  { -  } - -  template<class Archive> -  void add(Node* node,Archive& ar,const unsigned int) -  { -    ar>>serialization::make_nvp("position",*node); -    entries()[n++]=node; -  } - -  template<class Archive> -  void add_track(Node* node,Archive& ar,const unsigned int) -  { -    ar>>serialization::make_nvp("position",*node); -  } - -  /* A rearranger is passed two nodes, and is expected to -   * reposition the second after the first. -   * If the first node is 0, then the second should be moved -   * to the beginning of the sequence. -   */ - -  template<typename Rearranger,class Archive> -  void load(Rearranger r,Archive& ar,const unsigned int)const -  { -    FinalNode* prev=unchecked_load_node(ar); -    if(!prev)return; - -    if(!sorted){ -      std::sort(entries(),entries()+size_); -      sorted=true; -    } - -    check_node(prev); - -    for(;;){ -      for(;;){ -        FinalNode* node=load_node(ar); -        if(!node)break; - -        if(node==prev)prev=0; -        r(prev,node); - -        prev=node; -      } -      prev=load_node(ar); -      if(!prev)break; -    } -  } - -private: -  Node** entries()const{return &*spc.data();} - -  /* We try to delay sorting as much as possible just in case it -   * is not necessary, hence this version of load_node. -   */ - -  template<class Archive> -  FinalNode* unchecked_load_node(Archive& ar)const -  { -    Node* node=0; -    ar>>serialization::make_nvp("pointer",node); -    return static_cast<FinalNode*>(node); -  } - -  template<class Archive> -  FinalNode* load_node(Archive& ar)const -  { -    Node* node=0; -    ar>>serialization::make_nvp("pointer",node); -    check_node(node); -    return static_cast<FinalNode*>(node); -  } - -  void check_node(Node* node)const -  { -    if(node!=0&&!std::binary_search(entries(),entries()+size_,node)){ -      throw_exception( -        archive::archive_exception( -          archive::archive_exception::other_exception)); -    } -  } - -  auto_space<Node*,Allocator> spc; -  std::size_t                 size_; -  std::size_t                 n; -  mutable bool                sorted; -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/index_matcher.hpp b/3rdParty/Boost/src/boost/multi_index/detail/index_matcher.hpp deleted file mode 100644 index 5828137..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/index_matcher.hpp +++ /dev/null @@ -1,248 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_INDEX_MATCHER_HPP -#define BOOST_MULTI_INDEX_DETAIL_INDEX_MATCHER_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <algorithm> -#include <boost/noncopyable.hpp> -#include <boost/multi_index/detail/auto_space.hpp> -#include <cstddef> -#include <functional> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* index_matcher compares a sequence of elements against a - * base sequence, identifying those elements that belong to the - * longest subsequence which is ordered with respect to the base. - * For instance, if the base sequence is: - * - *   0 1 2 3 4 5 6 7 8 9 - * - * and the compared sequence (not necesarilly the same length): - * - *   1 4 2 3 0 7 8 9 - * - * the elements of the longest ordered subsequence are: - * - *   1 2 3 7 8 9 - *  - * The algorithm for obtaining such a subsequence is called - * Patience Sorting, described in ch. 1 of: - *   Aldous, D., Diaconis, P.: "Longest increasing subsequences: from - *   patience sorting to the Baik-Deift-Johansson Theorem", Bulletin - *   of the American Mathematical Society, vol. 36, no 4, pp. 413-432, - *   July 1999. - *   http://www.ams.org/bull/1999-36-04/S0273-0979-99-00796-X/ - *   S0273-0979-99-00796-X.pdf - * - * This implementation is not fully generic since it assumes that - * the sequences given are pointed to by index iterators (having a - * get_node() memfun.) - */ - -namespace index_matcher{ - -/* The algorithm stores the nodes of the base sequence and a number - * of "piles" that are dynamically updated during the calculation - * stage. From a logical point of view, nodes form an independent - * sequence from piles. They are stored together so as to minimize - * allocated memory. - */ - -struct entry -{ -  entry(void* node_,std::size_t pos_=0):node(node_),pos(pos_){} - -  /* node stuff */ - -  void*       node; -  std::size_t pos; -  entry*      previous; -  bool        ordered; - -  struct less_by_node -  { -    bool operator()( -      const entry& x,const entry& y)const -    { -      return std::less<void*>()(x.node,y.node); -    } -  }; - -  /* pile stuff */ - -  std::size_t pile_top; -  entry*      pile_top_entry; - -  struct less_by_pile_top -  { -    bool operator()( -      const entry& x,const entry& y)const -    { -      return x.pile_top<y.pile_top; -    } -  }; -}; - -/* common code operating on void *'s */ - -template<typename Allocator> -class algorithm_base:private noncopyable -{ -protected: -  algorithm_base(const Allocator& al,std::size_t size): -    spc(al,size),size_(size),n(0),sorted(false) -  { -  } - -  void add(void* node) -  { -    entries()[n]=entry(node,n); -    ++n; -  } - -  void begin_algorithm()const -  { -    if(!sorted){ -      std::sort(entries(),entries()+size_,entry::less_by_node()); -      sorted=true; -    } -    num_piles=0; -  } - -  void add_node_to_algorithm(void* node)const -  { -    entry* ent= -      std::lower_bound( -        entries(),entries()+size_, -        entry(node),entry::less_by_node()); /* localize entry */ -    ent->ordered=false; -    std::size_t n=ent->pos;                 /* get its position */ - -    entry dummy(0); -    dummy.pile_top=n; - -    entry* pile_ent=                        /* find the first available pile */ -      std::lower_bound(                     /* to stack the entry            */ -        entries(),entries()+num_piles, -        dummy,entry::less_by_pile_top()); - -    pile_ent->pile_top=n;                   /* stack the entry */ -    pile_ent->pile_top_entry=ent;         - -    /* if not the first pile, link entry to top of the preceding pile */ -    if(pile_ent>&entries()[0]){  -      ent->previous=(pile_ent-1)->pile_top_entry; -    } - -    if(pile_ent==&entries()[num_piles]){    /* new pile? */ -      ++num_piles; -    } -  } - -  void finish_algorithm()const -  { -    if(num_piles>0){ -      /* Mark those elements which are in their correct position, i.e. those -       * belonging to the longest increasing subsequence. These are those -       * elements linked from the top of the last pile. -       */ - -      entry* ent=entries()[num_piles-1].pile_top_entry; -      for(std::size_t n=num_piles;n--;){ -        ent->ordered=true; -        ent=ent->previous; -      } -    } -  } - -  bool is_ordered(void * node)const -  { -    return std::lower_bound( -      entries(),entries()+size_, -      entry(node),entry::less_by_node())->ordered; -  } - -private: -  entry* entries()const{return &*spc.data();} - -  auto_space<entry,Allocator> spc; -  std::size_t                 size_; -  std::size_t                 n; -  mutable bool                sorted; -  mutable std::size_t         num_piles; -}; - -/* The algorithm has three phases: - *   - Initialization, during which the nodes of the base sequence are added. - *   - Execution. - *   - Results querying, through the is_ordered memfun. - */ - -template<typename Node,typename Allocator> -class algorithm:private algorithm_base<Allocator> -{ -  typedef algorithm_base<Allocator> super; - -public: -  algorithm(const Allocator& al,std::size_t size):super(al,size){} - -  void add(Node* node) -  { -    super::add(node); -  } - -  template<typename IndexIterator> -  void execute(IndexIterator first,IndexIterator last)const -  { -    super::begin_algorithm(); - -    for(IndexIterator it=first;it!=last;++it){ -      add_node_to_algorithm(get_node(it)); -    } - -    super::finish_algorithm(); -  } - -  bool is_ordered(Node* node)const -  { -    return super::is_ordered(node); -  } - -private: -  void add_node_to_algorithm(Node* node)const -  { -    super::add_node_to_algorithm(node); -  } - -  template<typename IndexIterator> -  static Node* get_node(IndexIterator it) -  { -    return static_cast<Node*>(it.get_node()); -  } -}; - -} /* namespace multi_index::detail::index_matcher */ - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/index_node_base.hpp b/3rdParty/Boost/src/boost/multi_index/detail/index_node_base.hpp deleted file mode 100644 index ee9f1c6..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/index_node_base.hpp +++ /dev/null @@ -1,135 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_INDEX_NODE_BASE_HPP -#define BOOST_MULTI_INDEX_DETAIL_INDEX_NODE_BASE_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/type_traits/aligned_storage.hpp> -#include <boost/type_traits/alignment_of.hpp>  - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -#include <boost/archive/archive_exception.hpp> -#include <boost/serialization/access.hpp> -#include <boost/throw_exception.hpp>  -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* index_node_base tops the node hierarchy of multi_index_container. It holds - * the value of the element contained. - */ - -template<typename Value> -struct pod_value_holder -{ -  typename aligned_storage< -    sizeof(Value), -    alignment_of<Value>::value -  >::type                      space; -}; - -template<typename Value,typename Allocator> -struct index_node_base:private pod_value_holder<Value> -{ -  typedef index_node_base base_type; /* used for serialization purposes */ -  typedef Value           value_type; -  typedef Allocator       allocator_type; - -  value_type& value() -  { -    return *static_cast<value_type*>( -      static_cast<void*>(&this->space)); -  } - -  const value_type& value()const -  { -    return *static_cast<const value_type*>( -      static_cast<const void*>(&this->space)); -  } - -  static index_node_base* from_value(const value_type* p) -  { -    return static_cast<index_node_base *>( -      reinterpret_cast<pod_value_holder<Value>*>( /* std 9.2.17 */ -        const_cast<value_type*>(p)));  -  } - -private: -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  friend class boost::serialization::access; -   -  /* nodes do not emit any kind of serialization info. They are -   * fed to Boost.Serialization so that pointers to nodes are -   * tracked correctly. -   */ - -  template<class Archive> -  void serialize(Archive&,const unsigned int) -  { -  } -#endif -}; - -template<typename Node,typename Value> -Node* node_from_value( -  const Value* p -  BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Node)) -{ -  typedef typename Node::allocator_type allocator_type; -  return static_cast<Node*>( -    index_node_base<Value,allocator_type>::from_value(p)); -} - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -/* Index nodes never get constructed directly by Boost.Serialization, - * as archives are always fed pointers to previously existent - * nodes. So, if this is called it means we are dealing with a - * somehow invalid archive. - */ - -#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) -namespace serialization{ -#else -namespace multi_index{ -namespace detail{ -#endif - -template<class Archive,typename Value,typename Allocator> -inline void load_construct_data( -  Archive&,boost::multi_index::detail::index_node_base<Value,Allocator>*, -  const unsigned int) -{ -  throw_exception( -    archive::archive_exception(archive::archive_exception::other_exception)); -} - -#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) -} /* namespace serialization */ -#else -} /* namespace multi_index::detail */ -} /* namespace multi_index */ -#endif - -#endif - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/index_saver.hpp b/3rdParty/Boost/src/boost/multi_index/detail/index_saver.hpp deleted file mode 100644 index d9e6bc7..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/index_saver.hpp +++ /dev/null @@ -1,135 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_INDEX_SAVER_HPP -#define BOOST_MULTI_INDEX_DETAIL_INDEX_SAVER_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/multi_index/detail/index_matcher.hpp> -#include <boost/noncopyable.hpp> -#include <boost/serialization/nvp.hpp> -#include <cstddef> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* index_saver accepts a base sequence of previously saved elements - * and saves a possibly reordered subsequence in an efficient manner, - * serializing only the information needed to rearrange the subsequence - * based on the original order of the base. - * multi_index_container is in charge of supplying the info about the - * base sequence, and each index can subsequently save itself using the - * const interface of index_saver. - */ - -template<typename Node,typename Allocator> -class index_saver:private noncopyable -{ -public: -  index_saver(const Allocator& al,std::size_t size):alg(al,size){} - -  template<class Archive> -  void add(Node* node,Archive& ar,const unsigned int) -  { -    ar<<serialization::make_nvp("position",*node); -    alg.add(node); -  } - -  template<class Archive> -  void add_track(Node* node,Archive& ar,const unsigned int) -  { -    ar<<serialization::make_nvp("position",*node); -  } - -  template<typename IndexIterator,class Archive> -  void save( -    IndexIterator first,IndexIterator last,Archive& ar, -    const unsigned int)const -  { -    /* calculate ordered positions */ - -    alg.execute(first,last); - -    /* Given a consecutive subsequence of displaced elements -     * x1,...,xn, the following information is serialized: -     * -     *   p0,p1,...,pn,0 -     * -     * where pi is a pointer to xi and p0 is a pointer to the element -     * preceding x1. Crealy, from this information is possible to -     * restore the original order on loading time. If x1 is the first -     * element in the sequence, the following is serialized instead: -     * -     *   p1,p1,...,pn,0 -     * -     * For each subsequence of n elements, n+2 pointers are serialized. -     * An optimization policy is applied: consider for instance the -     * sequence -     * -     *   a,B,c,D -     *  -     * where B and D are displaced, but c is in its correct position. -     * Applying the schema described above we would serialize 6 pointers: -     * -     *  p(a),p(B),0 -     *  p(c),p(D),0 -     *  -     * but this can be reduced to 5 pointers by treating c as a displaced -     * element: -     * -     *  p(a),p(B),p(c),p(D),0 -     */ - -    std::size_t last_saved=3; /* distance to last pointer saved */ -    for(IndexIterator it=first,prev=first;it!=last;prev=it++,++last_saved){ -      if(!alg.is_ordered(get_node(it))){ -        if(last_saved>1)save_node(get_node(prev),ar); -        save_node(get_node(it),ar); -        last_saved=0; -      } -      else if(last_saved==2)save_node(null_node(),ar); -    } -    if(last_saved<=2)save_node(null_node(),ar); - -    /* marks the end of the serialization info for [first,last) */ - -    save_node(null_node(),ar); -  } - -private: -  template<typename IndexIterator> -  static Node* get_node(IndexIterator it) -  { -    return it.get_node(); -  } - -  static Node* null_node(){return 0;} - -  template<typename Archive> -  static void save_node(Node* node,Archive& ar) -  { -    ar<<serialization::make_nvp("pointer",node); -  } - -  index_matcher::algorithm<Node,Allocator> alg; -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/invariant_assert.hpp b/3rdParty/Boost/src/boost/multi_index/detail/invariant_assert.hpp deleted file mode 100644 index d5fc256..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/invariant_assert.hpp +++ /dev/null @@ -1,21 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_INVARIANT_ASSERT_HPP -#define BOOST_MULTI_INDEX_DETAIL_INVARIANT_ASSERT_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#if !defined(BOOST_MULTI_INDEX_INVARIANT_ASSERT) -#include <boost/assert.hpp> -#define BOOST_MULTI_INDEX_INVARIANT_ASSERT BOOST_ASSERT -#endif - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/is_index_list.hpp b/3rdParty/Boost/src/boost/multi_index/detail/is_index_list.hpp deleted file mode 100644 index 9ee30ba..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/is_index_list.hpp +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_IS_INDEX_LIST_HPP -#define BOOST_MULTI_INDEX_DETAIL_IS_INDEX_LIST_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/mpl/empty.hpp> -#include <boost/mpl/is_sequence.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -template<typename T> -struct is_index_list -{ -  BOOST_STATIC_CONSTANT(bool,mpl_sequence=mpl::is_sequence<T>::value); -  BOOST_STATIC_CONSTANT(bool,non_empty=!mpl::empty<T>::value); -  BOOST_STATIC_CONSTANT(bool,value=mpl_sequence&&non_empty); -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/iter_adaptor.hpp b/3rdParty/Boost/src/boost/multi_index/detail/iter_adaptor.hpp deleted file mode 100644 index 0346184..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/iter_adaptor.hpp +++ /dev/null @@ -1,325 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_ITER_ADAPTOR_HPP -#define BOOST_MULTI_INDEX_DETAIL_ITER_ADAPTOR_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/mpl/apply.hpp> -#include <boost/multi_index/detail/prevent_eti.hpp> -#include <boost/operators.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* Poor man's version of boost::iterator_adaptor. Used instead of the - * original as compile times for the latter are significantly higher. - * The interface is not replicated exactly, only to the extent necessary - * for internal consumption. - */ - -/* NB. The purpose of the (non-inclass) global operators ==, < and - defined - * above is to partially alleviate a problem of MSVC++ 6.0 by * which - * friend-injected operators on T are not visible if T is instantiated only - * in template code where T is a dependent type. - */ - -class iter_adaptor_access -{ -public: -  template<class Class> -    static typename Class::reference dereference(const Class& x) -  { -    return x.dereference(); -  } - -  template<class Class> -  static bool equal(const Class& x,const Class& y) -  { -    return x.equal(y); -  } - -  template<class Class> -  static void increment(Class& x) -  { -    x.increment(); -  } - -  template<class Class> -  static void decrement(Class& x) -  { -    x.decrement(); -  } - -  template<class Class> -  static void advance(Class& x,typename Class::difference_type n) -  { -    x.advance(n); -  } - -  template<class Class> -  static typename Class::difference_type distance_to( -    const Class& x,const Class& y) -  { -    return x.distance_to(y); -  } -}; - -template<typename Category> -struct iter_adaptor_selector; - -template<class Derived,class Base> -class forward_iter_adaptor_base: -  public forward_iterator_helper< -    Derived, -    typename Base::value_type, -    typename Base::difference_type, -    typename Base::pointer, -    typename Base::reference> -{ -public: -  typedef typename Base::reference reference; - -  reference operator*()const -  { -    return iter_adaptor_access::dereference(final()); -  } - -  friend bool operator==(const Derived& x,const Derived& y) -  { -    return iter_adaptor_access::equal(x,y); -  } - -  Derived& operator++() -  { -    iter_adaptor_access::increment(final()); -    return final(); -  } - -private: -  Derived& final(){return *static_cast<Derived*>(this);} -  const Derived& final()const{return *static_cast<const Derived*>(this);} -}; - -template<class Derived,class Base> -bool operator==( -  const forward_iter_adaptor_base<Derived,Base>& x, -  const forward_iter_adaptor_base<Derived,Base>& y) -{ -  return iter_adaptor_access::equal( -    static_cast<const Derived&>(x),static_cast<const Derived&>(y)); -} - -template<> -struct iter_adaptor_selector<std::forward_iterator_tag> -{ -  template<class Derived,class Base> -  struct apply -  { -    typedef forward_iter_adaptor_base<Derived,Base> type; -  }; -}; - -template<class Derived,class Base> -class bidirectional_iter_adaptor_base: -  public bidirectional_iterator_helper< -    Derived, -    typename Base::value_type, -    typename Base::difference_type, -    typename Base::pointer, -    typename Base::reference> -{ -public: -  typedef typename Base::reference reference; - -  reference operator*()const -  { -    return iter_adaptor_access::dereference(final()); -  } - -  friend bool operator==(const Derived& x,const Derived& y) -  { -    return iter_adaptor_access::equal(x,y); -  } - -  Derived& operator++() -  { -    iter_adaptor_access::increment(final()); -    return final(); -  } - -  Derived& operator--() -  { -    iter_adaptor_access::decrement(final()); -    return final(); -  } - -private: -  Derived& final(){return *static_cast<Derived*>(this);} -  const Derived& final()const{return *static_cast<const Derived*>(this);} -}; - -template<class Derived,class Base> -bool operator==( -  const bidirectional_iter_adaptor_base<Derived,Base>& x, -  const bidirectional_iter_adaptor_base<Derived,Base>& y) -{ -  return iter_adaptor_access::equal( -    static_cast<const Derived&>(x),static_cast<const Derived&>(y)); -} - -template<> -struct iter_adaptor_selector<std::bidirectional_iterator_tag> -{ -  template<class Derived,class Base> -  struct apply -  { -    typedef bidirectional_iter_adaptor_base<Derived,Base> type; -  }; -}; - -template<class Derived,class Base> -class random_access_iter_adaptor_base: -  public random_access_iterator_helper< -    Derived, -    typename Base::value_type, -    typename Base::difference_type, -    typename Base::pointer, -    typename Base::reference> -{ -public: -  typedef typename Base::reference       reference; -  typedef typename Base::difference_type difference_type; - -  reference operator*()const -  { -    return iter_adaptor_access::dereference(final()); -  } - -  friend bool operator==(const Derived& x,const Derived& y) -  { -    return iter_adaptor_access::equal(x,y); -  } - -  friend bool operator<(const Derived& x,const Derived& y) -  { -    return iter_adaptor_access::distance_to(x,y)>0; -  } - -  Derived& operator++() -  { -    iter_adaptor_access::increment(final()); -    return final(); -  } - -  Derived& operator--() -  { -    iter_adaptor_access::decrement(final()); -    return final(); -  } - -  Derived& operator+=(difference_type n) -  { -    iter_adaptor_access::advance(final(),n); -    return final(); -  } - -  Derived& operator-=(difference_type n) -  { -    iter_adaptor_access::advance(final(),-n); -    return final(); -  } - -  friend difference_type operator-(const Derived& x,const Derived& y) -  { -    return iter_adaptor_access::distance_to(y,x); -  } - -private: -  Derived& final(){return *static_cast<Derived*>(this);} -  const Derived& final()const{return *static_cast<const Derived*>(this);} -}; - -template<class Derived,class Base> -bool operator==( -  const random_access_iter_adaptor_base<Derived,Base>& x, -  const random_access_iter_adaptor_base<Derived,Base>& y) -{ -  return iter_adaptor_access::equal( -    static_cast<const Derived&>(x),static_cast<const Derived&>(y)); -} - -template<class Derived,class Base> -bool operator<( -  const random_access_iter_adaptor_base<Derived,Base>& x, -  const random_access_iter_adaptor_base<Derived,Base>& y) -{ -  return iter_adaptor_access::distance_to( -    static_cast<const Derived&>(x),static_cast<const Derived&>(y))>0; -} - -template<class Derived,class Base> -typename random_access_iter_adaptor_base<Derived,Base>::difference_type -operator-( -  const random_access_iter_adaptor_base<Derived,Base>& x, -  const random_access_iter_adaptor_base<Derived,Base>& y) -{ -  return iter_adaptor_access::distance_to( -    static_cast<const Derived&>(y),static_cast<const Derived&>(x)); -} - -template<> -struct iter_adaptor_selector<std::random_access_iterator_tag> -{ -  template<class Derived,class Base> -  struct apply -  { -    typedef random_access_iter_adaptor_base<Derived,Base> type; -  }; -}; - -template<class Derived,class Base> -struct iter_adaptor_base -{ -  typedef iter_adaptor_selector< -    typename Base::iterator_category>        selector; -  typedef typename prevent_eti< -    selector, -    typename mpl::apply2< -      selector,Derived,Base>::type -  >::type                                    type; -}; - -template<class Derived,class Base> -class iter_adaptor:public iter_adaptor_base<Derived,Base>::type -{ -protected: -  iter_adaptor(){} -  explicit iter_adaptor(const Base& b_):b(b_){} - -  const Base& base_reference()const{return b;} -  Base&       base_reference(){return b;} - -private: -  Base b; -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/modify_key_adaptor.hpp b/3rdParty/Boost/src/boost/multi_index/detail/modify_key_adaptor.hpp deleted file mode 100644 index 8a93b96..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/modify_key_adaptor.hpp +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_MODIFY_KEY_ADAPTOR_HPP -#define BOOST_MULTI_INDEX_DETAIL_MODIFY_KEY_ADAPTOR_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* Functional adaptor to resolve modify_key as a call to modify. - * Preferred over compose_f_gx and stuff cause it eliminates problems - * with references to references, dealing with function pointers, etc. - */ - -template<typename Fun,typename Value,typename KeyFromValue> -struct modify_key_adaptor -{ - -  modify_key_adaptor(Fun f_,KeyFromValue kfv_):f(f_),kfv(kfv_){} - -  void operator()(Value& x) -  { -    f(kfv(x)); -  } - -private: -  Fun          f; -  KeyFromValue kfv; -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/msvc_index_specifier.hpp b/3rdParty/Boost/src/boost/multi_index/detail/msvc_index_specifier.hpp deleted file mode 100644 index 4766e53..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/msvc_index_specifier.hpp +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_MSVC_INDEX_SPECIFIER_HPP -#define BOOST_MULTI_INDEX_DETAIL_MSVC_INDEX_SPECIFIER_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/detail/workaround.hpp> - -#if BOOST_WORKAROUND(BOOST_MSVC,<1310) -/* Workaround for a problem in MSVC with dependent template typedefs - * when accesing index specifiers. - * Modeled after <boost/mpl/aux_/msvc_dtw.hpp> (thanks, Aleksey!) - */ - -#include <boost/mpl/aux_/msvc_never_true.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -template<typename IndexSpecifier> -struct msvc_index_specifier -{ -  template<bool> struct fake_index_type:IndexSpecifier{}; -  template<> struct fake_index_type<true> -  { -    template<typename Super> -    struct node_class{}; - -    template<typename Super> -    struct index_class{}; -  }; - -  template<typename Super> -  struct result_node_class: -    fake_index_type<mpl::aux::msvc_never_true<IndexSpecifier>::value>:: -      template node_class<Super> -  { -  }; - -  template<typename Super> -  struct result_index_class: -    fake_index_type<mpl::aux::msvc_never_true<IndexSpecifier>::value>:: -      template index_class<Super> -  { -  }; -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif /* workaround */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/no_duplicate_tags.hpp b/3rdParty/Boost/src/boost/multi_index/detail/no_duplicate_tags.hpp deleted file mode 100644 index 9b56e83..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/no_duplicate_tags.hpp +++ /dev/null @@ -1,97 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_NO_DUPLICATE_TAGS_HPP -#define BOOST_MULTI_INDEX_DETAIL_NO_DUPLICATE_TAGS_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/mpl/fold.hpp> -#include <boost/mpl/set/set0.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* no_duplicate_tags check at compile-time that a tag list - * has no duplicate tags. - * The algorithm deserves some explanation: tags - * are sequentially inserted into a mpl::set if they were - * not already present. Due to the magic of mpl::set - * (mpl::has_key is contant time), this operation takes linear - * time, and even MSVC++ 6.5 handles it gracefully (other obvious - * solutions are quadratic.) - */ - -struct duplicate_tag_mark{}; - -struct duplicate_tag_marker -{ -  template <typename MplSet,typename Tag> -  struct apply -  { -    typedef mpl::s_item< -      typename mpl::if_<mpl::has_key<MplSet,Tag>,duplicate_tag_mark,Tag>::type, -      MplSet -    > type; -  }; -}; - -template<typename TagList> -struct no_duplicate_tags -{ -  typedef typename mpl::fold< -    TagList, -    mpl::set0<>, -    duplicate_tag_marker -  >::type aux; -  -  BOOST_STATIC_CONSTANT( -    bool,value=!(mpl::has_key<aux,duplicate_tag_mark>::value)); -}; - -/* Variant for an index list: duplication is checked - * across all the indices. - */ - -struct duplicate_tag_list_marker -{ -  template <typename MplSet,typename Index> -  struct apply:mpl::fold< -    BOOST_DEDUCED_TYPENAME Index::tag_list, -    MplSet, -    duplicate_tag_marker> -  { -  }; -}; - -template<typename IndexList> -struct no_duplicate_tags_in_index_list -{ -  typedef typename mpl::fold< -    IndexList, -    mpl::set0<>, -    duplicate_tag_list_marker -  >::type aux; -  -  BOOST_STATIC_CONSTANT( -    bool,value=!(mpl::has_key<aux,duplicate_tag_mark>::value)); -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/node_type.hpp b/3rdParty/Boost/src/boost/multi_index/detail/node_type.hpp deleted file mode 100644 index 0e87261..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/node_type.hpp +++ /dev/null @@ -1,79 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_NODE_TYPE_HPP -#define BOOST_MULTI_INDEX_DETAIL_NODE_TYPE_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/detail/workaround.hpp> -#include <boost/mpl/bind.hpp> -#include <boost/mpl/reverse_iter_fold.hpp> -#include <boost/mpl/deref.hpp> -#include <boost/multi_index_container_fwd.hpp> -#include <boost/multi_index/detail/header_holder.hpp> -#include <boost/multi_index/detail/index_node_base.hpp> -#include <boost/multi_index/detail/is_index_list.hpp> -#include <boost/multi_index/detail/msvc_index_specifier.hpp> -#include <boost/static_assert.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* MPL machinery to construct the internal node type associated to an - * index list. - */ - -#if BOOST_WORKAROUND(BOOST_MSVC,<1310) -struct index_node_applier -{ -  template<typename IndexSpecifierIterator,typename Super> -  struct apply: -    msvc_index_specifier< mpl::deref<IndexSpecifierIterator>::type >:: -      template result_node_class<Super> -  { -  };  -}; -#else -struct index_node_applier -{ -  template<typename IndexSpecifierIterator,typename Super> -  struct apply -  { -    typedef typename mpl::deref<IndexSpecifierIterator>::type index_specifier; -    typedef typename index_specifier:: -      BOOST_NESTED_TEMPLATE node_class<Super>::type type; -  };  -}; -#endif - -template<typename Value,typename IndexSpecifierList,typename Allocator> -struct multi_index_node_type -{ -  BOOST_STATIC_ASSERT(detail::is_index_list<IndexSpecifierList>::value); - -  typedef typename mpl::reverse_iter_fold< -    IndexSpecifierList, -    index_node_base<Value,Allocator>, -    mpl::bind2<index_node_applier,mpl::_2,mpl::_1> -  >::type type; -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/ord_index_args.hpp b/3rdParty/Boost/src/boost/multi_index/detail/ord_index_args.hpp deleted file mode 100644 index bb8eb41..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/ord_index_args.hpp +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_ORD_INDEX_ARGS_HPP -#define BOOST_MULTI_INDEX_DETAIL_ORD_INDEX_ARGS_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/mpl/aux_/na.hpp> -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/identity.hpp> -#include <boost/mpl/if.hpp> -#include <boost/multi_index/tag.hpp> -#include <boost/static_assert.hpp> -#include <boost/type_traits/is_same.hpp> -#include <functional> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* Oredered index specifiers can be instantiated in two forms: - * - *   (ordered_unique|ordered_non_unique)< - *     KeyFromValue,Compare=std::less<KeyFromValue::result_type> > - *   (ordered_unique|ordered_non_unique)< - *     TagList,KeyFromValue,Compare=std::less<KeyFromValue::result_type> > - * - * index_args implements the machinery to accept this argument-dependent - * polymorphism. - */ - -template<typename KeyFromValue> -struct index_args_default_compare -{ -  typedef std::less<typename KeyFromValue::result_type> type; -}; - -template<typename Arg1,typename Arg2,typename Arg3> -struct ordered_index_args -{ -  typedef is_tag<Arg1> full_form; - -  typedef typename mpl::if_< -    full_form, -    Arg1, -    tag< > >::type                                   tag_list_type; -  typedef typename mpl::if_< -    full_form, -    Arg2, -    Arg1>::type                                      key_from_value_type; -  typedef typename mpl::if_< -    full_form, -    Arg3, -    Arg2>::type                                      supplied_compare_type; -  typedef typename mpl::eval_if< -    mpl::is_na<supplied_compare_type>, -    index_args_default_compare<key_from_value_type>, -    mpl::identity<supplied_compare_type> -  >::type                                            compare_type; - -  BOOST_STATIC_ASSERT(is_tag<tag_list_type>::value); -  BOOST_STATIC_ASSERT(!mpl::is_na<key_from_value_type>::value); -  BOOST_STATIC_ASSERT(!mpl::is_na<compare_type>::value); -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/ord_index_node.hpp b/3rdParty/Boost/src/boost/multi_index/detail/ord_index_node.hpp deleted file mode 100644 index edc4329..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/ord_index_node.hpp +++ /dev/null @@ -1,650 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - * - * The internal implementation of red-black trees is based on that of SGI STL - * stl_tree.h file:  - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation.  Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose.  It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation.  Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose.  It is provided "as is" without express or implied warranty. - * - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_ORD_INDEX_NODE_HPP -#define BOOST_MULTI_INDEX_DETAIL_ORD_INDEX_NODE_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <cstddef> -#include <boost/detail/allocator_utilities.hpp> -#include <boost/multi_index/detail/prevent_eti.hpp> - -#if !defined(BOOST_MULTI_INDEX_DISABLE_COMPRESSED_ORDERED_INDEX_NODES) -#include <boost/mpl/and.hpp> -#include <boost/mpl/if.hpp> -#include <boost/multi_index/detail/uintptr_type.hpp> -#include <boost/type_traits/alignment_of.hpp> -#include <boost/type_traits/is_same.hpp> -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* definition of red-black nodes for ordered_index */ - -enum ordered_index_color{red=false,black=true}; -enum ordered_index_side{to_left=false,to_right=true}; - -template<typename Allocator> -struct ordered_index_node_impl; /* fwd decl. */ - -template<typename Allocator> -struct ordered_index_node_std_base -{ -  typedef typename prevent_eti< -    Allocator, -    typename boost::detail::allocator::rebind_to< -      Allocator, -      ordered_index_node_impl<Allocator> -    >::type -  >::type::pointer                                pointer; -  typedef typename prevent_eti< -    Allocator, -    typename boost::detail::allocator::rebind_to< -      Allocator, -      ordered_index_node_impl<Allocator> -    >::type -  >::type::const_pointer                          const_pointer; -  typedef ordered_index_color&                    color_ref; -  typedef pointer&                                parent_ref; - -  ordered_index_color& color(){return color_;} -  ordered_index_color  color()const{return color_;} -  pointer&             parent(){return parent_;} -  pointer              parent()const{return parent_;} -  pointer&             left(){return left_;} -  pointer              left()const{return left_;} -  pointer&             right(){return right_;} -  pointer              right()const{return right_;} - -private: -  ordered_index_color color_;  -  pointer             parent_; -  pointer             left_; -  pointer             right_; -}; - -#if !defined(BOOST_MULTI_INDEX_DISABLE_COMPRESSED_ORDERED_INDEX_NODES) -/* If ordered_index_node_impl has even alignment, we can use the least - * significant bit of one of the ordered_index_node_impl pointers to - * store color information. This typically reduces the size of - * ordered_index_node_impl by 25%. - */ - -#if defined(BOOST_MSVC) -/* This code casts pointers to an integer type that has been computed - * to be large enough to hold the pointer, however the metaprogramming - * logic is not always spotted by the VC++ code analyser that issues a - * long list of warnings. - */ - -#pragma warning(push) -#pragma warning(disable:4312 4311) -#endif - -template<typename Allocator> -struct ordered_index_node_compressed_base -{ -  typedef ordered_index_node_impl<Allocator>*       pointer; -  typedef const ordered_index_node_impl<Allocator>* const_pointer; - -  struct color_ref -  { -    color_ref(uintptr_type* r_):r(r_){} -     -    operator ordered_index_color()const -    { -      return ordered_index_color(*r&uintptr_type(1)); -    } -     -    color_ref& operator=(ordered_index_color c) -    { -      *r&=~uintptr_type(1); -      *r|=uintptr_type(c); -      return *this; -    } -     -    color_ref& operator=(const color_ref& x) -    { -      return operator=(x.operator ordered_index_color()); -    } -     -  private: -    uintptr_type* r; -  }; -   -  struct parent_ref -  { -    parent_ref(uintptr_type* r_):r(r_){} -     -    operator pointer()const -    { -      return (pointer)(void*)(*r&~uintptr_type(1)); -    } -     -    parent_ref& operator=(pointer p) -    { -      *r=((uintptr_type)(void*)p)|(*r&uintptr_type(1)); -      return *this; -    } -     -    parent_ref& operator=(const parent_ref& x) -    { -      return operator=(x.operator pointer()); -    } - -    pointer operator->()const -    { -      return operator pointer(); -    } - -  private: -    uintptr_type* r; -  }; -   -  color_ref           color(){return color_ref(&parentcolor_);} -  ordered_index_color color()const -  { -    return ordered_index_color(parentcolor_&std::size_t(1ul)); -  } - -  parent_ref parent(){return parent_ref(&parentcolor_);} -  pointer    parent()const -  { -    return (pointer)(void*)(parentcolor_&~uintptr_type(1)); -  } - -  pointer& left(){return left_;} -  pointer  left()const{return left_;} -  pointer& right(){return right_;} -  pointer  right()const{return right_;} - -private: -  uintptr_type parentcolor_; -  pointer      left_; -  pointer      right_; -}; -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif -#endif - -template<typename Allocator> -struct ordered_index_node_impl_base: - -#if !defined(BOOST_MULTI_INDEX_DISABLE_COMPRESSED_ORDERED_INDEX_NODES) -  mpl::if_c< -    !(has_uintptr_type::value)|| -    (alignment_of<ordered_index_node_compressed_base<Allocator> >::value%2)|| -    !(is_same< -      typename prevent_eti< -        Allocator, -        typename boost::detail::allocator::rebind_to< -          Allocator, -          ordered_index_node_impl<Allocator> -        >::type -      >::type::pointer, -      ordered_index_node_impl<Allocator>*>::value), -    ordered_index_node_std_base<Allocator>, -    ordered_index_node_compressed_base<Allocator> -  >::type -#else -  ordered_index_node_std_base<Allocator> -#endif - -{}; - -template<typename Allocator> -struct ordered_index_node_impl:ordered_index_node_impl_base<Allocator> -{ -private: -  typedef ordered_index_node_impl_base<Allocator> super; - -public: -  typedef typename super::color_ref               color_ref; -  typedef typename super::parent_ref              parent_ref; -  typedef typename super::pointer                 pointer; -  typedef typename super::const_pointer           const_pointer; - -  /* interoperability with bidir_node_iterator */ - -  static void increment(pointer& x) -  { -    if(x->right()!=pointer(0)){ -      x=x->right(); -      while(x->left()!=pointer(0))x=x->left(); -    } -    else{ -      pointer y=x->parent(); -      while(x==y->right()){ -        x=y; -        y=y->parent(); -      } -      if(x->right()!=y)x=y; -    } -  } - -  static void decrement(pointer& x) -  { -    if(x->color()==red&&x->parent()->parent()==x){ -      x=x->right(); -    } -    else if(x->left()!=pointer(0)){ -      pointer y=x->left(); -      while(y->right()!=pointer(0))y=y->right(); -      x=y; -    }else{ -      pointer y=x->parent(); -      while(x==y->left()){ -        x=y; -        y=y->parent(); -      } -      x=y; -    } -  } - -  /* algorithmic stuff */ - -  static void rotate_left(pointer x,parent_ref root) -  { -    pointer y=x->right(); -    x->right()=y->left(); -    if(y->left()!=pointer(0))y->left()->parent()=x; -    y->parent()=x->parent(); -     -    if(x==root)                    root=y; -    else if(x==x->parent()->left())x->parent()->left()=y; -    else                           x->parent()->right()=y; -    y->left()=x; -    x->parent()=y; -  } - -  static pointer minimum(pointer x) -  { -    while(x->left()!=pointer(0))x=x->left(); -    return x; -  } - -  static pointer maximum(pointer x) -  { -    while(x->right()!=pointer(0))x=x->right(); -    return x; -  } - -  static void rotate_right(pointer x,parent_ref root) -  { -    pointer y=x->left(); -    x->left()=y->right(); -    if(y->right()!=pointer(0))y->right()->parent()=x; -    y->parent()=x->parent(); - -    if(x==root)                     root=y; -    else if(x==x->parent()->right())x->parent()->right()=y; -    else                            x->parent()->left()=y; -    y->right()=x; -    x->parent()=y; -  } - -  static void rebalance(pointer x,parent_ref root) -  { -    x->color()=red; -    while(x!=root&&x->parent()->color()==red){ -      if(x->parent()==x->parent()->parent()->left()){ -        pointer y=x->parent()->parent()->right(); -        if(y!=pointer(0)&&y->color()==red){ -          x->parent()->color()=black; -          y->color()=black; -          x->parent()->parent()->color()=red; -          x=x->parent()->parent(); -        } -        else{ -          if(x==x->parent()->right()){ -            x=x->parent(); -            rotate_left(x,root); -          } -          x->parent()->color()=black; -          x->parent()->parent()->color()=red; -          rotate_right(x->parent()->parent(),root); -        } -      } -      else{ -        pointer y=x->parent()->parent()->left(); -        if(y!=pointer(0)&&y->color()==red){ -          x->parent()->color()=black; -          y->color()=black; -          x->parent()->parent()->color()=red; -          x=x->parent()->parent(); -        } -        else{ -          if(x==x->parent()->left()){ -            x=x->parent(); -            rotate_right(x,root); -          } -          x->parent()->color()=black; -          x->parent()->parent()->color()=red; -          rotate_left(x->parent()->parent(),root); -        } -      } -    } -    root->color()=black; -  } - -  static void link( -    pointer x,ordered_index_side side,pointer position,pointer header) -  { -    if(side==to_left){ -      position->left()=x;  /* also makes leftmost=x when parent==header */ -      if(position==header){ -        header->parent()=x; -        header->right()=x; -      } -      else if(position==header->left()){ -        header->left()=x;  /* maintain leftmost pointing to min node */ -      } -    } -    else{ -      position->right()=x; -      if(position==header->right()){ -        header->right()=x; /* maintain rightmost pointing to max node */ -      } -    } -    x->parent()=position; -    x->left()=pointer(0); -    x->right()=pointer(0); -    ordered_index_node_impl::rebalance(x,header->parent()); -  } - -  static pointer rebalance_for_erase( -    pointer z,parent_ref root,pointer& leftmost,pointer& rightmost) -  { -    pointer y=z; -    pointer x=pointer(0); -    pointer x_parent=pointer(0); -    if(y->left()==pointer(0)){    /* z has at most one non-null child. y==z. */ -      x=y->right();               /* x might be null */ -    } -    else{ -      if(y->right()==pointer(0)){ /* z has exactly one non-null child. y==z. */ -        x=y->left();              /* x is not null */ -      } -      else{                       /* z has two non-null children.  Set y to */ -        y=y->right();             /* z's successor. x might be null.        */ -        while(y->left()!=pointer(0))y=y->left(); -        x=y->right(); -      } -    } -    if(y!=z){ -      z->left()->parent()=y;   /* relink y in place of z. y is z's successor */ -      y->left()=z->left(); -      if(y!=z->right()){ -        x_parent=y->parent(); -        if(x!=pointer(0))x->parent()=y->parent(); -        y->parent()->left()=x; /* y must be a child of left */ -        y->right()=z->right(); -        z->right()->parent()=y; -      } -      else{ -        x_parent=y; -      } - -      if(root==z)                    root=y; -      else if(z->parent()->left()==z)z->parent()->left()=y; -      else                           z->parent()->right()=y; -      y->parent()=z->parent(); -      ordered_index_color c=y->color(); -      y->color()=z->color(); -      z->color()=c; -      y=z;                    /* y now points to node to be actually deleted */ -    } -    else{                     /* y==z */ -      x_parent=y->parent(); -      if(x!=pointer(0))x->parent()=y->parent();    -      if(root==z){ -        root=x; -      } -      else{ -        if(z->parent()->left()==z)z->parent()->left()=x; -        else                      z->parent()->right()=x; -      } -      if(leftmost==z){ -        if(z->right()==pointer(0)){ /* z->left() must be null also */ -          leftmost=z->parent(); -        } -        else{               -          leftmost=minimum(x);      /* makes leftmost==header if z==root */ -        } -      } -      if(rightmost==z){ -        if(z->left()==pointer(0)){  /* z->right() must be null also */ -          rightmost=z->parent(); -        } -        else{                   /* x==z->left() */ -          rightmost=maximum(x); /* makes rightmost==header if z==root */ -        } -      } -    } -    if(y->color()!=red){ -      while(x!=root&&(x==pointer(0)|| x->color()==black)){ -        if(x==x_parent->left()){ -          pointer w=x_parent->right(); -          if(w->color()==red){ -            w->color()=black; -            x_parent->color()=red; -            rotate_left(x_parent,root); -            w=x_parent->right(); -          } -          if((w->left()==pointer(0)||w->left()->color()==black) && -             (w->right()==pointer(0)||w->right()->color()==black)){ -            w->color()=red; -            x=x_parent; -            x_parent=x_parent->parent(); -          }  -          else{ -            if(w->right()==pointer(0 ) -                || w->right()->color()==black){ -              if(w->left()!=pointer(0)) w->left()->color()=black; -              w->color()=red; -              rotate_right(w,root); -              w=x_parent->right(); -            } -            w->color()=x_parent->color(); -            x_parent->color()=black; -            if(w->right()!=pointer(0))w->right()->color()=black; -            rotate_left(x_parent,root); -            break; -          } -        }  -        else{                   /* same as above,with right <-> left */ -          pointer w=x_parent->left(); -          if(w->color()==red){ -            w->color()=black; -            x_parent->color()=red; -            rotate_right(x_parent,root); -            w=x_parent->left(); -          } -          if((w->right()==pointer(0)||w->right()->color()==black) && -             (w->left()==pointer(0)||w->left()->color()==black)){ -            w->color()=red; -            x=x_parent; -            x_parent=x_parent->parent(); -          } -          else{ -            if(w->left()==pointer(0)||w->left()->color()==black){ -              if(w->right()!=pointer(0))w->right()->color()=black; -              w->color()=red; -              rotate_left(w,root); -              w=x_parent->left(); -            } -            w->color()=x_parent->color(); -            x_parent->color()=black; -            if(w->left()!=pointer(0))w->left()->color()=black; -            rotate_right(x_parent,root); -            break; -          } -        } -      } -      if(x!=pointer(0))x->color()=black; -    } -    return y; -  } - -  static void restore(pointer x,pointer position,pointer header) -  { -    if(position->left()==pointer(0)||position->left()==header){ -      link(x,to_left,position,header); -    } -    else{ -      decrement(position); -      link(x,to_right,position,header); -    } -  } - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING) -  /* invariant stuff */ - -  static std::size_t black_count(pointer node,pointer root) -  { -    if(node==pointer(0))return 0; -    std::size_t sum=0; -    for(;;){ -      if(node->color()==black)++sum; -      if(node==root)break; -      node=node->parent(); -    }  -    return sum; -  } -#endif -}; - -template<typename Super> -struct ordered_index_node_trampoline: -  prevent_eti< -    Super, -    ordered_index_node_impl< -      typename boost::detail::allocator::rebind_to< -        typename Super::allocator_type, -        char -      >::type -    > -  >::type -{ -  typedef typename prevent_eti< -    Super, -    ordered_index_node_impl< -      typename boost::detail::allocator::rebind_to< -        typename Super::allocator_type, -        char -      >::type -    > -  >::type impl_type; -}; - -template<typename Super> -struct ordered_index_node:Super,ordered_index_node_trampoline<Super> -{ -private: -  typedef ordered_index_node_trampoline<Super> trampoline; - -public: -  typedef typename trampoline::impl_type     impl_type; -  typedef typename trampoline::color_ref     impl_color_ref; -  typedef typename trampoline::parent_ref    impl_parent_ref; -  typedef typename trampoline::pointer       impl_pointer; -  typedef typename trampoline::const_pointer const_impl_pointer; - -  impl_color_ref      color(){return trampoline::color();} -  ordered_index_color color()const{return trampoline::color();} -  impl_parent_ref     parent(){return trampoline::parent();} -  impl_pointer        parent()const{return trampoline::parent();} -  impl_pointer&       left(){return trampoline::left();} -  impl_pointer        left()const{return trampoline::left();} -  impl_pointer&       right(){return trampoline::right();} -  impl_pointer        right()const{return trampoline::right();} - -  impl_pointer impl() -  { -    return static_cast<impl_pointer>( -      static_cast<impl_type*>(static_cast<trampoline*>(this))); -  } - -  const_impl_pointer impl()const -  { -    return static_cast<const_impl_pointer>( -      static_cast<const impl_type*>(static_cast<const trampoline*>(this))); -  } - -  static ordered_index_node* from_impl(impl_pointer x) -  { -    return static_cast<ordered_index_node*>( -      static_cast<trampoline*>(&*x)); -  } - -  static const ordered_index_node* from_impl(const_impl_pointer x) -  { -    return static_cast<const ordered_index_node*>( -      static_cast<const trampoline*>(&*x)); -  } - -  /* interoperability with bidir_node_iterator */ - -  static void increment(ordered_index_node*& x) -  { -    impl_pointer xi=x->impl(); -    trampoline::increment(xi); -    x=from_impl(xi); -  } - -  static void decrement(ordered_index_node*& x) -  { -    impl_pointer xi=x->impl(); -    trampoline::decrement(xi); -    x=from_impl(xi); -  } -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/ord_index_ops.hpp b/3rdParty/Boost/src/boost/multi_index/detail/ord_index_ops.hpp deleted file mode 100644 index caa71aa..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/ord_index_ops.hpp +++ /dev/null @@ -1,147 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - * - * The internal implementation of red-black trees is based on that of SGI STL - * stl_tree.h file:  - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation.  Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose.  It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation.  Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose.  It is provided "as is" without express or implied warranty. - * - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_ORD_INDEX_OPS_HPP -#define BOOST_MULTI_INDEX_DETAIL_ORD_INDEX_OPS_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <utility> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* Common code for index memfuns having templatized and - * non-templatized versions. - */ - -template< -  typename Node,typename KeyFromValue, -  typename CompatibleKey,typename CompatibleCompare -> -inline Node* ordered_index_find( -  Node* top,Node* y,const KeyFromValue& key,const CompatibleKey& x, -  const CompatibleCompare& comp) -{ -  Node* y0=y; - -  while (top){ -    if(!comp(key(top->value()),x)){ -      y=top; -      top=Node::from_impl(top->left()); -    } -    else top=Node::from_impl(top->right()); -  } -     -  return (y==y0||comp(x,key(y->value())))?y0:y; -} - -template< -  typename Node,typename KeyFromValue, -  typename CompatibleKey,typename CompatibleCompare -> -inline Node* ordered_index_lower_bound( -  Node* top,Node* y,const KeyFromValue& key,const CompatibleKey& x, -  const CompatibleCompare& comp) -{ -  while(top){ -    if(!comp(key(top->value()),x)){ -      y=top; -      top=Node::from_impl(top->left()); -    } -    else top=Node::from_impl(top->right()); -  } - -  return y; -} - -template< -  typename Node,typename KeyFromValue, -  typename CompatibleKey,typename CompatibleCompare -> -inline Node* ordered_index_upper_bound( -  Node* top,Node* y,const KeyFromValue& key,const CompatibleKey& x, -  const CompatibleCompare& comp) -{ -  while(top){ -    if(comp(x,key(top->value()))){ -      y=top; -      top=Node::from_impl(top->left()); -    } -    else top=Node::from_impl(top->right()); -  } - -  return y; -} - -template< -  typename Node,typename KeyFromValue, -  typename CompatibleKey,typename CompatibleCompare -> -inline std::pair<Node*,Node*> ordered_index_equal_range( -  Node* top,Node* y,const KeyFromValue& key,const CompatibleKey& x, -  const CompatibleCompare& comp) -{ -  while(top){ -    if(comp(key(top->value()),x)){ -      top=Node::from_impl(top->right()); -    } -    else if(comp(x,key(top->value()))){ -      y=top; -      top=Node::from_impl(top->left()); -    } -    else{ -      return std::pair<Node*,Node*>( -        ordered_index_lower_bound(Node::from_impl(top->left()),top,key,x,comp), -        ordered_index_upper_bound(Node::from_impl(top->right()),y,key,x,comp)); -    } -  } - -  return std::pair<Node*,Node*>(y,y); -} - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/prevent_eti.hpp b/3rdParty/Boost/src/boost/multi_index/detail/prevent_eti.hpp deleted file mode 100644 index 56c067a..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/prevent_eti.hpp +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_PREVENT_ETI_HPP -#define BOOST_MULTI_INDEX_DETAIL_PREVENT_ETI_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/detail/workaround.hpp> - -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -#include <boost/mpl/if.hpp> -#include <boost/mpl/integral_c.hpp> -#include <boost/mpl/aux_/msvc_never_true.hpp> -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -/* See - * http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Effective_MPL - * Item 5.6, Beware of the 'early template instantiation' trap. - */ - -template<typename Type,typename Construct> -struct prevent_eti -{ -  typedef typename mpl::if_< -    mpl::aux::msvc_never_true<Type>, -    mpl::integral_c<int,0>, -    Construct -  >::type type; -}; -#else -template<typename Type,typename Construct> -struct prevent_eti -{ -  typedef Construct type; -}; -#endif - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/safe_ctr_proxy.hpp b/3rdParty/Boost/src/boost/multi_index/detail/safe_ctr_proxy.hpp deleted file mode 100644 index c733f96..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/safe_ctr_proxy.hpp +++ /dev/null @@ -1,105 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_SAFE_CTR_PROXY_HPP -#define BOOST_MULTI_INDEX_DETAIL_SAFE_CTR_PROXY_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/detail/workaround.hpp> - -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -#include <boost/multi_index/detail/safe_mode.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* A safe iterator is instantiated in the form - * safe_iterator<Iterator,Container>: MSVC++ 6.0 has serious troubles with - * the resulting symbols names, given that index names (which stand for - * Container) are fairly long themselves. safe_ctr_proxy does not statically - * depend on Container, and provides the necessary methods (begin and end) to - * the safe mode framework via an abstract interface. With safe_ctr_proxy, - * instead of deriving from safe_container<Container> the following base class - * must be used: - * - *   safe_ctr_proxy_impl<Iterator,Container> - * - * where Iterator is the type of the *unsafe* iterator being wrapped. - * The corresponding safe iterator instantiation is then - *  - *   safe_iterator<Iterator,safe_ctr_proxy<Iterator> >, - * - * which does not include the name of Container. - */ - -template<typename Iterator> -class safe_ctr_proxy: -  public safe_mode::safe_container<safe_ctr_proxy<Iterator> > -{ -public: -  typedef safe_mode::safe_iterator<Iterator,safe_ctr_proxy> iterator; -  typedef iterator                                          const_iterator; - -  iterator       begin(){return begin_impl();} -  const_iterator begin()const{return begin_impl();} -  iterator       end(){return end_impl();} -  const_iterator end()const{return end_impl();} - -protected: -  virtual iterator       begin_impl()=0; -  virtual const_iterator begin_impl()const=0; -  virtual iterator       end_impl()=0; -  virtual const_iterator end_impl()const=0; -}; - -template<typename Iterator,typename Container> -class safe_ctr_proxy_impl:public safe_ctr_proxy<Iterator> -{ -  typedef safe_ctr_proxy<Iterator> super; -  typedef Container                container_type; - -public: -  typedef typename super::iterator       iterator; -  typedef typename super::const_iterator const_iterator; - -  virtual iterator       begin_impl(){return container().begin();} -  virtual const_iterator begin_impl()const{return container().begin();} -  virtual iterator       end_impl(){return container().end();} -  virtual const_iterator end_impl()const{return container().end();} - -private: -  container_type& container() -  { -    return *static_cast<container_type*>(this); -  } -   -  const container_type& container()const -  { -    return *static_cast<const container_type*>(this); -  } -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif /* workaround */ - -#endif /* BOOST_MULTI_INDEX_ENABLE_SAFE_MODE */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/safe_mode.hpp b/3rdParty/Boost/src/boost/multi_index/detail/safe_mode.hpp deleted file mode 100644 index dbfebd8..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/safe_mode.hpp +++ /dev/null @@ -1,574 +0,0 @@ -/* Copyright 2003-2009 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_SAFE_MODE_HPP -#define BOOST_MULTI_INDEX_DETAIL_SAFE_MODE_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -/* Safe mode machinery, in the spirit of Cay Hortmann's "Safe STL" - * (http://www.horstmann.com/safestl.html). - * In this mode, containers of type Container are derived from - * safe_container<Container>, and their corresponding iterators - * are wrapped with safe_iterator. These classes provide - * an internal record of which iterators are at a given moment associated - * to a given container, and properly mark the iterators as invalid - * when the container gets destroyed. - * Iterators are chained in a single attached list, whose header is - * kept by the container. More elaborate data structures would yield better - * performance, but I decided to keep complexity to a minimum since - * speed is not an issue here. - * Safe mode iterators automatically check that only proper operations - * are performed on them: for instance, an invalid iterator cannot be - * dereferenced. Additionally, a set of utilty macros and functions are - * provided that serve to implement preconditions and cooperate with - * the framework within the container. - * Iterators can also be unchecked, i.e. they do not have info about - * which container they belong in. This situation arises when the iterator - * is restored from a serialization archive: only information on the node - * is available, and it is not possible to determine to which container - * the iterator is associated to. The only sensible policy is to assume - * unchecked iterators are valid, though this can certainly generate false - * positive safe mode checks. - * This is not a full-fledged safe mode framework, and is only intended - * for use within the limits of Boost.MultiIndex. - */ - -/* Assertion macros. These resolve to no-ops if - * !defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE). - */ - -#if !defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -#undef BOOST_MULTI_INDEX_SAFE_MODE_ASSERT -#define BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(expr,error_code) ((void)0) -#else -#if !defined(BOOST_MULTI_INDEX_SAFE_MODE_ASSERT) -#include <boost/assert.hpp> -#define BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(expr,error_code) BOOST_ASSERT(expr) -#endif -#endif - -#define BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it)                           \ -  BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(                                        \ -    safe_mode::check_valid_iterator(it),                                     \ -    safe_mode::invalid_iterator); - -#define BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(it)                 \ -  BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(                                        \ -    safe_mode::check_dereferenceable_iterator(it),                           \ -    safe_mode::not_dereferenceable_iterator); - -#define BOOST_MULTI_INDEX_CHECK_INCREMENTABLE_ITERATOR(it)                   \ -  BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(                                        \ -    safe_mode::check_incrementable_iterator(it),                             \ -    safe_mode::not_incrementable_iterator); - -#define BOOST_MULTI_INDEX_CHECK_DECREMENTABLE_ITERATOR(it)                   \ -  BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(                                        \ -    safe_mode::check_decrementable_iterator(it),                             \ -    safe_mode::not_decrementable_iterator); - -#define BOOST_MULTI_INDEX_CHECK_IS_OWNER(it,cont)                            \ -  BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(                                        \ -    safe_mode::check_is_owner(it,cont),                                      \ -    safe_mode::not_owner); - -#define BOOST_MULTI_INDEX_CHECK_SAME_OWNER(it0,it1)                          \ -  BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(                                        \ -    safe_mode::check_same_owner(it0,it1),                                    \ -    safe_mode::not_same_owner); - -#define BOOST_MULTI_INDEX_CHECK_VALID_RANGE(it0,it1)                         \ -  BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(                                        \ -    safe_mode::check_valid_range(it0,it1),                                   \ -    safe_mode::invalid_range); - -#define BOOST_MULTI_INDEX_CHECK_OUTSIDE_RANGE(it,it0,it1)                    \ -  BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(                                        \ -    safe_mode::check_outside_range(it,it0,it1),                              \ -    safe_mode::inside_range); - -#define BOOST_MULTI_INDEX_CHECK_IN_BOUNDS(it,n)                              \ -  BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(                                        \ -    safe_mode::check_in_bounds(it,n),                                        \ -    safe_mode::out_of_bounds); - -#define BOOST_MULTI_INDEX_CHECK_DIFFERENT_CONTAINER(cont0,cont1)             \ -  BOOST_MULTI_INDEX_SAFE_MODE_ASSERT(                                        \ -    safe_mode::check_different_container(cont0,cont1),                       \ -    safe_mode::same_container); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <algorithm> -#include <boost/detail/iterator.hpp> -#include <boost/multi_index/detail/access_specifier.hpp> -#include <boost/multi_index/detail/iter_adaptor.hpp> -#include <boost/multi_index/safe_mode_errors.hpp> -#include <boost/noncopyable.hpp> - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -#include <boost/serialization/split_member.hpp> -#endif - -#if defined(BOOST_HAS_THREADS) -#include <boost/detail/lightweight_mutex.hpp> -#endif - -namespace boost{ - -namespace multi_index{ - -namespace safe_mode{ - -/* Checking routines. Assume the best for unchecked iterators - * (i.e. they pass the checking when there is not enough info - * to know.) - */ - -template<typename Iterator> -inline bool check_valid_iterator(const Iterator& it) -{ -  return it.valid()||it.unchecked(); -} - -template<typename Iterator> -inline bool check_dereferenceable_iterator(const Iterator& it) -{ -  return it.valid()&&it!=it.owner()->end()||it.unchecked(); -} - -template<typename Iterator> -inline bool check_incrementable_iterator(const Iterator& it) -{ -  return it.valid()&&it!=it.owner()->end()||it.unchecked(); -} - -template<typename Iterator> -inline bool check_decrementable_iterator(const Iterator& it) -{ -  return it.valid()&&it!=it.owner()->begin()||it.unchecked(); -} - -template<typename Iterator> -inline bool check_is_owner( -  const Iterator& it,const typename Iterator::container_type& cont) -{ -  return it.valid()&&it.owner()==&cont||it.unchecked(); -} - -template<typename Iterator> -inline bool check_same_owner(const Iterator& it0,const Iterator& it1) -{ -  return it0.valid()&&it1.valid()&&it0.owner()==it1.owner()|| -         it0.unchecked()||it1.unchecked(); -} - -template<typename Iterator> -inline bool check_valid_range(const Iterator& it0,const Iterator& it1) -{ -  if(!check_same_owner(it0,it1))return false; - -  if(it0.valid()){ -    Iterator last=it0.owner()->end(); -    if(it1==last)return true; - -    for(Iterator first=it0;first!=last;++first){ -      if(first==it1)return true; -    } -    return false; -  } -  return true; -} - -template<typename Iterator> -inline bool check_outside_range( -  const Iterator& it,const Iterator& it0,const Iterator& it1) -{ -  if(!check_same_owner(it0,it1))return false; - -  if(it0.valid()){ -    Iterator last=it0.owner()->end(); -    bool found=false; - -    Iterator first=it0; -    for(;first!=last;++first){ -      if(first==it1)break; -     -      /* crucial that this check goes after previous break */ -     -      if(first==it)found=true; -    } -    if(first!=it1)return false; -    return !found; -  } -  return true; -} - -template<typename Iterator,typename Difference> -inline bool check_in_bounds(const Iterator& it,Difference n) -{ -  if(it.unchecked())return true; -  if(!it.valid())   return false; -  if(n>0)           return it.owner()->end()-it>=n; -  else              return it.owner()->begin()-it<=n; -} - -template<typename Container> -inline bool check_different_container( -  const Container& cont0,const Container& cont1) -{ -  return &cont0!=&cont1; -} - -/* Invalidates all iterators equivalent to that given. Safe containers - * must call this when deleting elements: the safe mode framework cannot - * perform this operation automatically without outside help. - */ - -template<typename Iterator> -inline void detach_equivalent_iterators(Iterator& it) -{ -  if(it.valid()){ -    { -#if defined(BOOST_HAS_THREADS) -      boost::detail::lightweight_mutex::scoped_lock lock(it.cont->mutex); -#endif - -      Iterator *prev_,*next_; -      for( -        prev_=static_cast<Iterator*>(&it.cont->header); -        (next_=static_cast<Iterator*>(prev_->next))!=0;){ -        if(next_!=&it&&*next_==it){ -          prev_->next=next_->next; -          next_->cont=0; -        } -        else prev_=next_; -      } -    } -    it.detach(); -  } -} - -template<typename Container> class safe_container; /* fwd decl. */ - -} /* namespace multi_index::safe_mode */ - -namespace detail{ - -class safe_container_base;                 /* fwd decl. */ - -class safe_iterator_base -{ -public: -  bool valid()const{return cont!=0;} -  bool unchecked()const{return unchecked_;} - -  inline void detach(); - -  void uncheck() -  { -    detach(); -    unchecked_=true; -  } - -protected: -  safe_iterator_base():cont(0),next(0),unchecked_(false){} - -  explicit safe_iterator_base(safe_container_base* cont_): -    unchecked_(false) -  { -    attach(cont_); -  } - -  safe_iterator_base(const safe_iterator_base& it): -    unchecked_(it.unchecked_) -  { -    attach(it.cont); -  } - -  safe_iterator_base& operator=(const safe_iterator_base& it) -  { -    unchecked_=it.unchecked_; -    safe_container_base* new_cont=it.cont; -    if(cont!=new_cont){ -      detach(); -      attach(new_cont); -    } -    return *this; -  } - -  ~safe_iterator_base() -  { -    detach(); -  } - -  const safe_container_base* owner()const{return cont;} - -BOOST_MULTI_INDEX_PRIVATE_IF_MEMBER_TEMPLATE_FRIENDS: -  friend class safe_container_base; - -#if !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) -  template<typename>          friend class safe_mode::safe_container; -  template<typename Iterator> friend -    void safe_mode::detach_equivalent_iterators(Iterator&); -#endif - -  inline void attach(safe_container_base* cont_); - -  safe_container_base* cont; -  safe_iterator_base*  next; -  bool                 unchecked_; -}; - -class safe_container_base:private noncopyable -{ -public: -  safe_container_base(){} - -BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: -  friend class safe_iterator_base; - -#if !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) -  template<typename Iterator> friend -    void safe_mode::detach_equivalent_iterators(Iterator&); -#endif - -  ~safe_container_base() -  { -    /* Detaches all remaining iterators, which by now will -     * be those pointing to the end of the container. -     */ - -    for(safe_iterator_base* it=header.next;it;it=it->next)it->cont=0; -    header.next=0; -  } - -  void swap(safe_container_base& x) -  { -    for(safe_iterator_base* it0=header.next;it0;it0=it0->next)it0->cont=&x; -    for(safe_iterator_base* it1=x.header.next;it1;it1=it1->next)it1->cont=this; -    std::swap(header.cont,x.header.cont); -    std::swap(header.next,x.header.next); -  } - -  safe_iterator_base header; - -#if defined(BOOST_HAS_THREADS) -  boost::detail::lightweight_mutex mutex; -#endif -}; - -void safe_iterator_base::attach(safe_container_base* cont_) -{ -  cont=cont_; -  if(cont){ -#if defined(BOOST_HAS_THREADS) -    boost::detail::lightweight_mutex::scoped_lock lock(cont->mutex); -#endif - -    next=cont->header.next; -    cont->header.next=this; -  } -} - -void safe_iterator_base::detach() -{ -  if(cont){ -#if defined(BOOST_HAS_THREADS) -    boost::detail::lightweight_mutex::scoped_lock lock(cont->mutex); -#endif - -    safe_iterator_base *prev_,*next_; -    for(prev_=&cont->header;(next_=prev_->next)!=this;prev_=next_){} -    prev_->next=next; -    cont=0; -  } -} - -} /* namespace multi_index::detail */ - -namespace safe_mode{ - -/* In order to enable safe mode on a container: - *   - The container must derive from safe_container<container_type>, - *   - iterators must be generated via safe_iterator, which adapts a - *     preexistent unsafe iterator class. - */ -  -template<typename Container> -class safe_container; - -template<typename Iterator,typename Container> -class safe_iterator: -  public detail::iter_adaptor<safe_iterator<Iterator,Container>,Iterator>, -  public detail::safe_iterator_base -{ -  typedef detail::iter_adaptor<safe_iterator,Iterator> super; -  typedef detail::safe_iterator_base                   safe_super; - -public: -  typedef Container                                    container_type; -  typedef typename Iterator::reference                 reference; -  typedef typename Iterator::difference_type           difference_type; - -  safe_iterator(){} -  explicit safe_iterator(safe_container<container_type>* cont_): -    safe_super(cont_){} -  template<typename T0> -  safe_iterator(const T0& t0,safe_container<container_type>* cont_): -    super(Iterator(t0)),safe_super(cont_){} -  template<typename T0,typename T1> -  safe_iterator( -    const T0& t0,const T1& t1,safe_container<container_type>* cont_): -    super(Iterator(t0,t1)),safe_super(cont_){} - -  safe_iterator& operator=(const safe_iterator& x) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(x); -    this->base_reference()=x.base_reference(); -    safe_super::operator=(x); -    return *this; -  } - -  const container_type* owner()const -  { -    return -      static_cast<const container_type*>( -        static_cast<const safe_container<container_type>*>( -          this->safe_super::owner())); -  } - -  /* get_node is not to be used by the user */ - -  typedef typename Iterator::node_type node_type; - -  node_type* get_node()const{return this->base_reference().get_node();} - -private: -  friend class boost::multi_index::detail::iter_adaptor_access; - -  reference dereference()const -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(*this); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(*this); -    return *(this->base_reference()); -  } - -  bool equal(const safe_iterator& x)const -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(*this); -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(x); -    BOOST_MULTI_INDEX_CHECK_SAME_OWNER(*this,x); -    return this->base_reference()==x.base_reference(); -  } - -  void increment() -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(*this); -    BOOST_MULTI_INDEX_CHECK_INCREMENTABLE_ITERATOR(*this); -    ++(this->base_reference()); -  } - -  void decrement() -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(*this); -    BOOST_MULTI_INDEX_CHECK_DECREMENTABLE_ITERATOR(*this); -    --(this->base_reference()); -  } - -  void advance(difference_type n) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(*this); -    BOOST_MULTI_INDEX_CHECK_IN_BOUNDS(*this,n); -    this->base_reference()+=n; -  } - -  difference_type distance_to(const safe_iterator& x)const -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(*this); -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(x); -    BOOST_MULTI_INDEX_CHECK_SAME_OWNER(*this,x); -    return x.base_reference()-this->base_reference(); -  } - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  /* Serialization. Note that Iterator::save and Iterator:load -   * are assumed to be defined and public: at first sight it seems -   * like we could have resorted to the public serialization interface -   * for doing the forwarding to the adapted iterator class: -   *   ar<<base_reference(); -   *   ar>>base_reference(); -   * but this would cause incompatibilities if a saving -   * program is in safe mode and the loading program is not, or -   * viceversa --in safe mode, the archived iterator data is one layer -   * deeper, this is especially relevant with XML archives. -   * It'd be nice if Boost.Serialization provided some forwarding -   * facility for use by adaptor classes. -   */  - -  friend class boost::serialization::access; - -  BOOST_SERIALIZATION_SPLIT_MEMBER() - -  template<class Archive> -  void save(Archive& ar,const unsigned int version)const -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(*this); -    this->base_reference().save(ar,version); -  } - -  template<class Archive> -  void load(Archive& ar,const unsigned int version) -  { -    this->base_reference().load(ar,version); -    safe_super::uncheck(); -  } -#endif -}; - -template<typename Container> -class safe_container:public detail::safe_container_base -{ -  typedef detail::safe_container_base super; - -public: -  void detach_dereferenceable_iterators() -  { -    typedef typename Container::iterator iterator; - -    iterator end_=static_cast<Container*>(this)->end(); -    iterator *prev_,*next_; -    for( -      prev_=static_cast<iterator*>(&this->header); -      (next_=static_cast<iterator*>(prev_->next))!=0;){ -      if(*next_!=end_){ -        prev_->next=next_->next; -        next_->cont=0; -      } -      else prev_=next_; -    } -  } - -  void swap(safe_container<Container>& x) -  { -    super::swap(x); -  } -}; - -} /* namespace multi_index::safe_mode */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif /* BOOST_MULTI_INDEX_ENABLE_SAFE_MODE */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/scope_guard.hpp b/3rdParty/Boost/src/boost/multi_index/detail/scope_guard.hpp deleted file mode 100644 index 12624c5..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/scope_guard.hpp +++ /dev/null @@ -1,277 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_SCOPE_GUARD_HPP -#define BOOST_MULTI_INDEX_DETAIL_SCOPE_GUARD_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* Until some official version of the ScopeGuard idiom makes it into Boost, - * we locally define our own. This is a merely reformated version of - * ScopeGuard.h as defined in: - *   Alexandrescu, A., Marginean, P.:"Generic<Programming>: Change the Way You - *     Write Exception-Safe Code - Forever", C/C++ Users Jornal, Dec 2000, - *     http://www.cuj.com/documents/s=8000/cujcexp1812alexandr/ - * with the following modifications: - *   - General pretty formatting (pretty to my taste at least.) - *   - Naming style changed to standard C++ library requirements. - *   - safe_execute does not feature a try-catch protection, so we can - *     use this even if BOOST_NO_EXCEPTIONS is defined. - *   - Added scope_guard_impl4 and obj_scope_guard_impl3, (Boost.MultiIndex - *     needs them). A better design would provide guards for many more - *     arguments through the Boost Preprocessor Library. - *   - Added scope_guard_impl_base::touch (see below.) - *   - Removed RefHolder and ByRef, whose functionality is provided - *     already by Boost.Ref. - *   - Removed static make_guard's and make_obj_guard's, so that the code - *     will work even if BOOST_NO_MEMBER_TEMPLATES is defined. This forces - *     us to move some private ctors to public, though. - * - * NB: CodeWarrior Pro 8 seems to have problems looking up safe_execute - * without an explicit qualification. - */ - -class scope_guard_impl_base -{ -public: -  scope_guard_impl_base():dismissed_(false){} -  void dismiss()const{dismissed_=true;} - -  /* This helps prevent some "unused variable" warnings under, for instance, -   * GCC 3.2. -   */ -  void touch()const{} - -protected: -  ~scope_guard_impl_base(){} - -  scope_guard_impl_base(const scope_guard_impl_base& other): -    dismissed_(other.dismissed_) -  { -    other.dismiss(); -  } - -  template<typename J> -  static void safe_execute(J& j){if(!j.dismissed_)j.execute();} -   -  mutable bool dismissed_; - -private: -  scope_guard_impl_base& operator=(const scope_guard_impl_base&); -}; - -typedef const scope_guard_impl_base& scope_guard; - -template<typename F> -class scope_guard_impl0:public scope_guard_impl_base -{ -public: -  scope_guard_impl0(F fun):fun_(fun){} -  ~scope_guard_impl0(){scope_guard_impl_base::safe_execute(*this);} -  void execute(){fun_();} - -protected: - -  F fun_; -}; - -template<typename F>  -inline scope_guard_impl0<F> make_guard(F fun) -{ -  return scope_guard_impl0<F>(fun); -} - -template<typename F,typename P1> -class scope_guard_impl1:public scope_guard_impl_base -{ -public: -  scope_guard_impl1(F fun,P1 p1):fun_(fun),p1_(p1){} -  ~scope_guard_impl1(){scope_guard_impl_base::safe_execute(*this);} -  void execute(){fun_(p1_);} - -protected: -  F        fun_; -  const P1 p1_; -}; - -template<typename F,typename P1>  -inline scope_guard_impl1<F,P1> make_guard(F fun,P1 p1) -{ -  return scope_guard_impl1<F,P1>(fun,p1); -} - -template<typename F,typename P1,typename P2> -class scope_guard_impl2:public scope_guard_impl_base -{ -public: -  scope_guard_impl2(F fun,P1 p1,P2 p2):fun_(fun),p1_(p1),p2_(p2){} -  ~scope_guard_impl2(){scope_guard_impl_base::safe_execute(*this);} -  void execute(){fun_(p1_,p2_);} - -protected: -  F        fun_; -  const P1 p1_; -  const P2 p2_; -}; - -template<typename F,typename P1,typename P2> -inline scope_guard_impl2<F,P1,P2> make_guard(F fun,P1 p1,P2 p2) -{ -  return scope_guard_impl2<F,P1,P2>(fun,p1,p2); -} - -template<typename F,typename P1,typename P2,typename P3> -class scope_guard_impl3:public scope_guard_impl_base -{ -public: -  scope_guard_impl3(F fun,P1 p1,P2 p2,P3 p3):fun_(fun),p1_(p1),p2_(p2),p3_(p3){} -  ~scope_guard_impl3(){scope_guard_impl_base::safe_execute(*this);} -  void execute(){fun_(p1_,p2_,p3_);} - -protected: -  F        fun_; -  const P1 p1_; -  const P2 p2_; -  const P3 p3_; -}; - -template<typename F,typename P1,typename P2,typename P3> -inline scope_guard_impl3<F,P1,P2,P3> make_guard(F fun,P1 p1,P2 p2,P3 p3) -{ -  return scope_guard_impl3<F,P1,P2,P3>(fun,p1,p2,p3); -} - -template<typename F,typename P1,typename P2,typename P3,typename P4> -class scope_guard_impl4:public scope_guard_impl_base -{ -public: -  scope_guard_impl4(F fun,P1 p1,P2 p2,P3 p3,P4 p4): -    fun_(fun),p1_(p1),p2_(p2),p3_(p3),p4_(p4){} -  ~scope_guard_impl4(){scope_guard_impl_base::safe_execute(*this);} -  void execute(){fun_(p1_,p2_,p3_,p4_);} - -protected: -  F        fun_; -  const P1 p1_; -  const P2 p2_; -  const P3 p3_; -  const P4 p4_; -}; - -template<typename F,typename P1,typename P2,typename P3,typename P4> -inline scope_guard_impl4<F,P1,P2,P3,P4> make_guard( -  F fun,P1 p1,P2 p2,P3 p3,P4 p4) -{ -  return scope_guard_impl4<F,P1,P2,P3,P4>(fun,p1,p2,p3,p4); -} - -template<class Obj,typename MemFun> -class obj_scope_guard_impl0:public scope_guard_impl_base -{ -public: -  obj_scope_guard_impl0(Obj& obj,MemFun mem_fun):obj_(obj),mem_fun_(mem_fun){} -  ~obj_scope_guard_impl0(){scope_guard_impl_base::safe_execute(*this);} -  void execute(){(obj_.*mem_fun_)();} - -protected: -  Obj&   obj_; -  MemFun mem_fun_; -}; - -template<class Obj,typename MemFun> -inline obj_scope_guard_impl0<Obj,MemFun> make_obj_guard(Obj& obj,MemFun mem_fun) -{ -  return obj_scope_guard_impl0<Obj,MemFun>(obj,mem_fun); -} - -template<class Obj,typename MemFun,typename P1> -class obj_scope_guard_impl1:public scope_guard_impl_base -{ -public: -  obj_scope_guard_impl1(Obj& obj,MemFun mem_fun,P1 p1): -    obj_(obj),mem_fun_(mem_fun),p1_(p1){} -  ~obj_scope_guard_impl1(){scope_guard_impl_base::safe_execute(*this);} -  void execute(){(obj_.*mem_fun_)(p1_);} - -protected: -  Obj&     obj_; -  MemFun   mem_fun_; -  const P1 p1_; -}; - -template<class Obj,typename MemFun,typename P1> -inline obj_scope_guard_impl1<Obj,MemFun,P1> make_obj_guard( -  Obj& obj,MemFun mem_fun,P1 p1) -{ -  return obj_scope_guard_impl1<Obj,MemFun,P1>(obj,mem_fun,p1); -} - -template<class Obj,typename MemFun,typename P1,typename P2> -class obj_scope_guard_impl2:public scope_guard_impl_base -{ -public: -  obj_scope_guard_impl2(Obj& obj,MemFun mem_fun,P1 p1,P2 p2): -    obj_(obj),mem_fun_(mem_fun),p1_(p1),p2_(p2) -  {} -  ~obj_scope_guard_impl2(){scope_guard_impl_base::safe_execute(*this);} -  void execute(){(obj_.*mem_fun_)(p1_,p2_);} - -protected: -  Obj&     obj_; -  MemFun   mem_fun_; -  const P1 p1_; -  const P2 p2_; -}; - -template<class Obj,typename MemFun,typename P1,typename P2> -inline obj_scope_guard_impl2<Obj,MemFun,P1,P2> -make_obj_guard(Obj& obj,MemFun mem_fun,P1 p1,P2 p2) -{ -  return obj_scope_guard_impl2<Obj,MemFun,P1,P2>(obj,mem_fun,p1,p2); -} - -template<class Obj,typename MemFun,typename P1,typename P2,typename P3> -class obj_scope_guard_impl3:public scope_guard_impl_base -{ -public: -  obj_scope_guard_impl3(Obj& obj,MemFun mem_fun,P1 p1,P2 p2,P3 p3): -    obj_(obj),mem_fun_(mem_fun),p1_(p1),p2_(p2),p3_(p3) -  {} -  ~obj_scope_guard_impl3(){scope_guard_impl_base::safe_execute(*this);} -  void execute(){(obj_.*mem_fun_)(p1_,p2_,p3_);} - -protected: -  Obj&     obj_; -  MemFun   mem_fun_; -  const P1 p1_; -  const P2 p2_; -  const P3 p3_; -}; - -template<class Obj,typename MemFun,typename P1,typename P2,typename P3> -inline obj_scope_guard_impl3<Obj,MemFun,P1,P2,P3> -make_obj_guard(Obj& obj,MemFun mem_fun,P1 p1,P2 p2,P3 p3) -{ -  return obj_scope_guard_impl3<Obj,MemFun,P1,P2,P3>(obj,mem_fun,p1,p2,p3); -} - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/seq_index_node.hpp b/3rdParty/Boost/src/boost/multi_index/detail/seq_index_node.hpp deleted file mode 100644 index cf409ed..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/seq_index_node.hpp +++ /dev/null @@ -1,223 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_SEQ_INDEX_NODE_HPP -#define BOOST_MULTI_INDEX_DETAIL_SEQ_INDEX_NODE_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <algorithm> -#include <boost/detail/allocator_utilities.hpp> -#include <boost/multi_index/detail/prevent_eti.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* doubly-linked node for use by sequenced_index */ - -template<typename Allocator> -struct sequenced_index_node_impl -{ -  typedef typename prevent_eti< -    Allocator, -    typename boost::detail::allocator::rebind_to< -      Allocator,sequenced_index_node_impl -    >::type -  >::type::pointer                                pointer; -  typedef typename prevent_eti< -    Allocator, -    typename boost::detail::allocator::rebind_to< -      Allocator,sequenced_index_node_impl -    >::type -  >::type::const_pointer                          const_pointer; - -  pointer& prior(){return prior_;} -  pointer  prior()const{return prior_;} -  pointer& next(){return next_;} -  pointer  next()const{return next_;} - -  /* interoperability with bidir_node_iterator */ - -  static void increment(pointer& x){x=x->next();} -  static void decrement(pointer& x){x=x->prior();} - -  /* algorithmic stuff */ - -  static void link(pointer x,pointer header) -  { -    x->prior()=header->prior(); -    x->next()=header; -    x->prior()->next()=x->next()->prior()=x; -  }; - -  static void unlink(pointer x) -  { -    x->prior()->next()=x->next(); -    x->next()->prior()=x->prior(); -  } - -  static void relink(pointer position,pointer x) -  { -    unlink(x); -    x->prior()=position->prior(); -    x->next()=position; -    x->prior()->next()=x->next()->prior()=x; -  } - -  static void relink(pointer position,pointer x,pointer y) -  { -    /* position is assumed not to be in [x,y) */ - -    if(x!=y){ -      pointer z=y->prior(); -      x->prior()->next()=y; -      y->prior()=x->prior(); -      x->prior()=position->prior(); -      z->next()=position; -      x->prior()->next()=x; -      z->next()->prior()=z; -    } -  } - -  static void reverse(pointer header) -  { -    pointer x=header; -    do{ -      pointer y=x->next(); -      std::swap(x->prior(),x->next()); -      x=y; -    }while(x!=header); -  } - -  static void swap(pointer x,pointer y) -  { -    /* This swap function does not exchange the header nodes, -     * but rather their pointers. This is *not* used for implementing -     * sequenced_index::swap. -     */ - -    if(x->next()!=x){ -      if(y->next()!=y){ -        std::swap(x->next(),y->next()); -        std::swap(x->prior(),y->prior()); -        x->next()->prior()=x->prior()->next()=x; -        y->next()->prior()=y->prior()->next()=y; -      } -      else{ -        y->next()=x->next(); -        y->prior()=x->prior(); -        x->next()=x->prior()=x; -        y->next()->prior()=y->prior()->next()=y; -      } -    } -    else if(y->next()!=y){ -      x->next()=y->next(); -      x->prior()=y->prior(); -      y->next()=y->prior()=y; -      x->next()->prior()=x->prior()->next()=x; -    } -  } - -private: -  pointer prior_; -  pointer next_; -}; - -template<typename Super> -struct sequenced_index_node_trampoline: -  prevent_eti< -    Super, -    sequenced_index_node_impl< -      typename boost::detail::allocator::rebind_to< -        typename Super::allocator_type, -        char -      >::type -    > -  >::type -{ -  typedef typename prevent_eti< -    Super, -    sequenced_index_node_impl< -      typename boost::detail::allocator::rebind_to< -        typename Super::allocator_type, -        char -      >::type -    > -  >::type impl_type; -}; - -template<typename Super> -struct sequenced_index_node:Super,sequenced_index_node_trampoline<Super> -{ -private: -  typedef sequenced_index_node_trampoline<Super> trampoline; - -public: -  typedef typename trampoline::impl_type         impl_type; -  typedef typename trampoline::pointer           impl_pointer; -  typedef typename trampoline::const_pointer     const_impl_pointer; - -  impl_pointer& prior(){return trampoline::prior();} -  impl_pointer  prior()const{return trampoline::prior();} -  impl_pointer& next(){return trampoline::next();} -  impl_pointer  next()const{return trampoline::next();} - -  impl_pointer impl() -  { -    return static_cast<impl_pointer>( -      static_cast<impl_type*>(static_cast<trampoline*>(this))); -  } - -  const_impl_pointer impl()const -  { -    return static_cast<const_impl_pointer>( -      static_cast<const impl_type*>(static_cast<const trampoline*>(this))); -  } - -  static sequenced_index_node* from_impl(impl_pointer x) -  { -    return static_cast<sequenced_index_node*>( -      static_cast<trampoline*>(&*x)); -  } - -  static const sequenced_index_node* from_impl(const_impl_pointer x) -  { -    return static_cast<const sequenced_index_node*>( -      static_cast<const trampoline*>(&*x)); -  } - -  /* interoperability with bidir_node_iterator */ - -  static void increment(sequenced_index_node*& x) -  { -    impl_pointer xi=x->impl(); -    trampoline::increment(xi); -    x=from_impl(xi); -  } - -  static void decrement(sequenced_index_node*& x) -  { -    impl_pointer xi=x->impl(); -    trampoline::decrement(xi); -    x=from_impl(xi); -  } -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/seq_index_ops.hpp b/3rdParty/Boost/src/boost/multi_index/detail/seq_index_ops.hpp deleted file mode 100644 index 8135074..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/seq_index_ops.hpp +++ /dev/null @@ -1,200 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_SEQ_INDEX_OPS_HPP -#define BOOST_MULTI_INDEX_DETAIL_SEQ_INDEX_OPS_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/detail/no_exceptions_support.hpp> -#include <boost/multi_index/detail/seq_index_node.hpp> -#include <boost/limits.hpp> -#include <boost/type_traits/aligned_storage.hpp> -#include <boost/type_traits/alignment_of.hpp>  -#include <cstddef> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* Common code for sequenced_index memfuns having templatized and - * non-templatized versions. - */ - -template <typename SequencedIndex,typename Predicate> -void sequenced_index_remove(SequencedIndex& x,Predicate pred) -{ -  typedef typename SequencedIndex::iterator iterator; -  iterator first=x.begin(),last=x.end(); -  while(first!=last){ -    if(pred(*first))x.erase(first++); -    else ++first; -  } -} - -template <typename SequencedIndex,class BinaryPredicate> -void sequenced_index_unique(SequencedIndex& x,BinaryPredicate binary_pred) -{ -  typedef typename SequencedIndex::iterator iterator; -  iterator first=x.begin(); -  iterator last=x.end(); -  if(first!=last){ -    for(iterator middle=first;++middle!=last;middle=first){ -      if(binary_pred(*middle,*first))x.erase(middle); -      else first=middle; -    } -  } -} - -template <typename SequencedIndex,typename Compare> -void sequenced_index_merge(SequencedIndex& x,SequencedIndex& y,Compare comp) -{ -  typedef typename SequencedIndex::iterator iterator; -  if(&x!=&y){ -    iterator first0=x.begin(),last0=x.end(); -    iterator first1=y.begin(),last1=y.end(); -    while(first0!=last0&&first1!=last1){ -      if(comp(*first1,*first0))x.splice(first0,y,first1++); -      else ++first0; -    } -    x.splice(last0,y,first1,last1); -  } -} - -/* sorting  */ - -/* auxiliary stuff */ - -template<typename Node,typename Compare> -void sequenced_index_collate( -  BOOST_DEDUCED_TYPENAME Node::impl_type* x, -  BOOST_DEDUCED_TYPENAME Node::impl_type* y, -  Compare comp -  BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Node)) -{ -  typedef typename Node::impl_type    impl_type; -  typedef typename Node::impl_pointer impl_pointer; - -  impl_pointer first0=x->next(); -  impl_pointer last0=x; -  impl_pointer first1=y->next(); -  impl_pointer last1=y; -  while(first0!=last0&&first1!=last1){ -    if(comp( -        Node::from_impl(first1)->value(),Node::from_impl(first0)->value())){ -      impl_pointer tmp=first1->next(); -      impl_type::relink(first0,first1); -      first1=tmp; -    } -    else first0=first0->next(); -  } -  impl_type::relink(last0,first1,last1); -} - -/* Some versions of CGG require a bogus typename in counter_spc - * inside sequenced_index_sort if the following is defined - * also inside sequenced_index_sort. - */ - -BOOST_STATIC_CONSTANT( -  std::size_t, -  sequenced_index_sort_max_fill= -    (std::size_t)std::numeric_limits<std::size_t>::digits+1); - -template<typename Node,typename Compare> -void sequenced_index_sort(Node* header,Compare comp) -{ -  /* Musser's mergesort, see http://www.cs.rpi.edu/~musser/gp/List/lists1.html. -   * The implementation is a little convoluted: in the original code -   * counter elements and carry are std::lists: here we do not want -   * to use multi_index instead, so we do things at a lower level, managing -   * directly the internal node representation. -   * Incidentally, the implementations I've seen of this algorithm (SGI, -   * Dinkumware, STLPort) are not exception-safe: this is. Moreover, we do not -   * use any dynamic storage. -   */ - -  if(header->next()==header->impl()|| -     header->next()->next()==header->impl())return; - -  typedef typename Node::impl_type      impl_type; -  typedef typename Node::impl_pointer   impl_pointer; - -  typedef typename aligned_storage< -    sizeof(impl_type), -    alignment_of<impl_type>::value -  >::type                               carry_spc_type; -  carry_spc_type                        carry_spc; -  impl_type&                            carry= -    *static_cast<impl_type*>(static_cast<void*>(&carry_spc)); -  typedef typename aligned_storage< -    sizeof( -      impl_type -        [sequenced_index_sort_max_fill]), -    alignment_of< -      impl_type -        [sequenced_index_sort_max_fill] -    >::value -  >::type                               counter_spc_type; -  counter_spc_type                      counter_spc; -  impl_type*                            counter= -    static_cast<impl_type*>(static_cast<void*>(&counter_spc)); -  std::size_t                           fill=0; - -  carry.prior()=carry.next()=static_cast<impl_pointer>(&carry); -  counter[0].prior()=counter[0].next()=static_cast<impl_pointer>(&counter[0]); - -  BOOST_TRY{ -    while(header->next()!=header->impl()){ -      impl_type::relink(carry.next(),header->next()); -      std::size_t i=0; -      while(i<fill&&counter[i].next()!=static_cast<impl_pointer>(&counter[i])){ -        sequenced_index_collate<Node>(&carry,&counter[i++],comp); -      } -      impl_type::swap( -        static_cast<impl_pointer>(&carry), -        static_cast<impl_pointer>(&counter[i])); -      if(i==fill){ -        ++fill; -        counter[fill].prior()=counter[fill].next()= -          static_cast<impl_pointer>(&counter[fill]); -      } -    } - -    for(std::size_t i=1;i<fill;++i){ -      sequenced_index_collate<Node>(&counter[i],&counter[i-1],comp); -    } -    impl_type::swap( -      header->impl(),static_cast<impl_pointer>(&counter[fill-1])); -  } -  BOOST_CATCH(...) -  { -    impl_type::relink( -      header->impl(),carry.next(),static_cast<impl_pointer>(&carry)); -    for(std::size_t i=0;i<=fill;++i){ -      impl_type::relink( -        header->impl(),counter[i].next(), -        static_cast<impl_pointer>(&counter[i])); -    } -    BOOST_RETHROW; -  } -  BOOST_CATCH_END -} - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/serialization_version.hpp b/3rdParty/Boost/src/boost/multi_index/detail/serialization_version.hpp deleted file mode 100644 index cced78c..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/serialization_version.hpp +++ /dev/null @@ -1,75 +0,0 @@ -/* Copyright 2003-2010 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_SERIALIZATION_VERSION_HPP -#define BOOST_MULTI_INDEX_DETAIL_SERIALIZATION_VERSION_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/serialization/split_member.hpp> -#include <boost/serialization/version.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* Helper class for storing and retrieving a given type serialization class - * version while avoiding saving the number multiple times in the same - * archive. - * Behavior undefined if template partial specialization is not supported. - */ - -template<typename T> -struct serialization_version -{ -  serialization_version(): -    value(boost::serialization::version<serialization_version>::value){} - -  serialization_version& operator=(unsigned int x){value=x;return *this;}; - -  operator unsigned int()const{return value;} - -private: -  friend class boost::serialization::access; - -  BOOST_SERIALIZATION_SPLIT_MEMBER() - -  template<class Archive> -  void save(Archive&,const unsigned int)const{} - -  template<class Archive> -  void load(Archive&,const unsigned int version) -  { -    this->value=version; -  } - -  unsigned int value; -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -namespace serialization { -template<typename T> -struct version<boost::multi_index::detail::serialization_version<T> > -{ -  BOOST_STATIC_CONSTANT(int,value=version<T>::value); -}; -} /* namespace serialization */ -#endif - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/uintptr_type.hpp b/3rdParty/Boost/src/boost/multi_index/detail/uintptr_type.hpp deleted file mode 100644 index 529c623..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/uintptr_type.hpp +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_UINTPTR_TYPE_HPP -#define BOOST_MULTI_INDEX_DETAIL_UINTPTR_TYPE_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/mpl/bool.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* has_uintptr_type is an MPL integral constant determining whether - * there exists an unsigned integral type with the same size as - * void *. - * uintptr_type is such a type if has_uintptr is true, or unsigned int - * otherwise. - * Note that uintptr_type is more restrictive than C99 uintptr_t, - * where an integral type with size greater than that of void * - * would be conformant. - */ - -template<int N>struct uintptr_candidates; -template<>struct uintptr_candidates<-1>{typedef unsigned int           type;}; -template<>struct uintptr_candidates<0> {typedef unsigned int           type;}; -template<>struct uintptr_candidates<1> {typedef unsigned short         type;}; -template<>struct uintptr_candidates<2> {typedef unsigned long          type;}; - -#if defined(BOOST_HAS_LONG_LONG) -template<>struct uintptr_candidates<3> {typedef boost::ulong_long_type type;}; -#else -template<>struct uintptr_candidates<3> {typedef unsigned int           type;}; -#endif - -#if defined(BOOST_HAS_MS_INT64) -template<>struct uintptr_candidates<4> {typedef unsigned __int64       type;}; -#else -template<>struct uintptr_candidates<4> {typedef unsigned int           type;}; -#endif - -struct uintptr_aux -{ -  BOOST_STATIC_CONSTANT(int,index= -    sizeof(void*)==sizeof(uintptr_candidates<0>::type)?0: -    sizeof(void*)==sizeof(uintptr_candidates<1>::type)?1: -    sizeof(void*)==sizeof(uintptr_candidates<2>::type)?2: -    sizeof(void*)==sizeof(uintptr_candidates<3>::type)?3: -    sizeof(void*)==sizeof(uintptr_candidates<4>::type)?4:-1); - -  BOOST_STATIC_CONSTANT(bool,has_uintptr_type=(index>=0)); - -  typedef uintptr_candidates<index>::type type; -}; - -typedef mpl::bool_<uintptr_aux::has_uintptr_type> has_uintptr_type; -typedef uintptr_aux::type                         uintptr_type; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/unbounded.hpp b/3rdParty/Boost/src/boost/multi_index/detail/unbounded.hpp deleted file mode 100644 index 40c3034..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/unbounded.hpp +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_UNBOUNDED_HPP -#define BOOST_MULTI_INDEX_DETAIL_UNBOUNDED_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/detail/workaround.hpp> - -namespace boost{ - -namespace multi_index{ - -/* dummy type and variable for use in ordered_index::range() */ - -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -/* The default branch actually works for MSVC 6.0, but seems like - * this implementation of unbounded improves the performance of ordered - * indices! This behavior is hard to explain and probably a test artifact, - * but it does not hurt to have the workaround anyway. - */ - -namespace detail{struct unbounded_type{};} - -namespace{ - -static detail::unbounded_type  unbounded_obj=detail::unbounded_type(); -static detail::unbounded_type& unbounded=unbounded_obj; - -} /* unnamed */ -#else -/* ODR-abiding technique shown at the example attached to - * http://lists.boost.org/Archives/boost/2006/07/108355.php - */ - -namespace detail{class unbounded_helper;} - -detail::unbounded_helper unbounded(detail::unbounded_helper); - -namespace detail{ - -class unbounded_helper -{ -  unbounded_helper(){} -  unbounded_helper(const unbounded_helper&){} -  friend unbounded_helper multi_index::unbounded(unbounded_helper); -}; - -typedef unbounded_helper (*unbounded_type)(unbounded_helper); - -} /* namespace multi_index::detail */ - -inline detail::unbounded_helper unbounded(detail::unbounded_helper) -{ -  return detail::unbounded_helper(); -} -#endif - -/* tags used in the implementation of range */ - -namespace detail{ - -struct none_unbounded_tag{}; -struct lower_unbounded_tag{}; -struct upper_unbounded_tag{}; -struct both_unbounded_tag{}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/detail/value_compare.hpp b/3rdParty/Boost/src/boost/multi_index/detail/value_compare.hpp deleted file mode 100644 index 0bd7b4f..0000000 --- a/3rdParty/Boost/src/boost/multi_index/detail/value_compare.hpp +++ /dev/null @@ -1,53 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_DETAIL_VALUE_COMPARE_HPP -#define BOOST_MULTI_INDEX_DETAIL_VALUE_COMPARE_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/call_traits.hpp> -#include <functional> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -template<typename Value,typename KeyFromValue,typename Compare> -struct value_comparison:std::binary_function<Value,Value,bool> -{ -  value_comparison( -    const KeyFromValue& key_=KeyFromValue(),const Compare& comp_=Compare()): -    key(key_),comp(comp_) -  { -  } - -  bool operator()( -    typename call_traits<Value>::param_type x, -    typename call_traits<Value>::param_type y)const -  { -    return comp(key(x),key(y)); -  } - -private: -  KeyFromValue key; -  Compare      comp; -}; - -} /* namespace multi_index::detail */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/identity.hpp b/3rdParty/Boost/src/boost/multi_index/identity.hpp deleted file mode 100644 index b402ad7..0000000 --- a/3rdParty/Boost/src/boost/multi_index/identity.hpp +++ /dev/null @@ -1,147 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_IDENTITY_HPP -#define BOOST_MULTI_INDEX_IDENTITY_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> -#include <boost/mpl/if.hpp> -#include <boost/multi_index/identity_fwd.hpp> -#include <boost/type_traits/is_const.hpp> -#include <boost/type_traits/remove_const.hpp> -#include <boost/utility/enable_if.hpp> - -#if !defined(BOOST_NO_SFINAE) -#include <boost/type_traits/is_convertible.hpp> -#endif - -namespace boost{ - -template<class Type> class reference_wrapper; /* fwd decl. */ - -namespace multi_index{ - -namespace detail{ - -/* identity is a do-nothing key extractor that returns the [const] Type& - * object passed. - * Additionally, identity is overloaded to support referece_wrappers - * of Type and "chained pointers" to Type's. By chained pointer to Type we - * mean a  type  P such that, given a p of type P - *   *...n...*x is convertible to Type&, for some n>=1. - * Examples of chained pointers are raw and smart pointers, iterators and - * arbitrary combinations of these (vg. Type** or auto_ptr<Type*>.) - */ - -/* NB. Some overloads of operator() have an extra dummy parameter int=0. - * This disambiguator serves several purposes: - *  - Without it, MSVC++ 6.0 incorrectly regards some overloads as - *    specializations of a previous member function template. - *  - MSVC++ 6.0/7.0 seem to incorrectly treat some different memfuns - *    as if they have the same signature. - *  - If remove_const is broken due to lack of PTS, int=0 avoids the - *    declaration of memfuns with identical signature. - */ - -template<typename Type> -struct const_identity_base -{ -  typedef Type result_type; - -  template<typename ChainedPtr> - -#if !defined(BOOST_NO_SFINAE) -  typename disable_if<is_convertible<const ChainedPtr&,Type&>,Type&>::type -#else -  Type& -#endif  -   -  operator()(const ChainedPtr& x)const -  { -    return operator()(*x); -  } - -  Type& operator()(Type& x)const -  { -    return x; -  } - -  Type& operator()(const reference_wrapper<Type>& x)const -  {  -    return x.get(); -  } - -  Type& operator()( -    const reference_wrapper<typename remove_const<Type>::type>& x,int=0)const -  {  -    return x.get(); -  } -}; - -template<typename Type> -struct non_const_identity_base -{ -  typedef Type result_type; - -  /* templatized for pointer-like types */ -   -  template<typename ChainedPtr> - -#if !defined(BOOST_NO_SFINAE) -  typename disable_if< -    is_convertible<const ChainedPtr&,const Type&>,Type&>::type -#else -  Type& -#endif  -     -  operator()(const ChainedPtr& x)const -  { -    return operator()(*x); -  } - -  const Type& operator()(const Type& x,int=0)const -  { -    return x; -  } - -  Type& operator()(Type& x)const -  { -    return x; -  } - -  const Type& operator()(const reference_wrapper<const Type>& x,int=0)const -  {  -    return x.get(); -  } - -  Type& operator()(const reference_wrapper<Type>& x)const -  {  -    return x.get(); -  } -}; - -} /* namespace multi_index::detail */ - -template<class Type> -struct identity: -  mpl::if_c< -    is_const<Type>::value, -    detail::const_identity_base<Type>,detail::non_const_identity_base<Type> -  >::type -{ -}; - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/identity_fwd.hpp b/3rdParty/Boost/src/boost/multi_index/identity_fwd.hpp deleted file mode 100644 index baafa43..0000000 --- a/3rdParty/Boost/src/boost/multi_index/identity_fwd.hpp +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_IDENTITY_FWD_HPP -#define BOOST_MULTI_INDEX_IDENTITY_FWD_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -namespace boost{ - -namespace multi_index{ - -template<class Type> struct identity; - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/indexed_by.hpp b/3rdParty/Boost/src/boost/multi_index/indexed_by.hpp deleted file mode 100644 index 94a8dcb..0000000 --- a/3rdParty/Boost/src/boost/multi_index/indexed_by.hpp +++ /dev/null @@ -1,72 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_INDEXED_BY_HPP -#define BOOST_MULTI_INDEX_INDEXED_BY_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/mpl/vector.hpp> -#include <boost/preprocessor/cat.hpp> -#include <boost/preprocessor/control/expr_if.hpp> -#include <boost/preprocessor/repetition/enum.hpp> -#include <boost/preprocessor/repetition/enum_params.hpp>  - -/* An alias to mpl::vector used to hide MPL from the user. - * indexed_by contains the index specifiers for instantiation - * of a multi_index_container. - */ - -/* This user_definable macro limits the number of elements of an index list; - * useful for shortening resulting symbol names (MSVC++ 6.0, for instance, - * has problems coping with very long symbol names.) - */ - -#if !defined(BOOST_MULTI_INDEX_LIMIT_INDEXED_BY_SIZE) -#if defined(BOOST_MSVC)&&(BOOST_MSVC<1300) -#define BOOST_MULTI_INDEX_LIMIT_INDEXED_BY_SIZE 5 -#else -#define BOOST_MULTI_INDEX_LIMIT_INDEXED_BY_SIZE BOOST_MPL_LIMIT_VECTOR_SIZE -#endif -#endif - -#if BOOST_MULTI_INDEX_LIMIT_INDEXED_BY_SIZE<BOOST_MPL_LIMIT_VECTOR_SIZE -#define BOOST_MULTI_INDEX_INDEXED_BY_SIZE \ -  BOOST_MULTI_INDEX_LIMIT_INDEXED_BY_SIZE -#else -#define BOOST_MULTI_INDEX_INDEXED_BY_SIZE BOOST_MPL_LIMIT_VECTOR_SIZE -#endif - -#define BOOST_MULTI_INDEX_INDEXED_BY_TEMPLATE_PARM(z,n,var) \ -  typename BOOST_PP_CAT(var,n) BOOST_PP_EXPR_IF(n,=mpl::na) - -namespace boost{ - -namespace multi_index{ - -template< -  BOOST_PP_ENUM( -    BOOST_MULTI_INDEX_INDEXED_BY_SIZE, -    BOOST_MULTI_INDEX_INDEXED_BY_TEMPLATE_PARM,T) -> -struct indexed_by: -  mpl::vector<BOOST_PP_ENUM_PARAMS(BOOST_MULTI_INDEX_INDEXED_BY_SIZE,T)> -{ -}; - -} /* namespace multi_index */ - -} /* namespace boost */ - -#undef BOOST_MULTI_INDEX_INDEXED_BY_TEMPLATE_PARM -#undef BOOST_MULTI_INDEX_INDEXED_BY_SIZE - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/member.hpp b/3rdParty/Boost/src/boost/multi_index/member.hpp deleted file mode 100644 index 848e9b2..0000000 --- a/3rdParty/Boost/src/boost/multi_index/member.hpp +++ /dev/null @@ -1,269 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_MEMBER_HPP -#define BOOST_MULTI_INDEX_MEMBER_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/mpl/if.hpp> -#include <boost/type_traits/is_const.hpp> -#include <boost/utility/enable_if.hpp> -#include <cstddef> - -#if !defined(BOOST_NO_SFINAE) -#include <boost/type_traits/is_convertible.hpp> -#endif - -namespace boost{ - -template<class T> class reference_wrapper; /* fwd decl. */ - -namespace multi_index{ - -namespace detail{ - -/* member is a read/write key extractor for accessing a given - * member of a class. - * Additionally, member is overloaded to support referece_wrappers - * of T and "chained pointers" to T's. By chained pointer to T we mean - * a type P  such that, given a p of Type P - *   *...n...*x is convertible to T&, for some n>=1. - * Examples of chained pointers are raw and smart pointers, iterators and - * arbitrary combinations of these (vg. T** or auto_ptr<T*>.) - */ - -/* NB. Some overloads of operator() have an extra dummy parameter int=0. - * This disambiguator serves several purposes: - *  - Without it, MSVC++ 6.0 incorrectly regards some overloads as - *    specializations of a previous member function template. - *  - MSVC++ 6.0/7.0 seem to incorrectly treat some different memfuns - *    as if they have the same signature. - *  - If remove_const is broken due to lack of PTS, int=0 avoids the - *    declaration of memfuns with identical signature. - */ - -template<class Class,typename Type,Type Class::*PtrToMember> -struct const_member_base -{ -  typedef Type result_type; - -  template<typename ChainedPtr> - -#if !defined(BOOST_NO_SFINAE) -  typename disable_if< -    is_convertible<const ChainedPtr&,const Class&>,Type&>::type -#else -  Type& -#endif -   -  operator()(const ChainedPtr& x)const -  { -    return operator()(*x); -  } - -  Type& operator()(const Class& x)const -  { -    return x.*PtrToMember; -  } - -  Type& operator()(const reference_wrapper<const Class>& x)const -  { -    return operator()(x.get()); -  } - -  Type& operator()(const reference_wrapper<Class>& x,int=0)const -  {  -    return operator()(x.get()); -  } -}; - -template<class Class,typename Type,Type Class::*PtrToMember> -struct non_const_member_base -{ -  typedef Type result_type; - -  template<typename ChainedPtr> - -#if !defined(BOOST_NO_SFINAE) -  typename disable_if< -    is_convertible<const ChainedPtr&,const Class&>,Type&>::type -#else -  Type& -#endif - -  operator()(const ChainedPtr& x)const -  { -    return operator()(*x); -  } - -  const Type& operator()(const Class& x,int=0)const -  { -    return x.*PtrToMember; -  } - -  Type& operator()(Class& x)const -  {  -    return x.*PtrToMember; -  } - -  const Type& operator()(const reference_wrapper<const Class>& x,int=0)const -  { -    return operator()(x.get()); -  } - -  Type& operator()(const reference_wrapper<Class>& x)const -  {  -    return operator()(x.get()); -  } -}; - -} /* namespace multi_index::detail */ - -template<class Class,typename Type,Type Class::*PtrToMember> -struct member: -  mpl::if_c< -    is_const<Type>::value, -    detail::const_member_base<Class,Type,PtrToMember>, -    detail::non_const_member_base<Class,Type,PtrToMember> -  >::type -{ -}; - -namespace detail{ - -/* MSVC++ 6.0 does not support properly pointers to members as - * non-type template arguments, as reported in - *   http://support.microsoft.com/default.aspx?scid=kb;EN-US;249045 - * A similar problem (though not identical) is shown by MSVC++ 7.0. - * We provide an alternative to member<> accepting offsets instead - * of pointers to members. This happens to work even for non-POD - * types (although the standard forbids use of offsetof on these), - * so it serves as a workaround in this compiler for all practical - * purposes. - * Surprisingly enough, other compilers, like Intel C++ 7.0/7.1 and - * Visual Age 6.0, have similar bugs. This replacement of member<> - * can be used for them too. - */ - -template<class Class,typename Type,std::size_t OffsetOfMember> -struct const_member_offset_base -{ -  typedef Type result_type; - -  template<typename ChainedPtr> - -#if !defined(BOOST_NO_SFINAE) -  typename disable_if< -    is_convertible<const ChainedPtr&,const Class&>,Type&>::type -#else -  Type& -#endif  -     -  operator()(const ChainedPtr& x)const -  { -    return operator()(*x); -  } - -  Type& operator()(const Class& x)const -  { -    return *static_cast<const Type*>( -      static_cast<const void*>( -        static_cast<const char*>( -          static_cast<const void *>(&x))+OffsetOfMember)); -  } - -  Type& operator()(const reference_wrapper<const Class>& x)const -  { -    return operator()(x.get()); -  } - -  Type& operator()(const reference_wrapper<Class>& x,int=0)const -  { -    return operator()(x.get()); -  } -}; - -template<class Class,typename Type,std::size_t OffsetOfMember> -struct non_const_member_offset_base -{ -  typedef Type result_type; - -  template<typename ChainedPtr> - -#if !defined(BOOST_NO_SFINAE) -  typename disable_if< -    is_convertible<const ChainedPtr&,const Class&>,Type&>::type -#else -  Type& -#endif  -   -  operator()(const ChainedPtr& x)const -  { -    return operator()(*x); -  } - -  const Type& operator()(const Class& x,int=0)const -  { -    return *static_cast<const Type*>( -      static_cast<const void*>( -        static_cast<const char*>( -          static_cast<const void *>(&x))+OffsetOfMember)); -  } - -  Type& operator()(Class& x)const -  {  -    return *static_cast<Type*>( -      static_cast<void*>( -        static_cast<char*>(static_cast<void *>(&x))+OffsetOfMember)); -  } - -  const Type& operator()(const reference_wrapper<const Class>& x,int=0)const -  { -    return operator()(x.get()); -  } - -  Type& operator()(const reference_wrapper<Class>& x)const -  { -    return operator()(x.get()); -  } -}; - -} /* namespace multi_index::detail */ - -template<class Class,typename Type,std::size_t OffsetOfMember> -struct member_offset: -  mpl::if_c< -    is_const<Type>::value, -    detail::const_member_offset_base<Class,Type,OffsetOfMember>, -    detail::non_const_member_offset_base<Class,Type,OffsetOfMember> -  >::type -{ -}; - -/* BOOST_MULTI_INDEX_MEMBER resolves to member in the normal cases, - * and to member_offset as a workaround in those defective compilers for - * which BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS is defined. - */ - -#if defined(BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS) -#define BOOST_MULTI_INDEX_MEMBER(Class,Type,MemberName) \ -::boost::multi_index::member_offset< Class,Type,offsetof(Class,MemberName) > -#else -#define BOOST_MULTI_INDEX_MEMBER(Class,Type,MemberName) \ -::boost::multi_index::member< Class,Type,&Class::MemberName > -#endif - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/ordered_index.hpp b/3rdParty/Boost/src/boost/multi_index/ordered_index.hpp deleted file mode 100644 index a49e4cf..0000000 --- a/3rdParty/Boost/src/boost/multi_index/ordered_index.hpp +++ /dev/null @@ -1,1390 +0,0 @@ -/* Copyright 2003-2010 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - * - * The internal implementation of red-black trees is based on that of SGI STL - * stl_tree.h file:  - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation.  Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose.  It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation.  Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose.  It is provided "as is" without express or implied warranty. - * - */ - -#ifndef BOOST_MULTI_INDEX_ORDERED_INDEX_HPP -#define BOOST_MULTI_INDEX_ORDERED_INDEX_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <algorithm> -#include <boost/call_traits.hpp> -#include <boost/detail/no_exceptions_support.hpp> -#include <boost/detail/workaround.hpp> -#include <boost/iterator/reverse_iterator.hpp> -#include <boost/mpl/if.hpp> -#include <boost/mpl/push_front.hpp> -#include <boost/multi_index/detail/access_specifier.hpp> -#include <boost/multi_index/detail/bidir_node_iterator.hpp> -#include <boost/multi_index/detail/index_node_base.hpp> -#include <boost/multi_index/detail/modify_key_adaptor.hpp> -#include <boost/multi_index/detail/ord_index_node.hpp> -#include <boost/multi_index/detail/ord_index_ops.hpp> -#include <boost/multi_index/detail/safe_ctr_proxy.hpp> -#include <boost/multi_index/detail/safe_mode.hpp> -#include <boost/multi_index/detail/scope_guard.hpp> -#include <boost/multi_index/detail/unbounded.hpp> -#include <boost/multi_index/detail/value_compare.hpp> -#include <boost/multi_index/ordered_index_fwd.hpp> -#include <boost/ref.hpp> -#include <boost/tuple/tuple.hpp> -#include <boost/type_traits/is_same.hpp> -#include <utility> - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -#include <boost/archive/archive_exception.hpp> -#include <boost/bind.hpp> -#include <boost/multi_index/detail/duplicates_iterator.hpp> -#include <boost/throw_exception.hpp>  -#endif - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING) -#define BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT                          \ -  detail::scope_guard BOOST_JOIN(check_invariant_,__LINE__)=                 \ -    detail::make_obj_guard(*this,&ordered_index::check_invariant_);          \ -  BOOST_JOIN(check_invariant_,__LINE__).touch(); -#else -#define BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* ordered_index adds a layer of ordered indexing to a given Super */ - -/* Most of the implementation of unique and non-unique indices is - * shared. We tell from one another on instantiation time by using - * these tags. - */ - -struct ordered_unique_tag{}; -struct ordered_non_unique_tag{}; - -template< -  typename KeyFromValue,typename Compare, -  typename SuperMeta,typename TagList,typename Category -> -class ordered_index: -  BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS SuperMeta::type - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -  ,public safe_ctr_proxy_impl< -    bidir_node_iterator< -      ordered_index_node<typename SuperMeta::type::node_type> >, -    ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category> > -#else -  ,public safe_mode::safe_container< -    ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category> > -#endif -#endif - -{  -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)&&\ -    BOOST_WORKAROUND(__MWERKS__,<=0x3003) -/* The "ISO C++ Template Parser" option in CW8.3 has a problem with the - * lifetime of const references bound to temporaries --precisely what - * scopeguards are. - */ - -#pragma parse_mfunc_templ off -#endif - -  typedef typename SuperMeta::type                   super; - -protected: -  typedef ordered_index_node< -    typename super::node_type>                       node_type; - -private: -  typedef typename node_type::impl_type              node_impl_type; -  typedef typename node_impl_type::pointer           node_impl_pointer; - -public: -  /* types */ - -  typedef typename KeyFromValue::result_type         key_type; -  typedef typename node_type::value_type             value_type; -  typedef KeyFromValue                               key_from_value; -  typedef Compare                                    key_compare; -  typedef value_comparison< -    value_type,KeyFromValue,Compare>                 value_compare; -  typedef tuple<key_from_value,key_compare>          ctor_args; -  typedef typename super::final_allocator_type       allocator_type; -  typedef typename allocator_type::reference         reference; -  typedef typename allocator_type::const_reference   const_reference; - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -  typedef safe_mode::safe_iterator< -    bidir_node_iterator<node_type>, -    safe_ctr_proxy< -      bidir_node_iterator<node_type> > >             iterator; -#else -  typedef safe_mode::safe_iterator< -    bidir_node_iterator<node_type>, -    ordered_index>                                   iterator; -#endif -#else -  typedef bidir_node_iterator<node_type>             iterator; -#endif - -  typedef iterator                                   const_iterator; - -  typedef std::size_t                                size_type;       -  typedef std::ptrdiff_t                             difference_type; -  typedef typename allocator_type::pointer           pointer; -  typedef typename allocator_type::const_pointer     const_pointer; -  typedef typename -    boost::reverse_iterator<iterator>                reverse_iterator; -  typedef typename -    boost::reverse_iterator<const_iterator>          const_reverse_iterator; -  typedef TagList                                    tag_list; - -protected: -  typedef typename super::final_node_type            final_node_type; -  typedef tuples::cons< -    ctor_args,  -    typename super::ctor_args_list>                  ctor_args_list; -  typedef typename mpl::push_front< -    typename super::index_type_list, -    ordered_index>::type                             index_type_list; -  typedef typename mpl::push_front< -    typename super::iterator_type_list, -    iterator>::type    iterator_type_list; -  typedef typename mpl::push_front< -    typename super::const_iterator_type_list, -    const_iterator>::type                            const_iterator_type_list; -  typedef typename super::copy_map_type              copy_map_type; - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  typedef typename super::index_saver_type           index_saver_type; -  typedef typename super::index_loader_type          index_loader_type; -#endif - -private: -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -  typedef safe_ctr_proxy_impl< -    bidir_node_iterator<node_type>, -    ordered_index>                                   safe_super; -#else -  typedef safe_mode::safe_container<ordered_index>   safe_super; -#endif -#endif - -  typedef typename call_traits< -    value_type>::param_type                          value_param_type; -  typedef typename call_traits< -    key_type>::param_type                            key_param_type; - -public: - -  /* construct/copy/destroy -   * Default and copy ctors are in the protected section as indices are -   * not supposed to be created on their own. No range ctor either. -   */ - -  ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& operator=( -    const ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& x) -  { -    this->final()=x.final(); -    return *this; -  } - -  allocator_type get_allocator()const -  { -    return this->final().get_allocator(); -  } - -  /* iterators */ - -  iterator               begin(){return make_iterator(leftmost());} -  const_iterator         begin()const{return make_iterator(leftmost());} -  iterator               end(){return make_iterator(header());} -  const_iterator         end()const{return make_iterator(header());} -  reverse_iterator       rbegin(){return make_reverse_iterator(end());} -  const_reverse_iterator rbegin()const{return make_reverse_iterator(end());} -  reverse_iterator       rend(){return make_reverse_iterator(begin());} -  const_reverse_iterator rend()const{return make_reverse_iterator(begin());} -  const_iterator         cbegin()const{return begin();} -  const_iterator         cend()const{return end();} -  const_reverse_iterator crbegin()const{return rbegin();} -  const_reverse_iterator crend()const{return rend();} -  -  iterator iterator_to(const value_type& x) -  { -    return make_iterator(node_from_value<node_type>(&x)); -  } - -  const_iterator iterator_to(const value_type& x)const -  { -    return make_iterator(node_from_value<node_type>(&x)); -  } - -  /* capacity */ - -  bool      empty()const{return this->final_empty_();} -  size_type size()const{return this->final_size_();} -  size_type max_size()const{return this->final_max_size_();} - -  /* modifiers */ - -  std::pair<iterator,bool> insert(value_param_type x) -  { -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    std::pair<final_node_type*,bool> p=this->final_insert_(x); -    return std::pair<iterator,bool>(make_iterator(p.first),p.second); -  } - -  iterator insert(iterator position,value_param_type x) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    std::pair<final_node_type*,bool> p=this->final_insert_( -      x,static_cast<final_node_type*>(position.get_node())); -    return make_iterator(p.first); -  } -     -  template<typename InputIterator> -  void insert(InputIterator first,InputIterator last) -  { -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    iterator hint=end(); -    for(;first!=last;++first)hint=insert(hint,*first); -  } - -  iterator erase(iterator position) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    this->final_erase_(static_cast<final_node_type*>(position++.get_node())); -    return position; -  } -   -  size_type erase(key_param_type x) -  { -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    std::pair<iterator,iterator> p=equal_range(x); -    size_type s=0; -    while(p.first!=p.second){ -      p.first=erase(p.first); -      ++s; -    } -    return s; -  } - -  iterator erase(iterator first,iterator last) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(first); -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(last); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(first,*this); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(last,*this); -    BOOST_MULTI_INDEX_CHECK_VALID_RANGE(first,last); -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    while(first!=last){ -      first=erase(first); -    } -    return first; -  } - -  bool replace(iterator position,value_param_type x) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    return this->final_replace_( -      x,static_cast<final_node_type*>(position.get_node())); -  } - -  template<typename Modifier> -  bool modify(iterator position,Modifier mod) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    /* MSVC++ 6.0 optimizer on safe mode code chokes if this -     * this is not added. Left it for all compilers as it does no -     * harm. -     */ - -    position.detach(); -#endif - -    return this->final_modify_( -      mod,static_cast<final_node_type*>(position.get_node())); -  } - -  template<typename Modifier,typename Rollback> -  bool modify(iterator position,Modifier mod,Rollback back) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    /* MSVC++ 6.0 optimizer on safe mode code chokes if this -     * this is not added. Left it for all compilers as it does no -     * harm. -     */ - -    position.detach(); -#endif - -    return this->final_modify_( -      mod,back,static_cast<final_node_type*>(position.get_node())); -  } -   -  template<typename Modifier> -  bool modify_key(iterator position,Modifier mod) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    return modify( -      position,modify_key_adaptor<Modifier,value_type,KeyFromValue>(mod,key)); -  } - -  template<typename Modifier,typename Rollback> -  bool modify_key(iterator position,Modifier mod,Rollback back) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    return modify( -      position, -      modify_key_adaptor<Modifier,value_type,KeyFromValue>(mod,key), -      modify_key_adaptor<Rollback,value_type,KeyFromValue>(back,key)); -  } - -  void swap(ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& x) -  { -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    this->final_swap_(x.final()); -  } - -  void clear() -  { -    BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT; -    this->final_clear_(); -  } - -  /* observers */ - -  key_from_value key_extractor()const{return key;} -  key_compare    key_comp()const{return comp;} -  value_compare  value_comp()const{return value_compare(key,comp);} - -  /* set operations */ - -  /* Internally, these ops rely on const_iterator being the same -   * type as iterator. -   */ - -  template<typename CompatibleKey> -  iterator find(const CompatibleKey& x)const -  { -    return make_iterator(ordered_index_find(root(),header(),key,x,comp)); -  } - -  template<typename CompatibleKey,typename CompatibleCompare> -  iterator find( -    const CompatibleKey& x,const CompatibleCompare& comp)const -  { -    return make_iterator(ordered_index_find(root(),header(),key,x,comp)); -  } - -  template<typename CompatibleKey> -  size_type count(const CompatibleKey& x)const -  { -    return count(x,comp); -  } - -  template<typename CompatibleKey,typename CompatibleCompare> -  size_type count(const CompatibleKey& x,const CompatibleCompare& comp)const -  { -    std::pair<iterator,iterator> p=equal_range(x,comp); -    size_type n=std::distance(p.first,p.second); -    return n; -  } - -  template<typename CompatibleKey> -  iterator lower_bound(const CompatibleKey& x)const -  { -    return make_iterator( -      ordered_index_lower_bound(root(),header(),key,x,comp)); -  } - -  template<typename CompatibleKey,typename CompatibleCompare> -  iterator lower_bound( -    const CompatibleKey& x,const CompatibleCompare& comp)const -  { -    return make_iterator( -      ordered_index_lower_bound(root(),header(),key,x,comp)); -  } - -  template<typename CompatibleKey> -  iterator upper_bound(const CompatibleKey& x)const -  { -    return make_iterator( -      ordered_index_upper_bound(root(),header(),key,x,comp)); -  } - -  template<typename CompatibleKey,typename CompatibleCompare> -  iterator upper_bound( -    const CompatibleKey& x,const CompatibleCompare& comp)const -  { -    return make_iterator( -      ordered_index_upper_bound(root(),header(),key,x,comp)); -  } - -  template<typename CompatibleKey> -  std::pair<iterator,iterator> equal_range( -    const CompatibleKey& x)const -  { -    std::pair<node_type*,node_type*> p= -      ordered_index_equal_range(root(),header(),key,x,comp); -    return std::pair<iterator,iterator>( -      make_iterator(p.first),make_iterator(p.second)); -  } - -  template<typename CompatibleKey,typename CompatibleCompare> -  std::pair<iterator,iterator> equal_range( -    const CompatibleKey& x,const CompatibleCompare& comp)const -  { -    std::pair<node_type*,node_type*> p= -      ordered_index_equal_range(root(),header(),key,x,comp); -    return std::pair<iterator,iterator>( -      make_iterator(p.first),make_iterator(p.second)); -  } - -  /* range */ - -  template<typename LowerBounder,typename UpperBounder> -  std::pair<iterator,iterator> -  range(LowerBounder lower,UpperBounder upper)const -  { -    typedef typename mpl::if_< -      is_same<LowerBounder,unbounded_type>, -      BOOST_DEDUCED_TYPENAME mpl::if_< -        is_same<UpperBounder,unbounded_type>, -        both_unbounded_tag, -        lower_unbounded_tag -      >::type, -      BOOST_DEDUCED_TYPENAME mpl::if_< -        is_same<UpperBounder,unbounded_type>, -        upper_unbounded_tag, -        none_unbounded_tag -      >::type -    >::type dispatch; - -    return range(lower,upper,dispatch()); -  } - -BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: -  ordered_index(const ctor_args_list& args_list,const allocator_type& al): -    super(args_list.get_tail(),al), -    key(tuples::get<0>(args_list.get_head())), -    comp(tuples::get<1>(args_list.get_head())) -  { -    empty_initialize(); -  } - -  ordered_index( -    const ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& x): -    super(x), - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    safe_super(), -#endif - -    key(x.key), -    comp(x.comp) -  { -    /* Copy ctor just takes the key and compare objects from x. The rest is -     * done in subsequent call to copy_(). -     */ -  } - -  ~ordered_index() -  { -    /* the container is guaranteed to be empty by now */ -  } - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -  iterator       make_iterator(node_type* node){return iterator(node,this);} -  const_iterator make_iterator(node_type* node)const -    {return const_iterator(node,const_cast<ordered_index*>(this));} -#else -  iterator       make_iterator(node_type* node){return iterator(node);} -  const_iterator make_iterator(node_type* node)const -                   {return const_iterator(node);} -#endif - -  void copy_( -    const ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& x, -    const copy_map_type& map) -  { -    if(!x.root()){ -      empty_initialize(); -    } -    else{ -      header()->color()=x.header()->color(); - -      node_type* root_cpy=map.find(static_cast<final_node_type*>(x.root())); -      header()->parent()=root_cpy->impl(); - -      node_type* leftmost_cpy=map.find( -        static_cast<final_node_type*>(x.leftmost())); -      header()->left()=leftmost_cpy->impl(); - -      node_type* rightmost_cpy=map.find( -        static_cast<final_node_type*>(x.rightmost())); -      header()->right()=rightmost_cpy->impl(); - -      typedef typename copy_map_type::const_iterator copy_map_iterator; -      for(copy_map_iterator it=map.begin(),it_end=map.end();it!=it_end;++it){ -        node_type* org=it->first; -        node_type* cpy=it->second; - -        cpy->color()=org->color(); - -        node_impl_pointer parent_org=org->parent(); -        if(parent_org==node_impl_pointer(0))cpy->parent()=node_impl_pointer(0); -        else{ -          node_type* parent_cpy=map.find( -            static_cast<final_node_type*>(node_type::from_impl(parent_org))); -          cpy->parent()=parent_cpy->impl(); -          if(parent_org->left()==org->impl()){ -            parent_cpy->left()=cpy->impl(); -          } -          else if(parent_org->right()==org->impl()){ -            /* header() does not satisfy this nor the previous check */ -            parent_cpy->right()=cpy->impl(); -          } -        } - -        if(org->left()==node_impl_pointer(0)) -          cpy->left()=node_impl_pointer(0); -        if(org->right()==node_impl_pointer(0)) -          cpy->right()=node_impl_pointer(0); -      } -    } -     -    super::copy_(x,map); -  } - -  node_type* insert_(value_param_type v,node_type* x) -  { -    link_info inf; -    if(!link_point(key(v),inf,Category())){ -      return node_type::from_impl(inf.pos); -    } - -    node_type* res=static_cast<node_type*>(super::insert_(v,x)); -    if(res==x){ -      node_impl_type::link(x->impl(),inf.side,inf.pos,header()->impl()); -    } -    return res; -  } - -  node_type* insert_(value_param_type v,node_type* position,node_type* x) -  { -    link_info inf; -    if(!hinted_link_point(key(v),position,inf,Category())){ -      return node_type::from_impl(inf.pos); -    } - -    node_type* res=static_cast<node_type*>(super::insert_(v,position,x)); -    if(res==x){ -      node_impl_type::link(x->impl(),inf.side,inf.pos,header()->impl()); -    } -    return res; -  } - -  void erase_(node_type* x) -  { -    node_impl_type::rebalance_for_erase( -      x->impl(),header()->parent(),header()->left(),header()->right()); -    super::erase_(x); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    detach_iterators(x); -#endif -  } - -  void delete_all_nodes_() -  { -    delete_all_nodes(root()); -  } - -  void clear_() -  { -    super::clear_(); -    empty_initialize(); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    safe_super::detach_dereferenceable_iterators(); -#endif -  } - -  void swap_(ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& x) -  { -    std::swap(key,x.key); -    std::swap(comp,x.comp); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    safe_super::swap(x); -#endif - -    super::swap_(x); -  } - -  bool replace_(value_param_type v,node_type* x) -  { -    if(in_place(v,x,Category())){ -      return super::replace_(v,x); -    } - -    node_type* next=x; -    node_type::increment(next); - -    node_impl_type::rebalance_for_erase( -      x->impl(),header()->parent(),header()->left(),header()->right()); - -    BOOST_TRY{ -      link_info inf; -      if(link_point(key(v),inf,Category())&&super::replace_(v,x)){ -        node_impl_type::link(x->impl(),inf.side,inf.pos,header()->impl()); -        return true; -      } -      node_impl_type::restore(x->impl(),next->impl(),header()->impl()); -      return false; -    } -    BOOST_CATCH(...){ -      node_impl_type::restore(x->impl(),next->impl(),header()->impl()); -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -  bool modify_(node_type* x) -  { -    bool b; -    BOOST_TRY{ -      b=in_place(x->value(),x,Category()); -    } -    BOOST_CATCH(...){ -      erase_(x); -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -    if(!b){ -      node_impl_type::rebalance_for_erase( -        x->impl(),header()->parent(),header()->left(),header()->right()); -      BOOST_TRY{ -        link_info inf; -        if(!link_point(key(x->value()),inf,Category())){ -          super::erase_(x); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -          detach_iterators(x); -#endif -          return false; -        } -        node_impl_type::link(x->impl(),inf.side,inf.pos,header()->impl()); -      } -      BOOST_CATCH(...){ -        super::erase_(x); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -        detach_iterators(x); -#endif - -        BOOST_RETHROW; -      } -      BOOST_CATCH_END -    } - -    BOOST_TRY{ -      if(!super::modify_(x)){ -        node_impl_type::rebalance_for_erase( -          x->impl(),header()->parent(),header()->left(),header()->right()); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -        detach_iterators(x); -#endif - -        return false; -      } -      else return true; -    } -    BOOST_CATCH(...){ -      node_impl_type::rebalance_for_erase( -        x->impl(),header()->parent(),header()->left(),header()->right()); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -      detach_iterators(x); -#endif - -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -  bool modify_rollback_(node_type* x) -  { -    if(in_place(x->value(),x,Category())){ -      return super::modify_rollback_(x); -    } - -    node_type* next=x; -    node_type::increment(next); - -    node_impl_type::rebalance_for_erase( -      x->impl(),header()->parent(),header()->left(),header()->right()); - -    BOOST_TRY{ -      link_info inf; -      if(link_point(key(x->value()),inf,Category())&& -         super::modify_rollback_(x)){ -        node_impl_type::link(x->impl(),inf.side,inf.pos,header()->impl()); -        return true; -      } -      node_impl_type::restore(x->impl(),next->impl(),header()->impl()); -      return false; -    } -    BOOST_CATCH(...){ -      node_impl_type::restore(x->impl(),next->impl(),header()->impl()); -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  /* serialization */ - -  template<typename Archive> -  void save_( -    Archive& ar,const unsigned int version,const index_saver_type& sm)const -  { -    save_(ar,version,sm,Category()); -  } - -  template<typename Archive> -  void load_(Archive& ar,const unsigned int version,const index_loader_type& lm) -  { -    load_(ar,version,lm,Category()); -  } -#endif - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING) -  /* invariant stuff */ - -  bool invariant_()const -  { -    if(size()==0||begin()==end()){ -      if(size()!=0||begin()!=end()|| -         header()->left()!=header()->impl()|| -         header()->right()!=header()->impl())return false; -    } -    else{ -      if((size_type)std::distance(begin(),end())!=size())return false; - -      std::size_t len=node_impl_type::black_count( -        leftmost()->impl(),root()->impl()); -      for(const_iterator it=begin(),it_end=end();it!=it_end;++it){ -        node_type* x=it.get_node(); -        node_type* left_x=node_type::from_impl(x->left()); -        node_type* right_x=node_type::from_impl(x->right()); - -        if(x->color()==red){ -          if((left_x&&left_x->color()==red)|| -             (right_x&&right_x->color()==red))return false; -        } -        if(left_x&&comp(key(x->value()),key(left_x->value())))return false; -        if(right_x&&comp(key(right_x->value()),key(x->value())))return false; -        if(!left_x&&!right_x&& -           node_impl_type::black_count(x->impl(),root()->impl())!=len) -          return false; -      } -     -      if(leftmost()->impl()!=node_impl_type::minimum(root()->impl())) -        return false; -      if(rightmost()->impl()!=node_impl_type::maximum(root()->impl())) -        return false; -    } - -    return super::invariant_(); -  } - -   -  /* This forwarding function eases things for the boost::mem_fn construct -   * in BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT. Actually, -   * final_check_invariant is already an inherited member function of -   * ordered_index. -   */ -  void check_invariant_()const{this->final_check_invariant_();} -#endif - -private: -  node_type* header()const{return this->final_header();} -  node_type* root()const{return node_type::from_impl(header()->parent());} -  node_type* leftmost()const{return node_type::from_impl(header()->left());} -  node_type* rightmost()const{return node_type::from_impl(header()->right());} - -  void empty_initialize() -  { -    header()->color()=red; -    /* used to distinguish header() from root, in iterator.operator++ */ -     -    header()->parent()=node_impl_pointer(0); -    header()->left()=header()->impl(); -    header()->right()=header()->impl(); -  } - -  struct link_info -  { -    link_info():side(to_left){} - -    ordered_index_side side; -    node_impl_pointer  pos; -  }; - -  bool link_point(key_param_type k,link_info& inf,ordered_unique_tag) -  { -    node_type* y=header(); -    node_type* x=root(); -    bool c=true; -    while(x){ -      y=x; -      c=comp(k,key(x->value())); -      x=node_type::from_impl(c?x->left():x->right()); -    } -    node_type* yy=y; -    if(c){ -      if(yy==leftmost()){ -        inf.side=to_left; -        inf.pos=y->impl(); -        return true; -      } -      else node_type::decrement(yy); -    } - -    if(comp(key(yy->value()),k)){ -      inf.side=c?to_left:to_right; -      inf.pos=y->impl(); -      return true; -    } -    else{ -      inf.pos=yy->impl(); -      return false; -    } -  } - -  bool link_point(key_param_type k,link_info& inf,ordered_non_unique_tag) -  { -    node_type* y=header(); -    node_type* x=root(); -    bool c=true; -    while (x){ -     y=x; -     c=comp(k,key(x->value())); -     x=node_type::from_impl(c?x->left():x->right()); -    } -    inf.side=c?to_left:to_right; -    inf.pos=y->impl(); -    return true; -  } - -  bool lower_link_point(key_param_type k,link_info& inf,ordered_non_unique_tag) -  { -    node_type* y=header(); -    node_type* x=root(); -    bool c=false; -    while (x){ -     y=x; -     c=comp(key(x->value()),k); -     x=node_type::from_impl(c?x->right():x->left()); -    } -    inf.side=c?to_right:to_left; -    inf.pos=y->impl(); -    return true; -  } - -  bool hinted_link_point( -    key_param_type k,node_type* position,link_info& inf,ordered_unique_tag) -  { -    if(position->impl()==header()->left()){  -      if(size()>0&&comp(k,key(position->value()))){ -        inf.side=to_left; -        inf.pos=position->impl(); -        return true; -      } -      else return link_point(k,inf,ordered_unique_tag()); -    }  -    else if(position==header()){  -      if(comp(key(rightmost()->value()),k)){ -        inf.side=to_right; -        inf.pos=rightmost()->impl(); -        return true; -      } -      else return link_point(k,inf,ordered_unique_tag()); -    }  -    else{ -      node_type* before=position; -      node_type::decrement(before); -      if(comp(key(before->value()),k)&&comp(k,key(position->value()))){ -        if(before->right()==node_impl_pointer(0)){ -          inf.side=to_right; -          inf.pos=before->impl(); -          return true; -        } -        else{ -          inf.side=to_left; -          inf.pos=position->impl(); -          return true; -        } -      }  -      else return link_point(k,inf,ordered_unique_tag()); -    } -  } - -  bool hinted_link_point( -    key_param_type k,node_type* position,link_info& inf,ordered_non_unique_tag) -  { -    if(position->impl()==header()->left()){  -      if(size()>0&&!comp(key(position->value()),k)){ -        inf.side=to_left; -        inf.pos=position->impl(); -        return true; -      } -      else return lower_link_point(k,inf,ordered_non_unique_tag()); -    }  -    else if(position==header()){ -      if(!comp(k,key(rightmost()->value()))){ -        inf.side=to_right; -        inf.pos=rightmost()->impl(); -        return true; -      } -      else return link_point(k,inf,ordered_non_unique_tag()); -    }  -    else{ -      node_type* before=position; -      node_type::decrement(before); -      if(!comp(k,key(before->value()))){ -        if(!comp(key(position->value()),k)){ -          if(before->right()==node_impl_pointer(0)){ -            inf.side=to_right; -            inf.pos=before->impl(); -            return true; -          } -          else{ -            inf.side=to_left; -            inf.pos=position->impl(); -            return true; -          } -        } -        else return lower_link_point(k,inf,ordered_non_unique_tag()); -      }  -      else return link_point(k,inf,ordered_non_unique_tag()); -    } -  } - -  void delete_all_nodes(node_type* x) -  { -    if(!x)return; - -    delete_all_nodes(node_type::from_impl(x->left())); -    delete_all_nodes(node_type::from_impl(x->right())); -    this->final_delete_node_(static_cast<final_node_type*>(x)); -  } - -  bool in_place(value_param_type v,node_type* x,ordered_unique_tag) -  { -    node_type* y; -    if(x!=leftmost()){ -      y=x; -      node_type::decrement(y); -      if(!comp(key(y->value()),key(v)))return false; -    } - -    y=x; -    node_type::increment(y); -    return y==header()||comp(key(v),key(y->value())); -  } - -  bool in_place(value_param_type v,node_type* x,ordered_non_unique_tag) -  { -    node_type* y; -    if(x!=leftmost()){ -      y=x; -      node_type::decrement(y); -      if(comp(key(v),key(y->value())))return false; -    } - -    y=x; -    node_type::increment(y); -    return y==header()||!comp(key(y->value()),key(v)); -  } - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -  void detach_iterators(node_type* x) -  { -    iterator it=make_iterator(x); -    safe_mode::detach_equivalent_iterators(it); -  } -#endif - -  template<typename LowerBounder,typename UpperBounder> -  std::pair<iterator,iterator> -  range(LowerBounder lower,UpperBounder upper,none_unbounded_tag)const -  { -    node_type* y=header(); -    node_type* z=root(); - -    while(z){ -      if(!lower(key(z->value()))){ -        z=node_type::from_impl(z->right()); -      } -      else if(!upper(key(z->value()))){ -        y=z; -        z=node_type::from_impl(z->left()); -      } -      else{ -        return std::pair<iterator,iterator>( -          make_iterator( -            lower_range(node_type::from_impl(z->left()),z,lower)), -          make_iterator( -            upper_range(node_type::from_impl(z->right()),y,upper))); -      } -    } - -    return std::pair<iterator,iterator>(make_iterator(y),make_iterator(y)); -  } - -  template<typename LowerBounder,typename UpperBounder> -  std::pair<iterator,iterator> -  range(LowerBounder,UpperBounder upper,lower_unbounded_tag)const -  { -    return std::pair<iterator,iterator>( -      begin(), -      make_iterator(upper_range(root(),header(),upper))); -  } - -  template<typename LowerBounder,typename UpperBounder> -  std::pair<iterator,iterator> -  range(LowerBounder lower,UpperBounder,upper_unbounded_tag)const -  { -    return std::pair<iterator,iterator>( -      make_iterator(lower_range(root(),header(),lower)), -      end()); -  } - -  template<typename LowerBounder,typename UpperBounder> -  std::pair<iterator,iterator> -  range(LowerBounder,UpperBounder,both_unbounded_tag)const -  { -    return std::pair<iterator,iterator>(begin(),end()); -  } - -  template<typename LowerBounder> -  node_type * lower_range(node_type* top,node_type* y,LowerBounder lower)const -  { -    while(top){ -      if(lower(key(top->value()))){ -        y=top; -        top=node_type::from_impl(top->left()); -      } -      else top=node_type::from_impl(top->right()); -    } - -    return y; -  } - -  template<typename UpperBounder> -  node_type * upper_range(node_type* top,node_type* y,UpperBounder upper)const -  { -    while(top){ -      if(!upper(key(top->value()))){ -        y=top; -        top=node_type::from_impl(top->left()); -      } -      else top=node_type::from_impl(top->right()); -    } - -    return y; -  } - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  template<typename Archive> -  void save_( -    Archive& ar,const unsigned int version,const index_saver_type& sm, -    ordered_unique_tag)const -  { -    super::save_(ar,version,sm); -  } - -  template<typename Archive> -  void load_( -    Archive& ar,const unsigned int version,const index_loader_type& lm, -    ordered_unique_tag) -  { -    super::load_(ar,version,lm); -  } - -  template<typename Archive> -  void save_( -    Archive& ar,const unsigned int version,const index_saver_type& sm, -    ordered_non_unique_tag)const -  { -    typedef duplicates_iterator<node_type,value_compare> dup_iterator; - -    sm.save( -      dup_iterator(begin().get_node(),end().get_node(),value_comp()), -      dup_iterator(end().get_node(),value_comp()), -      ar,version); -    super::save_(ar,version,sm); -  } - -  template<typename Archive> -  void load_( -    Archive& ar,const unsigned int version,const index_loader_type& lm, -    ordered_non_unique_tag) -  { -    lm.load( -      ::boost::bind(&ordered_index::rearranger,this,_1,_2), -      ar,version); -    super::load_(ar,version,lm); -  } - -  void rearranger(node_type* position,node_type *x) -  { -    if(!position||comp(key(position->value()),key(x->value()))){ -      position=lower_bound(key(x->value())).get_node(); -    } -    else if(comp(key(x->value()),key(position->value()))){ -      /* inconsistent rearrangement */ -      throw_exception( -        archive::archive_exception( -          archive::archive_exception::other_exception)); -    } -    else node_type::increment(position); - -    if(position!=x){ -      node_impl_type::rebalance_for_erase( -        x->impl(),header()->parent(),header()->left(),header()->right()); -      node_impl_type::restore( -        x->impl(),position->impl(),header()->impl()); -    } -  } -#endif /* serialization */ - -  key_from_value key; -  key_compare    comp; - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)&&\ -    BOOST_WORKAROUND(__MWERKS__,<=0x3003) -#pragma parse_mfunc_templ reset -#endif -}; - -/* comparison */ - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator==( -  const ordered_index<KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index<KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y) -{ -  return x.size()==y.size()&&std::equal(x.begin(),x.end(),y.begin()); -} - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator<( -  const ordered_index<KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index<KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y) -{ -  return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end()); -} - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator!=( -  const ordered_index<KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index<KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y) -{ -  return !(x==y); -} - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator>( -  const ordered_index<KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index<KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y) -{ -  return y<x; -} - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator>=( -  const ordered_index<KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index<KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y) -{ -  return !(x<y); -} - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator<=( -  const ordered_index<KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index<KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y) -{ -  return !(x>y); -} - -/*  specialized algorithms */ - -template< -  typename KeyFromValue,typename Compare, -  typename SuperMeta,typename TagList,typename Category -> -void swap( -  ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& x, -  ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& y) -{ -  x.swap(y); -} - -} /* namespace multi_index::detail */ - -/* ordered_index specifiers */ - -template<typename Arg1,typename Arg2,typename Arg3> -struct ordered_unique -{ -  typedef typename detail::ordered_index_args< -    Arg1,Arg2,Arg3>                                index_args; -  typedef typename index_args::tag_list_type::type tag_list_type; -  typedef typename index_args::key_from_value_type key_from_value_type; -  typedef typename index_args::compare_type        compare_type; - -  template<typename Super> -  struct node_class -  { -    typedef detail::ordered_index_node<Super> type; -  }; - -  template<typename SuperMeta> -  struct index_class -  { -    typedef detail::ordered_index< -      key_from_value_type,compare_type, -      SuperMeta,tag_list_type,detail::ordered_unique_tag> type; -  }; -}; - -template<typename Arg1,typename Arg2,typename Arg3> -struct ordered_non_unique -{ -  typedef detail::ordered_index_args< -    Arg1,Arg2,Arg3>                                index_args; -  typedef typename index_args::tag_list_type::type tag_list_type; -  typedef typename index_args::key_from_value_type key_from_value_type; -  typedef typename index_args::compare_type        compare_type; - -  template<typename Super> -  struct node_class -  { -    typedef detail::ordered_index_node<Super> type; -  }; - -  template<typename SuperMeta> -  struct index_class -  { -    typedef detail::ordered_index< -      key_from_value_type,compare_type, -      SuperMeta,tag_list_type,detail::ordered_non_unique_tag> type; -  }; -}; - -} /* namespace multi_index */ - -} /* namespace boost */ - -#undef BOOST_MULTI_INDEX_ORD_INDEX_CHECK_INVARIANT - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/ordered_index_fwd.hpp b/3rdParty/Boost/src/boost/multi_index/ordered_index_fwd.hpp deleted file mode 100644 index 6288a71..0000000 --- a/3rdParty/Boost/src/boost/multi_index/ordered_index_fwd.hpp +++ /dev/null @@ -1,124 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_ORDERED_INDEX_FWD_HPP -#define BOOST_MULTI_INDEX_ORDERED_INDEX_FWD_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/multi_index/detail/ord_index_args.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -template< -  typename KeyFromValue,typename Compare, -  typename SuperMeta,typename TagList,typename Category -> -class ordered_index; - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator==( -  const ordered_index< -    KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index< -    KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator<( -  const ordered_index< -    KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index< -    KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator!=( -  const ordered_index< -    KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index< -    KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator>( -  const ordered_index< -    KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index< -    KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator>=( -  const ordered_index< -    KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index< -    KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); - -template< -  typename KeyFromValue1,typename Compare1, -  typename SuperMeta1,typename TagList1,typename Category1, -  typename KeyFromValue2,typename Compare2, -  typename SuperMeta2,typename TagList2,typename Category2 -> -bool operator<=( -  const ordered_index< -    KeyFromValue1,Compare1,SuperMeta1,TagList1,Category1>& x, -  const ordered_index< -    KeyFromValue2,Compare2,SuperMeta2,TagList2,Category2>& y); - -template< -  typename KeyFromValue,typename Compare, -  typename SuperMeta,typename TagList,typename Category -> -void swap( -  ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& x, -  ordered_index<KeyFromValue,Compare,SuperMeta,TagList,Category>& y); - -} /* namespace multi_index::detail */ - -/* ordered_index specifiers */ - -template<typename Arg1,typename Arg2=mpl::na,typename Arg3=mpl::na> -struct ordered_unique; - -template<typename Arg1,typename Arg2=mpl::na,typename Arg3=mpl::na> -struct ordered_non_unique; - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/safe_mode_errors.hpp b/3rdParty/Boost/src/boost/multi_index/safe_mode_errors.hpp deleted file mode 100644 index ff6f960..0000000 --- a/3rdParty/Boost/src/boost/multi_index/safe_mode_errors.hpp +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_SAFE_MODE_ERRORS_HPP -#define BOOST_MULTI_INDEX_SAFE_MODE_ERRORS_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -namespace boost{ - -namespace multi_index{ - -namespace safe_mode{ - -/* Error codes for Boost.MultiIndex safe mode. These go in a separate - * header so that the user can include it when redefining - * BOOST_MULTI_INDEX_SAFE_MODE_ASSERT prior to the inclusion of - * any other header of Boost.MultiIndex. - */ - -enum error_code -{ -  invalid_iterator=0, -  not_dereferenceable_iterator, -  not_incrementable_iterator, -  not_decrementable_iterator, -  not_owner, -  not_same_owner, -  invalid_range, -  inside_range, -  out_of_bounds, -  same_container -}; - -} /* namespace multi_index::safe_mode */ - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/sequenced_index.hpp b/3rdParty/Boost/src/boost/multi_index/sequenced_index.hpp deleted file mode 100644 index 8e09115..0000000 --- a/3rdParty/Boost/src/boost/multi_index/sequenced_index.hpp +++ /dev/null @@ -1,922 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_SEQUENCED_INDEX_HPP -#define BOOST_MULTI_INDEX_SEQUENCED_INDEX_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/call_traits.hpp> -#include <boost/detail/allocator_utilities.hpp> -#include <boost/detail/no_exceptions_support.hpp> -#include <boost/detail/workaround.hpp> -#include <boost/iterator/reverse_iterator.hpp> -#include <boost/mpl/bool.hpp> -#include <boost/mpl/not.hpp> -#include <boost/mpl/push_front.hpp> -#include <boost/multi_index/detail/access_specifier.hpp> -#include <boost/multi_index/detail/bidir_node_iterator.hpp> -#include <boost/multi_index/detail/index_node_base.hpp> -#include <boost/multi_index/detail/safe_ctr_proxy.hpp> -#include <boost/multi_index/detail/safe_mode.hpp> -#include <boost/multi_index/detail/scope_guard.hpp> -#include <boost/multi_index/detail/seq_index_node.hpp> -#include <boost/multi_index/detail/seq_index_ops.hpp> -#include <boost/multi_index/sequenced_index_fwd.hpp> -#include <boost/tuple/tuple.hpp> -#include <boost/type_traits/is_integral.hpp> -#include <cstddef> -#include <functional> -#include <utility> - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -#include <boost/bind.hpp> -#endif - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING) -#define BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT                          \ -  detail::scope_guard BOOST_JOIN(check_invariant_,__LINE__)=                 \ -    detail::make_obj_guard(*this,&sequenced_index::check_invariant_);        \ -  BOOST_JOIN(check_invariant_,__LINE__).touch(); -#else -#define BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -/* sequenced_index adds a layer of sequenced indexing to a given Super */ - -template<typename SuperMeta,typename TagList> -class sequenced_index: -  BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS SuperMeta::type - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -  ,public safe_ctr_proxy_impl< -    bidir_node_iterator< -      sequenced_index_node<typename SuperMeta::type::node_type> >, -    sequenced_index<SuperMeta,TagList> > -#else -  ,public safe_mode::safe_container< -    sequenced_index<SuperMeta,TagList> > -#endif -#endif - -{  -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)&&\ -    BOOST_WORKAROUND(__MWERKS__,<=0x3003) -/* The "ISO C++ Template Parser" option in CW8.3 has a problem with the - * lifetime of const references bound to temporaries --precisely what - * scopeguards are. - */ - -#pragma parse_mfunc_templ off -#endif - -  typedef typename SuperMeta::type                    super; - -protected: -  typedef sequenced_index_node< -    typename super::node_type>                        node_type; - -private: -  typedef typename node_type::impl_type               node_impl_type; -  -public: -  /* types */ - -  typedef typename node_type::value_type              value_type; -  typedef tuples::null_type                           ctor_args; -  typedef typename super::final_allocator_type        allocator_type; -  typedef typename allocator_type::reference          reference; -  typedef typename allocator_type::const_reference    const_reference; - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -  typedef safe_mode::safe_iterator< -    bidir_node_iterator<node_type>, -    safe_ctr_proxy< -      bidir_node_iterator<node_type> > >              iterator; -#else -  typedef safe_mode::safe_iterator< -    bidir_node_iterator<node_type>, -    sequenced_index>                                  iterator; -#endif -#else -  typedef bidir_node_iterator<node_type>              iterator; -#endif - -  typedef iterator                                    const_iterator; - -  typedef std::size_t                                 size_type;       -  typedef std::ptrdiff_t                              difference_type; -  typedef typename allocator_type::pointer            pointer; -  typedef typename allocator_type::const_pointer      const_pointer; -  typedef typename -    boost::reverse_iterator<iterator>                 reverse_iterator; -  typedef typename -    boost::reverse_iterator<const_iterator>           const_reverse_iterator; -  typedef TagList                                     tag_list; - -protected: -  typedef typename super::final_node_type     final_node_type; -  typedef tuples::cons< -    ctor_args,  -    typename super::ctor_args_list>           ctor_args_list; -  typedef typename mpl::push_front< -    typename super::index_type_list, -    sequenced_index>::type                    index_type_list; -  typedef typename mpl::push_front< -    typename super::iterator_type_list, -    iterator>::type                           iterator_type_list; -  typedef typename mpl::push_front< -    typename super::const_iterator_type_list, -    const_iterator>::type                     const_iterator_type_list; -  typedef typename super::copy_map_type       copy_map_type; - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  typedef typename super::index_saver_type    index_saver_type; -  typedef typename super::index_loader_type   index_loader_type; -#endif - -private: -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -  typedef safe_ctr_proxy_impl< -    bidir_node_iterator<node_type>, -    sequenced_index>                          safe_super; -#else -  typedef safe_mode::safe_container< -    sequenced_index>                          safe_super; -#endif -#endif - -  typedef typename call_traits<value_type>::param_type value_param_type; - -public: - -  /* construct/copy/destroy -   * Default and copy ctors are in the protected section as indices are -   * not supposed to be created on their own. No range ctor either. -   */ - -  sequenced_index<SuperMeta,TagList>& operator=( -    const sequenced_index<SuperMeta,TagList>& x) -  { -    this->final()=x.final(); -    return *this; -  } - -  template <class InputIterator> -  void assign(InputIterator first,InputIterator last) -  { -    assign_iter(first,last,mpl::not_<is_integral<InputIterator> >()); -  } - -  void assign(size_type n,value_param_type value) -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    clear(); -    for(size_type i=0;i<n;++i)push_back(value); -  } -     -  allocator_type get_allocator()const -  { -    return this->final().get_allocator(); -  } - -  /* iterators */ - -  iterator               begin() -    {return make_iterator(node_type::from_impl(header()->next()));} -  const_iterator         begin()const -    {return make_iterator(node_type::from_impl(header()->next()));} -  iterator               end(){return make_iterator(header());} -  const_iterator         end()const{return make_iterator(header());} -  reverse_iterator       rbegin(){return make_reverse_iterator(end());} -  const_reverse_iterator rbegin()const{return make_reverse_iterator(end());} -  reverse_iterator       rend(){return make_reverse_iterator(begin());} -  const_reverse_iterator rend()const{return make_reverse_iterator(begin());} -  const_iterator         cbegin()const{return begin();} -  const_iterator         cend()const{return end();} -  const_reverse_iterator crbegin()const{return rbegin();} -  const_reverse_iterator crend()const{return rend();} - -  iterator iterator_to(const value_type& x) -  { -    return make_iterator(node_from_value<node_type>(&x)); -  } - -  const_iterator iterator_to(const value_type& x)const -  { -    return make_iterator(node_from_value<node_type>(&x)); -  } - -  /* capacity */ - -  bool      empty()const{return this->final_empty_();} -  size_type size()const{return this->final_size_();} -  size_type max_size()const{return this->final_max_size_();} - -  void resize(size_type n,value_param_type x=value_type()) -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    if(n>size())insert(end(),n-size(),x); -    else if(n<size()){ -      iterator it; -      if(n<=size()/2){ -        it=begin(); -        std::advance(it,n); -      } -      else{ -        it=end(); -        for(size_type m=size()-n;m--;--it){} -      } -      erase(it,end()); -    }    -  } - -  /* access: no non-const versions provided as sequenced_index -   * handles const elements. -   */ - -  const_reference front()const{return *begin();} -  const_reference back()const{return *--end();} - -  /* modifiers */ - -  std::pair<iterator,bool> push_front(value_param_type x) -                             {return insert(begin(),x);} -  void                     pop_front(){erase(begin());} -  std::pair<iterator,bool> push_back(value_param_type x) -                             {return insert(end(),x);} -  void                     pop_back(){erase(--end());} - -  std::pair<iterator,bool> insert(iterator position,value_param_type x) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    std::pair<final_node_type*,bool> p=this->final_insert_(x); -    if(p.second&&position.get_node()!=header()){ -      relink(position.get_node(),p.first); -    } -    return std::pair<iterator,bool>(make_iterator(p.first),p.second); -  } - -  void insert(iterator position,size_type n,value_param_type x) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    for(size_type i=0;i<n;++i)insert(position,x); -  } -  -  template<typename InputIterator> -  void insert(iterator position,InputIterator first,InputIterator last) -  { -    insert_iter(position,first,last,mpl::not_<is_integral<InputIterator> >()); -  } - -  iterator erase(iterator position) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    this->final_erase_(static_cast<final_node_type*>(position++.get_node())); -    return position; -  } -   -  iterator erase(iterator first,iterator last) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(first); -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(last); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(first,*this); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(last,*this); -    BOOST_MULTI_INDEX_CHECK_VALID_RANGE(first,last); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    while(first!=last){ -      first=erase(first); -    } -    return first; -  } - -  bool replace(iterator position,value_param_type x) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    return this->final_replace_( -      x,static_cast<final_node_type*>(position.get_node())); -  } - -  template<typename Modifier> -  bool modify(iterator position,Modifier mod) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    /* MSVC++ 6.0 optimizer on safe mode code chokes if this -     * this is not added. Left it for all compilers as it does no -     * harm. -     */ - -    position.detach(); -#endif - -    return this->final_modify_( -      mod,static_cast<final_node_type*>(position.get_node())); -  } - -  template<typename Modifier,typename Rollback> -  bool modify(iterator position,Modifier mod,Rollback back) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    /* MSVC++ 6.0 optimizer on safe mode code chokes if this -     * this is not added. Left it for all compilers as it does no -     * harm. -     */ - -    position.detach(); -#endif - -    return this->final_modify_( -      mod,back,static_cast<final_node_type*>(position.get_node())); -  } - -  void swap(sequenced_index<SuperMeta,TagList>& x) -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    this->final_swap_(x.final()); -  } - -  void clear() -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    this->final_clear_(); -  } - -  /* list operations */ - -  void splice(iterator position,sequenced_index<SuperMeta,TagList>& x) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_CHECK_DIFFERENT_CONTAINER(*this,x); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    iterator first=x.begin(),last=x.end(); -    while(first!=last){ -      if(insert(position,*first).second)first=x.erase(first); -      else ++first; -    } -  } - -  void splice(iterator position,sequenced_index<SuperMeta,TagList>& x,iterator i) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(i); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(i); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(i,x); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    if(&x==this){ -      if(position!=i)relink(position.get_node(),i.get_node()); -    } -    else{ -      if(insert(position,*i).second){ - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    /* MSVC++ 6.0 optimizer has a hard time with safe mode, and the following -     * workaround is needed. Left it for all compilers as it does no -     * harm. -     */ -        i.detach(); -        x.erase(x.make_iterator(i.get_node())); -#else -        x.erase(i); -#endif - -      } -    } -  } - -  void splice( -    iterator position,sequenced_index<SuperMeta,TagList>& x, -    iterator first,iterator last) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(first); -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(last); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(first,x); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(last,x); -    BOOST_MULTI_INDEX_CHECK_VALID_RANGE(first,last); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    if(&x==this){ -      BOOST_MULTI_INDEX_CHECK_OUTSIDE_RANGE(position,first,last); -      if(position!=last)relink( -        position.get_node(),first.get_node(),last.get_node()); -    } -    else{ -      while(first!=last){ -        if(insert(position,*first).second)first=x.erase(first); -        else ++first; -      } -    } -  } - -  void remove(value_param_type value) -  { -    sequenced_index_remove( -      *this,std::bind2nd(std::equal_to<value_type>(),value)); -  } - -  template<typename Predicate> -  void remove_if(Predicate pred) -  { -    sequenced_index_remove(*this,pred); -  } - -  void unique() -  { -    sequenced_index_unique(*this,std::equal_to<value_type>()); -  } - -  template <class BinaryPredicate> -  void unique(BinaryPredicate binary_pred) -  { -    sequenced_index_unique(*this,binary_pred); -  } - -  void merge(sequenced_index<SuperMeta,TagList>& x) -  { -    sequenced_index_merge(*this,x,std::less<value_type>()); -  } - -  template <typename Compare> -  void merge(sequenced_index<SuperMeta,TagList>& x,Compare comp) -  { -    sequenced_index_merge(*this,x,comp); -  } - -  void sort() -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    sequenced_index_sort(header(),std::less<value_type>()); -  } - -  template <typename Compare> -  void sort(Compare comp) -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    sequenced_index_sort(header(),comp); -  } - -  void reverse() -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    node_impl_type::reverse(header()->impl()); -  } - -  /* rearrange operations */ - -  void relocate(iterator position,iterator i) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(i); -    BOOST_MULTI_INDEX_CHECK_DEREFERENCEABLE_ITERATOR(i); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(i,*this); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    if(position!=i)relink(position.get_node(),i.get_node()); -  } - -  void relocate(iterator position,iterator first,iterator last) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(first); -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(last); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(first,*this); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(last,*this); -    BOOST_MULTI_INDEX_CHECK_VALID_RANGE(first,last); -    BOOST_MULTI_INDEX_CHECK_OUTSIDE_RANGE(position,first,last); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    if(position!=last)relink( -      position.get_node(),first.get_node(),last.get_node()); -  } -     -  template<typename InputIterator> -  void rearrange(InputIterator first) -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    node_type* pos=header(); -    for(size_type s=size();s--;){ -      const value_type& v=*first++; -      relink(pos,node_from_value<node_type>(&v)); -    } -  } - -BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: -  sequenced_index(const ctor_args_list& args_list,const allocator_type& al): -    super(args_list.get_tail(),al) -  { -    empty_initialize(); -  } - -  sequenced_index(const sequenced_index<SuperMeta,TagList>& x): -    super(x) - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    ,safe_super() -#endif - -  { -    /* The actual copying takes place in subsequent call to copy_(). -     */ -  } - -  ~sequenced_index() -  { -    /* the container is guaranteed to be empty by now */ -  } - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -  iterator       make_iterator(node_type* node){return iterator(node,this);} -  const_iterator make_iterator(node_type* node)const -    {return const_iterator(node,const_cast<sequenced_index*>(this));} -#else -  iterator       make_iterator(node_type* node){return iterator(node);} -  const_iterator make_iterator(node_type* node)const -                   {return const_iterator(node);} -#endif - -  void copy_( -    const sequenced_index<SuperMeta,TagList>& x,const copy_map_type& map) -  { -    node_type* org=x.header(); -    node_type* cpy=header(); -    do{ -      node_type* next_org=node_type::from_impl(org->next()); -      node_type* next_cpy=map.find(static_cast<final_node_type*>(next_org)); -      cpy->next()=next_cpy->impl(); -      next_cpy->prior()=cpy->impl(); -      org=next_org; -      cpy=next_cpy; -    }while(org!=x.header()); - -    super::copy_(x,map); -  } - -  node_type* insert_(value_param_type v,node_type* x) -  { -    node_type* res=static_cast<node_type*>(super::insert_(v,x)); -    if(res==x)link(x); -    return res; -  } - -  node_type* insert_(value_param_type v,node_type* position,node_type* x) -  { -    node_type* res=static_cast<node_type*>(super::insert_(v,position,x)); -    if(res==x)link(x); -    return res; -  } - -  void erase_(node_type* x) -  { -    unlink(x); -    super::erase_(x); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    detach_iterators(x); -#endif -  } - -  void delete_all_nodes_() -  { -    for(node_type* x=node_type::from_impl(header()->next());x!=header();){ -      node_type* y=node_type::from_impl(x->next()); -      this->final_delete_node_(static_cast<final_node_type*>(x)); -      x=y; -    } -  } - -  void clear_() -  { -    super::clear_(); -    empty_initialize(); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    safe_super::detach_dereferenceable_iterators(); -#endif -  } - -  void swap_(sequenced_index<SuperMeta,TagList>& x) -  { -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -    safe_super::swap(x); -#endif - -    super::swap_(x); -  } - -  bool replace_(value_param_type v,node_type* x) -  { -    return super::replace_(v,x); -  } - -  bool modify_(node_type* x) -  { -    BOOST_TRY{ -      if(!super::modify_(x)){ -        unlink(x); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -        detach_iterators(x); -#endif - -        return false; -      } -      else return true; -    } -    BOOST_CATCH(...){ -      unlink(x); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -      detach_iterators(x); -#endif - -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -  bool modify_rollback_(node_type* x) -  { -    return super::modify_rollback_(x); -  } - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  /* serialization */ - -  template<typename Archive> -  void save_( -    Archive& ar,const unsigned int version,const index_saver_type& sm)const -  { -    sm.save(begin(),end(),ar,version); -    super::save_(ar,version,sm); -  } - -  template<typename Archive> -  void load_( -    Archive& ar,const unsigned int version,const index_loader_type& lm) -  { -    lm.load( -      ::boost::bind(&sequenced_index::rearranger,this,_1,_2), -      ar,version); -    super::load_(ar,version,lm); -  } -#endif - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING) -  /* invariant stuff */ - -  bool invariant_()const -  { -    if(size()==0||begin()==end()){ -      if(size()!=0||begin()!=end()|| -         header()->next()!=header()->impl()|| -         header()->prior()!=header()->impl())return false; -    } -    else{ -      size_type s=0; -      for(const_iterator it=begin(),it_end=end();it!=it_end;++it,++s){ -        if(it.get_node()->next()->prior()!=it.get_node()->impl())return false; -        if(it.get_node()->prior()->next()!=it.get_node()->impl())return false; -      } -      if(s!=size())return false; -    } - -    return super::invariant_(); -  } - -  /* This forwarding function eases things for the boost::mem_fn construct -   * in BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT. Actually, -   * final_check_invariant is already an inherited member function of index. -   */ -  void check_invariant_()const{this->final_check_invariant_();} -#endif - -private: -  node_type* header()const{return this->final_header();} - -  void empty_initialize() -  { -    header()->prior()=header()->next()=header()->impl(); -  } - -  void link(node_type* x) -  { -    node_impl_type::link(x->impl(),header()->impl()); -  }; - -  static void unlink(node_type* x) -  { -    node_impl_type::unlink(x->impl()); -  } - -  static void relink(node_type* position,node_type* x) -  { -    node_impl_type::relink(position->impl(),x->impl()); -  } - -  static void relink(node_type* position,node_type* first,node_type* last) -  { -    node_impl_type::relink( -      position->impl(),first->impl(),last->impl()); -  } - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  void rearranger(node_type* position,node_type *x) -  { -    if(!position)position=header(); -    node_type::increment(position); -    if(position!=x)relink(position,x); -  } -#endif - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -  void detach_iterators(node_type* x) -  { -    iterator it=make_iterator(x); -    safe_mode::detach_equivalent_iterators(it); -  } -#endif - -  template <class InputIterator> -  void assign_iter(InputIterator first,InputIterator last,mpl::true_) -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    clear(); -    for(;first!=last;++first)push_back(*first); -  } - -  void assign_iter(size_type n,value_param_type value,mpl::false_) -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    clear(); -    for(size_type i=0;i<n;++i)push_back(value); -  } - -  template<typename InputIterator> -  void insert_iter( -    iterator position,InputIterator first,InputIterator last,mpl::true_) -  { -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    for(;first!=last;++first)insert(position,*first); -  } - -  void insert_iter( -    iterator position,size_type n,value_param_type x,mpl::false_) -  { -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(position); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER(position,*this); -    BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT; -    for(size_type i=0;i<n;++i)insert(position,x); -  } -  -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)&&\ -    BOOST_WORKAROUND(__MWERKS__,<=0x3003) -#pragma parse_mfunc_templ reset -#endif -}; - -/* comparison */ - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator==( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y) -{ -  return x.size()==y.size()&&std::equal(x.begin(),x.end(),y.begin()); -} - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator<( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y) -{ -  return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end()); -} - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator!=( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y) -{ -  return !(x==y); -} - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator>( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y) -{ -  return y<x; -} - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator>=( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y) -{ -  return !(x<y); -} - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator<=( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y) -{ -  return !(x>y); -} - -/*  specialized algorithms */ - -template<typename SuperMeta,typename TagList> -void swap( -  sequenced_index<SuperMeta,TagList>& x, -  sequenced_index<SuperMeta,TagList>& y) -{ -  x.swap(y); -} - -} /* namespace multi_index::detail */ - -/* sequenced index specifier */ - -template <typename TagList> -struct sequenced -{ -  BOOST_STATIC_ASSERT(detail::is_tag<TagList>::value); - -  template<typename Super> -  struct node_class -  { -    typedef detail::sequenced_index_node<Super> type; -  }; - -  template<typename SuperMeta> -  struct index_class -  { -    typedef detail::sequenced_index<SuperMeta,typename TagList::type> type; -  }; -}; - -} /* namespace multi_index */ - -} /* namespace boost */ - -#undef BOOST_MULTI_INDEX_SEQ_INDEX_CHECK_INVARIANT - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/sequenced_index_fwd.hpp b/3rdParty/Boost/src/boost/multi_index/sequenced_index_fwd.hpp deleted file mode 100644 index 5211390..0000000 --- a/3rdParty/Boost/src/boost/multi_index/sequenced_index_fwd.hpp +++ /dev/null @@ -1,91 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_SEQUENCED_INDEX_FWD_HPP -#define BOOST_MULTI_INDEX_SEQUENCED_INDEX_FWD_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/multi_index/tag.hpp> - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -template<typename SuperMeta,typename TagList> -class sequenced_index; - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator==( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y); - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator<( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y); - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator!=( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y); - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator>( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y); - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator>=( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y); - -template< -  typename SuperMeta1,typename TagList1, -  typename SuperMeta2,typename TagList2 -> -bool operator<=( -  const sequenced_index<SuperMeta1,TagList1>& x, -  const sequenced_index<SuperMeta2,TagList2>& y); - -template<typename SuperMeta,typename TagList> -void swap( -  sequenced_index<SuperMeta,TagList>& x, -  sequenced_index<SuperMeta,TagList>& y); - -} /* namespace multi_index::detail */ - -/* index specifiers */ - -template <typename TagList=tag<> > -struct sequenced; - -} /* namespace multi_index */ - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index/tag.hpp b/3rdParty/Boost/src/boost/multi_index/tag.hpp deleted file mode 100644 index ba7cab4..0000000 --- a/3rdParty/Boost/src/boost/multi_index/tag.hpp +++ /dev/null @@ -1,92 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_TAG_HPP -#define BOOST_MULTI_INDEX_TAG_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/multi_index/detail/no_duplicate_tags.hpp> -#include <boost/mpl/identity.hpp> -#include <boost/mpl/transform.hpp> -#include <boost/mpl/vector.hpp> -#include <boost/preprocessor/facilities/intercept.hpp>  -#include <boost/preprocessor/repetition/enum_binary_params.hpp>  -#include <boost/preprocessor/repetition/enum_params.hpp>  -#include <boost/static_assert.hpp> -#include <boost/type_traits/is_base_and_derived.hpp> - -/* A wrapper of mpl::vector used to hide MPL from the user. - * tag contains types used as tag names for indices in get() functions. - */ - -/* This user_definable macro limits the number of elements of a tag; - * useful for shortening resulting symbol names (MSVC++ 6.0, for instance, - * has problems coping with very long symbol names.) - */ - -#if !defined(BOOST_MULTI_INDEX_LIMIT_TAG_SIZE) -#if defined(BOOST_MSVC)&&(BOOST_MSVC<1300) -#define BOOST_MULTI_INDEX_LIMIT_TAG_SIZE 3 -#else -#define BOOST_MULTI_INDEX_LIMIT_TAG_SIZE BOOST_MPL_LIMIT_VECTOR_SIZE -#endif -#endif - -#if BOOST_MULTI_INDEX_LIMIT_TAG_SIZE<BOOST_MPL_LIMIT_VECTOR_SIZE -#define BOOST_MULTI_INDEX_TAG_SIZE BOOST_MULTI_INDEX_LIMIT_TAG_SIZE -#else -#define BOOST_MULTI_INDEX_TAG_SIZE BOOST_MPL_LIMIT_VECTOR_SIZE -#endif - -namespace boost{ - -namespace multi_index{ - -namespace detail{ - -struct tag_marker{}; - -template<typename T> -struct is_tag -{ -  BOOST_STATIC_CONSTANT(bool,value=(is_base_and_derived<tag_marker,T>::value)); -}; - -} /* namespace multi_index::detail */ - -template< -  BOOST_PP_ENUM_BINARY_PARAMS( -    BOOST_MULTI_INDEX_TAG_SIZE, -    typename T, -    =mpl::na BOOST_PP_INTERCEPT)  -> -struct tag:private detail::tag_marker -{ -  /* The mpl::transform pass produces shorter symbols (without -   * trailing mpl::na's.) -   */ - -  typedef typename mpl::transform< -    mpl::vector<BOOST_PP_ENUM_PARAMS(BOOST_MULTI_INDEX_TAG_SIZE,T)>, -    mpl::identity<mpl::_1> -  >::type type; - -  BOOST_STATIC_ASSERT(detail::no_duplicate_tags<type>::value); -}; - -} /* namespace multi_index */ - -} /* namespace boost */ - -#undef BOOST_MULTI_INDEX_TAG_SIZE - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index_container.hpp b/3rdParty/Boost/src/boost/multi_index_container.hpp deleted file mode 100644 index e1969b9..0000000 --- a/3rdParty/Boost/src/boost/multi_index_container.hpp +++ /dev/null @@ -1,1143 +0,0 @@ -/* Multiply indexed container. - * - * Copyright 2003-2010 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_HPP -#define BOOST_MULTI_INDEX_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <algorithm> -#include <boost/detail/allocator_utilities.hpp> -#include <boost/detail/no_exceptions_support.hpp> -#include <boost/detail/workaround.hpp> -#include <boost/mpl/at.hpp> -#include <boost/mpl/contains.hpp> -#include <boost/mpl/find_if.hpp> -#include <boost/mpl/identity.hpp> -#include <boost/mpl/int.hpp> -#include <boost/mpl/size.hpp> -#include <boost/mpl/deref.hpp> -#include <boost/multi_index_container_fwd.hpp> -#include <boost/multi_index/detail/access_specifier.hpp> -#include <boost/multi_index/detail/adl_swap.hpp> -#include <boost/multi_index/detail/base_type.hpp> -#include <boost/multi_index/detail/converter.hpp> -#include <boost/multi_index/detail/header_holder.hpp> -#include <boost/multi_index/detail/has_tag.hpp> -#include <boost/multi_index/detail/no_duplicate_tags.hpp> -#include <boost/multi_index/detail/prevent_eti.hpp> -#include <boost/multi_index/detail/safe_mode.hpp> -#include <boost/multi_index/detail/scope_guard.hpp> -#include <boost/static_assert.hpp> -#include <boost/type_traits/is_same.hpp> -#include <boost/utility/base_from_member.hpp> - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -#include <boost/multi_index/detail/archive_constructed.hpp> -#include <boost/multi_index/detail/serialization_version.hpp> -#include <boost/serialization/collection_size_type.hpp> -#include <boost/serialization/nvp.hpp> -#include <boost/serialization/split_member.hpp> -#include <boost/serialization/version.hpp> -#include <boost/throw_exception.hpp>  -#endif - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING) -#include <boost/multi_index/detail/invariant_assert.hpp> -#define BOOST_MULTI_INDEX_CHECK_INVARIANT                                    \ -  detail::scope_guard BOOST_JOIN(check_invariant_,__LINE__)=                 \ -    detail::make_obj_guard(*this,&multi_index_container::check_invariant_);  \ -  BOOST_JOIN(check_invariant_,__LINE__).touch(); -#else -#define BOOST_MULTI_INDEX_CHECK_INVARIANT -#endif - -namespace boost{ - -namespace multi_index{ - -template<typename Value,typename IndexSpecifierList,typename Allocator> -class multi_index_container: -  private ::boost::base_from_member< -    typename boost::detail::allocator::rebind_to< -      Allocator, -      typename detail::multi_index_node_type< -        Value,IndexSpecifierList,Allocator>::type -    >::type>, -  BOOST_MULTI_INDEX_PRIVATE_IF_MEMBER_TEMPLATE_FRIENDS detail::header_holder< -    typename detail::prevent_eti< -      Allocator, -      typename boost::detail::allocator::rebind_to< -        Allocator, -        typename detail::multi_index_node_type< -          Value,IndexSpecifierList,Allocator>::type -      >::type -    >::type::pointer, -    multi_index_container<Value,IndexSpecifierList,Allocator> >, -  public detail::multi_index_base_type< -    Value,IndexSpecifierList,Allocator>::type -{ -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)&&\ -    BOOST_WORKAROUND(__MWERKS__,<=0x3003) -/* The "ISO C++ Template Parser" option in CW8.3 has a problem with the - * lifetime of const references bound to temporaries --precisely what - * scopeguards are. - */ - -#pragma parse_mfunc_templ off -#endif - -private: -#if !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) -  template <typename,typename,typename> friend class  detail::index_base; -  template <typename,typename>          friend struct detail::header_holder; -  template <typename,typename>          friend struct detail::converter; -#endif - -  typedef typename detail::multi_index_base_type< -      Value,IndexSpecifierList,Allocator>::type   super; -  typedef typename -  boost::detail::allocator::rebind_to< -      Allocator, -      typename super::node_type -  >::type                                         node_allocator; -  typedef ::boost::base_from_member< -    node_allocator>                               bfm_allocator; -  typedef detail::header_holder< -    typename detail::prevent_eti< -      Allocator, -      node_allocator -    >::type::pointer, -    multi_index_container>                        bfm_header; - -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -  /* see definition of index_type_list below */ -  typedef typename super::index_type_list         super_index_type_list; -#endif - -public: -  /* All types are inherited from super, a few are explicitly -   * brought forward here to save us some typename's. -   */ - -  typedef typename super::ctor_args_list          ctor_args_list; -  typedef IndexSpecifierList                      index_specifier_type_list; -  -#if BOOST_WORKAROUND(BOOST_MSVC,<1300) -  /* MSVC++ 6.0 chokes on moderately long index lists (around 6 indices -   * or more), with errors ranging from corrupt exes to duplicate -   * comdats. The following type hiding hack alleviates this condition; -   * best results combined with type hiding of the indexed_by construct -   * itself, as explained in the "Compiler specifics" section of -   * the documentation. -   */ - -  struct index_type_list:super_index_type_list -  { -    typedef index_type_list                      type; -    typedef typename super_index_type_list::back back; -    typedef mpl::v_iter<type,0>                  begin; -    typedef mpl::v_iter< -      type, -      mpl::size<super_index_type_list>::value>   end; -  }; -#else -  typedef typename super::index_type_list          index_type_list; -#endif - -  typedef typename super::iterator_type_list       iterator_type_list; -  typedef typename super::const_iterator_type_list const_iterator_type_list; -  typedef typename super::value_type               value_type; -  typedef typename super::final_allocator_type     allocator_type; -  typedef typename super::iterator                 iterator; -  typedef typename super::const_iterator           const_iterator; - -  BOOST_STATIC_ASSERT( -    detail::no_duplicate_tags_in_index_list<index_type_list>::value); - -  /* global project() needs to see this publicly */ - -  typedef typename super::node_type node_type; - -  /* construct/copy/destroy */ - -  explicit multi_index_container( - -#if BOOST_WORKAROUND(__IBMCPP__,<=600) -    /* VisualAge seems to have an ETI issue with the default values -     * for arguments args_list and al. -     */ - -    const ctor_args_list& args_list= -      typename mpl::identity<multi_index_container>::type:: -        ctor_args_list(), -    const allocator_type& al= -      typename mpl::identity<multi_index_container>::type:: -        allocator_type()): -#else -    const ctor_args_list& args_list=ctor_args_list(), -    const allocator_type& al=allocator_type()): -#endif - -    bfm_allocator(al), -    super(args_list,bfm_allocator::member), -    node_count(0) -  { -    BOOST_MULTI_INDEX_CHECK_INVARIANT; -  }     - -  explicit multi_index_container(const allocator_type& al): -    bfm_allocator(al), -    super(ctor_args_list(),bfm_allocator::member), -    node_count(0) -  { -    BOOST_MULTI_INDEX_CHECK_INVARIANT; -  } - -  template<typename InputIterator> -  multi_index_container( -    InputIterator first,InputIterator last, - -#if BOOST_WORKAROUND(__IBMCPP__,<=600) -    /* VisualAge seems to have an ETI issue with the default values -     * for arguments args_list and al. -     */ - -    const ctor_args_list& args_list= -      typename mpl::identity<multi_index_container>::type:: -        ctor_args_list(), -    const allocator_type& al= -      typename mpl::identity<multi_index_container>::type:: -        allocator_type()): -#else -    const ctor_args_list& args_list=ctor_args_list(), -    const allocator_type& al=allocator_type()): -#endif - -    bfm_allocator(al), -    super(args_list,bfm_allocator::member), -    node_count(0) -  { -    BOOST_MULTI_INDEX_CHECK_INVARIANT; -    BOOST_TRY{ -      iterator hint=super::end(); -      for(;first!=last;++first){ -        hint=super::make_iterator(insert_(*first,hint.get_node()).first); -      } -    } -    BOOST_CATCH(...){ -      clear_(); -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -  multi_index_container( -    const multi_index_container<Value,IndexSpecifierList,Allocator>& x): -    bfm_allocator(x.bfm_allocator::member), -    bfm_header(), -    super(x), -    node_count(0) -  { -    copy_map_type map(bfm_allocator::member,x.size(),x.header(),header()); -    for(const_iterator it=x.begin(),it_end=x.end();it!=it_end;++it){ -      map.clone(it.get_node()); -    } -    super::copy_(x,map); -    map.release(); -    node_count=x.size(); - -    /* Not until this point are the indices required to be consistent, -     * hence the position of the invariant checker. -     */ - -    BOOST_MULTI_INDEX_CHECK_INVARIANT; -  } - -  ~multi_index_container() -  { -    delete_all_nodes_(); -  } - -  multi_index_container<Value,IndexSpecifierList,Allocator>& operator=( -    multi_index_container<Value,IndexSpecifierList,Allocator> x) -  { -    BOOST_MULTI_INDEX_CHECK_INVARIANT; -    this->swap(x); -    return *this; -  } - -  allocator_type get_allocator()const -  { -    return allocator_type(bfm_allocator::member); -  } - -  /* retrieval of indices by number */ - -#if !defined(BOOST_NO_MEMBER_TEMPLATES) -  template<int N> -  struct nth_index -  { -    BOOST_STATIC_ASSERT(N>=0&&N<mpl::size<index_type_list>::type::value); -    typedef typename mpl::at_c<index_type_list,N>::type type; -  }; - -  template<int N> -  typename nth_index<N>::type& get(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int,N)) -  { -    BOOST_STATIC_ASSERT(N>=0&&N<mpl::size<index_type_list>::type::value); -    return *this; -  } - -  template<int N> -  const typename nth_index<N>::type& get( -    BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int,N))const -  { -    BOOST_STATIC_ASSERT(N>=0&&N<mpl::size<index_type_list>::type::value); -    return *this; -  } -#endif - -  /* retrieval of indices by tag */ - -#if !defined(BOOST_NO_MEMBER_TEMPLATES) -  template<typename Tag> -  struct index -  { -    typedef typename mpl::find_if< -      index_type_list, -      detail::has_tag<Tag> -    >::type                                    iter; - -    BOOST_STATIC_CONSTANT( -      bool,index_found=!(is_same<iter,typename mpl::end<index_type_list>::type >::value)); -    BOOST_STATIC_ASSERT(index_found); - -    typedef typename mpl::deref<iter>::type    type; -  }; - -  template<typename Tag> -  typename index<Tag>::type& get(BOOST_EXPLICIT_TEMPLATE_TYPE(Tag)) -  { -    return *this; -  } - -  template<typename Tag> -  const typename index<Tag>::type& get( -    BOOST_EXPLICIT_TEMPLATE_TYPE(Tag))const -  { -    return *this; -  } -#endif - -  /* projection of iterators by number */ - -#if !defined(BOOST_NO_MEMBER_TEMPLATES) -  template<int N> -  struct nth_index_iterator -  { -    typedef typename nth_index<N>::type::iterator type; -  }; - -  template<int N> -  struct nth_index_const_iterator -  { -    typedef typename nth_index<N>::type::const_iterator type; -  }; - -  template<int N,typename IteratorType> -  typename nth_index_iterator<N>::type project( -    IteratorType it -    BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N)) -  { -    typedef typename nth_index<N>::type index; - -#if !defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580) /* fails in Sun C++ 5.7 */ -    BOOST_STATIC_ASSERT( -      (mpl::contains<iterator_type_list,IteratorType>::value)); -#endif - -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER( -      it,static_cast<typename IteratorType::container_type&>(*this)); - -    return index::make_iterator(static_cast<node_type*>(it.get_node())); -  } - -  template<int N,typename IteratorType> -  typename nth_index_const_iterator<N>::type project( -    IteratorType it -    BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N))const -  { -    typedef typename nth_index<N>::type index; - -#if !defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580) /* fails in Sun C++ 5.7 */ -    BOOST_STATIC_ASSERT(( -      mpl::contains<iterator_type_list,IteratorType>::value|| -      mpl::contains<const_iterator_type_list,IteratorType>::value)); -#endif - -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER( -      it,static_cast<const typename IteratorType::container_type&>(*this)); -    return index::make_iterator(static_cast<node_type*>(it.get_node())); -  } -#endif - -  /* projection of iterators by tag */ - -#if !defined(BOOST_NO_MEMBER_TEMPLATES) -  template<typename Tag> -  struct index_iterator -  { -    typedef typename index<Tag>::type::iterator type; -  }; - -  template<typename Tag> -  struct index_const_iterator -  { -    typedef typename index<Tag>::type::const_iterator type; -  }; - -  template<typename Tag,typename IteratorType> -  typename index_iterator<Tag>::type project( -    IteratorType it -    BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag)) -  { -    typedef typename index<Tag>::type index; - -#if !defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580) /* fails in Sun C++ 5.7 */ -    BOOST_STATIC_ASSERT( -      (mpl::contains<iterator_type_list,IteratorType>::value)); -#endif - -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER( -      it,static_cast<typename IteratorType::container_type&>(*this)); -    return index::make_iterator(static_cast<node_type*>(it.get_node())); -  } - -  template<typename Tag,typename IteratorType> -  typename index_const_iterator<Tag>::type project( -    IteratorType it -    BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag))const -  { -    typedef typename index<Tag>::type index; - -#if !defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580) /* fails in Sun C++ 5.7 */ -    BOOST_STATIC_ASSERT(( -      mpl::contains<iterator_type_list,IteratorType>::value|| -      mpl::contains<const_iterator_type_list,IteratorType>::value)); -#endif - -    BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it); -    BOOST_MULTI_INDEX_CHECK_IS_OWNER( -      it,static_cast<const typename IteratorType::container_type&>(*this)); -    return index::make_iterator(static_cast<node_type*>(it.get_node())); -  } -#endif - -BOOST_MULTI_INDEX_PROTECTED_IF_MEMBER_TEMPLATE_FRIENDS: -  typedef typename super::copy_map_type copy_map_type; - -  node_type* header()const -  { -    return &*bfm_header::member; -  } - -  node_type* allocate_node() -  { -    return &*bfm_allocator::member.allocate(1); -  } - -  void deallocate_node(node_type* x) -  { -    typedef typename node_allocator::pointer node_pointer; -    bfm_allocator::member.deallocate(static_cast<node_pointer>(x),1); -  } - -  bool empty_()const -  { -    return node_count==0; -  } - -  std::size_t size_()const -  { -    return node_count; -  } - -  std::size_t max_size_()const -  { -    return static_cast<std::size_t >(-1); -  } - -  std::pair<node_type*,bool> insert_(const Value& v) -  { -    node_type* x=allocate_node(); -    BOOST_TRY{ -      node_type* res=super::insert_(v,x); -      if(res==x){ -        ++node_count; -        return std::pair<node_type*,bool>(res,true); -      } -      else{ -        deallocate_node(x); -        return std::pair<node_type*,bool>(res,false); -      } -    } -    BOOST_CATCH(...){ -      deallocate_node(x); -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -  std::pair<node_type*,bool> insert_(const Value& v,node_type* position) -  { -    node_type* x=allocate_node(); -    BOOST_TRY{ -      node_type* res=super::insert_(v,position,x); -      if(res==x){ -        ++node_count; -        return std::pair<node_type*,bool>(res,true); -      } -      else{ -        deallocate_node(x); -        return std::pair<node_type*,bool>(res,false); -      } -    } -    BOOST_CATCH(...){ -      deallocate_node(x); -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -  void erase_(node_type* x) -  { -    --node_count; -    super::erase_(x); -    deallocate_node(x); -  } - -  void delete_node_(node_type* x) -  { -    super::delete_node_(x); -    deallocate_node(x); -  } - -  void delete_all_nodes_() -  { -    super::delete_all_nodes_(); -  } - -  void clear_() -  { -    delete_all_nodes_(); -    super::clear_(); -    node_count=0; -  } - -  void swap_(multi_index_container<Value,IndexSpecifierList,Allocator>& x) -  { -    if(bfm_allocator::member!=x.bfm_allocator::member){ -      detail::adl_swap(bfm_allocator::member,x.bfm_allocator::member); -    } -    std::swap(bfm_header::member,x.bfm_header::member); -    super::swap_(x); -    std::swap(node_count,x.node_count); -  } - -  bool replace_(const Value& k,node_type* x) -  { -    return super::replace_(k,x); -  } - -  template<typename Modifier> -  bool modify_(Modifier& mod,node_type* x) -  { -    mod(const_cast<value_type&>(x->value())); - -    BOOST_TRY{ -      if(!super::modify_(x)){ -        deallocate_node(x); -        --node_count; -        return false; -      } -      else return true; -    } -    BOOST_CATCH(...){ -      deallocate_node(x); -      --node_count; -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -  template<typename Modifier,typename Rollback> -  bool modify_(Modifier& mod,Rollback& back,node_type* x) -  { -    mod(const_cast<value_type&>(x->value())); - -    bool b; -    BOOST_TRY{ -      b=super::modify_rollback_(x); -    } -    BOOST_CATCH(...){ -      BOOST_TRY{ -        back(const_cast<value_type&>(x->value())); -        BOOST_RETHROW; -      } -      BOOST_CATCH(...){ -        this->erase_(x); -        BOOST_RETHROW; -      } -      BOOST_CATCH_END -    } -    BOOST_CATCH_END - -    BOOST_TRY{ -      if(!b){ -        back(const_cast<value_type&>(x->value())); -        return false; -      } -      else return true; -    } -    BOOST_CATCH(...){ -      this->erase_(x); -      BOOST_RETHROW; -    } -    BOOST_CATCH_END -  } - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION) -  /* serialization */ - -  friend class boost::serialization::access; - -  BOOST_SERIALIZATION_SPLIT_MEMBER() - -  typedef typename super::index_saver_type        index_saver_type; -  typedef typename super::index_loader_type       index_loader_type; - -  template<class Archive> -  void save(Archive& ar,const unsigned int version)const -  { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -    const serialization::collection_size_type       s(size_()); -    const detail::serialization_version<value_type> value_version; -    ar<<serialization::make_nvp("count",s); -    ar<<serialization::make_nvp("value_version",value_version); -#else -    const std::size_t  s=size_(); -    const unsigned int value_version=0; -    ar<<serialization::make_nvp("count",s); -#endif - -    index_saver_type sm(bfm_allocator::member,s); - -    for(iterator it=super::begin(),it_end=super::end();it!=it_end;++it){ -      serialization::save_construct_data_adl(ar,&*it,value_version); -      ar<<serialization::make_nvp("item",*it); -      sm.add(it.get_node(),ar,version); -    } -    sm.add_track(header(),ar,version); - -    super::save_(ar,version,sm); -  } - -  template<class Archive> -  void load(Archive& ar,const unsigned int version) -  { -    BOOST_MULTI_INDEX_CHECK_INVARIANT; - -    clear_();  - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -    serialization::collection_size_type       s; -    detail::serialization_version<value_type> value_version; -    if(version<1){ -      std::size_t sz; -      ar>>serialization::make_nvp("count",sz); -      s=sz; -    } -    else{ -      ar>>serialization::make_nvp("count",s); -    } -    if(version<2){ -      value_version=0; -    } -    else{ -      ar>>serialization::make_nvp("value_version",value_version); -    } -#else -    std::size_t  s; -    unsigned int value_version=0; -    ar>>serialization::make_nvp("count",s); -#endif - -    index_loader_type lm(bfm_allocator::member,s); - -    for(std::size_t n=0;n<s;++n){ -      detail::archive_constructed<Value> value("item",ar,value_version); -      std::pair<node_type*,bool> p=insert_( -        value.get(),super::end().get_node()); -      if(!p.second)throw_exception( -        archive::archive_exception( -          archive::archive_exception::other_exception)); -      ar.reset_object_address(&p.first->value(),&value.get()); -      lm.add(p.first,ar,version); -    } -    lm.add_track(header(),ar,version); - -    super::load_(ar,version,lm); -  } -#endif - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING) -  /* invariant stuff */ - -  bool invariant_()const -  { -    return super::invariant_(); -  } - -  void check_invariant_()const -  { -    BOOST_MULTI_INDEX_INVARIANT_ASSERT(invariant_()); -  } -#endif - -private: -  std::size_t node_count; - -#if defined(BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING)&&\ -    BOOST_WORKAROUND(__MWERKS__,<=0x3003) -#pragma parse_mfunc_templ reset -#endif -}; - -/* retrieval of indices by number */ - -template<typename MultiIndexContainer,int N> -struct nth_index -{ -  BOOST_STATIC_CONSTANT( -    int, -    M=mpl::size<typename MultiIndexContainer::index_type_list>::type::value); -  BOOST_STATIC_ASSERT(N>=0&&N<M); -  typedef typename mpl::at_c< -    typename MultiIndexContainer::index_type_list,N>::type type; -}; - -template<int N,typename Value,typename IndexSpecifierList,typename Allocator> -typename nth_index< -  multi_index_container<Value,IndexSpecifierList,Allocator>,N>::type& -get( -  multi_index_container<Value,IndexSpecifierList,Allocator>& m -  BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N)) -{ -  typedef multi_index_container< -    Value,IndexSpecifierList,Allocator>    multi_index_type; -  typedef typename nth_index< -    multi_index_container< -      Value,IndexSpecifierList,Allocator>, -    N -  >::type                                  index; - -  BOOST_STATIC_ASSERT(N>=0&& -    N< -    mpl::size< -      BOOST_DEDUCED_TYPENAME multi_index_type::index_type_list -    >::type::value); - -  return detail::converter<multi_index_type,index>::index(m); -} - -template<int N,typename Value,typename IndexSpecifierList,typename Allocator> -const typename nth_index< -  multi_index_container<Value,IndexSpecifierList,Allocator>,N>::type& -get( -  const multi_index_container<Value,IndexSpecifierList,Allocator>& m -  BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N)) -{ -  typedef multi_index_container< -    Value,IndexSpecifierList,Allocator>    multi_index_type; -  typedef typename nth_index< -    multi_index_container< -      Value,IndexSpecifierList,Allocator>, -    N -  >::type                                  index; - -  BOOST_STATIC_ASSERT(N>=0&& -    N< -    mpl::size< -      BOOST_DEDUCED_TYPENAME multi_index_type::index_type_list -    >::type::value); - -  return detail::converter<multi_index_type,index>::index(m); -} - -/* retrieval of indices by tag */ - -template<typename MultiIndexContainer,typename Tag> -struct index -{ -  typedef typename MultiIndexContainer::index_type_list index_type_list; - -  typedef typename mpl::find_if< -    index_type_list, -    detail::has_tag<Tag> -  >::type                                      iter; - -  BOOST_STATIC_CONSTANT( -    bool,index_found=!(is_same<iter,typename mpl::end<index_type_list>::type >::value)); -  BOOST_STATIC_ASSERT(index_found); - -  typedef typename mpl::deref<iter>::type       type; -}; - -template< -  typename Tag,typename Value,typename IndexSpecifierList,typename Allocator -> -typename ::boost::multi_index::index< -  multi_index_container<Value,IndexSpecifierList,Allocator>,Tag>::type& -get( -  multi_index_container<Value,IndexSpecifierList,Allocator>& m -  BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag)) -{ -  typedef multi_index_container< -    Value,IndexSpecifierList,Allocator>         multi_index_type; -  typedef typename ::boost::multi_index::index< -    multi_index_container< -      Value,IndexSpecifierList,Allocator>, -    Tag -  >::type                                       index; - -  return detail::converter<multi_index_type,index>::index(m); -} - -template< -  typename Tag,typename Value,typename IndexSpecifierList,typename Allocator -> -const typename ::boost::multi_index::index< -  multi_index_container<Value,IndexSpecifierList,Allocator>,Tag>::type& -get( -  const multi_index_container<Value,IndexSpecifierList,Allocator>& m -  BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag)) -{ -  typedef multi_index_container< -    Value,IndexSpecifierList,Allocator>         multi_index_type; -  typedef typename ::boost::multi_index::index< -    multi_index_container< -      Value,IndexSpecifierList,Allocator>, -    Tag -  >::type                                       index; - -  return detail::converter<multi_index_type,index>::index(m); -} - -/* projection of iterators by number */ - -template<typename MultiIndexContainer,int N> -struct nth_index_iterator -{ -  typedef typename detail::prevent_eti< -    nth_index<MultiIndexContainer,N>, -    typename nth_index<MultiIndexContainer,N>::type>::type::iterator type; -}; - -template<typename MultiIndexContainer,int N> -struct nth_index_const_iterator -{ -  typedef typename detail::prevent_eti< -    nth_index<MultiIndexContainer,N>, -    typename nth_index<MultiIndexContainer,N>::type -  >::type::const_iterator type; -}; - -template< -  int N,typename IteratorType, -  typename Value,typename IndexSpecifierList,typename Allocator> -typename nth_index_iterator< -  multi_index_container<Value,IndexSpecifierList,Allocator>,N>::type -project( -  multi_index_container<Value,IndexSpecifierList,Allocator>& m, -  IteratorType it -  BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N)) -{ -  typedef multi_index_container< -    Value,IndexSpecifierList,Allocator>                multi_index_type; -  typedef typename nth_index<multi_index_type,N>::type index; - -#if (!defined(BOOST_MSVC)||!(BOOST_MSVC<1310))&&  /* MSVC++ 6.0/7.0 fails */\ -    (!defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580)) /* as does Sun C++ 5.7  */ -  BOOST_STATIC_ASSERT(( -    mpl::contains< -      BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list, -      IteratorType>::value)); -#endif - -  BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -  typedef detail::converter< -    multi_index_type, -    BOOST_DEDUCED_TYPENAME IteratorType::container_type> converter; -  BOOST_MULTI_INDEX_CHECK_IS_OWNER(it,converter::index(m)); -#endif - -  return detail::converter<multi_index_type,index>::iterator( -    m,static_cast<typename multi_index_type::node_type*>(it.get_node())); -} - -template< -  int N,typename IteratorType, -  typename Value,typename IndexSpecifierList,typename Allocator> -typename nth_index_const_iterator< -  multi_index_container<Value,IndexSpecifierList,Allocator>,N>::type -project( -  const multi_index_container<Value,IndexSpecifierList,Allocator>& m, -  IteratorType it -  BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int,N)) -{ -  typedef multi_index_container< -    Value,IndexSpecifierList,Allocator>                multi_index_type; -  typedef typename nth_index<multi_index_type,N>::type index; - -#if (!defined(BOOST_MSVC)||!(BOOST_MSVC<1310))&&  /* MSVC++ 6.0/7.0 fails */\ -    (!defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580)) /* as does Sun C++ 5.7  */ -  BOOST_STATIC_ASSERT(( -    mpl::contains< -      BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list, -      IteratorType>::value|| -    mpl::contains< -      BOOST_DEDUCED_TYPENAME multi_index_type::const_iterator_type_list, -      IteratorType>::value)); -#endif - -  BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -  typedef detail::converter< -    multi_index_type, -    BOOST_DEDUCED_TYPENAME IteratorType::container_type> converter; -  BOOST_MULTI_INDEX_CHECK_IS_OWNER(it,converter::index(m)); -#endif - -  return detail::converter<multi_index_type,index>::const_iterator( -    m,static_cast<typename multi_index_type::node_type*>(it.get_node())); -} - -/* projection of iterators by tag */ - -template<typename MultiIndexContainer,typename Tag> -struct index_iterator -{ -  typedef typename ::boost::multi_index::index< -    MultiIndexContainer,Tag>::type::iterator    type; -}; - -template<typename MultiIndexContainer,typename Tag> -struct index_const_iterator -{ -  typedef typename ::boost::multi_index::index< -    MultiIndexContainer,Tag>::type::const_iterator type; -}; - -template< -  typename Tag,typename IteratorType, -  typename Value,typename IndexSpecifierList,typename Allocator> -typename index_iterator< -  multi_index_container<Value,IndexSpecifierList,Allocator>,Tag>::type -project( -  multi_index_container<Value,IndexSpecifierList,Allocator>& m, -  IteratorType it -  BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag)) -{ -  typedef multi_index_container< -    Value,IndexSpecifierList,Allocator>         multi_index_type; -  typedef typename ::boost::multi_index::index< -    multi_index_type,Tag>::type                 index; - -#if (!defined(BOOST_MSVC)||!(BOOST_MSVC<1310))&&  /* MSVC++ 6.0/7.0 fails */\ -    (!defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580)) /* as does Sun C++ 5.7  */ -  BOOST_STATIC_ASSERT(( -    mpl::contains< -      BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list, -      IteratorType>::value)); -#endif - -  BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -  typedef detail::converter< -    multi_index_type, -    BOOST_DEDUCED_TYPENAME IteratorType::container_type> converter; -  BOOST_MULTI_INDEX_CHECK_IS_OWNER(it,converter::index(m)); -#endif - -  return detail::converter<multi_index_type,index>::iterator( -    m,static_cast<typename multi_index_type::node_type*>(it.get_node())); -} - -template< -  typename Tag,typename IteratorType, -  typename Value,typename IndexSpecifierList,typename Allocator> -typename index_const_iterator< -  multi_index_container<Value,IndexSpecifierList,Allocator>,Tag>::type -project( -  const multi_index_container<Value,IndexSpecifierList,Allocator>& m, -  IteratorType it -  BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(Tag)) -{ -  typedef multi_index_container< -    Value,IndexSpecifierList,Allocator>         multi_index_type; -  typedef typename ::boost::multi_index::index< -    multi_index_type,Tag>::type                 index; - -#if (!defined(BOOST_MSVC)||!(BOOST_MSVC<1310))&&  /* MSVC++ 6.0/7.0 fails */\ -    (!defined(__SUNPRO_CC)||!(__SUNPRO_CC<0x580)) /* as does Sun C++ 5.7  */ -  BOOST_STATIC_ASSERT(( -    mpl::contains< -      BOOST_DEDUCED_TYPENAME multi_index_type::iterator_type_list, -      IteratorType>::value|| -    mpl::contains< -      BOOST_DEDUCED_TYPENAME multi_index_type::const_iterator_type_list, -      IteratorType>::value)); -#endif - -  BOOST_MULTI_INDEX_CHECK_VALID_ITERATOR(it); - -#if defined(BOOST_MULTI_INDEX_ENABLE_SAFE_MODE) -  typedef detail::converter< -    multi_index_type, -    BOOST_DEDUCED_TYPENAME IteratorType::container_type> converter; -  BOOST_MULTI_INDEX_CHECK_IS_OWNER(it,converter::index(m)); -#endif - -  return detail::converter<multi_index_type,index>::const_iterator( -    m,static_cast<typename multi_index_type::node_type*>(it.get_node())); -} - -/* Comparison. Simple forward to first index. */ - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator==( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y) -{ -  return get<0>(x)==get<0>(y); -} - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator<( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y) -{ -  return get<0>(x)<get<0>(y); -} - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator!=( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y) -{ -  return get<0>(x)!=get<0>(y); -} - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator>( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y) -{ -  return get<0>(x)>get<0>(y); -} - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator>=( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y) -{ -  return get<0>(x)>=get<0>(y); -} - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator<=( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y) -{ -  return get<0>(x)<=get<0>(y); -} - -/*  specialized algorithms */ - -template<typename Value,typename IndexSpecifierList,typename Allocator> -void swap( -  multi_index_container<Value,IndexSpecifierList,Allocator>& x, -  multi_index_container<Value,IndexSpecifierList,Allocator>& y) -{ -  x.swap(y); -} - -} /* namespace multi_index */ - -#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION)&&\ -    !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -/* class version = 1 : we now serialize the size through - * boost::serialization::collection_size_type. - * class version = 2 : proper use of {save|load}_construct_data. - */ - -namespace serialization { -template<typename Value,typename IndexSpecifierList,typename Allocator> -struct version< -  boost::multi_index_container<Value,IndexSpecifierList,Allocator> -> -{ -  BOOST_STATIC_CONSTANT(int,value=2); -}; -} /* namespace serialization */ -#endif - -/* Associated global functions are promoted to namespace boost, except - * comparison operators and swap, which are meant to be Koenig looked-up. - */ - -using multi_index::get; -using multi_index::project; - -} /* namespace boost */ - -#undef BOOST_MULTI_INDEX_CHECK_INVARIANT - -#endif diff --git a/3rdParty/Boost/src/boost/multi_index_container_fwd.hpp b/3rdParty/Boost/src/boost/multi_index_container_fwd.hpp deleted file mode 100644 index 99e8db3..0000000 --- a/3rdParty/Boost/src/boost/multi_index_container_fwd.hpp +++ /dev/null @@ -1,121 +0,0 @@ -/* Copyright 2003-2008 Joaquin M Lopez Munoz. - * 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/multi_index for library home page. - */ - -#ifndef BOOST_MULTI_INDEX_FWD_HPP -#define BOOST_MULTI_INDEX_FWD_HPP - -#if defined(_MSC_VER)&&(_MSC_VER>=1200) -#pragma once -#endif - -#include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */ -#include <boost/multi_index/identity.hpp> -#include <boost/multi_index/indexed_by.hpp> -#include <boost/multi_index/ordered_index_fwd.hpp> -#include <memory> - -namespace boost{ - -namespace multi_index{ - -/* Default value for IndexSpecifierList specifies a container - * equivalent to std::set<Value>. - */ - -template< -  typename Value, -  typename IndexSpecifierList=indexed_by<ordered_unique<identity<Value> > >, -  typename Allocator=std::allocator<Value> > -class multi_index_container; - -template<typename MultiIndexContainer,int N> -struct nth_index; - -template<typename MultiIndexContainer,typename Tag> -struct index; - -template<typename MultiIndexContainer,int N> -struct nth_index_iterator; - -template<typename MultiIndexContainer,int N> -struct nth_index_const_iterator; - -template<typename MultiIndexContainer,typename Tag> -struct index_iterator; - -template<typename MultiIndexContainer,typename Tag> -struct index_const_iterator; - -/* get and project functions not fwd declared due to problems - * with dependent typenames - */ - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator==( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y); - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator<( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y); - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator!=( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y); - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator>( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y); - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator>=( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y); - -template< -  typename Value1,typename IndexSpecifierList1,typename Allocator1, -  typename Value2,typename IndexSpecifierList2,typename Allocator2 -> -bool operator<=( -  const multi_index_container<Value1,IndexSpecifierList1,Allocator1>& x, -  const multi_index_container<Value2,IndexSpecifierList2,Allocator2>& y); - -template<typename Value,typename IndexSpecifierList,typename Allocator> -void swap( -  multi_index_container<Value,IndexSpecifierList,Allocator>& x, -  multi_index_container<Value,IndexSpecifierList,Allocator>& y); - -} /* namespace multi_index */ - -/* multi_index_container, being the main type of this library, is promoted to - * namespace boost. - */ - -using multi_index::multi_index_container; - -} /* namespace boost */ - -#endif diff --git a/3rdParty/Boost/src/boost/optional/optional.hpp b/3rdParty/Boost/src/boost/optional/optional.hpp index 88041d1..ec9006e 100644 --- a/3rdParty/Boost/src/boost/optional/optional.hpp +++ b/3rdParty/Boost/src/boost/optional/optional.hpp @@ -1,4 +1,4 @@ -// Copyright (C) 2003, Fernando Luis Cacciola Carballal. +// Copyright (C) 2003, 2008 Fernando Luis Cacciola Carballal.  //  // Use, modification, and distribution is subject to the Boost Software  // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at @@ -9,27 +9,34 @@  // You are welcome to contact the author at:  //  fernando_cacciola@hotmail.com  // +// Revisions: +// 27 Apr 2008 (improved swap) Fernando Cacciola, Niels Dekker, Thorsten Ottosen +//  #ifndef BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP  #define BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP -#include<new> -#include<algorithm> - -#include "boost/config.hpp" -#include "boost/assert.hpp" -#include "boost/type.hpp" -#include "boost/type_traits/alignment_of.hpp" -#include "boost/type_traits/type_with_alignment.hpp" -#include "boost/type_traits/remove_reference.hpp" -#include "boost/type_traits/is_reference.hpp" -#include "boost/mpl/if.hpp" -#include "boost/mpl/bool.hpp" -#include "boost/mpl/not.hpp" -#include "boost/detail/reference_content.hpp" -#include "boost/none.hpp" -#include "boost/utility/compare_pointees.hpp" - -#include "boost/optional/optional_fwd.hpp" +#include <new> +#include <algorithm> + +#include <boost/config.hpp> +#include <boost/assert.hpp> +#include <boost/type.hpp> +#include <boost/type_traits/alignment_of.hpp> +#include <boost/type_traits/has_nothrow_constructor.hpp> +#include <boost/type_traits/type_with_alignment.hpp> +#include <boost/type_traits/remove_reference.hpp> +#include <boost/type_traits/is_reference.hpp> +#include <boost/mpl/if.hpp> +#include <boost/mpl/bool.hpp> +#include <boost/mpl/not.hpp> +#include <boost/detail/reference_content.hpp> +#include <boost/none.hpp> +#include <boost/utility/swap.hpp> +#include <boost/utility/addressof.hpp> +#include <boost/utility/compare_pointees.hpp> +#include <boost/utility/in_place_factory.hpp> + +#include <boost/optional/optional_fwd.hpp>  #if BOOST_WORKAROUND(BOOST_MSVC, == 1200)  // VC6.0 has the following bug: @@ -76,6 +83,15 @@  #define BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION  #endif +#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) > 302 \ +    && !defined(__INTEL_COMPILER) +// GCC since 3.3 has may_alias attribute that helps to alleviate optimizer issues with +// regard to violation of the strict aliasing rules. The optional< T > storage type is marked +// with this attribute in order to let the compiler know that it will alias objects of type T +// and silence compilation warnings. +#define BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS +#endif +  // Daniel Wallin discovered that bind/apply.hpp badly interacts with the apply<>  // member template of a factory as used in the optional<> implementation.  // He proposed this simple fix which is to move the call to apply<> outside @@ -83,7 +99,7 @@  namespace boost_optional_detail  {    template <class T, class Factory> -  void construct(Factory const& factory, void* address) +  inline void construct(Factory const& factory, void* address)    {      factory.BOOST_NESTED_TEMPLATE apply<T>(address);    } @@ -95,6 +111,9 @@ namespace boost {  class in_place_factory_base ;  class typed_in_place_factory_base ; +// This forward is needed to refer to namespace scope swap from the member swap +template<class T> void swap ( optional<T>& x, optional<T>& y ); +  namespace optional_detail {  // This local class is used instead of that in "aligned_storage.hpp" @@ -105,7 +124,12 @@ template <class T>  class aligned_storage  {      // Borland ICEs if unnamed unions are used for this! -    union dummy_u +    union +    // This works around GCC warnings about breaking strict aliasing rules when casting storage address to T* +#if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS) +    __attribute__((may_alias)) +#endif +    dummy_u      {          char data[ sizeof(T) ];          BOOST_DEDUCED_TYPENAME type_with_alignment< @@ -114,8 +138,13 @@ class aligned_storage    public: -    void const* address() const { return &dummy_.data[0]; } -    void      * address()       { return &dummy_.data[0]; } +#if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS) +    void const* address() const { return &dummy_; } +    void      * address()       { return &dummy_; } +#else +    void const* address() const { return dummy_.data; } +    void      * address()       { return dummy_.data; } +#endif  } ;  template<class T> @@ -149,7 +178,7 @@ class optional_base : public optional_tag      typedef  #if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))      BOOST_DEDUCED_TYPENAME -#endif  +#endif      ::boost::detail::make_reference_content<T>::type internal_type ;      typedef aligned_storage<internal_type> storage_type ; @@ -200,7 +229,7 @@ class optional_base : public optional_tag      {        construct(val);      } -     +      // Creates an optional<T> initialized with 'val' IFF cond is true, otherwise creates an uninitialzed optional<T>.      // Can throw if T::T(T const&) does      optional_base ( bool cond, argument_type val ) @@ -421,8 +450,22 @@ class optional_base : public optional_tag    private :      // internal_type can be either T or reference_content<T> +#if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS) +    // This workaround is supposed to silence GCC warnings about broken strict aliasing rules +    internal_type const* get_object() const +    { +        union { void const* ap_pvoid; internal_type const* as_ptype; } caster = { m_storage.address() }; +        return caster.as_ptype; +    } +    internal_type *      get_object() +    { +        union { void* ap_pvoid; internal_type* as_ptype; } caster = { m_storage.address() }; +        return caster.as_ptype; +    } +#else      internal_type const* get_object() const { return static_cast<internal_type const*>(m_storage.address()); }      internal_type *      get_object()       { return static_cast<internal_type *>     (m_storage.address()); } +#endif      // reference_content<T> lacks an implicit conversion to T&, so the following is needed to obtain a proper reference.      reference_const_type dereference( internal_type const* p, is_not_reference_tag ) const { return *p ; } @@ -513,12 +556,12 @@ class optional : public optional_detail::optional_base<T>      // Depending on the above some T ctor is called.      // Can throw is the resolved T ctor throws.      template<class Expr> -    explicit optional ( Expr const& expr ) : base(expr,&expr) {} +    explicit optional ( Expr const& expr ) : base(expr,boost::addressof(expr)) {}  #endif      // Creates a deep copy of another optional<T>      // Can throw if T::T(T const&) does -    optional ( optional const& rhs ) : base(rhs) {} +    optional ( optional const& rhs ) : base( static_cast<base const&>(rhs) ) {}     // No-throw (assuming T::~T() doesn't)      ~optional() {} @@ -527,9 +570,9 @@ class optional : public optional_detail::optional_base<T>      // Assigns from an expression. See corresponding constructor.      // Basic Guarantee: If the resolved T ctor throws, this is left UNINITIALIZED      template<class Expr> -    optional& operator= ( Expr expr ) +    optional& operator= ( Expr const& expr )        { -        this->assign_expr(expr,&expr); +        this->assign_expr(expr,boost::addressof(expr));          return *this ;        }  #endif @@ -552,7 +595,7 @@ class optional : public optional_detail::optional_base<T>      //  (NOTE: On BCB, this operator is not actually called and left is left UNMODIFIED in case of a throw)      optional& operator= ( optional const& rhs )        { -        this->assign( rhs ) ; +        this->assign( static_cast<base const&>(rhs) ) ;          return *this ;        } @@ -573,6 +616,14 @@ class optional : public optional_detail::optional_base<T>          return *this ;        } +    void swap( optional & arg ) +      { +        // allow for Koenig lookup +        using boost::swap; +        swap(*this, arg); +      } + +      // Returns a reference to the value if this is initialized, otherwise,      // the behaviour is UNDEFINED      // No-throw @@ -582,7 +633,7 @@ class optional : public optional_detail::optional_base<T>      // Returns a copy of the value if this is initialized, 'v' otherwise      reference_const_type get_value_or ( reference_const_type v ) const { return this->is_initialized() ? get() : v ; }      reference_type       get_value_or ( reference_type       v )       { return this->is_initialized() ? get() : v ; } -     +      // Returns a pointer to the value if this is initialized, otherwise,      // the behaviour is UNDEFINED      // No-throw @@ -599,22 +650,22 @@ class optional : public optional_detail::optional_base<T>      // No-throw      operator unspecified_bool_type() const { return this->safe_bool() ; } -       // This is provided for those compilers which don't like the conversion to bool -       // on some contexts. -       bool operator!() const { return !this->is_initialized() ; } +    // This is provided for those compilers which don't like the conversion to bool +    // on some contexts. +    bool operator!() const { return !this->is_initialized() ; }  } ;  // Returns optional<T>(v) -template<class T>  -inline  +template<class T> +inline  optional<T> make_optional ( T const& v  )  {    return optional<T>(v);  }  // Returns optional<T>(cond,v) -template<class T>  -inline  +template<class T> +inline  optional<T> make_optional ( bool cond, T const& v )  {    return optional<T>(cond,v); @@ -867,58 +918,74 @@ inline  bool operator >= ( none_t x, optional<T> const& y )  { return !( x < y ) ; } -// -// The following swap implementation follows the GCC workaround as found in -//  "boost/detail/compressed_pair.hpp" -//  namespace optional_detail { -// GCC < 3.2 gets the using declaration at namespace scope (FLC, DWA) -#if BOOST_WORKAROUND(__GNUC__, < 3)                             \ -    || BOOST_WORKAROUND(__GNUC__, == 3) && __GNUC_MINOR__ <= 2 -   using std::swap; -#define BOOST_OPTIONAL_STD_SWAP_INTRODUCED_AT_NS_SCOPE -#endif +template<bool use_default_constructor> struct swap_selector; -// optional's swap: -// If both are initialized, calls swap(T&, T&). If this swap throws, both will remain initialized but their values are now unspecified. -// If only one is initialized, calls U.reset(*I), THEN I.reset(). -// If U.reset(*I) throws, both are left UNCHANGED (U is kept uinitialized and I is never reset) -// If both are uninitialized, do nothing (no-throw) -template<class T> -inline -void optional_swap ( optional<T>& x, optional<T>& y ) +template<> +struct swap_selector<true>  { -  if ( !x && !!y ) -  { -    x.reset(*y); -    y.reset(); -  } -  else if ( !!x && !y ) -  { -    y.reset(*x); -    x.reset(); -  } -  else if ( !!x && !!y ) -  { -// GCC > 3.2 and all other compilers have the using declaration at function scope (FLC) -#ifndef BOOST_OPTIONAL_STD_SWAP_INTRODUCED_AT_NS_SCOPE -    // allow for Koenig lookup -    using std::swap ; -#endif -    swap(*x,*y); -  } -} +    template<class T> +    static void optional_swap ( optional<T>& x, optional<T>& y ) +    { +        const bool hasX = !!x; +        const bool hasY = !!y; + +        if ( !hasX && !hasY ) +            return; + +        if( !hasX ) +            x = boost::in_place(); +        else if ( !hasY ) +            y = boost::in_place(); + +        // Boost.Utility.Swap will take care of ADL and workarounds for broken compilers +        boost::swap(x.get(),y.get()); + +        if( !hasX ) +            y = boost::none ; +        else if( !hasY ) +            x = boost::none ; +    } +}; + +template<> +struct swap_selector<false> +{ +    template<class T> +    static void optional_swap ( optional<T>& x, optional<T>& y ) +    { +        const bool hasX = !!x; +        const bool hasY = !!y; + +        if ( !hasX && hasY ) +        { +            x = y.get(); +            y = boost::none ; +        } +        else if ( hasX && !hasY ) +        { +            y = x.get(); +            x = boost::none ; +        } +        else if ( hasX && hasY ) +        { +            // Boost.Utility.Swap will take care of ADL and workarounds for broken compilers +            boost::swap(x.get(),y.get()); +        } +    } +};  } // namespace optional_detail +template<class T> +struct optional_swap_should_use_default_constructor : has_nothrow_default_constructor<T> {} ; +  template<class T> inline void swap ( optional<T>& x, optional<T>& y )  { -  optional_detail::optional_swap(x,y); +    optional_detail::swap_selector<optional_swap_should_use_default_constructor<T>::value>::optional_swap(x, y);  } -  } // namespace boost  #endif - diff --git a/3rdParty/Boost/src/boost/optional/optional_io.hpp b/3rdParty/Boost/src/boost/optional/optional_io.hpp deleted file mode 100644 index 85a1857..0000000 --- a/3rdParty/Boost/src/boost/optional/optional_io.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (C) 2005, Fernando Luis Cacciola Carballal. -// -// 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) -// -// See http://www.boost.org/libs/optional for documentation. -// -// You are welcome to contact the author at: -//  fernando_cacciola@hotmail.com -// -#ifndef BOOST_OPTIONAL_OPTIONAL_IO_FLC_19NOV2002_HPP -#define BOOST_OPTIONAL_OPTIONAL_IO_FLC_19NOV2002_HPP - -#if defined __GNUC__ -#  if (__GNUC__ == 2 && __GNUC_MINOR__ <= 97)  -#    define BOOST_OPTIONAL_NO_TEMPLATED_STREAMS -#  endif -#endif // __GNUC__ - -#if defined BOOST_OPTIONAL_NO_TEMPLATED_STREAMS -#  include <iostream> -#else  -#  include <istream> -#  include <ostream> -#endif   - - -#include "boost/optional/optional.hpp" -#include "boost/utility/value_init.hpp" - -namespace boost -{ - -#if defined (BOOST_NO_TEMPLATED_STREAMS) -template<class T> -inline std::ostream& operator<<(std::ostream& out, optional<T> const& v) -#else -template<class CharType, class CharTrait, class T> -inline -std::basic_ostream<CharType, CharTrait>& -operator<<(std::basic_ostream<CharType, CharTrait>& out, optional<T> const& v) -#endif -{ -  if ( out.good() ) -  { -    if ( !v ) -         out << "--" ; -    else out << ' ' << *v ; -  } - -  return out; -} - -#if defined (BOOST_NO_TEMPLATED_STREAMS) -template<class T> -inline std::istream& operator>>(std::istream& in, optional<T>& v) -#else -template<class CharType, class CharTrait, class T> -inline -std::basic_istream<CharType, CharTrait>& -operator>>(std::basic_istream<CharType, CharTrait>& in, optional<T>& v) -#endif -{ -  if ( in.good() ) -  { -    int d = in.get(); -    if ( d == ' ' ) -    { -      T x ; -      in >> x; -      v = x ; -    } -    else -      v = optional<T>() ; -  } - -  return in; -} - -} // namespace boost - -#endif - diff --git a/3rdParty/Boost/src/boost/preprocessor/punctuation/paren.hpp b/3rdParty/Boost/src/boost/preprocessor/punctuation/paren.hpp new file mode 100644 index 0000000..28c18cb --- /dev/null +++ b/3rdParty/Boost/src/boost/preprocessor/punctuation/paren.hpp @@ -0,0 +1,23 @@ +# /* ************************************************************************** +#  *                                                                          * +#  *     (C) Copyright Paul Mensonides 2002. +#  *     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 for most recent version. */ +# +# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP +# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP +# +# /* BOOST_PP_LPAREN */ +# +# define BOOST_PP_LPAREN() ( +# +# /* BOOST_PP_RPAREN */ +# +# define BOOST_PP_RPAREN() ) +# +# endif diff --git a/3rdParty/Boost/src/boost/program_options/detail/parsers.hpp b/3rdParty/Boost/src/boost/program_options/detail/parsers.hpp index 506cb35..a1124b2 100644 --- a/3rdParty/Boost/src/boost/program_options/detail/parsers.hpp +++ b/3rdParty/Boost/src/boost/program_options/detail/parsers.hpp @@ -36,11 +36,11 @@ namespace boost { namespace program_options {      template<class charT>      basic_command_line_parser<charT>:: -    basic_command_line_parser(int argc, charT* argv[]) +    basic_command_line_parser(int argc, const charT* const argv[])      : detail::cmdline(          // Explicit template arguments are required by gcc 3.3.1           // (at least mingw version), and do no harm on other compilers. -        to_internal(detail::make_vector<charT, charT**>(argv+1, argv+argc+!argc))) +        to_internal(detail::make_vector<charT, const charT* const*>(argv+1, argv+argc+!argc)))      {} @@ -111,7 +111,7 @@ namespace boost { namespace program_options {      template<class charT>      basic_parsed_options<charT> -    parse_command_line(int argc, charT* argv[], +    parse_command_line(int argc, const charT* const argv[],                         const options_description& desc,                         int style,                         function1<std::pair<std::string, std::string>,  diff --git a/3rdParty/Boost/src/boost/program_options/parsers.hpp b/3rdParty/Boost/src/boost/program_options/parsers.hpp index 49fb19c..c57b971 100644 --- a/3rdParty/Boost/src/boost/program_options/parsers.hpp +++ b/3rdParty/Boost/src/boost/program_options/parsers.hpp @@ -100,7 +100,7 @@ namespace boost { namespace program_options {          /** Creates a command line parser for the specified arguments              list. The parameters should be the same as passed to 'main'.          */ -        basic_command_line_parser(int argc, charT* argv[]); +        basic_command_line_parser(int argc, const charT* const argv[]);          /** Sets options descriptions to use. */          basic_command_line_parser& options(const options_description& desc); @@ -144,7 +144,7 @@ namespace boost { namespace program_options {       */      template<class charT>      basic_parsed_options<charT> -    parse_command_line(int argc, charT* argv[], +    parse_command_line(int argc, const charT* const argv[],                         const options_description&,                         int style = 0,                         function1<std::pair<std::string, std::string>,  diff --git a/3rdParty/Boost/src/boost/property_tree/detail/exception_implementation.hpp b/3rdParty/Boost/src/boost/property_tree/detail/exception_implementation.hpp deleted file mode 100644 index 551e10c..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/exception_implementation.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// Copyright (C) 2009 Sebastian Redl -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_DETAIL_EXCEPTIONS_IMPLEMENTATION_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_DETAIL_EXCEPTIONS_IMPLEMENTATION_HPP_INCLUDED - -namespace boost { namespace property_tree -{ - -    namespace detail -    { - -        // Helper for preparing what string in ptree_bad_path exception -        template<class P> inline -        std::string prepare_bad_path_what(const std::string &what, -                                          const P &path) -        { -            return what + " (" + path.dump() + ")"; -        } - -    } - -    /////////////////////////////////////////////////////////////////////////// -    // ptree_error - -    inline ptree_error::ptree_error(const std::string &w):  -        std::runtime_error(w)  -    { -    } - -    inline ptree_error::~ptree_error() throw() -    { -    } - -    /////////////////////////////////////////////////////////////////////////// -    // ptree_bad_data - -    template<class D> inline -    ptree_bad_data::ptree_bad_data(const std::string &w, const D &d): -        ptree_error(w), m_data(d) -    { -    } - -    inline ptree_bad_data::~ptree_bad_data() throw() -    { -    } - -    template<class D> inline -    D ptree_bad_data::data() -    { -        return boost::any_cast<D>(m_data); -    } - -    /////////////////////////////////////////////////////////////////////////// -    // ptree_bad_path - -    template<class P> inline -    ptree_bad_path::ptree_bad_path(const std::string &w, const P &p): -        ptree_error(detail::prepare_bad_path_what(w, p)), m_path(p) -    { - -    } - -    inline ptree_bad_path::~ptree_bad_path() throw() -    { -    } - -    template<class P> inline -    P ptree_bad_path::path() -    { -        return boost::any_cast<P>(m_path); -    } - -}} - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/detail/file_parser_error.hpp b/3rdParty/Boost/src/boost/property_tree/detail/file_parser_error.hpp deleted file mode 100644 index ff90583..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/file_parser_error.hpp +++ /dev/null @@ -1,88 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_DETAIL_FILE_PARSER_ERROR_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_DETAIL_FILE_PARSER_ERROR_HPP_INCLUDED - -#include <boost/property_tree/ptree.hpp> -#include <string> - -namespace boost { namespace property_tree -{ - -    //! File parse error -    class file_parser_error: public ptree_error -    { - -    public: - -        /////////////////////////////////////////////////////////////////////// -        // Construction & destruction - -        // Construct error -        file_parser_error(const std::string &msg, -                          const std::string &file, -                          unsigned long l) : -            ptree_error(format_what(msg, file, l)), -            m_message(msg), m_filename(file), m_line(l) -        { -        } - -        ~file_parser_error() throw() -            // gcc 3.4.2 complains about lack of throw specifier on compiler -            // generated dtor -        { -        } - -        /////////////////////////////////////////////////////////////////////// -        // Data access - -        // Get error message (without line and file - use what() to get -        // full message) -        std::string message() const -        { -            return m_message; -        } - -        // Get error filename -        std::string filename() const -        { -            return m_filename; -        } - -        // Get error line number -        unsigned long line() const -        { -            return m_line; -        } - -    private: - -        std::string m_message; -        std::string m_filename; -        unsigned long m_line; - -        // Format error message to be returned by std::runtime_error::what() -        static std::string format_what(const std::string &msg, -                                       const std::string &file, -                                       unsigned long l) -        { -            std::stringstream stream; -            stream << (file.empty() ? "<unspecified file>" : file.c_str()); -            if (l > 0) -                stream << '(' << l << ')'; -            stream << ": " << msg; -            return stream.str(); -        } - -    }; - -} } - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/detail/ptree_implementation.hpp b/3rdParty/Boost/src/boost/property_tree/detail/ptree_implementation.hpp deleted file mode 100644 index 4220002..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/ptree_implementation.hpp +++ /dev/null @@ -1,905 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// Copyright (C) 2009 Sebastian Redl -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_DETAIL_PTREE_IMPLEMENTATION_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_DETAIL_PTREE_IMPLEMENTATION_HPP_INCLUDED - -#include <boost/iterator/iterator_adaptor.hpp> -#include <boost/iterator/reverse_iterator.hpp> -#include <memory> -#include <cassert> - -#if defined(BOOST_MSVC) && \ -    (_MSC_FULL_VER >= 160000000 && _MSC_FULL_VER < 170000000) -#define BOOST_PROPERTY_TREE_PAIR_BUG -#endif - -namespace boost { namespace property_tree -{ -    template <class K, class D, class C> -    struct basic_ptree<K, D, C>::subs -    { -        struct by_name {}; -        // The actual child container. -#if defined(BOOST_PROPERTY_TREE_PAIR_BUG) -        // MSVC 10 has moved std::pair's members to a base -        // class. Unfortunately this does break the interface. -        BOOST_STATIC_CONSTANT(unsigned, -            first_offset = offsetof(value_type, first)); -        typedef multi_index_container<value_type, -            multi_index::indexed_by< -                multi_index::sequenced<>, -                multi_index::ordered_non_unique<multi_index::tag<by_name>, -                    multi_index::member_offset<value_type, const key_type, -                                        first_offset>, -                    key_compare -                > -            > -        > base_container; -#else -        typedef multi_index_container<value_type, -            multi_index::indexed_by< -                multi_index::sequenced<>, -                multi_index::ordered_non_unique<multi_index::tag<by_name>, -                    multi_index::member<value_type, const key_type, -                                        &value_type::first>, -                    key_compare -                > -            > -        > base_container; -#endif -        // The by-name lookup index. -        typedef typename base_container::template index<by_name>::type -            by_name_index; - -        // Access functions for getting to the children of a tree. -        static base_container& ch(self_type *s) { -            return *static_cast<base_container*>(s->m_children); -        } -        static const base_container& ch(const self_type *s) { -            return *static_cast<const base_container*>(s->m_children); -        } -        static by_name_index& assoc(self_type *s) { -            return ch(s).BOOST_NESTED_TEMPLATE get<by_name>(); -        } -        static const by_name_index& assoc(const self_type *s) { -            return ch(s).BOOST_NESTED_TEMPLATE get<by_name>(); -        } -    }; -    template <class K, class D, class C> -    class basic_ptree<K, D, C>::iterator : public boost::iterator_adaptor< -        iterator, typename subs::base_container::iterator, value_type> -    { -        friend class boost::iterator_core_access; -        typedef boost::iterator_adaptor< -            iterator, typename subs::base_container::iterator, value_type> -            baset; -    public: -        typedef typename baset::reference reference; -        iterator() {} -        explicit iterator(typename iterator::base_type b) -            : iterator::iterator_adaptor_(b) -        {} -        reference dereference() const -        { -            // multi_index doesn't allow modification of its values, because -            // indexes could sort by anything, and modification screws that up. -            // However, we only sort by the key, and it's protected against -            // modification in the value_type, so this const_cast is safe. -            return const_cast<reference>(*this->base_reference()); -        } -    }; -    template <class K, class D, class C> -    class basic_ptree<K, D, C>::const_iterator : public boost::iterator_adaptor< -        const_iterator, typename subs::base_container::const_iterator> -    { -    public: -        const_iterator() {} -        explicit const_iterator(typename const_iterator::base_type b) -            : const_iterator::iterator_adaptor_(b) -        {} -        const_iterator(iterator b) -            : const_iterator::iterator_adaptor_(b.base()) -        {} -    }; -    template <class K, class D, class C> -    class basic_ptree<K, D, C>::reverse_iterator -        : public boost::reverse_iterator<iterator> -    { -    public: -        reverse_iterator() {} -        explicit reverse_iterator(iterator b) -            : boost::reverse_iterator<iterator>(b) -        {} -    }; -    template <class K, class D, class C> -    class basic_ptree<K, D, C>::const_reverse_iterator -        : public boost::reverse_iterator<const_iterator> -    { -    public: -        const_reverse_iterator() {} -        explicit const_reverse_iterator(const_iterator b) -            : boost::reverse_iterator<const_iterator>(b) -        {} -        const_reverse_iterator( -            typename basic_ptree<K, D, C>::reverse_iterator b) -            : boost::reverse_iterator<const_iterator>(b) -        {} -    }; -    template <class K, class D, class C> -    class basic_ptree<K, D, C>::assoc_iterator -        : public boost::iterator_adaptor<assoc_iterator, -                                         typename subs::by_name_index::iterator, -                                         value_type> -    { -        friend class boost::iterator_core_access; -        typedef boost::iterator_adaptor<assoc_iterator, -                                         typename subs::by_name_index::iterator, -                                         value_type> -            baset; -    public: -        typedef typename baset::reference reference; -        assoc_iterator() {} -        explicit assoc_iterator(typename assoc_iterator::base_type b) -            : assoc_iterator::iterator_adaptor_(b) -        {} -        reference dereference() const -        { -            return const_cast<reference>(*this->base_reference()); -        } -    }; -    template <class K, class D, class C> -    class basic_ptree<K, D, C>::const_assoc_iterator -        : public boost::iterator_adaptor<const_assoc_iterator, -                                   typename subs::by_name_index::const_iterator> -    { -    public: -        const_assoc_iterator() {} -        explicit const_assoc_iterator( -            typename const_assoc_iterator::base_type b) -            : const_assoc_iterator::iterator_adaptor_(b) -        {} -        const_assoc_iterator(assoc_iterator b) -            : const_assoc_iterator::iterator_adaptor_(b.base()) -        {} -    }; - - -    // Big five - -    // Perhaps the children collection could be created on-demand only, to -    // reduce heap traffic. But that's a lot more work to implement. - -    template<class K, class D, class C> inline -    basic_ptree<K, D, C>::basic_ptree() -        : m_children(new typename subs::base_container) -    { -    } - -    template<class K, class D, class C> inline -    basic_ptree<K, D, C>::basic_ptree(const data_type &d) -        : m_data(d), m_children(new typename subs::base_container) -    { -    } - -    template<class K, class D, class C> inline -    basic_ptree<K, D, C>::basic_ptree(const basic_ptree<K, D, C> &rhs) -        : m_data(rhs.m_data), -          m_children(new typename subs::base_container(subs::ch(&rhs))) -    { -    } - -    template<class K, class D, class C> -    basic_ptree<K, D, C> & -        basic_ptree<K, D, C>::operator =(const basic_ptree<K, D, C> &rhs) -    { -        self_type(rhs).swap(*this); -        return *this; -    } - -    template<class K, class D, class C> -    basic_ptree<K, D, C>::~basic_ptree() -    { -        delete &subs::ch(this); -    } - -    template<class K, class D, class C> inline -    void basic_ptree<K, D, C>::swap(basic_ptree<K, D, C> &rhs) -    { -        m_data.swap(rhs.m_data); -        // Void pointers, no ADL necessary -        std::swap(m_children, rhs.m_children); -    } - -    // Container view - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::size_type -        basic_ptree<K, D, C>::size() const -    { -        return subs::ch(this).size(); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::size_type -        basic_ptree<K, D, C>::max_size() const -    { -        return subs::ch(this).max_size(); -    } - -    template<class K, class D, class C> inline -    bool basic_ptree<K, D, C>::empty() const -    { -        return subs::ch(this).empty(); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::iterator -        basic_ptree<K, D, C>::begin() -    { -        return iterator(subs::ch(this).begin()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::const_iterator -        basic_ptree<K, D, C>::begin() const -    { -        return const_iterator(subs::ch(this).begin()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::iterator -        basic_ptree<K, D, C>::end() -    { -        return iterator(subs::ch(this).end()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::const_iterator -        basic_ptree<K, D, C>::end() const -    { -        return const_iterator(subs::ch(this).end()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::reverse_iterator -        basic_ptree<K, D, C>::rbegin() -    { -        return reverse_iterator(this->end()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::const_reverse_iterator -        basic_ptree<K, D, C>::rbegin() const -    { -        return const_reverse_iterator(this->end()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::reverse_iterator -        basic_ptree<K, D, C>::rend() -    { -        return reverse_iterator(this->begin()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::const_reverse_iterator -        basic_ptree<K, D, C>::rend() const -    { -        return const_reverse_iterator(this->begin()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::value_type & -        basic_ptree<K, D, C>::front() -    { -        return const_cast<value_type&>(subs::ch(this).front()); -    } - -    template<class K, class D, class C> inline -    const typename basic_ptree<K, D, C>::value_type & -        basic_ptree<K, D, C>::front() const -    { -        return subs::ch(this).front(); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::value_type & -        basic_ptree<K, D, C>::back() -    { -        return const_cast<value_type&>(subs::ch(this).back()); -    } - -    template<class K, class D, class C> inline -    const typename basic_ptree<K, D, C>::value_type & -        basic_ptree<K, D, C>::back() const -    { -        return subs::ch(this).back(); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::iterator -    basic_ptree<K, D, C>::insert(iterator where, const value_type &value) -    { -        return iterator(subs::ch(this).insert(where.base(), value).first); -    } - -    template<class K, class D, class C> -    template<class It> inline -    void basic_ptree<K, D, C>::insert(iterator where, It first, It last) -    { -        subs::ch(this).insert(where.base(), first, last); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::iterator -        basic_ptree<K, D, C>::erase(iterator where) -    { -        return iterator(subs::ch(this).erase(where.base())); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::iterator -        basic_ptree<K, D, C>::erase(iterator first, iterator last) -    { -        return iterator(subs::ch(this).erase(first.base(), last.base())); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::iterator -        basic_ptree<K, D, C>::push_front(const value_type &value) -    { -        return iterator(subs::ch(this).push_front(value).first); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::iterator -        basic_ptree<K, D, C>::push_back(const value_type &value) -    { -        return iterator(subs::ch(this).push_back(value).first); -    } - -    template<class K, class D, class C> inline -    void basic_ptree<K, D, C>::pop_front() -    { -        subs::ch(this).pop_front(); -    } - -    template<class K, class D, class C> inline -    void basic_ptree<K, D, C>::pop_back() -    { -        subs::ch(this).pop_back(); -    } - -    template<class K, class D, class C> inline -    void basic_ptree<K, D, C>::reverse() -    { -        subs::ch(this).reverse(); -    } - -    template<class K, class D, class C> inline -    void basic_ptree<K, D, C>::sort() -    { -        subs::ch(this).sort(); -    } - -    template<class K, class D, class C> -    template<class Compare> inline -    void basic_ptree<K, D, C>::sort(Compare comp) -    { -        subs::ch(this).sort(comp); -    } - -    // Equality - -    template<class K, class D, class C> inline -    bool basic_ptree<K, D, C>::operator ==( -                                  const basic_ptree<K, D, C> &rhs) const -    { -        // The size test is cheap, so add it as an optimization -        return size() == rhs.size() && data() == rhs.data() && -            subs::ch(this) == subs::ch(&rhs); -    } - -    template<class K, class D, class C> inline -    bool basic_ptree<K, D, C>::operator !=( -                                  const basic_ptree<K, D, C> &rhs) const -    { -        return !(*this == rhs); -    } - -    // Associative view - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::assoc_iterator -        basic_ptree<K, D, C>::ordered_begin() -    { -        return assoc_iterator(subs::assoc(this).begin()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::const_assoc_iterator -        basic_ptree<K, D, C>::ordered_begin() const -    { -        return const_assoc_iterator(subs::assoc(this).begin()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::assoc_iterator -        basic_ptree<K, D, C>::not_found() -    { -        return assoc_iterator(subs::assoc(this).end()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::const_assoc_iterator -        basic_ptree<K, D, C>::not_found() const -    { -        return const_assoc_iterator(subs::assoc(this).end()); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::assoc_iterator -        basic_ptree<K, D, C>::find(const key_type &key) -    { -        return assoc_iterator(subs::assoc(this).find(key)); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::const_assoc_iterator -        basic_ptree<K, D, C>::find(const key_type &key) const -    { -        return const_assoc_iterator(subs::assoc(this).find(key)); -    } - -    template<class K, class D, class C> inline -    std::pair< -        typename basic_ptree<K, D, C>::assoc_iterator, -        typename basic_ptree<K, D, C>::assoc_iterator -    > basic_ptree<K, D, C>::equal_range(const key_type &key) -    { -        std::pair<typename subs::by_name_index::iterator, -                  typename subs::by_name_index::iterator> r( -            subs::assoc(this).equal_range(key)); -        return std::pair<assoc_iterator, assoc_iterator>( -          assoc_iterator(r.first), assoc_iterator(r.second)); -    } - -    template<class K, class D, class C> inline -    std::pair< -        typename basic_ptree<K, D, C>::const_assoc_iterator, -        typename basic_ptree<K, D, C>::const_assoc_iterator -    > basic_ptree<K, D, C>::equal_range(const key_type &key) const -    { -        std::pair<typename subs::by_name_index::const_iterator, -                  typename subs::by_name_index::const_iterator> r( -            subs::assoc(this).equal_range(key)); -        return std::pair<const_assoc_iterator, const_assoc_iterator>( -            const_assoc_iterator(r.first), const_assoc_iterator(r.second)); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::size_type -        basic_ptree<K, D, C>::count(const key_type &key) const -    { -        return subs::assoc(this).count(key); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::size_type -        basic_ptree<K, D, C>::erase(const key_type &key) -    { -        return subs::assoc(this).erase(key); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::iterator -        basic_ptree<K, D, C>::to_iterator(assoc_iterator ai) -    { -        return iterator(subs::ch(this). -            BOOST_NESTED_TEMPLATE project<0>(ai.base())); -    } - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::const_iterator -        basic_ptree<K, D, C>::to_iterator(const_assoc_iterator ai) const -    { -        return const_iterator(subs::ch(this). -            BOOST_NESTED_TEMPLATE project<0>(ai.base())); -    } - -    // Property tree view - -    template<class K, class D, class C> inline -    typename basic_ptree<K, D, C>::data_type & -        basic_ptree<K, D, C>::data() -    { -        return m_data; -    } - -    template<class K, class D, class C> inline -    const typename basic_ptree<K, D, C>::data_type & -        basic_ptree<K, D, C>::data() const -    { -        return m_data; -    } - -    template<class K, class D, class C> inline -    void basic_ptree<K, D, C>::clear() -    { -        m_data = data_type(); -        subs::ch(this).clear(); -    } - -    template<class K, class D, class C> -    basic_ptree<K, D, C> & -        basic_ptree<K, D, C>::get_child(const path_type &path) -    { -        path_type p(path); -        self_type *n = walk_path(p); -        if (!n) { -            BOOST_PROPERTY_TREE_THROW(ptree_bad_path("No such node", path)); -        } -        return *n; -    } - -    template<class K, class D, class C> inline -    const basic_ptree<K, D, C> & -        basic_ptree<K, D, C>::get_child(const path_type &path) const -    { -        return const_cast<self_type*>(this)->get_child(path); -    } - -    template<class K, class D, class C> inline -    basic_ptree<K, D, C> & -        basic_ptree<K, D, C>::get_child(const path_type &path, -                                        self_type &default_value) -    { -        path_type p(path); -        self_type *n = walk_path(p); -        return n ? *n : default_value; -    } - -    template<class K, class D, class C> inline -    const basic_ptree<K, D, C> & -        basic_ptree<K, D, C>::get_child(const path_type &path, -                                        const self_type &default_value) const -    { -        return const_cast<self_type*>(this)->get_child(path, -            const_cast<self_type&>(default_value)); -    } - - -    template<class K, class D, class C> -    optional<basic_ptree<K, D, C> &> -        basic_ptree<K, D, C>::get_child_optional(const path_type &path) -    { -        path_type p(path); -        self_type *n = walk_path(p); -        if (!n) { -            return optional<self_type&>(); -        } -        return *n; -    } - -    template<class K, class D, class C> -    optional<const basic_ptree<K, D, C> &> -        basic_ptree<K, D, C>::get_child_optional(const path_type &path) const -    { -        path_type p(path); -        self_type *n = walk_path(p); -        if (!n) { -            return optional<const self_type&>(); -        } -        return *n; -    } - -    template<class K, class D, class C> -    basic_ptree<K, D, C> & -        basic_ptree<K, D, C>::put_child(const path_type &path, -                                        const self_type &value) -    { -        path_type p(path); -        self_type &parent = force_path(p); -        // Got the parent. Now get the correct child. -        key_type fragment = p.reduce(); -        assoc_iterator el = parent.find(fragment); -        // If the new child exists, replace it. -        if(el != parent.not_found()) { -            return el->second = value; -        } else { -            return parent.push_back(value_type(fragment, value))->second; -        } -    } - -    template<class K, class D, class C> -    basic_ptree<K, D, C> & -        basic_ptree<K, D, C>::add_child(const path_type &path, -                                        const self_type &value) -    { -        path_type p(path); -        self_type &parent = force_path(p); -        // Got the parent. -        key_type fragment = p.reduce(); -        return parent.push_back(value_type(fragment, value))->second; -    } - -    template<class K, class D, class C> -    template<class Type, class Translator> -    typename boost::enable_if<detail::is_translator<Translator>, Type>::type -    basic_ptree<K, D, C>::get_value(Translator tr) const -    { -        if(boost::optional<Type> o = get_value_optional<Type>(tr)) { -            return *o; -        } -        BOOST_PROPERTY_TREE_THROW(ptree_bad_data( -            std::string("conversion of data to type \"") + -            typeid(Type).name() + "\" failed", data())); -    } - -    template<class K, class D, class C> -    template<class Type> inline -    Type basic_ptree<K, D, C>::get_value() const -    { -        return get_value<Type>( -            typename translator_between<data_type, Type>::type()); -    } - -    template<class K, class D, class C> -    template<class Type, class Translator> inline -    Type basic_ptree<K, D, C>::get_value(const Type &default_value, -                                         Translator tr) const -    { -        return get_value_optional<Type>(tr).get_value_or(default_value); -    } - -    template<class K, class D, class C> -    template <class Ch, class Translator> -    typename boost::enable_if< -        detail::is_character<Ch>, -        std::basic_string<Ch> -    >::type -    basic_ptree<K, D, C>::get_value(const Ch *default_value, Translator tr)const -    { -        return get_value<std::basic_string<Ch>, Translator>(default_value, tr); -    } - -    template<class K, class D, class C> -    template<class Type> inline -    typename boost::disable_if<detail::is_translator<Type>, Type>::type -    basic_ptree<K, D, C>::get_value(const Type &default_value) const -    { -        return get_value(default_value, -                         typename translator_between<data_type, Type>::type()); -    } - -    template<class K, class D, class C> -    template <class Ch> -    typename boost::enable_if< -        detail::is_character<Ch>, -        std::basic_string<Ch> -    >::type -    basic_ptree<K, D, C>::get_value(const Ch *default_value) const -    { -        return get_value< std::basic_string<Ch> >(default_value); -    } - -    template<class K, class D, class C> -    template<class Type, class Translator> inline -    optional<Type> basic_ptree<K, D, C>::get_value_optional( -                                                Translator tr) const -    { -        return tr.get_value(data()); -    } - -    template<class K, class D, class C> -    template<class Type> inline -    optional<Type> basic_ptree<K, D, C>::get_value_optional() const -    { -        return get_value_optional<Type>( -            typename translator_between<data_type, Type>::type()); -    } - -    template<class K, class D, class C> -    template<class Type, class Translator> inline -    typename boost::enable_if<detail::is_translator<Translator>, Type>::type -    basic_ptree<K, D, C>::get(const path_type &path, -                              Translator tr) const -    { -        return get_child(path).BOOST_NESTED_TEMPLATE get_value<Type>(tr); -    } - -    template<class K, class D, class C> -    template<class Type> inline -    Type basic_ptree<K, D, C>::get(const path_type &path) const -    { -        return get_child(path).BOOST_NESTED_TEMPLATE get_value<Type>(); -    } - -    template<class K, class D, class C> -    template<class Type, class Translator> inline -    Type basic_ptree<K, D, C>::get(const path_type &path, -                                   const Type &default_value, -                                   Translator tr) const -    { -        return get_optional<Type>(path, tr).get_value_or(default_value); -    } - -    template<class K, class D, class C> -    template <class Ch, class Translator> -    typename boost::enable_if< -        detail::is_character<Ch>, -        std::basic_string<Ch> -    >::type -    basic_ptree<K, D, C>::get( -        const path_type &path, const Ch *default_value, Translator tr) const -    { -        return get<std::basic_string<Ch>, Translator>(path, default_value, tr); -    } - -    template<class K, class D, class C> -    template<class Type> inline -    typename boost::disable_if<detail::is_translator<Type>, Type>::type -    basic_ptree<K, D, C>::get(const path_type &path, -                              const Type &default_value) const -    { -        return get_optional<Type>(path).get_value_or(default_value); -    } - -    template<class K, class D, class C> -    template <class Ch> -    typename boost::enable_if< -        detail::is_character<Ch>, -        std::basic_string<Ch> -    >::type -    basic_ptree<K, D, C>::get( -        const path_type &path, const Ch *default_value) const -    { -        return get< std::basic_string<Ch> >(path, default_value); -    } - -    template<class K, class D, class C> -    template<class Type, class Translator> -    optional<Type> basic_ptree<K, D, C>::get_optional(const path_type &path, -                                                         Translator tr) const -    { -        if (optional<const self_type&> child = get_child_optional(path)) -            return child.get(). -                BOOST_NESTED_TEMPLATE get_value_optional<Type>(tr); -        else -            return optional<Type>(); -    } - -    template<class K, class D, class C> -    template<class Type> -    optional<Type> basic_ptree<K, D, C>::get_optional( -                                                const path_type &path) const -    { -        if (optional<const self_type&> child = get_child_optional(path)) -            return child.get().BOOST_NESTED_TEMPLATE get_value_optional<Type>(); -        else -            return optional<Type>(); -    } - -    template<class K, class D, class C> -    template<class Type, class Translator> -    void basic_ptree<K, D, C>::put_value(const Type &value, Translator tr) -    { -        if(optional<data_type> o = tr.put_value(value)) { -            data() = *o; -        } else { -            BOOST_PROPERTY_TREE_THROW(ptree_bad_data( -                std::string("conversion of type \"") + typeid(Type).name() + -                "\" to data failed", boost::any())); -        } -    } - -    template<class K, class D, class C> -    template<class Type> inline -    void basic_ptree<K, D, C>::put_value(const Type &value) -    { -        put_value(value, typename translator_between<data_type, Type>::type()); -    } - -    template<class K, class D, class C> -    template<class Type, typename Translator> -    basic_ptree<K, D, C> & basic_ptree<K, D, C>::put( -        const path_type &path, const Type &value, Translator tr) -    { -        if(optional<self_type &> child = get_child_optional(path)) { -            child.get().put_value(value, tr); -            return *child; -        } else { -            self_type &child2 = put_child(path, self_type()); -            child2.put_value(value, tr); -            return child2; -        } -    } - -    template<class K, class D, class C> -    template<class Type> inline -    basic_ptree<K, D, C> & basic_ptree<K, D, C>::put( -        const path_type &path, const Type &value) -    { -        return put(path, value, -                   typename translator_between<data_type, Type>::type()); -    } - -    template<class K, class D, class C> -    template<class Type, typename Translator> inline -    basic_ptree<K, D, C> & basic_ptree<K, D, C>::add( -        const path_type &path, const Type &value, Translator tr) -    { -        self_type &child = add_child(path, self_type()); -        child.put_value(value, tr); -        return child; -    } - -    template<class K, class D, class C> -    template<class Type> inline -    basic_ptree<K, D, C> & basic_ptree<K, D, C>::add( -        const path_type &path, const Type &value) -    { -        return add(path, value, -                   typename translator_between<data_type, Type>::type()); -    } - - -    template<class K, class D, class C> -    basic_ptree<K, D, C> * -    basic_ptree<K, D, C>::walk_path(path_type &p) const -    { -        if(p.empty()) { -            // I'm the child we're looking for. -            return const_cast<basic_ptree*>(this); -        } -        // Recurse down the tree to find the path. -        key_type fragment = p.reduce(); -        const_assoc_iterator el = find(fragment); -        if(el == not_found()) { -            // No such child. -            return 0; -        } -        // Not done yet, recurse. -        return el->second.walk_path(p); -    } - -    template<class K, class D, class C> -    basic_ptree<K, D, C> & basic_ptree<K, D, C>::force_path(path_type &p) -    { -        assert(!p.empty() && "Empty path not allowed for put_child."); -        if(p.single()) { -            // I'm the parent we're looking for. -            return *this; -        } -        key_type fragment = p.reduce(); -        assoc_iterator el = find(fragment); -        // If we've found an existing child, go down that path. Else -        // create a new one. -        self_type& child = el == not_found() ? -            push_back(value_type(fragment, self_type()))->second : el->second; -        return child.force_path(p); -    } - -    // Free functions - -    template<class K, class D, class C> -    inline void swap(basic_ptree<K, D, C> &pt1, basic_ptree<K, D, C> &pt2) -    { -        pt1.swap(pt2); -    } - -} } - -#if defined(BOOST_PROPERTY_TREE_PAIR_BUG) -#undef BOOST_PROPERTY_TREE_PAIR_BUG -#endif - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/detail/ptree_utils.hpp b/3rdParty/Boost/src/boost/property_tree/detail/ptree_utils.hpp deleted file mode 100644 index 7e56c8f..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/ptree_utils.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_DETAIL_PTREE_UTILS_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_DETAIL_PTREE_UTILS_HPP_INCLUDED - -#include <boost/limits.hpp> -#include <boost/type_traits/integral_constant.hpp> -#include <boost/mpl/has_xxx.hpp> -#include <boost/mpl/and.hpp> -#include <string> -#include <algorithm> -#include <locale> - -namespace boost { namespace property_tree { namespace detail -{ - -    template<class T> -    struct less_nocase -    { -        typedef typename T::value_type Ch; -        std::locale m_locale; -        inline bool operator()(Ch c1, Ch c2) const -        { -            return std::toupper(c1, m_locale) < std::toupper(c2, m_locale); -        } -        inline bool operator()(const T &t1, const T &t2) const -        { -            return std::lexicographical_compare(t1.begin(), t1.end(), -                                                t2.begin(), t2.end(), *this); -        } -    }; - -    template <typename Ch> -    struct is_character : public boost::false_type {}; -    template <> -    struct is_character<char> : public boost::true_type {}; -    template <> -    struct is_character<wchar_t> : public boost::true_type {}; - - -    BOOST_MPL_HAS_XXX_TRAIT_DEF(internal_type) -    BOOST_MPL_HAS_XXX_TRAIT_DEF(external_type) -    template <typename T> -    struct is_translator : public boost::mpl::and_< -        has_internal_type<T>, has_external_type<T> > {}; - - - -    // Naively convert narrow string to another character type -    template<class Ch> -    std::basic_string<Ch> widen(const char *text) -    { -        std::basic_string<Ch> result; -        while (*text) -        { -            result += Ch(*text); -            ++text; -        } -        return result; -    } - -    // Naively convert string to narrow character type -    template<class Ch> -    std::string narrow(const Ch *text) -    { -        std::string result; -        while (*text) -        { -            if (*text < 0 || *text > (std::numeric_limits<char>::max)()) -                result += '*'; -            else -                result += char(*text); -            ++text; -        } -        return result; -    } - -    // Remove trailing and leading spaces -    template<class Ch> -    std::basic_string<Ch> trim(const std::basic_string<Ch> &s, -                               const std::locale &loc = std::locale()) -    { -        typename std::basic_string<Ch>::const_iterator first = s.begin(); -        typename std::basic_string<Ch>::const_iterator end = s.end(); -        while (first != end && std::isspace(*first, loc)) -            ++first; -        if (first == end) -            return std::basic_string<Ch>(); -        typename std::basic_string<Ch>::const_iterator last = end; -        do --last; while (std::isspace(*last, loc)); -        if (first != s.begin() || last + 1 != end) -            return std::basic_string<Ch>(first, last + 1); -        else -            return s; -    } - -} } } - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/detail/rapidxml.hpp b/3rdParty/Boost/src/boost/property_tree/detail/rapidxml.hpp deleted file mode 100644 index 712bf3f..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/rapidxml.hpp +++ /dev/null @@ -1,2582 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2006, 2009 Marcin Kalicinski -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_RAPIDXML_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_RAPIDXML_HPP_INCLUDED - -//! \file rapidxml.hpp This file contains rapidxml parser and DOM implementation - -#include <cstdlib>      // For std::size_t -#include <cassert>      // For assert -#include <new>          // For placement new - -// On MSVC, disable "conditional expression is constant" warning (level 4).  -// This warning is almost impossible to avoid with certain types of templated code -#ifdef _MSC_VER -    #pragma warning(push) -    #pragma warning(disable:4127)   // Conditional expression is constant -#endif - -/////////////////////////////////////////////////////////////////////////// -// BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR -     -#include <exception>    // For std::exception - -#define BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR(what, where) throw parse_error(what, where) - -namespace boost { namespace property_tree { namespace detail {namespace rapidxml -{ - -    //! Parse error exception.  -    //! This exception is thrown by the parser when an error occurs.  -    //! Use what() function to get human-readable error message.  -    //! Use where() function to get a pointer to position within source text where error was detected. -    //! <br><br> -    //! If throwing exceptions by the parser is undesirable,  -    //! it can be disabled by defining RAPIDXML_NO_EXCEPTIONS macro before rapidxml.hpp is included. -    //! This will cause the parser to call rapidxml::parse_error_handler() function instead of throwing an exception. -    //! This function must be defined by the user. -    //! <br><br> -    //! This class derives from <code>std::exception</code> class. -    class parse_error: public std::exception -    { -     -    public: -     -        //! Constructs parse error -        parse_error(const char *wa, void *we) -            : m_what(wa) -            , m_where(we) -        { -        } - -        //! Gets human readable description of error. -        //! \return Pointer to null terminated description of the error. -        virtual const char *what() const throw() -        { -            return m_what; -        } - -        //! Gets pointer to character data where error happened. -        //! Ch should be the same as char type of xml_document that produced the error. -        //! \return Pointer to location within the parsed string where error occured. -        template<class Ch> -        Ch *where() const -        { -            return reinterpret_cast<Ch *>(m_where); -        } - -    private:   - -        const char *m_what; -        void *m_where; - -    }; -}}}} - -/////////////////////////////////////////////////////////////////////////// -// Pool sizes - -#ifndef BOOST_PROPERTY_TREE_RAPIDXML_STATIC_POOL_SIZE -    // Size of static memory block of memory_pool. -    // Define BOOST_PROPERTY_TREE_RAPIDXML_STATIC_POOL_SIZE before including rapidxml.hpp if you want to override the default value. -    // No dynamic memory allocations are performed by memory_pool until static memory is exhausted. -    #define BOOST_PROPERTY_TREE_RAPIDXML_STATIC_POOL_SIZE (64 * 1024) -#endif - -#ifndef BOOST_PROPERTY_TREE_RAPIDXML_DYNAMIC_POOL_SIZE -    // Size of dynamic memory block of memory_pool. -    // Define BOOST_PROPERTY_TREE_RAPIDXML_DYNAMIC_POOL_SIZE before including rapidxml.hpp if you want to override the default value. -    // After the static block is exhausted, dynamic blocks with approximately this size are allocated by memory_pool. -    #define BOOST_PROPERTY_TREE_RAPIDXML_DYNAMIC_POOL_SIZE (64 * 1024) -#endif - -#ifndef BOOST_PROPERTY_TREE_RAPIDXML_ALIGNMENT -    // Memory allocation alignment. -    // Define BOOST_PROPERTY_TREE_RAPIDXML_ALIGNMENT before including rapidxml.hpp if you want to override the default value, which is the size of pointer. -    // All memory allocations for nodes, attributes and strings will be aligned to this value. -    // This must be a power of 2 and at least 1, otherwise memory_pool will not work. -    #define BOOST_PROPERTY_TREE_RAPIDXML_ALIGNMENT sizeof(void *) -#endif - -namespace boost { namespace property_tree { namespace detail {namespace rapidxml -{ -    // Forward declarations -    template<class Ch> class xml_node; -    template<class Ch> class xml_attribute; -    template<class Ch> class xml_document; -     -    //! Enumeration listing all node types produced by the parser. -    //! Use xml_node::type() function to query node type. -    enum node_type -    { -        node_document,      //!< A document node. Name and value are empty. -        node_element,       //!< An element node. Name contains element name. Value contains text of first data node. -        node_data,          //!< A data node. Name is empty. Value contains data text. -        node_cdata,         //!< A CDATA node. Name is empty. Value contains data text. -        node_comment,       //!< A comment node. Name is empty. Value contains comment text. -        node_declaration,   //!< A declaration node. Name and value are empty. Declaration parameters (version, encoding and standalone) are in node attributes. -        node_doctype,       //!< A DOCTYPE node. Name is empty. Value contains DOCTYPE text. -        node_pi             //!< A PI node. Name contains target. Value contains instructions. -    }; - -    /////////////////////////////////////////////////////////////////////// -    // Parsing flags - -    //! Parse flag instructing the parser to not create data nodes.  -    //! Text of first data node will still be placed in value of parent element, unless rapidxml::parse_no_element_values flag is also specified. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_no_data_nodes = 0x1;             - -    //! Parse flag instructing the parser to not use text of first data node as a value of parent element. -    //! Can be combined with other flags by use of | operator. -    //! Note that child data nodes of element node take precendence over its value when printing.  -    //! That is, if element has one or more child data nodes <em>and</em> a value, the value will be ignored. -    //! Use rapidxml::parse_no_data_nodes flag to prevent creation of data nodes if you want to manipulate data using values of elements. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_no_element_values = 0x2; -     -    //! Parse flag instructing the parser to not place zero terminators after strings in the source text. -    //! By default zero terminators are placed, modifying source text. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_no_string_terminators = 0x4; -     -    //! Parse flag instructing the parser to not translate entities in the source text. -    //! By default entities are translated, modifying source text. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_no_entity_translation = 0x8; -     -    //! Parse flag instructing the parser to disable UTF-8 handling and assume plain 8 bit characters. -    //! By default, UTF-8 handling is enabled. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_no_utf8 = 0x10; -     -    //! Parse flag instructing the parser to create XML declaration node. -    //! By default, declaration node is not created. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_declaration_node = 0x20; -     -    //! Parse flag instructing the parser to create comments nodes. -    //! By default, comment nodes are not created. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_comment_nodes = 0x40; -     -    //! Parse flag instructing the parser to create DOCTYPE node. -    //! By default, doctype node is not created. -    //! Although W3C specification allows at most one DOCTYPE node, RapidXml will silently accept documents with more than one. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_doctype_node = 0x80; -     -    //! Parse flag instructing the parser to create PI nodes. -    //! By default, PI nodes are not created. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_pi_nodes = 0x100; -     -    //! Parse flag instructing the parser to validate closing tag names.  -    //! If not set, name inside closing tag is irrelevant to the parser. -    //! By default, closing tags are not validated. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_validate_closing_tags = 0x200; -     -    //! Parse flag instructing the parser to trim all leading and trailing whitespace of data nodes. -    //! By default, whitespace is not trimmed.  -    //! This flag does not cause the parser to modify source text. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_trim_whitespace = 0x400; - -    //! Parse flag instructing the parser to condense all whitespace runs of data nodes to a single space character. -    //! Trimming of leading and trailing whitespace of data is controlled by rapidxml::parse_trim_whitespace flag. -    //! By default, whitespace is not normalized.  -    //! If this flag is specified, source text will be modified. -    //! Can be combined with other flags by use of | operator. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_normalize_whitespace = 0x800; - -    // Compound flags -     -    //! Parse flags which represent default behaviour of the parser.  -    //! This is always equal to 0, so that all other flags can be simply ored together. -    //! Normally there is no need to inconveniently disable flags by anding with their negated (~) values. -    //! This also means that meaning of each flag is a <i>negation</i> of the default setting.  -    //! For example, if flag name is rapidxml::parse_no_utf8, it means that utf-8 is <i>enabled</i> by default, -    //! and using the flag will disable it. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_default = 0; -     -    //! A combination of parse flags that forbids any modifications of the source text.  -    //! This also results in faster parsing. However, note that the following will occur: -    //! <ul> -    //! <li>names and values of nodes will not be zero terminated, you have to use xml_base::name_size() and xml_base::value_size() functions to determine where name and value ends</li> -    //! <li>entities will not be translated</li> -    //! <li>whitespace will not be normalized</li> -    //! </ul> -    //! See xml_document::parse() function. -    const int parse_non_destructive = parse_no_string_terminators | parse_no_entity_translation; -     -    //! A combination of parse flags resulting in fastest possible parsing, without sacrificing important data. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_fastest = parse_non_destructive | parse_no_data_nodes; -     -    //! A combination of parse flags resulting in largest amount of data being extracted.  -    //! This usually results in slowest parsing. -    //! <br><br> -    //! See xml_document::parse() function. -    const int parse_full = parse_declaration_node | parse_comment_nodes | parse_doctype_node | parse_pi_nodes | parse_validate_closing_tags; - -    /////////////////////////////////////////////////////////////////////// -    // Internals - -    //! \cond internal -    namespace internal -    { - -        // Struct that contains lookup tables for the parser -        // It must be a template to allow correct linking (because it has static data members, which are defined in a header file). -        template<int Dummy> -        struct lookup_tables -        { -            static const unsigned char lookup_whitespace[256];              // Whitespace table -            static const unsigned char lookup_node_name[256];               // Node name table -            static const unsigned char lookup_text[256];                    // Text table -            static const unsigned char lookup_text_pure_no_ws[256];         // Text table -            static const unsigned char lookup_text_pure_with_ws[256];       // Text table -            static const unsigned char lookup_attribute_name[256];          // Attribute name table -            static const unsigned char lookup_attribute_data_1[256];        // Attribute data table with single quote -            static const unsigned char lookup_attribute_data_1_pure[256];   // Attribute data table with single quote -            static const unsigned char lookup_attribute_data_2[256];        // Attribute data table with double quotes -            static const unsigned char lookup_attribute_data_2_pure[256];   // Attribute data table with double quotes -            static const unsigned char lookup_digits[256];                  // Digits -            static const unsigned char lookup_upcase[256];                  // To uppercase conversion table for ASCII characters -        }; - -        // Find length of the string -        template<class Ch> -        inline std::size_t measure(const Ch *p) -        { -            const Ch *tmp = p; -            while (*tmp)  -                ++tmp; -            return tmp - p; -        } - -        // Compare strings for equality -        template<class Ch> -        inline bool compare(const Ch *p1, std::size_t size1, const Ch *p2, std::size_t size2, bool case_sensitive) -        { -            if (size1 != size2) -                return false; -            if (case_sensitive) -            { -                for (const Ch *end = p1 + size1; p1 < end; ++p1, ++p2) -                    if (*p1 != *p2) -                        return false; -            } -            else -            { -                for (const Ch *end = p1 + size1; p1 < end; ++p1, ++p2) -                    if (lookup_tables<0>::lookup_upcase[static_cast<unsigned char>(*p1)] != lookup_tables<0>::lookup_upcase[static_cast<unsigned char>(*p2)]) -                        return false; -            } -            return true; -        } - -        template<class Ch> -        inline size_t get_index(const Ch c) -        { -            // If not ASCII char, its sematic is same as plain 'z' -            if (c > 255) -            { -                return 'z'; -            } -            return c; -        } -    } -    //! \endcond - -    /////////////////////////////////////////////////////////////////////// -    // Memory pool -     -    //! This class is used by the parser to create new nodes and attributes, without overheads of dynamic memory allocation. -    //! In most cases, you will not need to use this class directly.  -    //! However, if you need to create nodes manually or modify names/values of nodes,  -    //! you are encouraged to use memory_pool of relevant xml_document to allocate the memory.  -    //! Not only is this faster than allocating them by using <code>new</code> operator,  -    //! but also their lifetime will be tied to the lifetime of document,  -    //! possibly simplyfing memory management.  -    //! <br><br> -    //! Call allocate_node() or allocate_attribute() functions to obtain new nodes or attributes from the pool.  -    //! You can also call allocate_string() function to allocate strings. -    //! Such strings can then be used as names or values of nodes without worrying about their lifetime. -    //! Note that there is no <code>free()</code> function -- all allocations are freed at once when clear() function is called,  -    //! or when the pool is destroyed. -    //! <br><br> -    //! It is also possible to create a standalone memory_pool, and use it  -    //! to allocate nodes, whose lifetime will not be tied to any document. -    //! <br><br> -    //! Pool maintains <code>BOOST_PROPERTY_TREE_RAPIDXML_STATIC_POOL_SIZE</code> bytes of statically allocated memory.  -    //! Until static memory is exhausted, no dynamic memory allocations are done. -    //! When static memory is exhausted, pool allocates additional blocks of memory of size <code>BOOST_PROPERTY_TREE_RAPIDXML_DYNAMIC_POOL_SIZE</code> each, -    //! by using global <code>new[]</code> and <code>delete[]</code> operators.  -    //! This behaviour can be changed by setting custom allocation routines.  -    //! Use set_allocator() function to set them. -    //! <br><br> -    //! Allocations for nodes, attributes and strings are aligned at <code>BOOST_PROPERTY_TREE_RAPIDXML_ALIGNMENT</code> bytes. -    //! This value defaults to the size of pointer on target architecture. -    //! <br><br> -    //! To obtain absolutely top performance from the parser, -    //! it is important that all nodes are allocated from a single, contiguous block of memory. -    //! Otherwise, cache misses when jumping between two (or more) disjoint blocks of memory can slow down parsing quite considerably. -    //! If required, you can tweak <code>BOOST_PROPERTY_TREE_RAPIDXML_STATIC_POOL_SIZE</code>, <code>BOOST_PROPERTY_TREE_RAPIDXML_DYNAMIC_POOL_SIZE</code> and <code>BOOST_PROPERTY_TREE_RAPIDXML_ALIGNMENT</code>  -    //! to obtain best wasted memory to performance compromise. -    //! To do it, define their values before rapidxml.hpp file is included. -    //! \param Ch Character type of created nodes.  -    template<class Ch = char> -    class memory_pool -    { -         -    public: - -        //! \cond internal -        typedef void *(alloc_func)(std::size_t);       // Type of user-defined function used to allocate memory -        typedef void (free_func)(void *);              // Type of user-defined function used to free memory -        //! \endcond -         -        //! Constructs empty pool with default allocator functions. -        memory_pool() -            : m_alloc_func(0) -            , m_free_func(0) -        { -            init(); -        } - -        //! Destroys pool and frees all the memory.  -        //! This causes memory occupied by nodes allocated by the pool to be freed. -        //! Nodes allocated from the pool are no longer valid. -        ~memory_pool() -        { -            clear(); -        } - -        //! Allocates a new node from the pool, and optionally assigns name and value to it.  -        //! If the allocation request cannot be accomodated, this function will throw <code>std::bad_alloc</code>. -        //! If exceptions are disabled by defining RAPIDXML_NO_EXCEPTIONS, this function -        //! will call rapidxml::parse_error_handler() function. -        //! \param type Type of node to create. -        //! \param name Name to assign to the node, or 0 to assign no name. -        //! \param value Value to assign to the node, or 0 to assign no value. -        //! \param name_size Size of name to assign, or 0 to automatically calculate size from name string. -        //! \param value_size Size of value to assign, or 0 to automatically calculate size from value string. -        //! \return Pointer to allocated node. This pointer will never be NULL. -        xml_node<Ch> *allocate_node(node_type type,  -                                    const Ch *name = 0, const Ch *value = 0,  -                                    std::size_t name_size = 0, std::size_t value_size = 0) -        { -            void *memory = allocate_aligned(sizeof(xml_node<Ch>)); -            xml_node<Ch> *node = new(memory) xml_node<Ch>(type); -            if (name) -            { -                if (name_size > 0) -                    node->name(name, name_size); -                else -                    node->name(name); -            } -            if (value) -            { -                if (value_size > 0) -                    node->value(value, value_size); -                else -                    node->value(value); -            } -            return node; -        } - -        //! Allocates a new attribute from the pool, and optionally assigns name and value to it. -        //! If the allocation request cannot be accomodated, this function will throw <code>std::bad_alloc</code>. -        //! If exceptions are disabled by defining RAPIDXML_NO_EXCEPTIONS, this function -        //! will call rapidxml::parse_error_handler() function. -        //! \param name Name to assign to the attribute, or 0 to assign no name. -        //! \param value Value to assign to the attribute, or 0 to assign no value. -        //! \param name_size Size of name to assign, or 0 to automatically calculate size from name string. -        //! \param value_size Size of value to assign, or 0 to automatically calculate size from value string. -        //! \return Pointer to allocated attribute. This pointer will never be NULL. -        xml_attribute<Ch> *allocate_attribute(const Ch *name = 0, const Ch *value = 0,  -                                              std::size_t name_size = 0, std::size_t value_size = 0) -        { -            void *memory = allocate_aligned(sizeof(xml_attribute<Ch>)); -            xml_attribute<Ch> *attribute = new(memory) xml_attribute<Ch>; -            if (name) -            { -                if (name_size > 0) -                    attribute->name(name, name_size); -                else -                    attribute->name(name); -            } -            if (value) -            { -                if (value_size > 0) -                    attribute->value(value, value_size); -                else -                    attribute->value(value); -            } -            return attribute; -        } - -        //! Allocates a char array of given size from the pool, and optionally copies a given string to it. -        //! If the allocation request cannot be accomodated, this function will throw <code>std::bad_alloc</code>. -        //! If exceptions are disabled by defining RAPIDXML_NO_EXCEPTIONS, this function -        //! will call rapidxml::parse_error_handler() function. -        //! \param source String to initialize the allocated memory with, or 0 to not initialize it. -        //! \param size Number of characters to allocate, or zero to calculate it automatically from source string length; if size is 0, source string must be specified and null terminated. -        //! \return Pointer to allocated char array. This pointer will never be NULL. -        Ch *allocate_string(const Ch *source = 0, std::size_t size = 0) -        { -            assert(source || size);     // Either source or size (or both) must be specified -            if (size == 0) -                size = internal::measure(source) + 1; -            Ch *result = static_cast<Ch *>(allocate_aligned(size * sizeof(Ch))); -            if (source) -                for (std::size_t i = 0; i < size; ++i) -                    result[i] = source[i]; -            return result; -        } - -        //! Clones an xml_node and its hierarchy of child nodes and attributes. -        //! Nodes and attributes are allocated from this memory pool. -        //! Names and values are not cloned, they are shared between the clone and the source. -        //! Result node can be optionally specified as a second parameter,  -        //! in which case its contents will be replaced with cloned source node. -        //! This is useful when you want to clone entire document. -        //! \param source Node to clone. -        //! \param result Node to put results in, or 0 to automatically allocate result node -        //! \return Pointer to cloned node. This pointer will never be NULL. -        xml_node<Ch> *clone_node(const xml_node<Ch> *source, xml_node<Ch> *result = 0) -        { -            // Prepare result node -            if (result) -            { -                result->remove_all_attributes(); -                result->remove_all_nodes(); -                result->type(source->type()); -            } -            else -                result = allocate_node(source->type()); - -            // Clone name and value -            result->name(source->name(), source->name_size()); -            result->value(source->value(), source->value_size()); - -            // Clone child nodes and attributes -            for (xml_node<Ch> *child = source->first_node(); child; child = child->next_sibling()) -                result->append_node(clone_node(child)); -            for (xml_attribute<Ch> *attr = source->first_attribute(); attr; attr = attr->next_attribute()) -                result->append_attribute(allocate_attribute(attr->name(), attr->value(), attr->name_size(), attr->value_size())); - -            return result; -        } - -        //! Clears the pool.  -        //! This causes memory occupied by nodes allocated by the pool to be freed. -        //! Any nodes or strings allocated from the pool will no longer be valid. -        void clear() -        { -            while (m_begin != m_static_memory) -            { -                char *previous_begin = reinterpret_cast<header *>(align(m_begin))->previous_begin; -                if (m_free_func) -                    m_free_func(m_begin); -                else -                    delete[] m_begin; -                m_begin = previous_begin; -            } -            init(); -        } - -        //! Sets or resets the user-defined memory allocation functions for the pool. -        //! This can only be called when no memory is allocated from the pool yet, otherwise results are undefined. -        //! Allocation function must not return invalid pointer on failure. It should either throw, -        //! stop the program, or use <code>longjmp()</code> function to pass control to other place of program.  -        //! If it returns invalid pointer, results are undefined. -        //! <br><br> -        //! User defined allocation functions must have the following forms: -        //! <br><code> -        //! <br>void *allocate(std::size_t size); -        //! <br>void free(void *pointer); -        //! </code><br> -        //! \param af Allocation function, or 0 to restore default function -        //! \param ff Free function, or 0 to restore default function -        void set_allocator(alloc_func *af, free_func *ff) -        { -            assert(m_begin == m_static_memory && m_ptr == align(m_begin));    // Verify that no memory is allocated yet -            m_alloc_func = af; -            m_free_func = ff; -        } - -    private: - -        struct header -        { -            char *previous_begin; -        }; - -        void init() -        { -            m_begin = m_static_memory; -            m_ptr = align(m_begin); -            m_end = m_static_memory + sizeof(m_static_memory); -        } -         -        char *align(char *ptr) -        { -            std::size_t alignment = ((BOOST_PROPERTY_TREE_RAPIDXML_ALIGNMENT - (std::size_t(ptr) & (BOOST_PROPERTY_TREE_RAPIDXML_ALIGNMENT - 1))) & (BOOST_PROPERTY_TREE_RAPIDXML_ALIGNMENT - 1)); -            return ptr + alignment; -        } -         -        char *allocate_raw(std::size_t size) -        { -            // Allocate -            void *memory;    -            if (m_alloc_func)   // Allocate memory using either user-specified allocation function or global operator new[] -            { -                memory = m_alloc_func(size); -                assert(memory); // Allocator is not allowed to return 0, on failure it must either throw, stop the program or use longjmp -            } -            else -            { -                memory = new char[size]; -            } -            return static_cast<char *>(memory); -        } -         -        void *allocate_aligned(std::size_t size) -        { -            // Calculate aligned pointer -            char *result = align(m_ptr); - -            // If not enough memory left in current pool, allocate a new pool -            if (result + size > m_end) -            { -                // Calculate required pool size (may be bigger than BOOST_PROPERTY_TREE_RAPIDXML_DYNAMIC_POOL_SIZE) -                std::size_t pool_size = BOOST_PROPERTY_TREE_RAPIDXML_DYNAMIC_POOL_SIZE; -                if (pool_size < size) -                    pool_size = size; -                 -                // Allocate -                std::size_t alloc_size = sizeof(header) + (2 * BOOST_PROPERTY_TREE_RAPIDXML_ALIGNMENT - 2) + pool_size;     // 2 alignments required in worst case: one for header, one for actual allocation -                char *raw_memory = allocate_raw(alloc_size); -                     -                // Setup new pool in allocated memory -                char *pool = align(raw_memory); -                header *new_header = reinterpret_cast<header *>(pool); -                new_header->previous_begin = m_begin; -                m_begin = raw_memory; -                m_ptr = pool + sizeof(header); -                m_end = raw_memory + alloc_size; - -                // Calculate aligned pointer again using new pool -                result = align(m_ptr); -            } - -            // Update pool and return aligned pointer -            m_ptr = result + size; -            return result; -        } - -        char *m_begin;                                      // Start of raw memory making up current pool -        char *m_ptr;                                        // First free byte in current pool -        char *m_end;                                        // One past last available byte in current pool -        char m_static_memory[BOOST_PROPERTY_TREE_RAPIDXML_STATIC_POOL_SIZE];    // Static raw memory -        alloc_func *m_alloc_func;                           // Allocator function, or 0 if default is to be used -        free_func *m_free_func;                             // Free function, or 0 if default is to be used -    }; - -    /////////////////////////////////////////////////////////////////////////// -    // XML base - -    //! Base class for xml_node and xml_attribute implementing common functions:  -    //! name(), name_size(), value(), value_size() and parent(). -    //! \param Ch Character type to use -    template<class Ch = char> -    class xml_base -    { - -    public: -         -        /////////////////////////////////////////////////////////////////////////// -        // Construction & destruction -     -        // Construct a base with empty name, value and parent -        xml_base() -            : m_name(0) -            , m_value(0) -            , m_parent(0) -        { -        } - -        /////////////////////////////////////////////////////////////////////////// -        // Node data access -     -        //! Gets name of the node.  -        //! Interpretation of name depends on type of node. -        //! Note that name will not be zero-terminated if rapidxml::parse_no_string_terminators option was selected during parse. -        //! <br><br> -        //! Use name_size() function to determine length of the name. -        //! \return Name of node, or empty string if node has no name. -        Ch *name() const -        { -            return m_name ? m_name : nullstr(); -        } - -        //! Gets size of node name, not including terminator character. -        //! This function works correctly irrespective of whether name is or is not zero terminated. -        //! \return Size of node name, in characters. -        std::size_t name_size() const -        { -            return m_name ? m_name_size : 0; -        } - -        //! Gets value of node.  -        //! Interpretation of value depends on type of node. -        //! Note that value will not be zero-terminated if rapidxml::parse_no_string_terminators option was selected during parse. -        //! <br><br> -        //! Use value_size() function to determine length of the value. -        //! \return Value of node, or empty string if node has no value. -        Ch *value() const -        { -            return m_value ? m_value : nullstr(); -        } - -        //! Gets size of node value, not including terminator character. -        //! This function works correctly irrespective of whether value is or is not zero terminated. -        //! \return Size of node value, in characters. -        std::size_t value_size() const -        { -            return m_value ? m_value_size : 0; -        } - -        /////////////////////////////////////////////////////////////////////////// -        // Node modification -     -        //! Sets name of node to a non zero-terminated string. -        //! See \ref ownership_of_strings. -        //! <br><br> -        //! Note that node does not own its name or value, it only stores a pointer to it.  -        //! It will not delete or otherwise free the pointer on destruction. -        //! It is reponsibility of the user to properly manage lifetime of the string. -        //! The easiest way to achieve it is to use memory_pool of the document to allocate the string - -        //! on destruction of the document the string will be automatically freed. -        //! <br><br> -        //! Size of name must be specified separately, because name does not have to be zero terminated. -        //! Use name(const Ch *) function to have the length automatically calculated (string must be zero terminated). -        //! \param n Name of node to set. Does not have to be zero terminated. -        //! \param size Size of name, in characters. This does not include zero terminator, if one is present. -        void name(const Ch *n, std::size_t size) -        { -            m_name = const_cast<Ch *>(n); -            m_name_size = size; -        } - -        //! Sets name of node to a zero-terminated string. -        //! See also \ref ownership_of_strings and xml_node::name(const Ch *, std::size_t). -        //! \param n Name of node to set. Must be zero terminated. -        void name(const Ch *n) -        { -            name(n, internal::measure(n)); -        } - -        //! Sets value of node to a non zero-terminated string. -        //! See \ref ownership_of_strings. -        //! <br><br> -        //! Note that node does not own its name or value, it only stores a pointer to it.  -        //! It will not delete or otherwise free the pointer on destruction. -        //! It is reponsibility of the user to properly manage lifetime of the string. -        //! The easiest way to achieve it is to use memory_pool of the document to allocate the string - -        //! on destruction of the document the string will be automatically freed. -        //! <br><br> -        //! Size of value must be specified separately, because it does not have to be zero terminated. -        //! Use value(const Ch *) function to have the length automatically calculated (string must be zero terminated). -        //! <br><br> -        //! If an element has a child node of type node_data, it will take precedence over element value when printing. -        //! If you want to manipulate data of elements using values, use parser flag rapidxml::parse_no_data_nodes to prevent creation of data nodes by the parser. -        //! \param val value of node to set. Does not have to be zero terminated. -        //! \param size Size of value, in characters. This does not include zero terminator, if one is present. -        void value(const Ch *val, std::size_t size) -        { -            m_value = const_cast<Ch *>(val); -            m_value_size = size; -        } - -        //! Sets value of node to a zero-terminated string. -        //! See also \ref ownership_of_strings and xml_node::value(const Ch *, std::size_t). -        //! \param val Vame of node to set. Must be zero terminated. -        void value(const Ch *val) -        { -            this->value(val, internal::measure(val)); -        } - -        /////////////////////////////////////////////////////////////////////////// -        // Related nodes access -     -        //! Gets node parent. -        //! \return Pointer to parent node, or 0 if there is no parent. -        xml_node<Ch> *parent() const -        { -            return m_parent; -        } - -    protected: - -        // Return empty string -        static Ch *nullstr() -        { -            static Ch zero = Ch('\0'); -            return &zero; -        } - -        Ch *m_name;                         // Name of node, or 0 if no name -        Ch *m_value;                        // Value of node, or 0 if no value -        std::size_t m_name_size;            // Length of node name, or undefined of no name -        std::size_t m_value_size;           // Length of node value, or undefined if no value -        xml_node<Ch> *m_parent;             // Pointer to parent node, or 0 if none - -    }; - -    //! Class representing attribute node of XML document.  -    //! Each attribute has name and value strings, which are available through name() and value() functions (inherited from xml_base). -    //! Note that after parse, both name and value of attribute will point to interior of source text used for parsing.  -    //! Thus, this text must persist in memory for the lifetime of attribute. -    //! \param Ch Character type to use. -    template<class Ch = char> -    class xml_attribute: public xml_base<Ch> -    { - -        friend class xml_node<Ch>; -     -    public: - -        /////////////////////////////////////////////////////////////////////////// -        // Construction & destruction -     -        //! Constructs an empty attribute with the specified type.  -        //! Consider using memory_pool of appropriate xml_document if allocating attributes manually. -        xml_attribute() -        { -        } - -        /////////////////////////////////////////////////////////////////////////// -        // Related nodes access -     -        //! Gets document of which attribute is a child. -        //! \return Pointer to document that contains this attribute, or 0 if there is no parent document. -        xml_document<Ch> *document() const -        { -            if (xml_node<Ch> *node = this->parent()) -            { -                while (node->parent()) -                    node = node->parent(); -                return node->type() == node_document ? static_cast<xml_document<Ch> *>(node) : 0; -            } -            else -                return 0; -        } - -        //! Gets previous attribute, optionally matching attribute name.  -        //! \param n Name of attribute to find, or 0 to return previous attribute regardless of its name; this string doesn't have to be zero-terminated if nsize is non-zero -        //! \param nsize Size of name, in characters, or 0 to have size calculated automatically from string -        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters -        //! \return Pointer to found attribute, or 0 if not found. -        xml_attribute<Ch> *previous_attribute(const Ch *n = 0, std::size_t nsize = 0, bool case_sensitive = true) const -        { -            if (n) -            { -                if (nsize == 0) -                    nsize = internal::measure(n); -                for (xml_attribute<Ch> *attribute = m_prev_attribute; attribute; attribute = attribute->m_prev_attribute) -                    if (internal::compare(attribute->name(), attribute->name_size(), n, nsize, case_sensitive)) -                        return attribute; -                return 0; -            } -            else -                return this->m_parent ? m_prev_attribute : 0; -        } - -        //! Gets next attribute, optionally matching attribute name.  -        //! \param n Name of attribute to find, or 0 to return next attribute regardless of its name; this string doesn't have to be zero-terminated if nsize is non-zero -        //! \param nsize Size of name, in characters, or 0 to have size calculated automatically from string -        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters -        //! \return Pointer to found attribute, or 0 if not found. -        xml_attribute<Ch> *next_attribute(const Ch *n = 0, std::size_t nsize = 0, bool case_sensitive = true) const -        { -            if (n) -            { -                if (nsize == 0) -                    nsize = internal::measure(n); -                for (xml_attribute<Ch> *attribute = m_next_attribute; attribute; attribute = attribute->m_next_attribute) -                    if (internal::compare(attribute->name(), attribute->name_size(), n, nsize, case_sensitive)) -                        return attribute; -                return 0; -            } -            else -                return this->m_parent ? m_next_attribute : 0; -        } - -    private: - -        xml_attribute<Ch> *m_prev_attribute;        // Pointer to previous sibling of attribute, or 0 if none; only valid if parent is non-zero -        xml_attribute<Ch> *m_next_attribute;        // Pointer to next sibling of attribute, or 0 if none; only valid if parent is non-zero -     -    }; - -    /////////////////////////////////////////////////////////////////////////// -    // XML node - -    //! Class representing a node of XML document.  -    //! Each node may have associated name and value strings, which are available through name() and value() functions.  -    //! Interpretation of name and value depends on type of the node. -    //! Type of node can be determined by using type() function. -    //! <br><br> -    //! Note that after parse, both name and value of node, if any, will point interior of source text used for parsing.  -    //! Thus, this text must persist in the memory for the lifetime of node. -    //! \param Ch Character type to use. -    template<class Ch = char> -    class xml_node: public xml_base<Ch> -    { - -    public: - -        /////////////////////////////////////////////////////////////////////////// -        // Construction & destruction -     -        //! Constructs an empty node with the specified type.  -        //! Consider using memory_pool of appropriate document to allocate nodes manually. -        //! \param t Type of node to construct. -        xml_node(node_type t) -            : m_type(t) -            , m_first_node(0) -            , m_first_attribute(0) -        { -        } - -        /////////////////////////////////////////////////////////////////////////// -        // Node data access -     -        //! Gets type of node. -        //! \return Type of node. -        node_type type() const -        { -            return m_type; -        } - -        /////////////////////////////////////////////////////////////////////////// -        // Related nodes access -     -        //! Gets document of which node is a child. -        //! \return Pointer to document that contains this node, or 0 if there is no parent document. -        xml_document<Ch> *document() const -        { -            xml_node<Ch> *node = const_cast<xml_node<Ch> *>(this); -            while (node->parent()) -                node = node->parent(); -            return node->type() == node_document ? static_cast<xml_document<Ch> *>(node) : 0; -        } - -        //! Gets first child node, optionally matching node name. -        //! \param n Name of child to find, or 0 to return first child regardless of its name; this string doesn't have to be zero-terminated if nsize is non-zero -        //! \param nsize Size of name, in characters, or 0 to have size calculated automatically from string -        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters -        //! \return Pointer to found child, or 0 if not found. -        xml_node<Ch> *first_node(const Ch *n = 0, std::size_t nsize = 0, bool case_sensitive = true) const -        { -            if (n) -            { -                if (nsize == 0) -                    nsize = internal::measure(n); -                for (xml_node<Ch> *child = m_first_node; child; child = child->next_sibling()) -                    if (internal::compare(child->name(), child->name_size(), n, nsize, case_sensitive)) -                        return child; -                return 0; -            } -            else -                return m_first_node; -        } - -        //! Gets last child node, optionally matching node name.  -        //! Behaviour is undefined if node has no children. -        //! Use first_node() to test if node has children. -        //! \param n Name of child to find, or 0 to return last child regardless of its name; this string doesn't have to be zero-terminated if nsize is non-zero -        //! \param nsize Size of name, in characters, or 0 to have size calculated automatically from string -        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters -        //! \return Pointer to found child, or 0 if not found. -        xml_node<Ch> *last_node(const Ch *n = 0, std::size_t nsize = 0, bool case_sensitive = true) const -        { -            assert(m_first_node);  // Cannot query for last child if node has no children -            if (n) -            { -                if (nsize == 0) -                    nsize = internal::measure(n); -                for (xml_node<Ch> *child = m_last_node; child; child = child->previous_sibling()) -                    if (internal::compare(child->name(), child->name_size(), n, nsize, case_sensitive)) -                        return child; -                return 0; -            } -            else -                return m_last_node; -        } - -        //! Gets previous sibling node, optionally matching node name.  -        //! Behaviour is undefined if node has no parent. -        //! Use parent() to test if node has a parent. -        //! \param n Name of sibling to find, or 0 to return previous sibling regardless of its name; this string doesn't have to be zero-terminated if nsize is non-zero -        //! \param nsize Size of name, in characters, or 0 to have size calculated automatically from string -        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters -        //! \return Pointer to found sibling, or 0 if not found. -        xml_node<Ch> *previous_sibling(const Ch *n = 0, std::size_t nsize = 0, bool case_sensitive = true) const -        { -            assert(this->m_parent);     // Cannot query for siblings if node has no parent -            if (n) -            { -                if (nsize == 0) -                    nsize = internal::measure(n); -                for (xml_node<Ch> *sibling = m_prev_sibling; sibling; sibling = sibling->m_prev_sibling) -                    if (internal::compare(sibling->name(), sibling->name_size(), n, nsize, case_sensitive)) -                        return sibling; -                return 0; -            } -            else -                return m_prev_sibling; -        } - -        //! Gets next sibling node, optionally matching node name.  -        //! Behaviour is undefined if node has no parent. -        //! Use parent() to test if node has a parent. -        //! \param n Name of sibling to find, or 0 to return next sibling regardless of its name; this string doesn't have to be zero-terminated if nsize is non-zero -        //! \param nsize Size of name, in characters, or 0 to have size calculated automatically from string -        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters -        //! \return Pointer to found sibling, or 0 if not found. -        xml_node<Ch> *next_sibling(const Ch *n = 0, std::size_t nsize = 0, bool case_sensitive = true) const -        { -            assert(this->m_parent);     // Cannot query for siblings if node has no parent -            if (n) -            { -                if (nsize == 0) -                    nsize = internal::measure(n); -                for (xml_node<Ch> *sibling = m_next_sibling; sibling; sibling = sibling->m_next_sibling) -                    if (internal::compare(sibling->name(), sibling->name_size(), n, nsize, case_sensitive)) -                        return sibling; -                return 0; -            } -            else -                return m_next_sibling; -        } - -        //! Gets first attribute of node, optionally matching attribute name. -        //! \param n Name of attribute to find, or 0 to return first attribute regardless of its name; this string doesn't have to be zero-terminated if nsize is non-zero -        //! \param nsize Size of name, in characters, or 0 to have size calculated automatically from string -        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters -        //! \return Pointer to found attribute, or 0 if not found. -        xml_attribute<Ch> *first_attribute(const Ch *n = 0, std::size_t nsize = 0, bool case_sensitive = true) const -        { -            if (n) -            { -                if (nsize == 0) -                    nsize = internal::measure(n); -                for (xml_attribute<Ch> *attribute = m_first_attribute; attribute; attribute = attribute->m_next_attribute) -                    if (internal::compare(attribute->name(), attribute->name_size(), n, nsize, case_sensitive)) -                        return attribute; -                return 0; -            } -            else -                return m_first_attribute; -        } - -        //! Gets last attribute of node, optionally matching attribute name. -        //! \param n Name of attribute to find, or 0 to return last attribute regardless of its name; this string doesn't have to be zero-terminated if nsize is non-zero -        //! \param nsize Size of name, in characters, or 0 to have size calculated automatically from string -        //! \param case_sensitive Should name comparison be case-sensitive; non case-sensitive comparison works properly only for ASCII characters -        //! \return Pointer to found attribute, or 0 if not found. -        xml_attribute<Ch> *last_attribute(const Ch *n = 0, std::size_t nsize = 0, bool case_sensitive = true) const -        { -            if (n) -            { -                if (nsize == 0) -                    nsize = internal::measure(n); -                for (xml_attribute<Ch> *attribute = m_last_attribute; attribute; attribute = attribute->m_prev_attribute) -                    if (internal::compare(attribute->name(), attribute->name_size(), n, nsize, case_sensitive)) -                        return attribute; -                return 0; -            } -            else -                return m_first_attribute ? m_last_attribute : 0; -        } - -        /////////////////////////////////////////////////////////////////////////// -        // Node modification -     -        //! Sets type of node. -        //! \param t Type of node to set. -        void type(node_type t) -        { -            m_type = t; -        } - -        /////////////////////////////////////////////////////////////////////////// -        // Node manipulation - -        //! Prepends a new child node. -        //! The prepended child becomes the first child, and all existing children are moved one position back. -        //! \param child Node to prepend. -        void prepend_node(xml_node<Ch> *child) -        { -            assert(child && !child->parent() && child->type() != node_document); -            if (first_node()) -            { -                child->m_next_sibling = m_first_node; -                m_first_node->m_prev_sibling = child; -            } -            else -            { -                child->m_next_sibling = 0; -                m_last_node = child; -            } -            m_first_node = child; -            child->m_parent = this; -            child->m_prev_sibling = 0; -        } - -        //! Appends a new child node.  -        //! The appended child becomes the last child. -        //! \param child Node to append. -        void append_node(xml_node<Ch> *child) -        { -            assert(child && !child->parent() && child->type() != node_document); -            if (first_node()) -            { -                child->m_prev_sibling = m_last_node; -                m_last_node->m_next_sibling = child; -            } -            else -            { -                child->m_prev_sibling = 0; -                m_first_node = child; -            } -            m_last_node = child; -            child->m_parent = this; -            child->m_next_sibling = 0; -        } - -        //! Inserts a new child node at specified place inside the node.  -        //! All children after and including the specified node are moved one position back. -        //! \param where Place where to insert the child, or 0 to insert at the back. -        //! \param child Node to insert. -        void insert_node(xml_node<Ch> *where, xml_node<Ch> *child) -        { -            assert(!where || where->parent() == this); -            assert(child && !child->parent() && child->type() != node_document); -            if (where == m_first_node) -                prepend_node(child); -            else if (where == 0) -                append_node(child); -            else -            { -                child->m_prev_sibling = where->m_prev_sibling; -                child->m_next_sibling = where; -                where->m_prev_sibling->m_next_sibling = child; -                where->m_prev_sibling = child; -                child->m_parent = this; -            } -        } - -        //! Removes first child node.  -        //! If node has no children, behaviour is undefined. -        //! Use first_node() to test if node has children. -        void remove_first_node() -        { -            assert(first_node()); -            xml_node<Ch> *child = m_first_node; -            m_first_node = child->m_next_sibling; -            if (child->m_next_sibling) -                child->m_next_sibling->m_prev_sibling = 0; -            else -                m_last_node = 0; -            child->m_parent = 0; -        } - -        //! Removes last child of the node.  -        //! If node has no children, behaviour is undefined. -        //! Use first_node() to test if node has children. -        void remove_last_node() -        { -            assert(first_node()); -            xml_node<Ch> *child = m_last_node; -            if (child->m_prev_sibling) -            { -                m_last_node = child->m_prev_sibling; -                child->m_prev_sibling->m_next_sibling = 0; -            } -            else -                m_first_node = 0; -            child->m_parent = 0; -        } - -        //! Removes specified child from the node -        // \param where Pointer to child to be removed. -        void remove_node(xml_node<Ch> *where) -        { -            assert(where && where->parent() == this); -            assert(first_node()); -            if (where == m_first_node) -                remove_first_node(); -            else if (where == m_last_node) -                remove_last_node(); -            else -            { -                where->m_prev_sibling->m_next_sibling = where->m_next_sibling; -                where->m_next_sibling->m_prev_sibling = where->m_prev_sibling; -                where->m_parent = 0; -            } -        } - -        //! Removes all child nodes (but not attributes). -        void remove_all_nodes() -        { -            for (xml_node<Ch> *node = first_node(); node; node = node->m_next_sibling) -                node->m_parent = 0; -            m_first_node = 0; -        } - -        //! Prepends a new attribute to the node. -        //! \param attribute Attribute to prepend. -        void prepend_attribute(xml_attribute<Ch> *attribute) -        { -            assert(attribute && !attribute->parent()); -            if (first_attribute()) -            { -                attribute->m_next_attribute = m_first_attribute; -                m_first_attribute->m_prev_attribute = attribute; -            } -            else -            { -                attribute->m_next_attribute = 0; -                m_last_attribute = attribute; -            } -            m_first_attribute = attribute; -            attribute->m_parent = this; -            attribute->m_prev_attribute = 0; -        } - -        //! Appends a new attribute to the node. -        //! \param attribute Attribute to append. -        void append_attribute(xml_attribute<Ch> *attribute) -        { -            assert(attribute && !attribute->parent()); -            if (first_attribute()) -            { -                attribute->m_prev_attribute = m_last_attribute; -                m_last_attribute->m_next_attribute = attribute; -            } -            else -            { -                attribute->m_prev_attribute = 0; -                m_first_attribute = attribute; -            } -            m_last_attribute = attribute; -            attribute->m_parent = this; -            attribute->m_next_attribute = 0; -        } - -        //! Inserts a new attribute at specified place inside the node.  -        //! All attributes after and including the specified attribute are moved one position back. -        //! \param where Place where to insert the attribute, or 0 to insert at the back. -        //! \param attribute Attribute to insert. -        void insert_attribute(xml_attribute<Ch> *where, xml_attribute<Ch> *attribute) -        { -            assert(!where || where->parent() == this); -            assert(attribute && !attribute->parent()); -            if (where == m_first_attribute) -                prepend_attribute(attribute); -            else if (where == 0) -                append_attribute(attribute); -            else -            { -                attribute->m_prev_attribute = where->m_prev_attribute; -                attribute->m_next_attribute = where; -                where->m_prev_attribute->m_next_attribute = attribute; -                where->m_prev_attribute = attribute; -                attribute->m_parent = this; -            } -        } - -        //! Removes first attribute of the node.  -        //! If node has no attributes, behaviour is undefined. -        //! Use first_attribute() to test if node has attributes. -        void remove_first_attribute() -        { -            assert(first_attribute()); -            xml_attribute<Ch> *attribute = m_first_attribute; -            if (attribute->m_next_attribute) -            { -                attribute->m_next_attribute->m_prev_attribute = 0; -            } -            else -                m_last_attribute = 0; -            attribute->m_parent = 0; -            m_first_attribute = attribute->m_next_attribute; -        } - -        //! Removes last attribute of the node.  -        //! If node has no attributes, behaviour is undefined. -        //! Use first_attribute() to test if node has attributes. -        void remove_last_attribute() -        { -            assert(first_attribute()); -            xml_attribute<Ch> *attribute = m_last_attribute; -            if (attribute->m_prev_attribute) -            { -                attribute->m_prev_attribute->m_next_attribute = 0; -                m_last_attribute = attribute->m_prev_attribute; -            } -            else -                m_first_attribute = 0; -            attribute->m_parent = 0; -        } - -        //! Removes specified attribute from node. -        //! \param where Pointer to attribute to be removed. -        void remove_attribute(xml_attribute<Ch> *where) -        { -            assert(first_attribute() && where->parent() == this); -            if (where == m_first_attribute) -                remove_first_attribute(); -            else if (where == m_last_attribute) -                remove_last_attribute(); -            else -            { -                where->m_prev_attribute->m_next_attribute = where->m_next_attribute; -                where->m_next_attribute->m_prev_attribute = where->m_prev_attribute; -                where->m_parent = 0; -            } -        } - -        //! Removes all attributes of node. -        void remove_all_attributes() -        { -            for (xml_attribute<Ch> *attribute = first_attribute(); attribute; attribute = attribute->m_next_attribute) -                attribute->m_parent = 0; -            m_first_attribute = 0; -        } -         -    private: - -        /////////////////////////////////////////////////////////////////////////// -        // Restrictions - -        // No copying -        xml_node(const xml_node &); -        void operator =(const xml_node &); -     -        /////////////////////////////////////////////////////////////////////////// -        // Data members -     -        // Note that some of the pointers below have UNDEFINED values if certain other pointers are 0. -        // This is required for maximum performance, as it allows the parser to omit initialization of  -        // unneded/redundant values. -        // -        // The rules are as follows: -        // 1. first_node and first_attribute contain valid pointers, or 0 if node has no children/attributes respectively -        // 2. last_node and last_attribute are valid only if node has at least one child/attribute respectively, otherwise they contain garbage -        // 3. prev_sibling and next_sibling are valid only if node has a parent, otherwise they contain garbage - -        node_type m_type;                       // Type of node; always valid -        xml_node<Ch> *m_first_node;             // Pointer to first child node, or 0 if none; always valid -        xml_node<Ch> *m_last_node;              // Pointer to last child node, or 0 if none; this value is only valid if m_first_node is non-zero -        xml_attribute<Ch> *m_first_attribute;   // Pointer to first attribute of node, or 0 if none; always valid -        xml_attribute<Ch> *m_last_attribute;    // Pointer to last attribute of node, or 0 if none; this value is only valid if m_first_attribute is non-zero -        xml_node<Ch> *m_prev_sibling;           // Pointer to previous sibling of node, or 0 if none; this value is only valid if m_parent is non-zero -        xml_node<Ch> *m_next_sibling;           // Pointer to next sibling of node, or 0 if none; this value is only valid if m_parent is non-zero - -    }; - -    /////////////////////////////////////////////////////////////////////////// -    // XML document -     -    //! This class represents root of the DOM hierarchy.  -    //! It is also an xml_node and a memory_pool through public inheritance. -    //! Use parse() function to build a DOM tree from a zero-terminated XML text string. -    //! parse() function allocates memory for nodes and attributes by using functions of xml_document,  -    //! which are inherited from memory_pool. -    //! To access root node of the document, use the document itself, as if it was an xml_node. -    //! \param Ch Character type to use. -    template<class Ch = char> -    class xml_document: public xml_node<Ch>, public memory_pool<Ch> -    { -     -    public: - -        //! Constructs empty XML document -        xml_document() -            : xml_node<Ch>(node_document) -        { -        } - -        //! Parses zero-terminated XML string according to given flags. -        //! Passed string will be modified by the parser, unless rapidxml::parse_non_destructive flag is used. -        //! The string must persist for the lifetime of the document. -        //! In case of error, rapidxml::parse_error exception will be thrown. -        //! <br><br> -        //! If you want to parse contents of a file, you must first load the file into the memory, and pass pointer to its beginning. -        //! Make sure that data is zero-terminated. -        //! <br><br> -        //! Document can be parsed into multiple times.  -        //! Each new call to parse removes previous nodes and attributes (if any), but does not clear memory pool. -        //! \param text XML data to parse; pointer is non-const to denote fact that this data may be modified by the parser. -        template<int Flags> -        void parse(Ch *text) -        { -            assert(text); -             -            // Remove current contents -            this->remove_all_nodes(); -            this->remove_all_attributes(); -             -            // Parse BOM, if any -            parse_bom<Flags>(text); -             -            // Parse children -            while (1) -            { -                // Skip whitespace before node -                skip<whitespace_pred, Flags>(text); -                if (*text == 0) -                    break; - -                // Parse and append new child -                if (*text == Ch('<')) -                { -                    ++text;     // Skip '<' -                    if (xml_node<Ch> *node = parse_node<Flags>(text)) -                        this->append_node(node); -                } -                else -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected <", text); -            } - -        } - -        //! Clears the document by deleting all nodes and clearing the memory pool. -        //! All nodes owned by document pool are destroyed. -        void clear() -        { -            this->remove_all_nodes(); -            this->remove_all_attributes(); -            memory_pool<Ch>::clear(); -        } -         -    private: - -        /////////////////////////////////////////////////////////////////////// -        // Internal character utility functions -         -        // Detect whitespace character -        struct whitespace_pred -        { -            static unsigned char test(Ch ch) -            { -                return internal::lookup_tables<0>::lookup_whitespace[internal::get_index(ch)]; -            } -        }; - -        // Detect node name character -        struct node_name_pred -        { -            static unsigned char test(Ch ch) -            { -                return internal::lookup_tables<0>::lookup_node_name[internal::get_index(ch)]; -            } -        }; - -        // Detect attribute name character -        struct attribute_name_pred -        { -            static unsigned char test(Ch ch) -            { -                return internal::lookup_tables<0>::lookup_attribute_name[internal::get_index(ch)]; -            } -        }; - -        // Detect text character (PCDATA) -        struct text_pred -        { -            static unsigned char test(Ch ch) -            { -                return internal::lookup_tables<0>::lookup_text[internal::get_index(ch)]; -            } -        }; - -        // Detect text character (PCDATA) that does not require processing -        struct text_pure_no_ws_pred -        { -            static unsigned char test(Ch ch) -            { -                return internal::lookup_tables<0>::lookup_text_pure_no_ws[internal::get_index(ch)]; -            } -        }; - -        // Detect text character (PCDATA) that does not require processing -        struct text_pure_with_ws_pred -        { -            static unsigned char test(Ch ch) -            { -                return internal::lookup_tables<0>::lookup_text_pure_with_ws[internal::get_index(ch)]; -            } -        }; - -        // Detect attribute value character -        template<Ch Quote> -        struct attribute_value_pred -        { -            static unsigned char test(Ch ch) -            { -                if (Quote == Ch('\'')) -                    return internal::lookup_tables<0>::lookup_attribute_data_1[internal::get_index(ch)]; -                if (Quote == Ch('\"')) -                    return internal::lookup_tables<0>::lookup_attribute_data_2[internal::get_index(ch)]; -                return 0;       // Should never be executed, to avoid warnings on Comeau -            } -        }; - -        // Detect attribute value character -        template<Ch Quote> -        struct attribute_value_pure_pred -        { -            static unsigned char test(Ch ch) -            { -                if (Quote == Ch('\'')) -                    return internal::lookup_tables<0>::lookup_attribute_data_1_pure[internal::get_index(ch)]; -                if (Quote == Ch('\"')) -                    return internal::lookup_tables<0>::lookup_attribute_data_2_pure[internal::get_index(ch)]; -                return 0;       // Should never be executed, to avoid warnings on Comeau -            } -        }; - -        // Insert coded character, using UTF8 or 8-bit ASCII -        template<int Flags> -        static void insert_coded_character(Ch *&text, unsigned long code) -        { -            if (Flags & parse_no_utf8) -            { -                // Insert 8-bit ASCII character -                // Todo: possibly verify that code is less than 256 and use replacement char otherwise? -                text[0] = static_cast<unsigned char>(code); -                text += 1; -            } -            else -            { -                // Insert UTF8 sequence -                if (code < 0x80)    // 1 byte sequence -                { -                    text[0] = static_cast<unsigned char>(code); -                    text += 1; -                } -                else if (code < 0x800)  // 2 byte sequence -                { -                    text[1] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6; -                    text[0] = static_cast<unsigned char>(code | 0xC0); -                    text += 2; -                } -                else if (code < 0x10000)    // 3 byte sequence -                { -                    text[2] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6; -                    text[1] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6; -                    text[0] = static_cast<unsigned char>(code | 0xE0); -                    text += 3; -                } -                else if (code < 0x110000)   // 4 byte sequence -                { -                    text[3] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6; -                    text[2] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6; -                    text[1] = static_cast<unsigned char>((code | 0x80) & 0xBF); code >>= 6; -                    text[0] = static_cast<unsigned char>(code | 0xF0); -                    text += 4; -                } -                else    // Invalid, only codes up to 0x10FFFF are allowed in Unicode -                { -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("invalid numeric character entity", text); -                } -            } -        } - -        // Skip characters until predicate evaluates to true -        template<class StopPred, int Flags> -        static void skip(Ch *&text) -        { -            Ch *tmp = text; -            while (StopPred::test(*tmp)) -                ++tmp; -            text = tmp; -        } - -        // Skip characters until predicate evaluates to true while doing the following: -        // - replacing XML character entity references with proper characters (' & " < > &#...;) -        // - condensing whitespace sequences to single space character -        template<class StopPred, class StopPredPure, int Flags> -        static Ch *skip_and_expand_character_refs(Ch *&text) -        { -            // If entity translation, whitespace condense and whitespace trimming is disabled, use plain skip -            if (Flags & parse_no_entity_translation &&  -                !(Flags & parse_normalize_whitespace) && -                !(Flags & parse_trim_whitespace)) -            { -                skip<StopPred, Flags>(text); -                return text; -            } -             -            // Use simple skip until first modification is detected -            skip<StopPredPure, Flags>(text); - -            // Use translation skip -            Ch *src = text; -            Ch *dest = src; -            while (StopPred::test(*src)) -            { -                // If entity translation is enabled     -                if (!(Flags & parse_no_entity_translation)) -                { -                    // Test if replacement is needed -                    if (src[0] == Ch('&')) -                    { -                        switch (src[1]) -                        { - -                        // & ' -                        case Ch('a'):  -                            if (src[2] == Ch('m') && src[3] == Ch('p') && src[4] == Ch(';')) -                            { -                                *dest = Ch('&'); -                                ++dest; -                                src += 5; -                                continue; -                            } -                            if (src[2] == Ch('p') && src[3] == Ch('o') && src[4] == Ch('s') && src[5] == Ch(';')) -                            { -                                *dest = Ch('\''); -                                ++dest; -                                src += 6; -                                continue; -                            } -                            break; - -                        // " -                        case Ch('q'):  -                            if (src[2] == Ch('u') && src[3] == Ch('o') && src[4] == Ch('t') && src[5] == Ch(';')) -                            { -                                *dest = Ch('"'); -                                ++dest; -                                src += 6; -                                continue; -                            } -                            break; - -                        // > -                        case Ch('g'):  -                            if (src[2] == Ch('t') && src[3] == Ch(';')) -                            { -                                *dest = Ch('>'); -                                ++dest; -                                src += 4; -                                continue; -                            } -                            break; - -                        // < -                        case Ch('l'):  -                            if (src[2] == Ch('t') && src[3] == Ch(';')) -                            { -                                *dest = Ch('<'); -                                ++dest; -                                src += 4; -                                continue; -                            } -                            break; - -                        // &#...; - assumes ASCII -                        case Ch('#'):  -                            if (src[2] == Ch('x')) -                            { -                                unsigned long code = 0; -                                src += 3;   // Skip &#x -                                while (1) -                                { -                                    unsigned char digit = internal::lookup_tables<0>::lookup_digits[static_cast<unsigned char>(*src)]; -                                    if (digit == 0xFF) -                                        break; -                                    code = code * 16 + digit; -                                    ++src; -                                } -                                insert_coded_character<Flags>(dest, code);    // Put character in output -                            } -                            else -                            { -                                unsigned long code = 0; -                                src += 2;   // Skip &# -                                while (1) -                                { -                                    unsigned char digit = internal::lookup_tables<0>::lookup_digits[static_cast<unsigned char>(*src)]; -                                    if (digit == 0xFF) -                                        break; -                                    code = code * 10 + digit; -                                    ++src; -                                } -                                insert_coded_character<Flags>(dest, code);    // Put character in output -                            } -                            if (*src == Ch(';')) -                                ++src; -                            else -                                BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected ;", src); -                            continue; - -                        // Something else -                        default: -                            // Ignore, just copy '&' verbatim -                            break; - -                        } -                    } -                } -                 -                // If whitespace condensing is enabled -                if (Flags & parse_normalize_whitespace) -                { -                    // Test if condensing is needed                  -                    if (whitespace_pred::test(*src)) -                    { -                        *dest = Ch(' '); ++dest;    // Put single space in dest -                        ++src;                      // Skip first whitespace char -                        // Skip remaining whitespace chars -                        while (whitespace_pred::test(*src)) -                            ++src; -                        continue; -                    } -                } - -                // No replacement, only copy character -                *dest++ = *src++; - -            } - -            // Return new end -            text = src; -            return dest; - -        } - -        /////////////////////////////////////////////////////////////////////// -        // Internal parsing functions -         -        // Parse BOM, if any -        template<int Flags> -        void parse_bom(Ch *&text) -        { -            // UTF-8? -            if (static_cast<unsigned char>(text[0]) == 0xEF &&  -                static_cast<unsigned char>(text[1]) == 0xBB &&  -                static_cast<unsigned char>(text[2]) == 0xBF) -            { -                text += 3;      // Skip utf-8 bom -            } -        } - -        // Parse XML declaration (<?xml...) -        template<int Flags> -        xml_node<Ch> *parse_xml_declaration(Ch *&text) -        { -            // If parsing of declaration is disabled -            if (!(Flags & parse_declaration_node)) -            { -                // Skip until end of declaration -                while (text[0] != Ch('?') || text[1] != Ch('>')) -                { -                    if (!text[0]) -                        BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); -                    ++text; -                } -                text += 2;    // Skip '?>' -                return 0; -            } - -            // Create declaration -            xml_node<Ch> *declaration = this->allocate_node(node_declaration); - -            // Skip whitespace before attributes or ?> -            skip<whitespace_pred, Flags>(text); - -            // Parse declaration attributes -            parse_node_attributes<Flags>(text, declaration); -             -            // Skip ?> -            if (text[0] != Ch('?') || text[1] != Ch('>')) -                BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected ?>", text); -            text += 2; -             -            return declaration; -        } - -        // Parse XML comment (<!--...) -        template<int Flags> -        xml_node<Ch> *parse_comment(Ch *&text) -        { -            // If parsing of comments is disabled -            if (!(Flags & parse_comment_nodes)) -            { -                // Skip until end of comment -                while (text[0] != Ch('-') || text[1] != Ch('-') || text[2] != Ch('>')) -                { -                    if (!text[0]) -                        BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); -                    ++text; -                } -                text += 3;     // Skip '-->' -                return 0;      // Do not produce comment node -            } - -            // Remember value start -            Ch *val = text; - -            // Skip until end of comment -            while (text[0] != Ch('-') || text[1] != Ch('-') || text[2] != Ch('>')) -            { -                if (!text[0]) -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); -                ++text; -            } - -            // Create comment node -            xml_node<Ch> *comment = this->allocate_node(node_comment); -            comment->value(val, text - val); -             -            // Place zero terminator after comment value -            if (!(Flags & parse_no_string_terminators)) -                *text = Ch('\0'); -             -            text += 3;     // Skip '-->' -            return comment; -        } - -        // Parse DOCTYPE -        template<int Flags> -        xml_node<Ch> *parse_doctype(Ch *&text) -        { -            // Remember value start -            Ch *val = text; - -            // Skip to > -            while (*text != Ch('>')) -            { -                // Determine character type -                switch (*text) -                { -                 -                // If '[' encountered, scan for matching ending ']' using naive algorithm with depth -                // This works for all W3C test files except for 2 most wicked -                case Ch('['): -                { -                    ++text;     // Skip '[' -                    int depth = 1; -                    while (depth > 0) -                    { -                        switch (*text) -                        { -                            case Ch('['): ++depth; break; -                            case Ch(']'): --depth; break; -                            case 0: BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); -                            default: break; -                        } -                        ++text; -                    } -                    break; -                } -                 -                // Error on end of text -                case Ch('\0'): -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); -                 -                // Other character, skip it -                default: -                    ++text; - -                } -            } -             -            // If DOCTYPE nodes enabled -            if (Flags & parse_doctype_node) -            { -                // Create a new doctype node -                xml_node<Ch> *doctype = this->allocate_node(node_doctype); -                doctype->value(val, text - val); -                 -                // Place zero terminator after value -                if (!(Flags & parse_no_string_terminators)) -                    *text = Ch('\0'); - -                text += 1;      // skip '>' -                return doctype; -            } -            else -            { -                text += 1;      // skip '>' -                return 0; -            } - -        } - -        // Parse PI -        template<int Flags> -        xml_node<Ch> *parse_pi(Ch *&text) -        { -            // If creation of PI nodes is enabled -            if (Flags & parse_pi_nodes) -            { -                // Create pi node -                xml_node<Ch> *pi = this->allocate_node(node_pi); - -                // Extract PI target name -                Ch *n = text; -                skip<node_name_pred, Flags>(text); -                if (text == n) -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected PI target", text); -                pi->name(n, text - n); -                 -                // Skip whitespace between pi target and pi -                skip<whitespace_pred, Flags>(text); - -                // Remember start of pi -                Ch *val = text; -                 -                // Skip to '?>' -                while (text[0] != Ch('?') || text[1] != Ch('>')) -                { -                    if (*text == Ch('\0')) -                        BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); -                    ++text; -                } - -                // Set pi value (verbatim, no entity expansion or whitespace normalization) -                pi->value(val, text - val); - -                // Place zero terminator after name and value -                if (!(Flags & parse_no_string_terminators)) -                { -                    pi->name()[pi->name_size()] = Ch('\0'); -                    pi->value()[pi->value_size()] = Ch('\0'); -                } -                 -                text += 2;                          // Skip '?>' -                return pi; -            } -            else -            { -                // Skip to '?>' -                while (text[0] != Ch('?') || text[1] != Ch('>')) -                { -                    if (*text == Ch('\0')) -                        BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); -                    ++text; -                } -                text += 2;    // Skip '?>' -                return 0; -            } -        } - -        // Parse and append data -        // Return character that ends data. -        // This is necessary because this character might have been overwritten by a terminating 0 -        template<int Flags> -        Ch parse_and_append_data(xml_node<Ch> *node, Ch *&text, Ch *contents_start) -        { -            // Backup to contents start if whitespace trimming is disabled -            if (!(Flags & parse_trim_whitespace)) -                text = contents_start;      -             -            // Skip until end of data -            Ch *val = text, *end; -            if (Flags & parse_normalize_whitespace) -                end = skip_and_expand_character_refs<text_pred, text_pure_with_ws_pred, Flags>(text);    -            else -                end = skip_and_expand_character_refs<text_pred, text_pure_no_ws_pred, Flags>(text); - -            // Trim trailing whitespace if flag is set; leading was already trimmed by whitespace skip after > -            if (Flags & parse_trim_whitespace) -            { -                if (Flags & parse_normalize_whitespace) -                { -                    // Whitespace is already condensed to single space characters by skipping function, so just trim 1 char off the end -                    if (*(end - 1) == Ch(' ')) -                        --end; -                } -                else -                { -                    // Backup until non-whitespace character is found -                    while (whitespace_pred::test(*(end - 1))) -                        --end; -                } -            } -             -            // If characters are still left between end and value (this test is only necessary if normalization is enabled) -            // Create new data node -            if (!(Flags & parse_no_data_nodes)) -            { -                xml_node<Ch> *data = this->allocate_node(node_data); -                data->value(val, end - val); -                node->append_node(data); -            } - -            // Add data to parent node if no data exists yet -            if (!(Flags & parse_no_element_values))  -                if (*node->value() == Ch('\0')) -                    node->value(val, end - val); - -            // Place zero terminator after value -            if (!(Flags & parse_no_string_terminators)) -            { -                Ch ch = *text; -                *end = Ch('\0'); -                return ch;      // Return character that ends data; this is required because zero terminator overwritten it -            } - -            // Return character that ends data -            return *text; -        } - -        // Parse CDATA -        template<int Flags> -        xml_node<Ch> *parse_cdata(Ch *&text) -        { -            // If CDATA is disabled -            if (Flags & parse_no_data_nodes) -            { -                // Skip until end of cdata -                while (text[0] != Ch(']') || text[1] != Ch(']') || text[2] != Ch('>')) -                { -                    if (!text[0]) -                        BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); -                    ++text; -                } -                text += 3;      // Skip ]]> -                return 0;       // Do not produce CDATA node -            } - -            // Skip until end of cdata -            Ch *val = text; -            while (text[0] != Ch(']') || text[1] != Ch(']') || text[2] != Ch('>')) -            { -                if (!text[0]) -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); -                ++text; -            } - -            // Create new cdata node -            xml_node<Ch> *cdata = this->allocate_node(node_cdata); -            cdata->value(val, text - val); - -            // Place zero terminator after value -            if (!(Flags & parse_no_string_terminators)) -                *text = Ch('\0'); - -            text += 3;      // Skip ]]> -            return cdata; -        } -         -        // Parse element node -        template<int Flags> -        xml_node<Ch> *parse_element(Ch *&text) -        { -            // Create element node -            xml_node<Ch> *element = this->allocate_node(node_element); - -            // Extract element name -            Ch *n = text; -            skip<node_name_pred, Flags>(text); -            if (text == n) -                BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected element name", text); -            element->name(n, text - n); -             -            // Skip whitespace between element name and attributes or > -            skip<whitespace_pred, Flags>(text); - -            // Parse attributes, if any -            parse_node_attributes<Flags>(text, element); - -            // Determine ending type -            if (*text == Ch('>')) -            { -                ++text; -                parse_node_contents<Flags>(text, element); -            } -            else if (*text == Ch('/')) -            { -                ++text; -                if (*text != Ch('>')) -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected >", text); -                ++text; -            } -            else -                BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected >", text); - -            // Place zero terminator after name -            if (!(Flags & parse_no_string_terminators)) -                element->name()[element->name_size()] = Ch('\0'); - -            // Return parsed element -            return element; -        } - -        // Determine node type, and parse it -        template<int Flags> -        xml_node<Ch> *parse_node(Ch *&text) -        { -            // Parse proper node type -            switch (text[0]) -            { - -            // <... -            default:  -                // Parse and append element node -                return parse_element<Flags>(text); - -            // <?... -            case Ch('?'):  -                ++text;     // Skip ? -                if ((text[0] == Ch('x') || text[0] == Ch('X')) && -                    (text[1] == Ch('m') || text[1] == Ch('M')) &&  -                    (text[2] == Ch('l') || text[2] == Ch('L')) && -                    whitespace_pred::test(text[3])) -                { -                    // '<?xml ' - xml declaration -                    text += 4;      // Skip 'xml ' -                    return parse_xml_declaration<Flags>(text); -                } -                else -                { -                    // Parse PI -                    return parse_pi<Flags>(text); -                } -             -            // <!... -            case Ch('!'):  - -                // Parse proper subset of <! node -                switch (text[1])     -                { -                 -                // <!- -                case Ch('-'): -                    if (text[2] == Ch('-')) -                    { -                        // '<!--' - xml comment -                        text += 3;     // Skip '!--' -                        return parse_comment<Flags>(text); -                    } -                    break; - -                // <![ -                case Ch('['): -                    if (text[2] == Ch('C') && text[3] == Ch('D') && text[4] == Ch('A') &&  -                        text[5] == Ch('T') && text[6] == Ch('A') && text[7] == Ch('[')) -                    { -                        // '<![CDATA[' - cdata -                        text += 8;     // Skip '![CDATA[' -                        return parse_cdata<Flags>(text); -                    } -                    break; - -                // <!D -                case Ch('D'): -                    if (text[2] == Ch('O') && text[3] == Ch('C') && text[4] == Ch('T') &&  -                        text[5] == Ch('Y') && text[6] == Ch('P') && text[7] == Ch('E') &&  -                        whitespace_pred::test(text[8])) -                    { -                        // '<!DOCTYPE ' - doctype -                        text += 9;      // skip '!DOCTYPE ' -                        return parse_doctype<Flags>(text); -                    } -                    break; - -                default: break; - -                }   // switch - -                // Attempt to skip other, unrecognized node types starting with <! -                ++text;     // Skip ! -                while (*text != Ch('>')) -                { -                    if (*text == 0) -                        BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); -                    ++text; -                } -                ++text;     // Skip '>' -                return 0;   // No node recognized - -            } -        } - -        // Parse contents of the node - children, data etc. -        template<int Flags> -        void parse_node_contents(Ch *&text, xml_node<Ch> *node) -        { -            // For all children and text -            while (1) -            { -                // Skip whitespace between > and node contents -                Ch *contents_start = text;      // Store start of node contents before whitespace is skipped -                if (Flags & parse_trim_whitespace) -                    skip<whitespace_pred, Flags>(text); -                Ch next_char = *text; - -            // After data nodes, instead of continuing the loop, control jumps here. -            // This is because zero termination inside parse_and_append_data() function -            // would wreak havoc with the above code. -            // Also, skipping whitespace after data nodes is unnecessary. -            after_data_node:     -                 -                // Determine what comes next: node closing, child node, data node, or 0? -                switch (next_char) -                { -                 -                // Node closing or child node -                case Ch('<'): -                    if (text[1] == Ch('/')) -                    { -                        // Node closing -                        text += 2;      // Skip '</' -                        if (Flags & parse_validate_closing_tags) -                        { -                            // Skip and validate closing tag name -                            Ch *closing_name = text; -                            skip<node_name_pred, Flags>(text); -                            if (!internal::compare(node->name(), node->name_size(), closing_name, text - closing_name, true)) -                                BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("invalid closing tag name", text); -                        } -                        else -                        { -                            // No validation, just skip name -                            skip<node_name_pred, Flags>(text); -                        } -                        // Skip remaining whitespace after node name -                        skip<whitespace_pred, Flags>(text); -                        if (*text != Ch('>')) -                            BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected >", text); -                        ++text;     // Skip '>' -                        return;     // Node closed, finished parsing contents -                    } -                    else -                    { -                        // Child node -                        ++text;     // Skip '<' -                        if (xml_node<Ch> *child = parse_node<Flags>(text)) -                            node->append_node(child); -                    } -                    break; - -                // End of data - error -                case Ch('\0'): -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("unexpected end of data", text); - -                // Data node -                default: -                    next_char = parse_and_append_data<Flags>(node, text, contents_start); -                    goto after_data_node;   // Bypass regular processing after data nodes - -                } -            } -        } -         -        // Parse XML attributes of the node -        template<int Flags> -        void parse_node_attributes(Ch *&text, xml_node<Ch> *node) -        { -            // For all attributes  -            while (attribute_name_pred::test(*text)) -            { -                // Extract attribute name -                Ch *n = text; -                ++text;     // Skip first character of attribute name -                skip<attribute_name_pred, Flags>(text); -                if (text == n) -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected attribute name", n); - -                // Create new attribute -                xml_attribute<Ch> *attribute = this->allocate_attribute(); -                attribute->name(n, text - n); -                node->append_attribute(attribute); - -                // Skip whitespace after attribute name -                skip<whitespace_pred, Flags>(text); - -                // Skip = -                if (*text != Ch('=')) -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected =", text); -                ++text; - -                // Add terminating zero after name -                if (!(Flags & parse_no_string_terminators)) -                    attribute->name()[attribute->name_size()] = 0; - -                // Skip whitespace after = -                skip<whitespace_pred, Flags>(text); - -                // Skip quote and remember if it was ' or " -                Ch quote = *text; -                if (quote != Ch('\'') && quote != Ch('"')) -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected ' or \"", text); -                ++text; - -                // Extract attribute value and expand char refs in it -                Ch *val = text, *end; -                const int AttFlags = Flags & ~parse_normalize_whitespace;   // No whitespace normalization in attributes -                if (quote == Ch('\'')) -                    end = skip_and_expand_character_refs<attribute_value_pred<Ch('\'')>, attribute_value_pure_pred<Ch('\'')>, AttFlags>(text); -                else -                    end = skip_and_expand_character_refs<attribute_value_pred<Ch('"')>, attribute_value_pure_pred<Ch('"')>, AttFlags>(text); -                 -                // Set attribute value -                attribute->value(val, end - val); -                 -                // Make sure that end quote is present -                if (*text != quote) -                    BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR("expected ' or \"", text); -                ++text;     // Skip quote - -                // Add terminating zero after value -                if (!(Flags & parse_no_string_terminators)) -                    attribute->value()[attribute->value_size()] = 0; - -                // Skip whitespace after attribute value -                skip<whitespace_pred, Flags>(text); -            } -        } - -    }; - -    //! \cond internal -    namespace internal -    { - -        // Whitespace (space \n \r \t) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_whitespace[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -             0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  0,  0,  1,  0,  0,  // 0 -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 1 -             1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 2 -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 3 -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 4 -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 5 -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 6 -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 7 -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 8 -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // 9 -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // A -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // B -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // C -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // D -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  // E -             0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0   // F -        }; - -        // Node name (anything but space \n \r \t / > ? \0) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_node_name[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -             0,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  1,  1,  0,  1,  1,  // 0 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1 -             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  // 2 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  // 3 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F -        }; - -        // Text (i.e. PCDATA) (anything but < \0) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_text[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 2 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  // 3 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F -        }; - -        // Text (i.e. PCDATA) that does not require processing when ws normalization is disabled  -        // (anything but < \0 &) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_text_pure_no_ws[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1 -             1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 2 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  // 3 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F -        }; - -        // Text (i.e. PCDATA) that does not require processing when ws normalizationis is enabled -        // (anything but < \0 & space \n \r \t) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_text_pure_with_ws[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -             0,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  1,  1,  0,  1,  1,  // 0 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1 -             0,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 2 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  // 3 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F -        }; - -        // Attribute name (anything but space \n \r \t / < > = ? ! \0) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_attribute_name[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -             0,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  1,  1,  0,  1,  1,  // 0 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1 -             0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  // 2 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  0,  0,  // 3 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F -        }; - -        // Attribute data with single quote (anything but ' \0) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_attribute_data_1[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1 -             1,  1,  1,  1,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  // 2 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 3 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F -        }; - -        // Attribute data with single quote that does not require processing (anything but ' \0 &) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_attribute_data_1_pure[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1 -             1,  1,  1,  1,  1,  1,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  // 2 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 3 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F -        }; - -        // Attribute data with double quote (anything but " \0) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_attribute_data_2[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1 -             1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 2 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 3 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F -        }; - -        // Attribute data with double quote that does not require processing (anything but " \0 &) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_attribute_data_2_pure[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -             0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 0 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 1 -             1,  1,  0,  1,  1,  1,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 2 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 3 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 4 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 5 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 6 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 7 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 8 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // 9 -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // A -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // B -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // C -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // D -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  // E -             1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1   // F -        }; - -        // Digits (dec and hex, 255 denotes end of numeric character reference) -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_digits[256] =  -        { -          // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 0 -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 1 -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 2 -             0,  1,  2,  3,  4,  5,  6,  7,  8,  9,255,255,255,255,255,255,  // 3 -           255, 10, 11, 12, 13, 14, 15,255,255,255,255,255,255,255,255,255,  // 4 -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 5 -           255, 10, 11, 12, 13, 14, 15,255,255,255,255,255,255,255,255,255,  // 6 -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 7 -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 8 -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // 9 -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // A -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // B -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // C -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // D -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,  // E -           255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255   // F -        }; -     -        // Upper case conversion -        template<int Dummy> -        const unsigned char lookup_tables<Dummy>::lookup_upcase[256] =  -        { -          // 0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  A   B   C   D   E   F -           0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15,   // 0 -           16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,   // 1 -           32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,   // 2 -           48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,   // 3 -           64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,   // 4 -           80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,   // 5 -           96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,   // 6 -           80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 123,124,125,126,127,  // 7 -           128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,  // 8 -           144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,  // 9 -           160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,  // A -           176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,  // B -           192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,  // C -           208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,  // D -           224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,  // E -           240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255   // F -        }; -    } -    //! \endcond - -}}}} - -// Undefine internal macros -#undef BOOST_PROPERTY_TREE_RAPIDXML_PARSE_ERROR - -// On MSVC, restore warnings state -#ifdef _MSC_VER -    #pragma warning(pop) -#endif - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_error.hpp b/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_error.hpp deleted file mode 100644 index c79835c..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_error.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_ERROR_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_ERROR_HPP_INCLUDED - -#include <boost/property_tree/detail/file_parser_error.hpp> -#include <string> - -namespace boost { namespace property_tree { namespace xml_parser -{ - -    //! Xml parser error -    class xml_parser_error: public file_parser_error -    { -    public: -        xml_parser_error(const std::string &msg, -                         const std::string &file, -                         unsigned long l): -            file_parser_error(msg, file, l) -        { -        } -    }; - -} } } - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_flags.hpp b/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_flags.hpp deleted file mode 100644 index 9340fe2..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_flags.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_FLAGS_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_FLAGS_HPP_INCLUDED - -namespace boost { namespace property_tree { namespace xml_parser -{ - -    /// Text elements should be put in separate keys, -    /// not concatenated in parent data. -    static const int no_concat_text  = 0x1; -    /// Comments should be omitted. -    static const int no_comments     = 0x2; -    /// Whitespace should be collapsed and trimmed. -    static const int trim_whitespace = 0x4; - -    inline bool validate_flags(int flags) -    { -        return (flags & ~(no_concat_text | no_comments | trim_whitespace)) == 0; -    } - -} } } - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_read_rapidxml.hpp b/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_read_rapidxml.hpp deleted file mode 100644 index acec34d9..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_read_rapidxml.hpp +++ /dev/null @@ -1,144 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2007 Marcin Kalicinski -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_READ_RAPIDXML_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_READ_RAPIDXML_HPP_INCLUDED - -#include <boost/property_tree/ptree.hpp> -#include <boost/property_tree/detail/xml_parser_error.hpp> -#include <boost/property_tree/detail/xml_parser_flags.hpp> -#include <boost/property_tree/detail/xml_parser_utils.hpp> -#include <boost/property_tree/detail/rapidxml.hpp> -#include <vector> - -namespace boost { namespace property_tree { namespace xml_parser -{ - -    template<class Ptree, class Ch> -    void read_xml_node(detail::rapidxml::xml_node<Ch> *node, -                       Ptree &pt, int flags) -    { -        using namespace detail::rapidxml; -        switch (node->type()) -        { -            // Element nodes -            case node_element:  -            { -                // Create node -                Ptree &pt_node = pt.push_back(std::make_pair(node->name(), -                                                             Ptree()))->second; - -                // Copy attributes -                if (node->first_attribute()) -                { -                    Ptree &pt_attr_root = pt_node.push_back( -                        std::make_pair(xmlattr<Ch>(), Ptree()))->second; -                    for (xml_attribute<Ch> *attr = node->first_attribute(); -                         attr; attr = attr->next_attribute()) -                    { -                        Ptree &pt_attr = pt_attr_root.push_back( -                            std::make_pair(attr->name(), Ptree()))->second; -                        pt_attr.data() = attr->value(); -                    } -                } - -                // Copy children -                for (xml_node<Ch> *child = node->first_node(); -                     child; child = child->next_sibling()) -                    read_xml_node(child, pt_node, flags); -            } -            break; - -            // Data nodes -            case node_data: -            case node_cdata: -            { -                if (flags & no_concat_text) -                    pt.push_back(std::make_pair(xmltext<Ch>(), -                                                Ptree(node->value()))); -                else -                    pt.data() += node->value(); -            } -            break; - -            // Comment nodes -            case node_comment: -            { -                if (!(flags & no_comments)) -                    pt.push_back(std::make_pair(xmlcomment<Ch>(), -                                                Ptree(node->value()))); -            } -            break; - -            default: -                // Skip other node types -                break; -        } -    } - -    template<class Ptree> -    void read_xml_internal(std::basic_istream< -                               typename Ptree::key_type::value_type> &stream, -                           Ptree &pt, -                           int flags, -                           const std::string &filename) -    { -        typedef typename Ptree::key_type::value_type Ch; -        using namespace detail::rapidxml; - -        // Load data into vector -        stream.unsetf(std::ios::skipws); -        std::vector<Ch> v(std::istreambuf_iterator<Ch>(stream.rdbuf()), -                          std::istreambuf_iterator<Ch>()); -        if (!stream.good()) -            BOOST_PROPERTY_TREE_THROW( -                xml_parser_error("read error", filename, 0)); -        v.push_back(0); // zero-terminate - -        try { -            // Parse using appropriate flags -            const int f_tws = parse_normalize_whitespace -                            | parse_trim_whitespace; -            const int f_c = parse_comment_nodes; -            // Some compilers don't like the bitwise or in the template arg. -            const int f_tws_c = parse_normalize_whitespace -                              | parse_trim_whitespace -                              | parse_comment_nodes; -            xml_document<Ch> doc; -            if (flags & no_comments) { -                if (flags & trim_whitespace) -                    doc.BOOST_NESTED_TEMPLATE parse<f_tws>(&v.front()); -                else -                    doc.BOOST_NESTED_TEMPLATE parse<0>(&v.front()); -            } else { -                if (flags & trim_whitespace) -                    doc.BOOST_NESTED_TEMPLATE parse<f_tws_c>(&v.front()); -                else -                    doc.BOOST_NESTED_TEMPLATE parse<f_c>(&v.front()); -            } - -            // Create ptree from nodes -            Ptree local; -            for (xml_node<Ch> *child = doc.first_node(); -                 child; child = child->next_sibling()) -                read_xml_node(child, local, flags); - -            // Swap local and result ptrees -            pt.swap(local); -        } catch (parse_error &e) { -            long line = static_cast<long>( -                std::count(&v.front(), e.where<Ch>(), Ch('\n')) + 1); -            BOOST_PROPERTY_TREE_THROW( -                xml_parser_error(e.what(), filename, line));   -        } -    } - -} } } - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_utils.hpp b/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_utils.hpp deleted file mode 100644 index 7c8a6e1..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_utils.hpp +++ /dev/null @@ -1,136 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_UTILS_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_UTILS_HPP_INCLUDED - -#include <boost/property_tree/detail/ptree_utils.hpp> -#include <boost/property_tree/detail/xml_parser_error.hpp> -#include <boost/property_tree/detail/xml_parser_writer_settings.hpp> -#include <string> -#include <algorithm> -#include <locale> - -namespace boost { namespace property_tree { namespace xml_parser -{ - -    template<class Ch> -    std::basic_string<Ch> condense(const std::basic_string<Ch> &s) -    { -        std::basic_string<Ch> r; -        std::locale loc; -        bool space = false; -        typename std::basic_string<Ch>::const_iterator end = s.end(); -        for (typename std::basic_string<Ch>::const_iterator it = s.begin(); -             it != end; ++it) -        { -            if (isspace(*it, loc) || *it == Ch('\n')) -            { -                if (!space) -                    r += Ch(' '), space = true; -            } -            else -                r += *it, space = false; -        } -        return r; -    } - -    template<class Ch> -    std::basic_string<Ch> encode_char_entities(const std::basic_string<Ch> &s) -    { -        // Don't do anything for empty strings. -        if(s.empty()) return s; - -        typedef typename std::basic_string<Ch> Str; -        Str r; -        // To properly round-trip spaces and not uglify the XML beyond -        // recognition, we have to encode them IF the text contains only spaces. -        Str sp(1, Ch(' ')); -        if(s.find_first_not_of(sp) == Str::npos) { -            // The first will suffice. -            r = detail::widen<Ch>(" "); -            r += Str(s.size() - 1, Ch(' ')); -        } else { -            typename Str::const_iterator end = s.end(); -            for (typename Str::const_iterator it = s.begin(); it != end; ++it) -            { -                switch (*it) -                { -                    case Ch('<'): r += detail::widen<Ch>("<"); break; -                    case Ch('>'): r += detail::widen<Ch>(">"); break; -                    case Ch('&'): r += detail::widen<Ch>("&"); break; -                    case Ch('"'): r += detail::widen<Ch>("""); break; -                    case Ch('\''): r += detail::widen<Ch>("'"); break; -                    default: r += *it; break; -                } -            } -        } -        return r; -    } -     -    template<class Ch> -    std::basic_string<Ch> decode_char_entities(const std::basic_string<Ch> &s) -    { -        typedef typename std::basic_string<Ch> Str; -        Str r; -        typename Str::const_iterator end = s.end(); -        for (typename Str::const_iterator it = s.begin(); it != end; ++it) -        { -            if (*it == Ch('&')) -            { -                typename Str::const_iterator semicolon = std::find(it + 1, end, Ch(';')); -                if (semicolon == end) -                    BOOST_PROPERTY_TREE_THROW(xml_parser_error("invalid character entity", "", 0)); -                Str ent(it + 1, semicolon); -                if (ent == detail::widen<Ch>("lt")) r += Ch('<'); -                else if (ent == detail::widen<Ch>("gt")) r += Ch('>'); -                else if (ent == detail::widen<Ch>("amp")) r += Ch('&'); -                else if (ent == detail::widen<Ch>("quot")) r += Ch('"'); -                else if (ent == detail::widen<Ch>("apos")) r += Ch('\''); -                else -                    BOOST_PROPERTY_TREE_THROW(xml_parser_error("invalid character entity", "", 0)); -                it = semicolon; -            } -            else -                r += *it; -        } -        return r; -    } -     -    template<class Ch> -    const std::basic_string<Ch> &xmldecl() -    { -        static std::basic_string<Ch> s = detail::widen<Ch>("<?xml>"); -        return s; -    } - -    template<class Ch> -    const std::basic_string<Ch> &xmlattr() -    { -        static std::basic_string<Ch> s = detail::widen<Ch>("<xmlattr>"); -        return s; -    } - -    template<class Ch> -    const std::basic_string<Ch> &xmlcomment() -    { -        static std::basic_string<Ch> s = detail::widen<Ch>("<xmlcomment>"); -        return s; -    } - -    template<class Ch> -    const std::basic_string<Ch> &xmltext() -    { -        static std::basic_string<Ch> s = detail::widen<Ch>("<xmltext>"); -        return s; -    } - -} } } - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_write.hpp b/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_write.hpp deleted file mode 100644 index 614854e..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_write.hpp +++ /dev/null @@ -1,194 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_WRITE_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_WRITE_HPP_INCLUDED - -#include <boost/property_tree/ptree.hpp> -#include <boost/property_tree/detail/xml_parser_utils.hpp> -#include <string> -#include <ostream> -#include <iomanip> - -namespace boost { namespace property_tree { namespace xml_parser -{ -    template<class Ch> -    void write_xml_indent(std::basic_ostream<Ch> &stream, -          int indent, -          const xml_writer_settings<Ch> & settings -          ) -    { -        stream << std::basic_string<Ch>(indent * settings.indent_count, settings.indent_char); -    } - -    template<class Ch> -    void write_xml_comment(std::basic_ostream<Ch> &stream, -                           const std::basic_string<Ch> &s,  -                           int indent, -                           bool separate_line, -                           const xml_writer_settings<Ch> & settings -                           ) -    { -        typedef typename std::basic_string<Ch> Str; -        if (separate_line) -            write_xml_indent(stream,indent,settings); -        stream << Ch('<') << Ch('!') << Ch('-') << Ch('-'); -        stream << s; -        stream << Ch('-') << Ch('-') << Ch('>'); -        if (separate_line) -            stream << Ch('\n'); -    } -     -    template<class Ch> -    void write_xml_text(std::basic_ostream<Ch> &stream, -                        const std::basic_string<Ch> &s,  -                        int indent,  -                        bool separate_line, -                        const xml_writer_settings<Ch> & settings -                        ) -    { -        if (separate_line)     -            write_xml_indent(stream,indent,settings); -        stream << encode_char_entities(s); -        if (separate_line) -            stream << Ch('\n'); -    } - -    template<class Ptree> -    void write_xml_element(std::basic_ostream<typename Ptree::key_type::value_type> &stream,  -                           const std::basic_string<typename Ptree::key_type::value_type> &key, -                           const Ptree &pt,  -                           int indent, -                           const xml_writer_settings<typename Ptree::key_type::value_type> & settings) -    { - -        typedef typename Ptree::key_type::value_type Ch; -        typedef typename std::basic_string<Ch> Str; -        typedef typename Ptree::const_iterator It; - -        bool want_pretty = settings.indent_count > 0; -        // Find if elements present -        bool has_elements = false; -        bool has_attrs_only = pt.data().empty(); -        for (It it = pt.begin(), end = pt.end(); it != end; ++it) -        { -            if (it->first != xmlattr<Ch>() ) -            { -                has_attrs_only = false; -                if (it->first != xmltext<Ch>()) -                { -                    has_elements = true; -                    break; -                } -            } -        } -         -        // Write element -        if (pt.data().empty() && pt.empty())    // Empty key -        { -            if (indent >= 0) -            { -                write_xml_indent(stream,indent,settings); -                stream << Ch('<') << key <<  -                          Ch('/') << Ch('>'); -                if (want_pretty) -                    stream << Ch('\n'); -            } -        } -        else    // Nonempty key -        { -         -            // Write opening tag, attributes and data -            if (indent >= 0) -            { -             -                // Write opening brace and key -                write_xml_indent(stream,indent,settings); -                stream << Ch('<') << key; - -                // Write attributes -                if (optional<const Ptree &> attribs = pt.get_child_optional(xmlattr<Ch>())) -                    for (It it = attribs.get().begin(); it != attribs.get().end(); ++it) -                        stream << Ch(' ') << it->first << Ch('=') <<  -                                  Ch('"') << it->second.template get_value<std::basic_string<Ch> >() << Ch('"'); - -                if ( has_attrs_only ) -                { -                    // Write closing brace -                    stream << Ch('/') << Ch('>'); -                    if (want_pretty) -                        stream << Ch('\n'); -                } -                else -                { -                    // Write closing brace -                    stream << Ch('>'); - -                    // Break line if needed and if we want pretty-printing -                    if (has_elements && want_pretty) -                        stream << Ch('\n'); -                } -            } - -            // Write data text, if present -            if (!pt.data().empty()) -                write_xml_text(stream, -                    pt.template get_value<std::basic_string<Ch> >(), -                    indent + 1, has_elements && want_pretty, settings); - -            // Write elements, comments and texts -            for (It it = pt.begin(); it != pt.end(); ++it) -            { -                if (it->first == xmlattr<Ch>()) -                    continue; -                else if (it->first == xmlcomment<Ch>()) -                    write_xml_comment(stream, -                        it->second.template get_value<std::basic_string<Ch> >(), -                        indent + 1, want_pretty, settings); -                else if (it->first == xmltext<Ch>()) -                    write_xml_text(stream, -                        it->second.template get_value<std::basic_string<Ch> >(), -                        indent + 1, has_elements && want_pretty, settings); -                else -                    write_xml_element(stream, it->first, it->second, -                        indent + 1, settings); -            } -             -            // Write closing tag -            if (indent >= 0 && !has_attrs_only) -            { -                if (has_elements) -                    write_xml_indent(stream,indent,settings); -                stream << Ch('<') << Ch('/') << key << Ch('>'); -                if (want_pretty) -                    stream << Ch('\n'); -            } - -        } -    } - -    template<class Ptree> -    void write_xml_internal(std::basic_ostream<typename Ptree::key_type::value_type> &stream,  -                            const Ptree &pt, -                            const std::string &filename, -                            const xml_writer_settings<typename Ptree::key_type::value_type> & settings) -    { -        typedef typename Ptree::key_type::value_type Ch; -        typedef typename std::basic_string<Ch> Str; -        stream  << detail::widen<Ch>("<?xml version=\"1.0\" encoding=\"") -                << settings.encoding -                << detail::widen<Ch>("\"?>\n"); -        write_xml_element(stream, Str(), pt, -1, settings); -        if (!stream) -            BOOST_PROPERTY_TREE_THROW(xml_parser_error("write error", filename, 0)); -    } - -} } } - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_writer_settings.hpp b/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_writer_settings.hpp deleted file mode 100644 index f22d85e..0000000 --- a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_writer_settings.hpp +++ /dev/null @@ -1,62 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2007 Marcin Kalicinski -// Copyright (C) 2007 Alexey Baskakov -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_WRITER_SETTINGS_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_WRITER_SETTINGS_HPP_INCLUDED - -#include <string> -#include <boost/property_tree/detail/ptree_utils.hpp> - -namespace boost { namespace property_tree { namespace xml_parser -{ -     -    // Naively convert narrow string to another character type -    template<class Ch> -    std::basic_string<Ch> widen(const char *text) -    { -        std::basic_string<Ch> result; -        while (*text) -        { -            result += Ch(*text); -            ++text; -        } -        return result; -    } - -    //! Xml writer settings. The default settings lead to no pretty printing. -    template<class Ch> -    class xml_writer_settings -    { -    public: -        xml_writer_settings(Ch inchar = Ch(' '), -                typename std::basic_string<Ch>::size_type incount = 0, -                const std::basic_string<Ch> &enc = widen<Ch>("utf-8")) -            : indent_char(inchar) -            , indent_count(incount) -            , encoding(enc) -        { -        } - -        Ch indent_char; -        typename std::basic_string<Ch>::size_type indent_count; -        std::basic_string<Ch> encoding; -    }; - -    template <class Ch> -    xml_writer_settings<Ch> xml_writer_make_settings(Ch indent_char = Ch(' '), -        typename std::basic_string<Ch>::size_type indent_count = 0, -        const std::basic_string<Ch> &encoding = widen<Ch>("utf-8")) -    { -        return xml_writer_settings<Ch>(indent_char, indent_count, encoding); -    } - -} } } - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/exceptions.hpp b/3rdParty/Boost/src/boost/property_tree/exceptions.hpp deleted file mode 100644 index 42e2cbd..0000000 --- a/3rdParty/Boost/src/boost/property_tree/exceptions.hpp +++ /dev/null @@ -1,84 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// Copyright (C) 2009 Sebastian Redl -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- - -#ifndef BOOST_PROPERTY_TREE_EXCEPTIONS_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_EXCEPTIONS_HPP_INCLUDED - -#include <boost/property_tree/ptree_fwd.hpp> - -#include <boost/any.hpp> -#include <string> -#include <stdexcept> - -namespace boost { namespace property_tree -{ - -    /// Base class for all property tree errors. Derives from -    /// @c std::runtime_error. Call member function @c what to get human -    /// readable message associated with the error. -    class ptree_error : public std::runtime_error -    { -    public: -        /// Instantiate a ptree_error instance with the given message. -        /// @param what The message to associate with this error. -        ptree_error(const std::string &what); - -        ~ptree_error() throw(); -    }; - - -    /// Error indicating that translation from given value to the property tree -    /// data_type (or vice versa) failed. Derives from ptree_error. -    class ptree_bad_data : public ptree_error -    { -    public: -        /// Instantiate a ptree_bad_data instance with the given message and -        /// data. -        /// @param what The message to associate with this error. -        /// @param data The value associated with this error that was the source -        ///             of the translation failure. -        template<class T> ptree_bad_data(const std::string &what, -                                         const T &data); - -        ~ptree_bad_data() throw(); - -        /// Retrieve the data associated with this error. This is the source -        /// value that failed to be translated. -        template<class T> T data(); -    private: -        boost::any m_data; -    }; - - -    /// Error indicating that specified path does not exist. Derives from -    /// ptree_error. -    class ptree_bad_path : public ptree_error -    { -    public: -        /// Instantiate a ptree_bad_path with the given message and path data. -        /// @param what The message to associate with this error. -        /// @param path The path that could not be found in the property_tree. -        template<class T> ptree_bad_path(const std::string &what, -                                         const T &path); - -        ~ptree_bad_path() throw(); - -        /// Retrieve the invalid path. -        template<class T> T path(); -    private: -        boost::any m_path; -    }; - -}} - -#include <boost/property_tree/detail/exception_implementation.hpp> - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/id_translator.hpp b/3rdParty/Boost/src/boost/property_tree/id_translator.hpp deleted file mode 100644 index 02fdf44..0000000 --- a/3rdParty/Boost/src/boost/property_tree/id_translator.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2009 Sebastian Redl -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- - -#ifndef BOOST_PROPERTY_TREE_ID_TRANSLATOR_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_ID_TRANSLATOR_HPP_INCLUDED - -#include <boost/property_tree/ptree_fwd.hpp> - -#include <boost/optional.hpp> -#include <string> - -namespace boost { namespace property_tree -{ - -    /// Simple implementation of the Translator concept. It does no translation. -    template <typename T> -    struct id_translator -    { -        typedef T internal_type; -        typedef T external_type; - -        boost::optional<T> get_value(const T &v) { return v; } -        boost::optional<T> put_value(const T &v) { return v; } -    }; - -    // This is the default translator whenever you get two equal types. -    template <typename T> -    struct translator_between<T, T> -    { -        typedef id_translator<T> type; -    }; - -    // A more specific specialization for std::basic_string. Otherwise, -    // stream_translator's specialization wins. -    template <typename Ch, typename Traits, typename Alloc> -    struct translator_between< std::basic_string<Ch, Traits, Alloc>, -                               std::basic_string<Ch, Traits, Alloc> > -    { -        typedef id_translator< std::basic_string<Ch, Traits, Alloc> > type; -    }; - -}} - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/ptree.hpp b/3rdParty/Boost/src/boost/property_tree/ptree.hpp deleted file mode 100644 index 243a9b6..0000000 --- a/3rdParty/Boost/src/boost/property_tree/ptree.hpp +++ /dev/null @@ -1,517 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// Copyright (C) 2009 Sebastian Redl -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- - -#ifndef BOOST_PROPERTY_TREE_PTREE_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_PTREE_HPP_INCLUDED - -#include <boost/property_tree/ptree_fwd.hpp> -#include <boost/property_tree/string_path.hpp> -#include <boost/property_tree/stream_translator.hpp> -#include <boost/property_tree/exceptions.hpp> -#include <boost/property_tree/detail/ptree_utils.hpp> - -#include <boost/multi_index_container.hpp> -#include <boost/multi_index/indexed_by.hpp> -#include <boost/multi_index/sequenced_index.hpp> -#include <boost/multi_index/ordered_index.hpp> -#include <boost/multi_index/member.hpp> -#include <boost/utility/enable_if.hpp> -#include <boost/throw_exception.hpp> -#include <boost/optional.hpp> -#include <utility>                  // for std::pair - -namespace boost { namespace property_tree -{ - -    /** -     * Property tree main structure. A property tree is a hierarchical data -     * structure which has one element of type @p Data in each node, as well -     * as an ordered sequence of sub-nodes, which are additionally identified -     * by a non-unique key of type @p Key. -     * -     * Key equivalency is defined by @p KeyCompare, a predicate defining a -     * strict weak ordering. -     * -     * Property tree defines a Container-like interface to the (key-node) pairs -     * of its direct sub-nodes. The iterators are bidirectional. The sequence -     * of nodes is held in insertion order, not key order. -     */ -    template<class Key, class Data, class KeyCompare> -    class basic_ptree -    { -#if defined(BOOST_PROPERTY_TREE_DOXYGEN_INVOKED) -    public: -#endif -        // Internal types -        /** -         * Simpler way to refer to this basic_ptree\<C,K,P,A\> type. -         * Note that this is private, and made public only for doxygen. -         */ -        typedef basic_ptree<Key, Data, KeyCompare> self_type; - -    public: -        // Basic types -        typedef Key                                  key_type; -        typedef Data                                 data_type; -        typedef KeyCompare                           key_compare; - -        // Container view types -        typedef std::pair<const Key, self_type>      value_type; -        typedef std::size_t                          size_type; - -        // The problem with the iterators is that I can't make them complete -        // until the container is complete. Sucks. Especially for the reverses. -        class iterator; -        class const_iterator; -        class reverse_iterator; -        class const_reverse_iterator; - -        // Associative view types -        class assoc_iterator; -        class const_assoc_iterator; - -        // Property tree view types -        typedef typename path_of<Key>::type          path_type; - - -        // The big five - -        /** Creates a node with no children and default-constructed data. */ -        basic_ptree(); -        /** Creates a node with no children and a copy of the given data. */ -        explicit basic_ptree(const data_type &data); -        basic_ptree(const self_type &rhs); -        ~basic_ptree(); -        /** Basic guarantee only. */ -        self_type &operator =(const self_type &rhs); - -        /** Swap with other tree. Only constant-time and nothrow if the -         * data type's swap is. -         */ -        void swap(self_type &rhs); - -        // Container view functions - -        /** The number of direct children of this node. */ -        size_type size() const; -        size_type max_size() const; -        /** Whether there are any direct children. */ -        bool empty() const; - -        iterator begin(); -        const_iterator begin() const; -        iterator end(); -        const_iterator end() const; -        reverse_iterator rbegin(); -        const_reverse_iterator rbegin() const; -        reverse_iterator rend(); -        const_reverse_iterator rend() const; - -        value_type &front(); -        const value_type &front() const; -        value_type &back(); -        const value_type &back() const; - -        /** Insert a copy of the given tree with its key just before the given -         * position in this node. This operation invalidates no iterators. -         * @return An iterator to the newly created child. -         */ -        iterator insert(iterator where, const value_type &value); - -        /** Range insert. Equivalent to: -         * @code -         * for(; first != last; ++first) insert(where, *first); -         * @endcode -         */ -        template<class It> void insert(iterator where, It first, It last); - -        /** Erase the child pointed at by the iterator. This operation -         * invalidates the given iterator, as well as its equivalent -         * assoc_iterator. -         * @return A valid iterator pointing to the element after the erased. -         */ -        iterator erase(iterator where); - -        /** Range erase. Equivalent to: -         * @code -         * while(first != last;) first = erase(first); -         * @endcode -         */ -        iterator erase(iterator first, iterator last); - -        /** Equivalent to insert(begin(), value). */ -        iterator push_front(const value_type &value); - -        /** Equivalent to insert(end(), value). */ -        iterator push_back(const value_type &value); - -        /** Equivalent to erase(begin()). */ -        void pop_front(); - -        /** Equivalent to erase(boost::prior(end())). */ -        void pop_back(); - -        /** Reverses the order of direct children in the property tree. */ -        void reverse(); - -        /** Sorts the direct children of this node according to the predicate. -         * The predicate is passed the whole pair of key and child. -         */ -        template<class Compare> void sort(Compare comp); - -        /** Sorts the direct children of this node according to key order. */ -        void sort(); - -        // Equality - -        /** Two property trees are the same if they have the same data, the keys -         * and order of their children are the same, and the children compare -         * equal, recursively. -         */ -        bool operator ==(const self_type &rhs) const; -        bool operator !=(const self_type &rhs) const; - -        // Associative view - -        /** Returns an iterator to the first child, in order. */ -        assoc_iterator ordered_begin(); -        /** Returns an iterator to the first child, in order. */ -        const_assoc_iterator ordered_begin() const; - -        /** Returns the not-found iterator. Equivalent to end() in a real -         * associative container. -         */ -        assoc_iterator not_found(); -        /** Returns the not-found iterator. Equivalent to end() in a real -         * associative container. -         */ -        const_assoc_iterator not_found() const; - -        /** Find a child with the given key, or not_found() if there is none. -         * There is no guarantee about which child is returned if multiple have -         * the same key. -         */ -        assoc_iterator find(const key_type &key); - -        /** Find a child with the given key, or not_found() if there is none. -         * There is no guarantee about which child is returned if multiple have -         * the same key. -         */ -        const_assoc_iterator find(const key_type &key) const; - -        /** Find the range of children that have the given key. */ -        std::pair<assoc_iterator, assoc_iterator> -            equal_range(const key_type &key); - -        /** Find the range of children that have the given key. */ -        std::pair<const_assoc_iterator, const_assoc_iterator> -            equal_range(const key_type &key) const; - -        /** Count the number of direct children with the given key. */ -        size_type count(const key_type &key) const; - -        /** Erase all direct children with the given key and return the count. -         */ -        size_type erase(const key_type &key); - -        /** Get the iterator that points to the same element as the argument. -         * @note A valid assoc_iterator range (a, b) does not imply that -         *       (to_iterator(a), to_iterator(b)) is a valid range. -         */ -        iterator to_iterator(assoc_iterator it); - -        /** Get the iterator that points to the same element as the argument. -         * @note A valid const_assoc_iterator range (a, b) does not imply that -         *       (to_iterator(a), to_iterator(b)) is a valid range. -         */ -        const_iterator to_iterator(const_assoc_iterator it) const; - -        // Property tree view - -        /** Reference to the actual data in this node. */ -        data_type &data(); - -        /** Reference to the actual data in this node. */ -        const data_type &data() const; - -        /** Clear this tree completely, of both data and children. */ -        void clear(); - -        /** Get the child at the given path, or throw @c ptree_bad_path. -         * @note Depending on the path, the result at each level may not be -         *       completely determinate, i.e. if the same key appears multiple -         *       times, which child is chosen is not specified. This can lead -         *       to the path not being resolved even though there is a -         *       descendant with this path. Example: -         * @code -         *   a -> b -> c -         *     -> b -         * @endcode -         *       The path "a.b.c" will succeed if the resolution of "b" chooses -         *       the first such node, but fail if it chooses the second. -         */ -        self_type &get_child(const path_type &path); - -        /** Get the child at the given path, or throw @c ptree_bad_path. */ -        const self_type &get_child(const path_type &path) const; - -        /** Get the child at the given path, or return @p default_value. */ -        self_type &get_child(const path_type &path, self_type &default_value); - -        /** Get the child at the given path, or return @p default_value. */ -        const self_type &get_child(const path_type &path, -                                   const self_type &default_value) const; - -        /** Get the child at the given path, or return boost::null. */ -        optional<self_type &> get_child_optional(const path_type &path); - -        /** Get the child at the given path, or return boost::null. */ -        optional<const self_type &> -          get_child_optional(const path_type &path) const; - -        /** Set the node at the given path to the given value. Create any -         * missing parents. If the node at the path already exists, replace it. -         * @return A reference to the inserted subtree. -         * @note Because of the way paths work, it is not generally guaranteed -         *       that a node newly created can be accessed using the same path. -         * @note If the path could refer to multiple nodes, it is unspecified -         *       which one gets replaced. -         */ -        self_type &put_child(const path_type &path, const self_type &value); - -        /** Add the node at the given path. Create any missing parents. If there -         * already is a node at the path, add another one with the same key. -         * @param path Path to the child. The last fragment must not have an -         *             index. -         * @return A reference to the inserted subtree. -         * @note Because of the way paths work, it is not generally guaranteed -         *       that a node newly created can be accessed using the same path. -         */ -        self_type &add_child(const path_type &path, const self_type &value); - -        /** Take the value of this node and attempt to translate it to a -         * @c Type object using the supplied translator. -         * @throw ptree_bad_data if the conversion fails. -         */ -        template<class Type, class Translator> -        typename boost::enable_if<detail::is_translator<Translator>, Type>::type -        get_value(Translator tr) const; - -        /** Take the value of this node and attempt to translate it to a -         * @c Type object using the default translator. -         * @throw ptree_bad_data if the conversion fails. -         */ -        template<class Type> -        Type get_value() const; - -        /** Take the value of this node and attempt to translate it to a -         * @c Type object using the supplied translator. Return @p default_value -         * if this fails. -         */ -        template<class Type, class Translator> -        Type get_value(const Type &default_value, Translator tr) const; - -        /** Make get_value do the right thing for string literals. */ -        template <class Ch, class Translator> -        typename boost::enable_if< -            detail::is_character<Ch>, -            std::basic_string<Ch> -        >::type -        get_value(const Ch *default_value, Translator tr) const; - -        /** Take the value of this node and attempt to translate it to a -         * @c Type object using the default translator. Return @p default_value -         * if this fails. -         */ -        template<class Type> -        typename boost::disable_if<detail::is_translator<Type>, Type>::type -        get_value(const Type &default_value) const; - -        /** Make get_value do the right thing for string literals. */ -        template <class Ch> -        typename boost::enable_if< -            detail::is_character<Ch>, -            std::basic_string<Ch> -        >::type -        get_value(const Ch *default_value) const; - -        /** Take the value of this node and attempt to translate it to a -         * @c Type object using the supplied translator. Return boost::null if -         * this fails. -         */ -        template<class Type, class Translator> -        optional<Type> get_value_optional(Translator tr) const; - -        /** Take the value of this node and attempt to translate it to a -         * @c Type object using the default translator. Return boost::null if -         * this fails. -         */ -        template<class Type> -        optional<Type> get_value_optional() const; - -        /** Replace the value at this node with the given value, translated -         * to the tree's data type using the supplied translator. -         * @throw ptree_bad_data if the conversion fails. -        */ -        template<class Type, class Translator> -        void put_value(const Type &value, Translator tr); - -        /** Replace the value at this node with the given value, translated -         * to the tree's data type using the default translator. -         * @throw ptree_bad_data if the conversion fails. -        */ -        template<class Type> -        void put_value(const Type &value); - -        /** Shorthand for get_child(path).get_value(tr). */ -        template<class Type, class Translator> -        typename boost::enable_if<detail::is_translator<Translator>, Type>::type -        get(const path_type &path, Translator tr) const; - -        /** Shorthand for get_child(path).get_value\<Type\>(). */ -        template<class Type> -        Type get(const path_type &path) const; - -        /** Shorthand for get_child(path, empty_ptree()) -         *                    .get_value(default_value, tr). -         * That is, return the translated value if possible, and the default -         * value if the node doesn't exist or conversion fails. -         */ -        template<class Type, class Translator> -        Type get(const path_type &path, -                 const Type &default_value, -                 Translator tr) const; - -        /** Make get do the right thing for string literals. */ -        template <class Ch, class Translator> -        typename boost::enable_if< -            detail::is_character<Ch>, -            std::basic_string<Ch> -        >::type -        get(const path_type &path, const Ch *default_value, Translator tr)const; - -        /** Shorthand for get_child(path, empty_ptree()) -         *                    .get_value(default_value). -         * That is, return the translated value if possible, and the default -         * value if the node doesn't exist or conversion fails. -         */ -        template<class Type> -        typename boost::disable_if<detail::is_translator<Type>, Type>::type -        get(const path_type &path, const Type &default_value) const; - -        /** Make get do the right thing for string literals. */ -        template <class Ch> -        typename boost::enable_if< -            detail::is_character<Ch>, -            std::basic_string<Ch> -        >::type -        get(const path_type &path, const Ch *default_value) const; - -        /** Shorthand for: -         * @code -         * if(optional\<self_type&\> node = get_child_optional(path)) -         *   return node->get_value_optional(tr); -         * return boost::null; -         * @endcode -         * That is, return the value if it exists and can be converted, or nil. -        */ -        template<class Type, class Translator> -        optional<Type> get_optional(const path_type &path, Translator tr) const; - -        /** Shorthand for: -         * @code -         * if(optional\<const self_type&\> node = get_child_optional(path)) -         *   return node->get_value_optional(); -         * return boost::null; -         * @endcode -        */ -        template<class Type> -        optional<Type> get_optional(const path_type &path) const; - -        /** Set the value of the node at the given path to the supplied value, -         * translated to the tree's data type. If the node doesn't exist, it is -         * created, including all its missing parents. -         * @return The node that had its value changed. -         * @throw ptree_bad_data if the conversion fails. -        */ -        template<class Type, class Translator> -        self_type &put(const path_type &path, const Type &value, Translator tr); - -        /** Set the value of the node at the given path to the supplied value, -         * translated to the tree's data type. If the node doesn't exist, it is -         * created, including all its missing parents. -         * @return The node that had its value changed. -         * @throw ptree_bad_data if the conversion fails. -        */ -        template<class Type> -        self_type &put(const path_type &path, const Type &value); - -        /** If the node identified by the path does not exist, create it, -         * including all its missing parents. -         * If the node already exists, add a sibling with the same key. -         * Set the newly created node's value to the given paremeter, -         * translated with the supplied translator. -         * @param path Path to the child. The last fragment must not have an -         *             index. -         * @param value The value to add. -         * @param tr The translator to use. -         * @return The node that was added. -         * @throw ptree_bad_data if the conversion fails. -        */ -        template<class Type, class Translator> -        self_type &add(const path_type &path, -                       const Type &value, -                       Translator tr); - -        /** If the node identified by the path does not exist, create it, -         * including all its missing parents. -         * If the node already exists, add a sibling with the same key. -         * Set the newly created node's value to the given paremeter, -         * translated with the supplied translator. -         * @param path Path to the child. The last fragment must not have an -         *             index. -         * @param value The value to add. -         * @return The node that was added. -         * @throw ptree_bad_data if the conversion fails. -        */ -        template<class Type> -        self_type &add(const path_type &path, const Type &value); - -    private: -        // Hold the data of this node -        data_type m_data; -        // Hold the children - this is a void* because we can't complete the -        // container type within the class. -        void* m_children; - -        // Getter tree-walk. Not const-safe! Gets the node the path refers to, -        // or null. Destroys p's value. -        self_type* walk_path(path_type& p) const; - -        // Modifer tree-walk. Gets the parent of the node referred to by the -        // path, creating nodes as necessary. p is the path to the remaining -        // child. -        self_type& force_path(path_type& p); - -        // This struct contains typedefs for the concrete types. -        struct subs; -        friend struct subs; -        friend class iterator; -        friend class const_iterator; -        friend class reverse_iterator; -        friend class const_reverse_iterator; -    }; - -}} - -#include <boost/property_tree/detail/ptree_implementation.hpp> - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/ptree_fwd.hpp b/3rdParty/Boost/src/boost/property_tree/ptree_fwd.hpp deleted file mode 100644 index fe36741..0000000 --- a/3rdParty/Boost/src/boost/property_tree/ptree_fwd.hpp +++ /dev/null @@ -1,143 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// Copyright (C) 2009 Sebastian Redl -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_PTREE_FWD_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_PTREE_FWD_HPP_INCLUDED - -#include <boost/config.hpp> -#include <boost/optional/optional_fwd.hpp> -#include <boost/throw_exception.hpp> -#include <functional>           // for std::less -#include <memory>               // for std::allocator -#include <string> - -namespace boost { namespace property_tree -{ -    namespace detail { -        template <typename T> struct less_nocase; -    } - -    // Classes - -    template < class Key, class Data, class KeyCompare = std::less<Key> > -    class basic_ptree; - -    template <typename T> -    struct id_translator; - -    template <typename String, typename Translator> -    class string_path; - -    // Texas-style concepts for documentation only. -#if 0 -    concept PropertyTreePath<class Path> { -        // The key type for which this path works. -        typename key_type; -        // Return the key that the first segment of the path names. -        // Split the head off the state. -        key_type Path::reduce(); - -        // Return true if the path is empty. -        bool Path::empty() const; - -        // Return true if the path contains a single element. -        bool Path::single() const; - -        // Dump as a std::string, for exception messages. -        std::string Path::dump() const; -    } -    concept PropertyTreeKey<class Key> { -        PropertyTreePath path; -        requires SameType<Key, PropertyTreePath<path>::key_type>; -    } -    concept PropertyTreeTranslator<class Tr> { -        typename internal_type; -        typename external_type; - -        boost::optional<external_type> Tr::get_value(internal_type); -        boost::optional<internal_type> Tr::put_value(external_type); -    } -#endif -    /// If you want to use a custom key type, specialize this struct for it -    /// and give it a 'type' typedef that specifies your path type. The path -    /// type must conform to the Path concept described in the documentation. -    /// This is already specialized for std::basic_string. -    template <typename Key> -    struct path_of; - -    /// Specialize this struct to specify a default translator between the data -    /// in a tree whose data_type is Internal, and the external data_type -    /// specified in a get_value, get, put_value or put operation. -    /// This is already specialized for Internal being std::basic_string. -    template <typename Internal, typename External> -    struct translator_between; - -    class ptree_error; -    class ptree_bad_data; -    class ptree_bad_path; - -    // Typedefs - -    /** Implements a path using a std::string as the key. */ -    typedef string_path<std::string, id_translator<std::string> > path; - -    /** -     * A property tree with std::string for key and data, and default -     * comparison. -     */ -    typedef basic_ptree<std::string, std::string> ptree; - -    /** -     * A property tree with std::string for key and data, and case-insensitive -     * comparison. -     */ -    typedef basic_ptree<std::string, std::string, -                        detail::less_nocase<std::string> > -        iptree; - -#ifndef BOOST_NO_STD_WSTRING -    /** Implements a path using a std::wstring as the key. */ -    typedef string_path<std::wstring, id_translator<std::wstring> > wpath; - -    /** -     * A property tree with std::wstring for key and data, and default -     * comparison. -     * @note The type only exists if the platform supports @c wchar_t. -     */ -    typedef basic_ptree<std::wstring, std::wstring> wptree; - -    /** -     * A property tree with std::wstring for key and data, and case-insensitive -     * comparison. -     * @note The type only exists if the platform supports @c wchar_t. -     */ -    typedef basic_ptree<std::wstring, std::wstring, -                        detail::less_nocase<std::wstring> > -        wiptree; -#endif - -    // Free functions - -    /** -     * Swap two property tree instances. -     */ -    template<class K, class D, class C> -    void swap(basic_ptree<K, D, C> &pt1, -              basic_ptree<K, D, C> &pt2); - -} } - - -#if !defined(BOOST_PROPERTY_TREE_DOXYGEN_INVOKED) -    // Throwing macro to avoid no return warnings portably -#   define BOOST_PROPERTY_TREE_THROW(e) BOOST_THROW_EXCEPTION(e) -#endif - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/stream_translator.hpp b/3rdParty/Boost/src/boost/property_tree/stream_translator.hpp deleted file mode 100644 index c7fabfa..0000000 --- a/3rdParty/Boost/src/boost/property_tree/stream_translator.hpp +++ /dev/null @@ -1,221 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2009 Sebastian Redl -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- - -#ifndef BOOST_PROPERTY_TREE_STREAM_TRANSLATOR_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_STREAM_TRANSLATOR_HPP_INCLUDED - -#include <boost/property_tree/ptree_fwd.hpp> - -#include <boost/optional.hpp> -#include <boost/optional/optional_io.hpp> -#include <boost/utility/enable_if.hpp> -#include <boost/type_traits/decay.hpp> -#include <boost/type_traits/integral_constant.hpp> -#include <sstream> -#include <string> -#include <locale> -#include <limits> - -namespace boost { namespace property_tree -{ - -    template <typename Ch, typename Traits, typename E, typename Enabler = void> -    struct customize_stream -    { -        static void insert(std::basic_ostream<Ch, Traits>& s, const E& e) { -            s << e; -        } -        static void extract(std::basic_istream<Ch, Traits>& s, E& e) { -            s >> e; -            if(!s.eof()) { -                s >> std::ws; -            } -        } -    }; - -    // No whitespace skipping for single characters. -    template <typename Ch, typename Traits> -    struct customize_stream<Ch, Traits, Ch, void> -    { -        static void insert(std::basic_ostream<Ch, Traits>& s, Ch e) { -            s << e; -        } -        static void extract(std::basic_istream<Ch, Traits>& s, Ch& e) { -            s.unsetf(std::ios_base::skipws); -            s >> e; -        } -    }; - -    // Ugly workaround for numeric_traits that don't have members when not -    // specialized, e.g. MSVC. -    namespace detail -    { -        template <bool is_specialized> -        struct is_inexact_impl -        { -            template <typename T> -            struct test -            { -                typedef boost::false_type type; -            }; -        }; -        template <> -        struct is_inexact_impl<true> -        { -            template <typename T> -            struct test -            { -              typedef boost::integral_constant<bool, -                  !std::numeric_limits<T>::is_exact> type; -            }; -        }; - -        template <typename F> -        struct is_inexact -        { -            typedef typename boost::decay<F>::type decayed; -            typedef typename is_inexact_impl< -                std::numeric_limits<decayed>::is_specialized -            >::BOOST_NESTED_TEMPLATE test<decayed>::type type; -            static const bool value = type::value; -        }; -    } - -    template <typename Ch, typename Traits, typename F> -    struct customize_stream<Ch, Traits, F, -        typename boost::enable_if< detail::is_inexact<F> >::type -    > -    { -        static void insert(std::basic_ostream<Ch, Traits>& s, const F& e) { -            s.precision(std::numeric_limits<F>::digits10 + 1); -            s << e; -        } -        static void extract(std::basic_istream<Ch, Traits>& s, F& e) { -            s >> e; -            if(!s.eof()) { -                s >> std::ws; -            } -        } -    }; - -    template <typename Ch, typename Traits> -    struct customize_stream<Ch, Traits, bool, void> -    { -        static void insert(std::basic_ostream<Ch, Traits>& s, bool e) { -            s.setf(std::ios_base::boolalpha); -            s << e; -        } -        static void extract(std::basic_istream<Ch, Traits>& s, bool& e) { -            s >> e; -            if(s.fail()) { -                // Try again in word form. -                s.clear(); -                s.setf(std::ios_base::boolalpha); -                s >> e; -            } -            if(!s.eof()) { -                s >> std::ws; -            } -        } -    }; - -    template <typename Ch, typename Traits> -    struct customize_stream<Ch, Traits, signed char, void> -    { -        static void insert(std::basic_ostream<Ch, Traits>& s, signed char e) { -            s << (int)e; -        } -        static void extract(std::basic_istream<Ch, Traits>& s, signed char& e) { -            int i; -            s >> i; -            // out of range? -            if(i > (std::numeric_limits<signed char>::max)() || -                i < (std::numeric_limits<signed char>::min)()) -            { -                s.clear(); // guarantees eof to be unset -                return; -            } -            e = (signed char)i; -            if(!s.eof()) { -                s >> std::ws; -            } -        } -    }; - -    template <typename Ch, typename Traits> -    struct customize_stream<Ch, Traits, unsigned char, void> -    { -        static void insert(std::basic_ostream<Ch, Traits>& s, unsigned char e) { -            s << (unsigned)e; -        } -        static void extract(std::basic_istream<Ch,Traits>& s, unsigned char& e){ -            unsigned i; -            s >> i; -            // out of range? -            if(i > (std::numeric_limits<unsigned char>::max)()) { -                s.clear(); // guarantees eof to be unset -                return; -            } -            e = (unsigned char)i; -            if(!s.eof()) { -                s >> std::ws; -            } -        } -    }; - -    /// Implementation of Translator that uses the stream overloads. -    template <typename Ch, typename Traits, typename Alloc, typename E> -    class stream_translator -    { -        typedef customize_stream<Ch, Traits, E> customized; -    public: -        typedef std::basic_string<Ch, Traits, Alloc> internal_type; -        typedef E external_type; - -        explicit stream_translator(std::locale loc = std::locale()) -            : m_loc(loc) -        {} - -        boost::optional<E> get_value(const internal_type &v) { -            std::basic_istringstream<Ch, Traits, Alloc> iss(v); -            iss.imbue(m_loc); -            E e; -            customized::extract(iss, e); -            if(iss.fail() || iss.bad() || iss.get() != Traits::eof()) { -                return boost::optional<E>(); -            } -            return e; -        } -        boost::optional<internal_type> put_value(const E &v) { -            std::basic_ostringstream<Ch, Traits, Alloc> oss; -            oss.imbue(m_loc); -            customized::insert(oss, v); -            if(oss) { -                return oss.str(); -            } -            return boost::optional<internal_type>(); -        } - -    private: -        std::locale m_loc; -    }; - -    // This is the default translator when basic_string is the internal type. -    // Unless the external type is also basic_string, in which case -    // id_translator takes over. -    template <typename Ch, typename Traits, typename Alloc, typename E> -    struct translator_between<std::basic_string<Ch, Traits, Alloc>, E> -    { -        typedef stream_translator<Ch, Traits, Alloc, E> type; -    }; - -}} - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/string_path.hpp b/3rdParty/Boost/src/boost/property_tree/string_path.hpp deleted file mode 100644 index 07ec6b0..0000000 --- a/3rdParty/Boost/src/boost/property_tree/string_path.hpp +++ /dev/null @@ -1,273 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2009 Sebastian Redl -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- - -#ifndef BOOST_PROPERTY_TREE_STRING_PATH_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_STRING_PATH_HPP_INCLUDED - -#include <boost/property_tree/ptree_fwd.hpp> -#include <boost/property_tree/id_translator.hpp> -#include <boost/property_tree/exceptions.hpp> -#include <boost/property_tree/detail/ptree_utils.hpp> - -#include <boost/static_assert.hpp> -#include <boost/type_traits/is_same.hpp> -#include <boost/optional.hpp> -#include <boost/throw_exception.hpp> -#include <algorithm> -#include <string> -#include <iterator> -#include <cassert> - -namespace boost { namespace property_tree -{ -    namespace detail -    { -        template <typename Sequence, typename Iterator> -        void append_and_preserve_iter(Sequence &s, const Sequence &r, -                                      Iterator &, std::forward_iterator_tag) -        { -            // Here we boldly assume that anything that is not random-access -            // preserves validity. This is valid for the STL sequences. -            s.insert(s.end(), r.begin(), r.end()); -        } -        template <typename Sequence, typename Iterator> -        void append_and_preserve_iter(Sequence &s, const Sequence &r, -                                      Iterator &it, -                                      std::random_access_iterator_tag) -        { -            // Convert the iterator to an index, and later back. -            typename std::iterator_traits<Iterator>::difference_type idx = -                it - s.begin(); -            s.insert(s.end(), r.begin(), r.end()); -            it = s.begin() + idx; -        } - -        template <typename Sequence> -        inline std::string dump_sequence(const Sequence &) -        { -            return "<undumpable sequence>"; -        } -        inline std::string dump_sequence(const std::string &s) -        { -            return s; -        } -#ifndef BOOST_NO_STD_WSTRING -        inline std::string dump_sequence(const std::wstring &s) -        { -            return narrow(s.c_str()); -        } -#endif -    } - -    /// Default path class. A path is a sequence of values. Groups of values -    /// are separated by the separator value, which defaults to '.' cast to -    /// the sequence's value type. The group of values is then passed to the -    /// translator to get a key. -    /// -    /// If instantiated with std::string and id_translator\<std::string\>, -    /// it accepts paths of the form "one.two.three.four". -    /// -    /// @tparam String Any Sequence. If the sequence does not support random- -    ///                access iteration, concatenation of paths assumes that -    ///                insertions at the end preserve iterator validity. -    /// @tparam Translator A translator with internal_type == String. -    template <typename String, typename Translator> -    class string_path -    { -        BOOST_STATIC_ASSERT((is_same<String, -                                   typename Translator::internal_type>::value)); -    public: -        typedef typename Translator::external_type key_type; -        typedef typename String::value_type char_type; - -        /// Create an empty path. -        explicit string_path(char_type separator = char_type('.')); -        /// Create a path by parsing the given string. -        /// @param value A sequence, possibly with separators, that describes -        ///              the path, e.g. "one.two.three". -        /// @param separator The separator used in parsing. Defaults to '.'. -        /// @param tr The translator used by this path to convert the individual -        ///           parts to keys. -        string_path(const String &value, char_type separator = char_type('.'), -                    Translator tr = Translator()); -        /// Create a path by parsing the given string. -        /// @param value A zero-terminated array of values. Only use if zero- -        ///              termination makes sense for your type, and your -        ///              sequence supports construction from it. Intended for -        ///              string literals. -        /// @param separator The separator used in parsing. Defaults to '.'. -        /// @param tr The translator used by this path to convert the individual -        ///           parts to keys. -        string_path(const char_type *value, -                    char_type separator = char_type('.'), -                    Translator tr = Translator()); - -        // Default copying doesn't do the right thing with the iterator -        string_path(const string_path &o); -        string_path& operator =(const string_path &o); - -        /// Take a single element off the path at the front and return it. -        key_type reduce(); - -        /// Test if the path is empty. -        bool empty() const; - -        /// Test if the path contains a single element, i.e. no separators. -        bool single() const; - -        std::string dump() const { -            return detail::dump_sequence(m_value); -        } - -        /// Append a second path to this one. -        /// @pre o's separator is the same as this one's, or o has no separators -        string_path& operator /=(const string_path &o) { -            // If it's single, there's no separator. This allows to do -            // p /= "piece"; -            // even for non-default separators. -            assert((m_separator == o.m_separator || o.empty() || o.single()) -                   && "Incompatible paths."); -            if(!o.empty()) { -                String sub; -                if(!this->empty()) { -                    sub.push_back(m_separator); -                } -                sub.insert(sub.end(), o.cstart(), o.m_value.end()); -                detail::append_and_preserve_iter(m_value, sub, m_start, -                    typename std::iterator_traits<s_iter>::iterator_category()); -            } -            return *this; -        } - -    private: -        typedef typename String::iterator s_iter; -        typedef typename String::const_iterator s_c_iter; -        String m_value; -        char_type m_separator; -        Translator m_tr; -        s_iter m_start; -        s_c_iter cstart() const { return m_start; } -    }; - -    template <typename String, typename Translator> inline -    string_path<String, Translator>::string_path(char_type separator) -        : m_separator(separator), m_start(m_value.begin()) -    {} - -    template <typename String, typename Translator> inline -    string_path<String, Translator>::string_path(const String &value, -                                                 char_type separator, -                                                 Translator tr) -        : m_value(value), m_separator(separator), -          m_tr(tr), m_start(m_value.begin()) -    {} - -    template <typename String, typename Translator> inline -    string_path<String, Translator>::string_path(const char_type *value, -                                                 char_type separator, -                                                 Translator tr) -        : m_value(value), m_separator(separator), -          m_tr(tr), m_start(m_value.begin()) -    {} - -    template <typename String, typename Translator> inline -    string_path<String, Translator>::string_path(const string_path &o) -        : m_value(o.m_value), m_separator(o.m_separator), -          m_tr(o.m_tr), m_start(m_value.begin()) -    { -        std::advance(m_start, std::distance(o.m_value.begin(), o.cstart())); -    } - -    template <typename String, typename Translator> inline -    string_path<String, Translator>& -    string_path<String, Translator>::operator =(const string_path &o) -    { -        m_value = o.m_value; -        m_separator = o.m_separator; -        m_tr = o.m_tr; -        m_start = m_value.begin(); -        std::advance(m_start, std::distance(o.m_value.begin(), o.cstart())); -        return *this; -    } - -    template <typename String, typename Translator> -    typename Translator::external_type string_path<String, Translator>::reduce() -    { -        assert(!empty() && "Reducing empty path"); - -        s_iter next_sep = std::find(m_start, m_value.end(), m_separator); -        String part(m_start, next_sep); -        m_start = next_sep; -        if(!empty()) { -          // Unless we're at the end, skip the separator we found. -          ++m_start; -        } - -        if(optional<key_type> key = m_tr.get_value(part)) { -            return *key; -        } -        BOOST_PROPERTY_TREE_THROW(ptree_bad_path("Path syntax error", *this)); -    } - -    template <typename String, typename Translator> inline -    bool string_path<String, Translator>::empty() const -    { -        return m_start == m_value.end(); -    } - -    template <typename String, typename Translator> inline -    bool string_path<String, Translator>::single() const -    { -        return std::find(static_cast<s_c_iter>(m_start), -                         m_value.end(), m_separator) -            == m_value.end(); -    } - -    // By default, this is the path for strings. You can override this by -    // specializing path_of for a more specific form of std::basic_string. -    template <typename Ch, typename Traits, typename Alloc> -    struct path_of< std::basic_string<Ch, Traits, Alloc> > -    { -        typedef std::basic_string<Ch, Traits, Alloc> _string; -        typedef string_path< _string, id_translator<_string> > type; -    }; - -    template <typename String, typename Translator> inline -    string_path<String, Translator> operator /( -                                  string_path<String, Translator> p1, -                                  const string_path<String, Translator> &p2) -    { -        p1 /= p2; -        return p1; -    } - -    // These shouldn't be necessary, but GCC won't find the one above. -    template <typename String, typename Translator> inline -    string_path<String, Translator> operator /( -                                  string_path<String, Translator> p1, -                                  const typename String::value_type *p2) -    { -        p1 /= p2; -        return p1; -    } - -    template <typename String, typename Translator> inline -    string_path<String, Translator> operator /( -                                  const typename String::value_type *p1, -                                  const string_path<String, Translator> &p2) -    { -        string_path<String, Translator> t(p1); -        t /= p2; -        return t; -    } - -}} - -#endif diff --git a/3rdParty/Boost/src/boost/property_tree/xml_parser.hpp b/3rdParty/Boost/src/boost/property_tree/xml_parser.hpp deleted file mode 100644 index 4f36e9a..0000000 --- a/3rdParty/Boost/src/boost/property_tree/xml_parser.hpp +++ /dev/null @@ -1,153 +0,0 @@ -// ---------------------------------------------------------------------------- -// Copyright (C) 2002-2006 Marcin Kalicinski -// Copyright (C) 2009 Sebastian Redl -// -// 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) -// -// For more information, see www.boost.org -// ---------------------------------------------------------------------------- -#ifndef BOOST_PROPERTY_TREE_XML_PARSER_HPP_INCLUDED -#define BOOST_PROPERTY_TREE_XML_PARSER_HPP_INCLUDED - -#include <boost/property_tree/ptree.hpp> -#include <boost/property_tree/detail/xml_parser_write.hpp> -#include <boost/property_tree/detail/xml_parser_error.hpp> -#include <boost/property_tree/detail/xml_parser_writer_settings.hpp> -#include <boost/property_tree/detail/xml_parser_flags.hpp> -#include <boost/property_tree/detail/xml_parser_read_rapidxml.hpp> - -#include <fstream> -#include <string> -#include <locale> - -namespace boost { namespace property_tree { namespace xml_parser -{ - -    /** -     * Reads XML from an input stream and translates it to property tree. -     * @note Clears existing contents of property tree.  In case of error the -     *       property tree unmodified. -     * @note XML attributes are placed under keys named @c \<xmlattr\>. -     * @throw xml_parser_error In case of error deserializing the property tree. -     * @param stream Stream from which to read in the property tree. -     * @param[out] pt The property tree to populate. -     * @param flags Flags controlling the behaviour of the parser. -     *              The following flags are supported: -     * @li @c no_concat_text -- Prevents concatenation of text nodes into -     *                          datastring of property tree.  Puts them in -     *                          separate @c \<xmltext\> strings instead. -     * @li @c no_comments -- Skip XML comments. -     * @li @c trim_whitespace -- Trim leading and trailing whitespace from text, -     *                           and collapse sequences of whitespace. -     */ -    template<class Ptree> -    void read_xml(std::basic_istream< -                      typename Ptree::key_type::value_type -                  > &stream, -                  Ptree &pt, -                  int flags = 0) -    { -        read_xml_internal(stream, pt, flags, std::string()); -    } - -    /** -     * Reads XML from a file using the given locale and translates it to -     * property tree. -     * @note Clears existing contents of property tree.  In case of error the -     *       property tree unmodified. -     * @note XML attributes are placed under keys named @c \<xmlattr\>. -     * @throw xml_parser_error In case of error deserializing the property tree. -     * @param filename The file from which to read in the property tree. -     * @param[out] pt The property tree to populate. -     * @param flags Flags controlling the bahviour of the parser. -     *              The following flags are supported: -     * @li @c no_concat_text -- Prevents concatenation of text nodes into -     *                          datastring of property tree.  Puts them in -     *                          separate @c \<xmltext\> strings instead. -     * @li @c no_comments -- Skip XML comments. -     * @param loc The locale to use when reading in the file contents. -     */ -    template<class Ptree> -    void read_xml(const std::string &filename, -                  Ptree &pt, -                  int flags = 0, -                  const std::locale &loc = std::locale()) -    { -        BOOST_ASSERT(validate_flags(flags)); -        std::basic_ifstream<typename Ptree::key_type::value_type> -            stream(filename.c_str()); -        if (!stream) -            BOOST_PROPERTY_TREE_THROW(xml_parser_error( -                "cannot open file", filename, 0)); -        stream.imbue(loc); -        read_xml_internal(stream, pt, flags, filename); -    } - -    /** -     * Translates the property tree to XML and writes it the given output -     * stream. -     * @throw xml_parser_error In case of error translating the property tree to -     *                         XML or writing to the output stream. -     * @param stream The stream to which to write the XML representation of the  -     *               property tree. -     * @param pt The property tree to tranlsate to XML and output. -     * @param settings The settings to use when writing out the property tree as -     *                 XML. -     */ -    template<class Ptree> -    void write_xml(std::basic_ostream< -                       typename Ptree::key_type::value_type -                   > &stream, -                   const Ptree &pt, -                   const xml_writer_settings< -                       typename Ptree::key_type::value_type -                   > & settings = xml_writer_settings< -                                    typename Ptree::key_type::value_type>() ) -    { -        write_xml_internal(stream, pt, std::string(), settings); -    } - -    /** -     * Translates the property tree to XML and writes it the given file. -     * @throw xml_parser_error In case of error translating the property tree to -     *                         XML or writing to the output stream. -     * @param filename The file to which to write the XML representation of the  -     *                 property tree. -     * @param pt The property tree to tranlsate to XML and output. -     * @param loc The locale to use when writing the output to file. -     * @param settings The settings to use when writing out the property tree as -     *                 XML. -     */ -    template<class Ptree> -    void write_xml(const std::string &filename, -                   const Ptree &pt, -                   const std::locale &loc = std::locale(), -                   const xml_writer_settings< -                       typename Ptree::key_type::value_type -                   > & settings = xml_writer_settings< -                                    typename Ptree::key_type::value_type>()) -    { -        std::basic_ofstream<typename Ptree::key_type::value_type> -            stream(filename.c_str()); -        if (!stream) -            BOOST_PROPERTY_TREE_THROW(xml_parser_error( -                "cannot open file", filename, 0)); -        stream.imbue(loc); -        write_xml_internal(stream, pt, filename, settings); -    } - -} } } - -namespace boost { namespace property_tree -{ -    using xml_parser::read_xml; -    using xml_parser::write_xml; -    using xml_parser::xml_parser_error; - -    using xml_parser::xml_writer_settings; -    using xml_parser::xml_writer_make_settings; -} } - -#endif diff --git a/3rdParty/Boost/src/boost/range/begin.hpp b/3rdParty/Boost/src/boost/range/begin.hpp index a4a5e10..c668488 100644 --- a/3rdParty/Boost/src/boost/range/begin.hpp +++ b/3rdParty/Boost/src/boost/range/begin.hpp @@ -91,6 +91,11 @@ namespace range_detail  } // namespace 'range_detail'  #endif +// Use a ADL namespace barrier to avoid ambiguity with other unqualified +// calls. This is particularly important with C++0x encouraging +// unqualified calls to begin/end. +namespace range_adl_barrier +{  template< class T >  inline BOOST_DEDUCED_TYPENAME range_iterator<T>::type begin( T& r ) @@ -114,19 +119,25 @@ inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )      return range_begin( r );  } +    } // namespace range_adl_barrier  } // namespace boost  #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING  namespace boost  { -    template< class T > -    inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type -    const_begin( const T& r ) +    namespace range_adl_barrier      { -        return boost::begin( r ); -    } -} +        template< class T > +        inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type +        const_begin( const T& r ) +        { +            return boost::range_adl_barrier::begin( r ); +        } +    } // namespace range_adl_barrier + +    using namespace range_adl_barrier; +} // namespace boost  #endif diff --git a/3rdParty/Boost/src/boost/range/concepts.hpp b/3rdParty/Boost/src/boost/range/concepts.hpp index 8e4d2cf..5965293 100644 --- a/3rdParty/Boost/src/boost/range/concepts.hpp +++ b/3rdParty/Boost/src/boost/range/concepts.hpp @@ -98,8 +98,9 @@ namespace boost {          // classes:          //          // The Range algorithms often do not require that the iterators are -        // Assignable, but the correct standard conformant iterators -        // do require the iterators to be a model of the Assignable concept. +        // Assignable or default constructable, but the correct standard +        // conformant iterators do require the iterators to be a model of the +        // Assignable concept.          // Iterators that contains a functor that is not assignable therefore          // are not correct models of the standard iterator concepts,          // despite being adequate for most algorithms. An example of this @@ -141,6 +142,26 @@ namespace boost {                      BOOST_DEDUCED_TYPENAME SinglePassIteratorConcept::traversal_category,                      single_pass_traversal_tag                  >)); + +            BOOST_CONCEPT_USAGE(SinglePassIteratorConcept) +            { +                Iterator i2(++i); +                boost::ignore_unused_variable_warning(i2); + +                // deliberately we are loose with the postfix version for the single pass +                // iterator due to the commonly poor adherence to the specification means that +                // many algorithms would be unusable, whereas actually without the check they +                // work +                (void)(i++); + +                BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r1(*i); +                boost::ignore_unused_variable_warning(r1); + +                BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r2(*(++i)); +                boost::ignore_unused_variable_warning(r2); +            } +        private: +            Iterator i;  #endif          }; @@ -160,6 +181,20 @@ namespace boost {                      BOOST_DEDUCED_TYPENAME ForwardIteratorConcept::traversal_category,                      forward_traversal_tag                  >)); + +            BOOST_CONCEPT_USAGE(ForwardIteratorConcept) +            { +                // See the above note in the SinglePassIteratorConcept about the handling of the +                // postfix increment. Since with forward and better iterators there is no need +                // for a proxy, we can sensibly require that the dereference result +                // is convertible to reference. +                Iterator i2(i++); +                boost::ignore_unused_variable_warning(i2); +                BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r(*(i++)); +                boost::ignore_unused_variable_warning(r); +            } +        private: +            Iterator i;  #endif           }; diff --git a/3rdParty/Boost/src/boost/range/detail/begin.hpp b/3rdParty/Boost/src/boost/range/detail/begin.hpp index 06c2561..f3da732 100644 --- a/3rdParty/Boost/src/boost/range/detail/begin.hpp +++ b/3rdParty/Boost/src/boost/range/detail/begin.hpp @@ -19,9 +19,9 @@  # include <boost/range/value_type.hpp>  #endif -namespace boost  +namespace boost  { -     +      namespace range_detail      {          template< typename T > @@ -30,7 +30,7 @@ namespace boost          //////////////////////////////////////////////////////////////////////          // default          ////////////////////////////////////////////////////////////////////// -         +          template<>          struct range_begin<std_container_>          { @@ -40,11 +40,11 @@ namespace boost                  return c.begin();              };          }; -                     +          //////////////////////////////////////////////////////////////////////          // pair          ////////////////////////////////////////////////////////////////////// -         +          template<>          struct range_begin<std_pair_>          { @@ -54,11 +54,11 @@ namespace boost                  return p.first;              }          }; -  +          //////////////////////////////////////////////////////////////////////          // array          ////////////////////////////////////////////////////////////////////// -         +          template<>          struct range_begin<array_>          { @@ -78,14 +78,16 @@ namespace boost          };      } // namespace 'range_detail' -     -    template< typename C > -    inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type  -    begin( C& c ) + +    namespace range_adl_barrier      { -        return range_detail::range_begin< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c ); +        template< typename C > +        inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type +        begin( C& c ) +        { +            return range_detail::range_begin< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c ); +        }      } -      } // namespace 'boost' diff --git a/3rdParty/Boost/src/boost/range/detail/end.hpp b/3rdParty/Boost/src/boost/range/detail/end.hpp index d6a7368..8b5f35d 100644 --- a/3rdParty/Boost/src/boost/range/detail/end.hpp +++ b/3rdParty/Boost/src/boost/range/detail/end.hpp @@ -24,7 +24,7 @@  #  include <boost/range/detail/remove_extent.hpp>  # endif -namespace boost  +namespace boost  {      namespace range_detail      { @@ -34,39 +34,39 @@ namespace boost          //////////////////////////////////////////////////////////////////////          // default          ////////////////////////////////////////////////////////////////////// -         +          template<>          struct range_end<std_container_>          {              template< typename C > -            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type  +            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type              fun( C& c )              {                  return c.end();              };          }; -                     +          //////////////////////////////////////////////////////////////////////          // pair          ////////////////////////////////////////////////////////////////////// -         +          template<>          struct range_end<std_pair_>          {              template< typename P > -            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type  +            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type              fun( const P& p )              {                  return p.second;              }          }; -  +          //////////////////////////////////////////////////////////////////////          // array          ////////////////////////////////////////////////////////////////////// -         +          template<> -        struct range_end<array_>   +        struct range_end<array_>          {          #if !BOOST_WORKAROUND(BOOST_MSVC, < 1310)              template< typename T, std::size_t sz > @@ -82,16 +82,19 @@ namespace boost              }          #endif          }; -         +      } // namespace 'range_detail' -     -    template< typename C > -    inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type  -    end( C& c ) + +    namespace range_adl_barrier      { -        return range_detail::range_end< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c ); -    } -     +        template< typename C > +        inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type +        end( C& c ) +        { +            return range_detail::range_end< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c ); +        } +    } // namespace range_adl_barrier +  } // namespace 'boost'  # endif // VC6 diff --git a/3rdParty/Boost/src/boost/range/detail/safe_bool.hpp b/3rdParty/Boost/src/boost/range/detail/safe_bool.hpp new file mode 100644 index 0000000..182e510 --- /dev/null +++ b/3rdParty/Boost/src/boost/range/detail/safe_bool.hpp @@ -0,0 +1,72 @@ +//  This header intentionally has no include guards. +// +//  Copyright (c) 2010 Neil Groves +//  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 +// +// This code utilises the experience gained during the evolution of +// <boost/smart_ptr/operator_bool.hpp> +#ifndef BOOST_RANGE_SAFE_BOOL_INCLUDED_HPP +#define BOOST_RANGE_SAFE_BOOL_INCLUDED_HPP + +#include <boost/config.hpp> +#include <boost/range/config.hpp> + +namespace boost +{ +    namespace range_detail +    { + +template<class DataMemberPtr> +class safe_bool +{ +public: +    typedef safe_bool this_type; + +#if (defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570)) || defined(__CINT_) +    typedef bool unspecified_bool_type; +    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr) +    { +        return x; +    } +#elif defined(_MANAGED) +    static void unspecified_bool(this_type***) +    { +    } +    typedef void(*unspecified_bool_type)(this_type***); +    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr) +    { +        return x ? unspecified_bool : 0; +    } +#elif \ +    ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \ +    ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \ +    ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) ) + +    typedef bool (this_type::*unspecified_bool_type)() const; + +    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr) +    { +        return x ? &this_type::detail_safe_bool_member_fn : 0; +    } +private: +    bool detail_safe_bool_member_fn() const { return false; } +#else +    typedef DataMemberPtr unspecified_bool_type; +    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr p) +    { +        return x ? p : 0; +    } +#endif +private: +    safe_bool(); +    safe_bool(const safe_bool&); +    void operator=(const safe_bool&); +    ~safe_bool(); +}; + +    } // namespace range_detail +} // namespace boost + +#endif // include guard diff --git a/3rdParty/Boost/src/boost/range/end.hpp b/3rdParty/Boost/src/boost/range/end.hpp index 3063c02..d5e6526 100644 --- a/3rdParty/Boost/src/boost/range/end.hpp +++ b/3rdParty/Boost/src/boost/range/end.hpp @@ -88,6 +88,9 @@ namespace range_detail  } // namespace 'range_detail'  #endif +namespace range_adl_barrier +{ +  template< class T >  inline BOOST_DEDUCED_TYPENAME range_iterator<T>::type end( T& r )  { @@ -110,22 +113,24 @@ inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )      return range_end( r );  } +    } // namespace range_adl_barrier  } // namespace 'boost' - -  #endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING -  namespace boost  { -    template< class T > -    inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type -    const_end( const T& r ) +    namespace range_adl_barrier      { -        return boost::end( r ); -    } -} +        template< class T > +        inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type +        const_end( const T& r ) +        { +            return boost::range_adl_barrier::end( r ); +        } +    } // namespace range_adl_barrier +    using namespace range_adl_barrier; +} // namespace boost  #endif diff --git a/3rdParty/Boost/src/boost/range/iterator_range_core.hpp b/3rdParty/Boost/src/boost/range/iterator_range_core.hpp index 497b1e3..7ef7523 100755 --- a/3rdParty/Boost/src/boost/range/iterator_range_core.hpp +++ b/3rdParty/Boost/src/boost/range/iterator_range_core.hpp @@ -27,6 +27,7 @@  #include <boost/range/iterator.hpp>  #include <boost/range/difference_type.hpp>  #include <boost/range/algorithm/equal.hpp> +#include <boost/range/detail/safe_bool.hpp>  #include <boost/utility/enable_if.hpp>  #include <iterator>  #include <algorithm> @@ -81,7 +82,6 @@ namespace boost          struct range_tag { };          struct const_range_tag { }; -      }  //  iterator range template class -----------------------------------------// @@ -106,13 +106,14 @@ namespace boost          template<class IteratorT>          class iterator_range          { +            typedef range_detail::safe_bool< IteratorT iterator_range<IteratorT>::* > safe_bool_t;          protected: // Used by sub_range              //! implementation class              typedef iterator_range_detail::iterator_range_impl<IteratorT> impl;          public: -              //! this type              typedef iterator_range<IteratorT> type; +            typedef BOOST_DEDUCED_TYPENAME safe_bool_t::unspecified_bool_type unspecified_bool_type;              //BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(value_type);              //! Encapsulated value type @@ -230,7 +231,7 @@ namespace boost              difference_type size() const              { -                return m_End - m_Begin; +				return m_End - m_Begin;              }              bool empty() const @@ -238,18 +239,15 @@ namespace boost                  return m_Begin == m_End;              } -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -            operator bool() const +            operator unspecified_bool_type() const              { -                return !empty(); +                return safe_bool_t::to_unspecified_bool(m_Begin != m_End, &iterator_range::m_Begin);              } -#else -            typedef iterator (iterator_range::*unspecified_bool_type) () const; -            operator unspecified_bool_type() const + +            bool operator!() const              { -                return empty() ? 0: &iterator_range::end; +                return empty();              } -#endif              bool equal( const iterator_range& r ) const              { @@ -290,6 +288,20 @@ namespace boost                 return *--last;             } +           // pop_front() - added to model the SinglePassRangePrimitiveConcept +           void pop_front() +           { +               BOOST_ASSERT( !empty() ); +               ++m_Begin; +           } + +           // pop_back() - added to model the BidirectionalRangePrimitiveConcept +           void pop_back() +           { +               BOOST_ASSERT( !empty() ); +               --m_End; +           } +             reference operator[]( difference_type at ) const             {                 BOOST_ASSERT( at >= 0 && at < size() ); diff --git a/3rdParty/Boost/src/boost/range/size.hpp b/3rdParty/Boost/src/boost/range/size.hpp index 2b572d4..4b4eebe 100644 --- a/3rdParty/Boost/src/boost/range/size.hpp +++ b/3rdParty/Boost/src/boost/range/size.hpp @@ -15,6 +15,7 @@  # pragma once  #endif +#include <boost/range/config.hpp>  #include <boost/range/begin.hpp>  #include <boost/range/end.hpp>  #include <boost/range/difference_type.hpp> @@ -22,13 +23,28 @@  namespace boost  { +    namespace range_detail +    { +        template<class SinglePassRange> +        inline BOOST_DEDUCED_TYPENAME range_difference<SinglePassRange>::type +        range_calculate_size(const SinglePassRange& rng) +        { +            BOOST_ASSERT( (boost::end(rng) - boost::begin(rng)) >= 0 && +                          "reachability invariant broken!" ); +            return boost::end(rng) - boost::begin(rng); +        } +    } -    template< class T > -    inline BOOST_DEDUCED_TYPENAME range_difference<T>::type size( const T& r ) +    template<class SinglePassRange> +    inline BOOST_DEDUCED_TYPENAME range_difference<SinglePassRange>::type +    size(const SinglePassRange& rng)      { -        BOOST_ASSERT( (boost::end( r ) - boost::begin( r )) >= 0 && -                      "reachability invariant broken!" ); -        return boost::end( r ) - boost::begin( r ); +#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \ +    !BOOST_WORKAROUND(__GNUC__, < 3) \ +    /**/ +        using namespace range_detail; +#endif +        return range_calculate_size(rng);      }  } // namespace 'boost' diff --git a/3rdParty/Boost/src/boost/serialization/access.hpp b/3rdParty/Boost/src/boost/serialization/access.hpp deleted file mode 100644 index 40256d6..0000000 --- a/3rdParty/Boost/src/boost/serialization/access.hpp +++ /dev/null @@ -1,147 +0,0 @@ -#ifndef BOOST_SERIALIZATION_ACCESS_HPP -#define BOOST_SERIALIZATION_ACCESS_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// access.hpp: interface for serialization system. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <boost/config.hpp> - -#include <boost/serialization/pfto.hpp> - -namespace boost { - -namespace archive { -namespace detail { -    template<class Archive, class T> -    class iserializer; -    template<class Archive, class T> -    class oserializer; -} // namespace detail -} // namespace archive - -namespace serialization { - -// forward declarations -template<class Archive, class T> -inline void serialize_adl(Archive &, T &, const unsigned int); -namespace detail { -    template<class Archive, class T> -    struct member_saver; -    template<class Archive, class T> -    struct member_loader; -} // namespace detail - -// use an "accessor class so that we can use:  -// "friend class boost::serialization::access;"  -// in any serialized class to permit clean, safe access to private class members -// by the serialization system - -class access { -public: -    // grant access to "real" serialization defaults -#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS -public: -#else -    template<class Archive, class T> -    friend struct detail::member_saver; -    template<class Archive, class T> -    friend struct detail::member_loader; -    template<class Archive, class T> -    friend class archive::detail::iserializer; -    template<class Archive, class T> -    friend class archive::detail::oserializer; -    template<class Archive, class T> -    friend inline void serialize( -        Archive & ar,  -        T & t,  -        const BOOST_PFTO unsigned int file_version -    ); -    template<class Archive, class T> -    friend inline void save_construct_data( -        Archive & ar,  -        const T * t,  -        const BOOST_PFTO unsigned int file_version -    ); -    template<class Archive, class T> -    friend inline void load_construct_data( -        Archive & ar,  -        T * t,  -        const BOOST_PFTO unsigned int file_version -    ); -#endif - -    // pass calls to users's class implementation -    template<class Archive, class T> -    static void member_save( -        Archive & ar,  -        //const T & t, -        T & t, -        const unsigned int file_version -    ){ -        t.save(ar, file_version); -    } -    template<class Archive, class T> -    static void member_load( -        Archive & ar,  -        T & t, -        const unsigned int file_version -    ){ -        t.load(ar, file_version); -    } -    template<class Archive, class T> -    static void serialize( -        Archive & ar,  -        T & t,  -        const unsigned int file_version -    ){ -        // note: if you get a compile time error here with a -        // message something like: -        // cannot convert parameter 1 from <file type 1> to <file type 2 &> -        // a likely possible cause is that the class T contains a  -        // serialize function - but that serialize function isn't  -        // a template and corresponds to a file type different than -        // the class Archive.  To resolve this, don't include an -        // archive type other than that for which the serialization -        // function is defined!!! -        t.serialize(ar, file_version); -    } -    template<class T> -    static void destroy( const T * t) // const appropriate here? -    { -        // the const business is an MSVC 6.0 hack that should be -        // benign on everything else -        delete const_cast<T *>(t); -    } -    template<class T> -    static void construct(T * t){ -        // default is inplace invocation of default constructor -        // Note the :: before the placement new. Required if the -        // class doesn't have a class-specific placement new defined. -        ::new(t)T; -    } -    template<class T, class U> -    static T & cast_reference(U & u){ -        return static_cast<T &>(u); -    } -    template<class T, class U> -    static T * cast_pointer(U * u){ -        return static_cast<T *>(u); -    } -}; - -} // namespace serialization -} // namespace boost - -#endif // BOOST_SERIALIZATION_ACCESS_HPP diff --git a/3rdParty/Boost/src/boost/serialization/base_object.hpp b/3rdParty/Boost/src/boost/serialization/base_object.hpp deleted file mode 100644 index b840d25..0000000 --- a/3rdParty/Boost/src/boost/serialization/base_object.hpp +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef BOOST_SERIALIZATION_BASE_OBJECT_HPP -#define BOOST_SERIALIZATION_BASE_OBJECT_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// base_object.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -// if no archive headers have been included this is a no op -// this is to permit BOOST_EXPORT etc to be included in a  -// file declaration header - -#include <boost/config.hpp> -#include <boost/detail/workaround.hpp> - -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/int.hpp> -#include <boost/mpl/bool.hpp> -#include <boost/mpl/identity.hpp> - -#include <boost/type_traits/is_base_and_derived.hpp> -#include <boost/type_traits/is_pointer.hpp> -#include <boost/type_traits/is_const.hpp> -#include <boost/type_traits/is_polymorphic.hpp> - -#include <boost/static_assert.hpp> -#include <boost/serialization/access.hpp> -#include <boost/serialization/force_include.hpp> -#include <boost/serialization/void_cast_fwd.hpp> - -namespace boost { -namespace serialization { - -namespace detail -{ -    // get the base type for a given derived type -    // preserving the const-ness -    template<class B, class D> -    struct base_cast -    { -        typedef BOOST_DEDUCED_TYPENAME -        mpl::if_< -            is_const<D>, -            const B, -            B -        >::type type; -        BOOST_STATIC_ASSERT(is_const<type>::value == is_const<D>::value); -    }; - -    // only register void casts if the types are polymorphic -    template<class Base, class Derived> -    struct base_register -    { -        struct polymorphic { -            static void const * invoke(){ -                Base const * const b = 0; -                Derived const * const d = 0; -                return & void_cast_register(d, b); -            } -        }; -        struct non_polymorphic { -            static void const * invoke(){ -                return 0; -            } -        }; -        static void const * invoke(){ -            typedef BOOST_DEDUCED_TYPENAME mpl::eval_if< -                is_polymorphic<Base>, -                mpl::identity<polymorphic>, -                mpl::identity<non_polymorphic> -            >::type type; -            return type::invoke(); -        } -    }; - -} // namespace detail -#if defined(__BORLANDC__) && __BORLANDC__ < 0x610 -template<class Base, class Derived> -const Base &  -base_object(const Derived & d) -{ -    BOOST_STATIC_ASSERT(! is_pointer<Derived>::value); -    detail::base_register<Base, Derived>::invoke(); -    return access::cast_reference<const Base, Derived>(d); -} -#else -template<class Base, class Derived> -BOOST_DEDUCED_TYPENAME detail::base_cast<Base, Derived>::type &  -base_object(Derived &d) -{ -    BOOST_STATIC_ASSERT(( is_base_and_derived<Base,Derived>::value)); -    BOOST_STATIC_ASSERT(! is_pointer<Derived>::value); -    typedef BOOST_DEDUCED_TYPENAME detail::base_cast<Base, Derived>::type type; -    detail::base_register<type, Derived>::invoke(); -    return access::cast_reference<type, Derived>(d); -} -#endif - -} // namespace serialization -} // namespace boost - -#endif // BOOST_SERIALIZATION_BASE_OBJECT_HPP diff --git a/3rdParty/Boost/src/boost/serialization/collection_size_type.hpp b/3rdParty/Boost/src/boost/serialization/collection_size_type.hpp deleted file mode 100644 index 2dd8fa7..0000000 --- a/3rdParty/Boost/src/boost/serialization/collection_size_type.hpp +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef BOOST_SERIALIZATION_COLLECTION_SIZE_TYPE_HPP -#define BOOST_SERIALIZATION_COLLECTION_SIZE_TYPE_HPP - -// (C) Copyright 2005 Matthias Troyer -// 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) - -#include <cstddef> // size_t -#include <boost/serialization/strong_typedef.hpp> -#include <boost/serialization/level.hpp> -#include <boost/serialization/split_free.hpp> -#include <boost/serialization/is_bitwise_serializable.hpp> - -namespace boost {  -namespace serialization { - -//BOOST_STRONG_TYPEDEF(std::size_t, collection_size_type) - -class collection_size_type { -private: -    typedef std::size_t base_type; -    base_type t; -public: -    collection_size_type(): t(0) {}; -    explicit collection_size_type(const std::size_t & t_) :  -        t(t_) -    {} -    collection_size_type(const collection_size_type & t_) :  -        t(t_.t) -    {} -    collection_size_type & operator=(const collection_size_type & rhs){ -        t = rhs.t;  -        return *this; -    } -    collection_size_type & operator=(const unsigned int & rhs){ -        t = rhs;  -        return *this; -    } -    // used for text output -    operator base_type () const { -        return t; -    }                 -    // used for text input -    operator base_type & () { -        return t; -    }                 -    bool operator==(const collection_size_type & rhs) const { -        return t == rhs.t; -    }  -    bool operator<(const collection_size_type & rhs) const { -        return t < rhs.t; -    }    -}; - - -} } // end namespace boost::serialization - -BOOST_CLASS_IMPLEMENTATION(collection_size_type, primitive_type) -BOOST_IS_BITWISE_SERIALIZABLE(collection_size_type) - -#endif //BOOST_SERIALIZATION_COLLECTION_SIZE_TYPE_HPP diff --git a/3rdParty/Boost/src/boost/serialization/force_include.hpp b/3rdParty/Boost/src/boost/serialization/force_include.hpp deleted file mode 100644 index a18a8a1..0000000 --- a/3rdParty/Boost/src/boost/serialization/force_include.hpp +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef BOOST_SERIALIZATION_FORCE_INCLUDE_HPP -#define BOOST_SERIALIZATION_FORCE_INCLUDE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// force_include.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <boost/config.hpp> - -// the following help macro is to guarentee that certain coded -// is not removed by over-eager linker optimiser.  In certain cases -// we create static objects must be created but are actually never -// referenced - creation has a side-effect such as global registration -// which is important to us. We make an effort to refer these objects -// so that a smart linker won't remove them as being unreferenced. -// In microsoft compilers, inlining the code that does the referring -// means the code gets lost and the static object is not included -// in the library and hence never registered.  This manifests itself -// in an ungraceful crash at runtime when (and only when) built in -// release mode. - -#if defined(BOOST_HAS_DECLSPEC) && !defined(__COMO__) -#   if defined(__BORLANDC__) -#       define BOOST_DLLEXPORT __export -#   else -#       define BOOST_DLLEXPORT __declspec(dllexport) -#   endif -#elif ! defined(_WIN32) && ! defined(_WIN64) -#   if defined(__MWERKS__) -#       define BOOST_DLLEXPORT __declspec(dllexport) -#   elif defined(__GNUC__) && (__GNUC__ >= 3) -#       define BOOST_USED __attribute__ ((used)) -#   elif defined(__IBMCPP__) && (__IBMCPP__ >= 1110) -#       define BOOST_USED __attribute__ ((used)) -#   elif defined(__INTEL_COMPILER) && (BOOST_INTEL_CXX_VERSION >= 800) -#       define BOOST_USED __attribute__ ((used)) -#   endif -#endif - -#ifndef BOOST_USED -#    define BOOST_USED -#endif - -#ifndef BOOST_DLLEXPORT -#    define BOOST_DLLEXPORT -#endif - -#endif // BOOST_SERIALIZATION_FORCE_INCLUDE_HPP diff --git a/3rdParty/Boost/src/boost/serialization/is_bitwise_serializable.hpp b/3rdParty/Boost/src/boost/serialization/is_bitwise_serializable.hpp deleted file mode 100644 index 34eec40..0000000 --- a/3rdParty/Boost/src/boost/serialization/is_bitwise_serializable.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// (C) Copyright 2007 Matthias Troyer - -// 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) - -//  Authors: Matthias Troyer - -/** @file is_bitwise_serializable.hpp - * - *  This header provides a traits class for determining whether a class - * can be serialized (in a non-portable way) just by copying the bits. - */ - - -#ifndef BOOST_SERIALIZATION_IS_BITWISE_SERIALIZABLE_HPP -#define BOOST_SERIALIZATION_IS_BITWISE_SERIALIZABLE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include <boost/mpl/bool.hpp> -#include <boost/type_traits/is_arithmetic.hpp> - -namespace boost { -namespace serialization { -    template<class T> -    struct is_bitwise_serializable -     : public is_arithmetic< T > -    {}; -} // namespace serialization -} // namespace boost - - -// define a macro to make explicit designation of this more transparent -#define BOOST_IS_BITWISE_SERIALIZABLE(T)              \ -namespace boost {                                     \ -namespace serialization {                             \ -template<>                                            \ -struct is_bitwise_serializable< T > : mpl::true_ {};  \ -}}                                                    \ -/**/ - -#endif //BOOST_SERIALIZATION_IS_BITWISE_SERIALIZABLE_HPP diff --git a/3rdParty/Boost/src/boost/serialization/level.hpp b/3rdParty/Boost/src/boost/serialization/level.hpp deleted file mode 100644 index ce507b2..0000000 --- a/3rdParty/Boost/src/boost/serialization/level.hpp +++ /dev/null @@ -1,125 +0,0 @@ -#ifndef BOOST_SERIALIZATION_LEVEL_HPP -#define BOOST_SERIALIZATION_LEVEL_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// level.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <boost/config.hpp> -#include <boost/detail/workaround.hpp> - -#include <boost/type_traits/is_fundamental.hpp> -#include <boost/type_traits/is_enum.hpp> -#include <boost/type_traits/is_array.hpp> -#include <boost/type_traits/is_class.hpp> -#include <boost/type_traits/is_base_and_derived.hpp> - -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/int.hpp> -#include <boost/mpl/integral_c.hpp> -#include <boost/mpl/integral_c_tag.hpp> -#include <boost/mpl/aux_/nttp_decl.hpp> - -#include <boost/serialization/level_enum.hpp> - -namespace boost { -namespace serialization { - -struct basic_traits; - -// default serialization implementation level -template<class T> -struct implementation_level_impl { -    template<class U> -    struct traits_class_level { -        typedef BOOST_DEDUCED_TYPENAME U::level type; -    }; - -    typedef mpl::integral_c_tag tag; -    // note: at least one compiler complained w/o the full qualification -    // on basic traits below -    typedef -        BOOST_DEDUCED_TYPENAME mpl::eval_if< -            is_base_and_derived<boost::serialization::basic_traits, T>, -            traits_class_level< T >, -        //else -        BOOST_DEDUCED_TYPENAME mpl::eval_if< -            is_fundamental< T >, -            mpl::int_<primitive_type>, -        //else -        BOOST_DEDUCED_TYPENAME mpl::eval_if< -            is_class< T >, -            mpl::int_<object_class_info>, -        //else -        BOOST_DEDUCED_TYPENAME mpl::eval_if< -            is_array< T >, -            #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x560)) -                mpl::int_<not_serializable>, -            #else -                mpl::int_<object_serializable>, -            #endif -        //else -        BOOST_DEDUCED_TYPENAME mpl::eval_if< -            is_enum< T >, -            //#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x560)) -            //    mpl::int_<not_serializable>, -            //#else -                mpl::int_<primitive_type>, -            //#endif -        //else -            mpl::int_<not_serializable> -        > -        > -        > -        > -        >::type type; -        // vc 7.1 doesn't like enums here -    BOOST_STATIC_CONSTANT(int, value = type::value); -}; - -template<class T> -struct implementation_level :  -    public implementation_level_impl<const T> -{ -}; - -template<class T, BOOST_MPL_AUX_NTTP_DECL(int, L) > -inline bool operator>=(implementation_level< T > t, enum level_type l) -{ -    return t.value >= (int)l; -} - -} // namespace serialization -} // namespace boost - -// specify the level of serialization implementation for the class -// require that class info saved when versioning is used -#define BOOST_CLASS_IMPLEMENTATION(T, E)                 \ -    namespace boost {                                    \ -    namespace serialization {                            \ -    template <>                                          \ -    struct implementation_level_impl< const T >                     \ -    {                                                    \ -        typedef mpl::integral_c_tag tag;                 \ -        typedef mpl::int_< E > type;                     \ -        BOOST_STATIC_CONSTANT(                           \ -            int,                                         \ -            value = implementation_level_impl::type::value    \ -        );                                               \ -    };                                                   \ -    }                                                    \ -    } -    /**/ - -#endif // BOOST_SERIALIZATION_LEVEL_HPP diff --git a/3rdParty/Boost/src/boost/serialization/level_enum.hpp b/3rdParty/Boost/src/boost/serialization/level_enum.hpp deleted file mode 100644 index 11bd17f..0000000 --- a/3rdParty/Boost/src/boost/serialization/level_enum.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef BOOST_SERIALIZATION_LEVEL_ENUM_HPP -#define BOOST_SERIALIZATION_LEVEL_ENUM_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// level_enum.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -namespace boost { -namespace serialization { - -// for each class used in the program, specify which level -// of serialization should be implemented - -// names for each level -enum level_type -{ -    // Don't serialize this type. An attempt to do so should -    // invoke a compile time assertion. -    not_serializable = 0, -    // write/read this type directly to the archive. In this case -    // serialization code won't be called.  This is the default -    // case for fundamental types.  It presumes a member function or -    // template in the archive class that can handle this type. -    // there is no runtime overhead associated reading/writing -    // instances of this level -    primitive_type = 1, -    // Serialize the objects of this type using the objects "serialize" -    // function or template. This permits values to be written/read -    // to/from archives but includes no class or version information.  -    object_serializable = 2, -    /////////////////////////////////////////////////////////////////// -    // once an object is serialized at one of the above levels, the -    // corresponding archives cannot be read if the implementation level -    // for the archive object is changed.   -    /////////////////////////////////////////////////////////////////// -    // Add class information to the archive.  Class information includes -    // implementation level, class version and class name if available -    object_class_info = 3 -}; - -} // namespace serialization -} // namespace boost - -#endif // BOOST_SERIALIZATION_LEVEL_ENUM_HPP diff --git a/3rdParty/Boost/src/boost/serialization/nvp.hpp b/3rdParty/Boost/src/boost/serialization/nvp.hpp deleted file mode 100644 index 2d7f4ed..0000000 --- a/3rdParty/Boost/src/boost/serialization/nvp.hpp +++ /dev/null @@ -1,144 +0,0 @@ -#ifndef BOOST_SERIALIZATION_NVP_HPP -#define BOOST_SERIALIZATION_NVP_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// nvp.hpp: interface for serialization system. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <utility> - -#include <boost/config.hpp> -#include <boost/detail/workaround.hpp> -// supress noise -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1200) -# pragma warning (disable : 4786) // too long name, harmless warning -#endif - -#include <boost/mpl/integral_c.hpp> -#include <boost/mpl/integral_c_tag.hpp> - -#include <boost/serialization/level.hpp> -#include <boost/serialization/tracking.hpp> -#include <boost/serialization/split_member.hpp> -#include <boost/serialization/base_object.hpp> -#include <boost/serialization/traits.hpp> -#include <boost/serialization/wrapper.hpp> - -namespace boost { -namespace serialization { - -template<class T> -struct nvp :  -    public std::pair<const char *, T *>, -    public wrapper_traits<const nvp< T > > -{ -    explicit nvp(const char * name_, T & t) : -        // note: redundant cast works around borland issue -        // note: added _ to suppress useless gcc warning -        std::pair<const char *, T *>(name_, (T*)(& t)) -    {} -    nvp(const nvp & rhs) :  -        // note: redundant cast works around borland issue -        std::pair<const char *, T *>(rhs.first, (T*)rhs.second) -    {} - -    const char * name() const { -        return this->first; -    } -    T & value() const { -        return *(this->second); -    } - -    const T & const_value() const { -        return *(this->second); -    } - -    // True64 compiler complains with a warning about the use of -    // the name "Archive" hiding some higher level usage.  I'm sure this -    // is an error but I want to accomodated as it generates a long warning -    // listing and might be related to a lot of test failures. -    // default treatment for name-value pairs. The name is -    // just discarded and only the value is serialized.  -    template<class Archivex> -    void save( -        Archivex & ar,  -        const unsigned int /* file_version */ -    ) const { -        // CodeWarrior 8.x can't seem to resolve the << op for a rhs of "const T *" -        ar.operator<<(const_value()); -    } -    template<class Archivex> -    void load( -        Archivex & ar,  -        const unsigned int /* file_version */ -    ){ -        // CodeWarrior 8.x can't seem to resolve the >> op for a rhs of "const T *" -        ar.operator>>(value()); -    } -    BOOST_SERIALIZATION_SPLIT_MEMBER() -}; - -template<class T> -inline -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -const -#endif -nvp< T > make_nvp(const char * name, T & t){ -    return nvp< T >(name, t); -} - -// to maintain efficiency and portability, we want to assign -// specific serialization traits to all instances of this wrappers. -// we can't strait forward method below as it depends upon -// Partial Template Specialization and doing so would mean that wrappers -// wouldn't be treated the same on different platforms.  This would -// break archive portability. Leave this here as reminder not to use it !!! -#if 0 // #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -template <class T> -struct implementation_level<nvp< T > > -{ -    typedef mpl::integral_c_tag tag; -    typedef mpl::int_<object_serializable> type; -    BOOST_STATIC_CONSTANT(int, value = implementation_level::type::value); -}; - -// nvp objects are generally created on the stack and are never tracked -template<class T> -struct tracking_level<nvp< T > > -{ -    typedef mpl::integral_c_tag tag; -    typedef mpl::int_<track_never> type; -    BOOST_STATIC_CONSTANT(int, value = tracking_level::type::value); -}; - -#endif - -} // seralization -} // boost - -#include <boost/preprocessor/stringize.hpp> - -#define BOOST_SERIALIZATION_NVP(name)                              \ -    boost::serialization::make_nvp(BOOST_PP_STRINGIZE(name), name) -/**/ - -#define BOOST_SERIALIZATION_BASE_OBJECT_NVP(name)                  \ -    boost::serialization::make_nvp(                                \ -        BOOST_PP_STRINGIZE(name),                                  \ -        boost::serialization::base_object<name >(*this)            \ -    ) -/**/ - -#endif // BOOST_SERIALIZATION_NVP_HPP diff --git a/3rdParty/Boost/src/boost/serialization/pfto.hpp b/3rdParty/Boost/src/boost/serialization/pfto.hpp deleted file mode 100644 index 8d98463..0000000 --- a/3rdParty/Boost/src/boost/serialization/pfto.hpp +++ /dev/null @@ -1,78 +0,0 @@ -#ifndef BOOST_SERIALIZATION_PFTO_HPP -#define BOOST_SERIALIZATION_PFTO_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// pfto.hpp: workarounds for compilers which have problems supporting -// Partial Function Template Ordering (PFTO). - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org/libs/serialization for updates, documentation, and revision history. -// PFTO version is used to specify the last argument of certain functions -// Function it is used to support  compilers that fail to support correct Partial  -// Template Ordering -#include <boost/config.hpp> - -// some compilers can use an exta argument and use function overloading -// to choose desired function.  This extra argument is long in the default -// function implementation and int for the rest.  The function is called -// with an int argument.  This first attempts to match functions with an -// int argument before the default one (with a long argument).  This is -// known to function with VC 6.0. On other compilers this fails (Borland) -// or causes other problems (GCC).  note: this  - -#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) -    #define BOOST_PFTO long -#else -    #define BOOST_PFTO -#endif - -// here's another approach.  Rather than use a default function - make sure -// there is no default at all by requiring that all function invocations -// have a "wrapped" argument type.  This solves a problem with VC 6.0 -// (and perhaps others) while implementing templated constructors. - -namespace boost { -namespace serialization { - -template<class T> -struct pfto_wrapper { -    const T & t; -    operator const T & (){ -        return t; -    } -    pfto_wrapper (const T & rhs) : t(rhs) {} -}; - -template<class T> -pfto_wrapper< T > make_pfto_wrapper(const T & t, BOOST_PFTO int){ -    return pfto_wrapper< T >(t); -} - -template<class T> -pfto_wrapper< T > make_pfto_wrapper(const pfto_wrapper< T > & t, int){ -    return t; -} - -} // namespace serialization -} // namespace boost - -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -    #define BOOST_PFTO_WRAPPER(T) \ -        boost::serialization::pfto_wrapper< T > -    #define BOOST_MAKE_PFTO_WRAPPER(t) \ -        boost::serialization::make_pfto_wrapper(t, 0) -#else -    #define BOOST_PFTO_WRAPPER(T) T -    #define BOOST_MAKE_PFTO_WRAPPER(t) t -#endif - -#endif // BOOST_SERIALIZATION_PFTO_HPP diff --git a/3rdParty/Boost/src/boost/serialization/serialization.hpp b/3rdParty/Boost/src/boost/serialization/serialization.hpp deleted file mode 100644 index f17e8dd..0000000 --- a/3rdParty/Boost/src/boost/serialization/serialization.hpp +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef BOOST_SERIALIZATION_SERIALIZATION_HPP -#define BOOST_SERIALIZATION_SERIALIZATION_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#if defined(_MSC_VER) && (_MSC_VER >= 1310) -#  pragma warning (disable : 4675) // suppress ADL warning -#endif - -#include <boost/config.hpp> -#include <boost/serialization/strong_typedef.hpp> -#include <boost/serialization/pfto.hpp> - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// serialization.hpp: interface for serialization system. - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -////////////////////////////////////////////////////////////////////// -// public interface to serialization.  - -///////////////////////////////////////////////////////////////////////////// -// layer 0 - intrusive verison -// declared and implemented for each user defined class to be serialized -// -//  template<Archive> -//  serialize(Archive &ar, const unsigned int file_version){ -//      ar & base_object<base>(*this) & member1 & member2 ... ; -//  } - -///////////////////////////////////////////////////////////////////////////// -// layer 1 - layer that routes member access through the access class. -// this is what permits us to grant access to private class member functions -// by specifying friend class boost::serialization::access - -#include <boost/serialization/access.hpp> - -///////////////////////////////////////////////////////////////////////////// -// layer 2 - default implementation of non-intrusive serialization. -// -// note the usage of function overloading to compensate that C++ does not -// currently support Partial Template Specialization for function templates  -// We have declared the version number as "const unsigned long".   -// Overriding templates for specific data types should declare the version -// number as "const unsigned int". Template matching will first be applied -// to functions with the same version types - that is the overloads.   -// If there is no declared function prototype that matches, the second argument -// will be converted to "const unsigned long" and a match will be made with  -// one of the default template functions below. - -namespace boost { -namespace serialization { - -BOOST_STRONG_TYPEDEF(unsigned int, version_type) - -// default implementation - call the member function "serialize" -template<class Archive, class T> -inline void serialize( -    Archive & ar, T & t, const BOOST_PFTO unsigned int file_version -){ -    access::serialize(ar, t, static_cast<unsigned int>(file_version)); -} - -// save data required for construction -template<class Archive, class T> -inline void save_construct_data( -    Archive & /*ar*/,  -    const T * /*t*/,  -    const BOOST_PFTO unsigned int /*file_version */ -){ -    // default is to save no data because default constructor -    // requires no arguments. -} - -// load data required for construction and invoke constructor in place -template<class Archive, class T> -inline void load_construct_data( -    Archive & /*ar*/,  -    T * t,  -    const BOOST_PFTO unsigned int /*file_version*/ -){ -    // default just uses the default constructor.  going -    // through access permits usage of otherwise private default -    // constructor -    access::construct(t); -} - -///////////////////////////////////////////////////////////////////////////// -// layer 3 - move call into serialization namespace so that ADL will function -// in the manner we desire. -// -// on compilers which don't implement ADL. only the current namespace -// i.e. boost::serialization will be searched. -//  -// on compilers which DO implement ADL -// serialize overrides can be in any of the following -//  -// 1) same namepace as Archive -// 2) same namespace as T -// 3) boost::serialization -// -// Due to Martin Ecker - -template<class Archive, class T> -inline void serialize_adl( -    Archive & ar,  -    T & t,  -    const unsigned int file_version -){ -    // note usage of function overloading to delay final resolution -    // until the point of instantiation.  This works around the two-phase -    // lookup "feature" which inhibits redefintion of a default function -    // template implementation. Due to Robert Ramey -    // -    // Note that this trick generates problems for compiles which don't support -    // PFTO, suppress it here.  As far as we know, there are no compilers -    // which fail to support PFTO while supporting two-phase lookup. -    #if ! defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) -        const version_type v(file_version); -        serialize(ar, t, v); -    #else -        serialize(ar, t, file_version); -    #endif -} - -template<class Archive, class T> -inline void save_construct_data_adl( -    Archive & ar,  -    const T * t,  -    const unsigned int file_version -){ -    // see above -    #if ! defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) -        const version_type v(file_version); -        save_construct_data(ar, t, v); -    #else -        save_construct_data(ar, t, file_version); -    #endif -} - -template<class Archive, class T> -inline void load_construct_data_adl( -    Archive & ar,  -    T * t,  -    const unsigned int file_version -){ -    // see above comment -    #if ! defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) -        const version_type v(file_version); -        load_construct_data(ar, t, v); -    #else -        load_construct_data(ar, t, file_version); -    #endif -} - -} // namespace serialization -} // namespace boost - -#endif //BOOST_SERIALIZATION_SERIALIZATION_HPP diff --git a/3rdParty/Boost/src/boost/serialization/split_free.hpp b/3rdParty/Boost/src/boost/serialization/split_free.hpp deleted file mode 100644 index 9dbcd2f..0000000 --- a/3rdParty/Boost/src/boost/serialization/split_free.hpp +++ /dev/null @@ -1,93 +0,0 @@ -#ifndef BOOST_SERIALIZATION_SPLIT_FREE_HPP -#define BOOST_SERIALIZATION_SPLIT_FREE_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// split_free.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <boost/config.hpp> -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/identity.hpp> -#include <boost/serialization/serialization.hpp> - -namespace boost { -namespace archive { -    namespace detail { -        template<class Archive> class interface_oarchive; -        template<class Archive> class interface_iarchive; -    } // namespace detail -} // namespace archive - -namespace serialization { - -//namespace detail { -template<class Archive, class T> -struct free_saver { -    static void invoke( -        Archive & ar,  -        const  T & t,  -        const unsigned int file_version -    ){ -        // use function overload (version_type) to workaround -        // two-phase lookup issue -        const version_type v(file_version); -        save(ar, t, v); -    } -}; -template<class Archive, class T> -struct free_loader { -    static void invoke( -        Archive & ar,  -        T & t,  -        const unsigned int file_version -    ){ -        // use function overload (version_type) to workaround -        // two-phase lookup issue -        const version_type v(file_version); -        load(ar, t, v); -    } -}; -//} // namespace detail - -template<class Archive, class T> -inline void split_free( -    Archive & ar,  -    T & t,  -    const unsigned int file_version -){ -    typedef BOOST_DEDUCED_TYPENAME mpl::eval_if< -        BOOST_DEDUCED_TYPENAME Archive::is_saving, -        mpl::identity</* detail:: */ free_saver<Archive, T> >,  -        mpl::identity</* detail:: */ free_loader<Archive, T> > -    >::type typex; -    typex::invoke(ar, t, file_version); -} - -} // namespace serialization -} // namespace boost - -#define BOOST_SERIALIZATION_SPLIT_FREE(T)       \ -namespace boost { namespace serialization {     \ -template<class Archive>                         \ -inline void serialize(                          \ -        Archive & ar,                               \ -        T & t,                                      \ -        const unsigned int file_version             \ -){                                              \ -        split_free(ar, t, file_version);            \ -}                                               \ -}} -/**/ - -#endif // BOOST_SERIALIZATION_SPLIT_FREE_HPP diff --git a/3rdParty/Boost/src/boost/serialization/split_member.hpp b/3rdParty/Boost/src/boost/serialization/split_member.hpp deleted file mode 100644 index 6987945..0000000 --- a/3rdParty/Boost/src/boost/serialization/split_member.hpp +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef BOOST_SERIALIZATION_SPLIT_MEMBER_HPP -#define BOOST_SERIALIZATION_SPLIT_MEMBER_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// split_member.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <boost/config.hpp> -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/identity.hpp> - -#include <boost/serialization/access.hpp> - -namespace boost { -namespace archive { -    namespace detail { -        template<class Archive> class interface_oarchive; -        template<class Archive> class interface_iarchive; -    } // namespace detail -} // namespace archive - -namespace serialization { -namespace detail { - -    template<class Archive, class T> -    struct member_saver { -        static void invoke( -            Archive & ar,  -            const T & t, -            const unsigned int file_version -        ){ -            access::member_save(ar, t, file_version); -        } -    }; - -    template<class Archive, class T> -    struct member_loader { -        static void invoke( -            Archive & ar,  -            T & t, -            const unsigned int file_version -        ){ -            access::member_load(ar, t, file_version); -        } -    }; - -} // detail - -template<class Archive, class T> -inline void split_member( -    Archive & ar, T & t, const unsigned int file_version -){ -    typedef BOOST_DEDUCED_TYPENAME mpl::eval_if< -        BOOST_DEDUCED_TYPENAME Archive::is_saving, -        mpl::identity<detail::member_saver<Archive, T> >,  -        mpl::identity<detail::member_loader<Archive, T> > -    >::type typex; -    typex::invoke(ar, t, file_version); -} - -} // namespace serialization -} // namespace boost - -// split member function serialize funcition into save/load -#define BOOST_SERIALIZATION_SPLIT_MEMBER()                       \ -template<class Archive>                                          \ -void serialize(                                                  \ -    Archive &ar,                                                 \ -    const unsigned int file_version                              \ -){                                                               \ -    boost::serialization::split_member(ar, *this, file_version); \ -}                                                                \ -/**/ - -#endif // BOOST_SERIALIZATION_SPLIT_MEMBER_HPP diff --git a/3rdParty/Boost/src/boost/serialization/strong_typedef.hpp b/3rdParty/Boost/src/boost/serialization/strong_typedef.hpp deleted file mode 100644 index 647c302..0000000 --- a/3rdParty/Boost/src/boost/serialization/strong_typedef.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef BOOST_SERIALIZATION_STRONG_TYPEDEF_HPP -#define BOOST_SERIALIZATION_STRONG_TYPEDEF_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// strong_typedef.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org/libs/serialization for updates, documentation, and revision history. - -// macro used to implement a strong typedef.  strong typedef -// guarentees that two types are distinguised even though the -// share the same underlying implementation.  typedef does not create -// a new type.  BOOST_STRONG_TYPEDEF(T, D) creates a new type named D -// that operates as a type T. - -#include <boost/config.hpp> -#include <boost/operators.hpp> - -#if !defined(__BORLANDC__) || __BORLANDC__ >= 0x590 -    #define BOOST_STRONG_TYPEDEF(T, D)                              \ -    struct D                                                        \ -        : boost::totally_ordered1< D                                \ -        , boost::totally_ordered2< D, T                             \ -        > >                                                         \ -    {                                                               \ -        T t;                                                        \ -        explicit D(const T t_) : t(t_) {};                          \ -        D(){};                                                      \ -        D(const D & t_) : t(t_.t){}                                 \ -        D & operator=(const D & rhs) { t = rhs.t; return *this;}    \ -        D & operator=(const T & rhs) { t = rhs; return *this;}      \ -        operator const T & () const {return t; }                    \ -        operator T & () { return t; }                               \ -        bool operator==(const D & rhs) const { return t == rhs.t; } \ -        bool operator<(const D & rhs) const { return t < rhs.t; }   \ -    }; -#else -    #define BOOST_STRONG_TYPEDEF(T, D)                              \ -    struct D                                                        \ -        : boost::totally_ordered1< D                                \ -        , boost::totally_ordered2< D, T                             \ -        > >                                                         \ -    {                                                               \ -        T t;                                                        \ -        explicit D(const T t_) : t(t_) {};                          \ -        D(){};                                                      \ -        D(const D & t_) : t(t_.t){}                                 \ -        D & operator=(const D & rhs) { t = rhs.t; return *this;}    \ -        D & operator=(const T & rhs) { t = rhs; return *this;}      \ -        /*operator const T & () const {return t; }*/                \ -        operator T & () { return t; }                               \ -        bool operator==(const D & rhs) const { return t == rhs.t; } \ -        bool operator<(const D & rhs) const { return t < rhs.t; }   \ -    }; -#endif // !defined(__BORLANDC) || __BORLANDC__ >= 0x590 - -#endif // BOOST_SERIALIZATION_STRONG_TYPEDEF_HPP diff --git a/3rdParty/Boost/src/boost/serialization/tracking.hpp b/3rdParty/Boost/src/boost/serialization/tracking.hpp deleted file mode 100644 index fadcbd0..0000000 --- a/3rdParty/Boost/src/boost/serialization/tracking.hpp +++ /dev/null @@ -1,118 +0,0 @@ -#ifndef BOOST_SERIALIZATION_TRACKING_HPP -#define BOOST_SERIALIZATION_TRACKING_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// tracking.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <boost/config.hpp> -#include <boost/static_assert.hpp> -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/identity.hpp> -#include <boost/mpl/int.hpp> -#include <boost/mpl/equal_to.hpp> -#include <boost/mpl/greater.hpp> -#include <boost/mpl/integral_c_tag.hpp> - -#include <boost/type_traits/is_base_and_derived.hpp> -#include <boost/type_traits/is_pointer.hpp> -#include <boost/serialization/level.hpp> -#include <boost/serialization/tracking_enum.hpp> -#include <boost/serialization/type_info_implementation.hpp> - -namespace boost { -namespace serialization { - -struct basic_traits; - -// default tracking level -template<class T> -struct tracking_level_impl { -    template<class U> -    struct traits_class_tracking { -        typedef BOOST_DEDUCED_TYPENAME U::tracking type; -    }; -    typedef mpl::integral_c_tag tag; -    // note: at least one compiler complained w/o the full qualification -    // on basic traits below -    typedef -        BOOST_DEDUCED_TYPENAME mpl::eval_if< -            is_base_and_derived<boost::serialization::basic_traits, T>, -            traits_class_tracking< T >, -        //else -        BOOST_DEDUCED_TYPENAME mpl::eval_if< -            is_pointer< T >, -            // pointers are not tracked by default -            mpl::int_<track_never>, -        //else -        BOOST_DEDUCED_TYPENAME mpl::eval_if< -            // for primitives -            BOOST_DEDUCED_TYPENAME mpl::equal_to< -                implementation_level< T >, -                mpl::int_<primitive_type>  -            >, -            // is never -            mpl::int_<track_never>, -            // otherwise its selective -            mpl::int_<track_selectively> -    >  > >::type type; -    BOOST_STATIC_CONSTANT(int, value = type::value); -}; - -template<class T> -struct tracking_level :  -    public tracking_level_impl<const T> -{ -}; - -template<class T, enum tracking_type L> -inline bool operator>=(tracking_level< T > t, enum tracking_type l) -{ -    return t.value >= (int)l; -} - -} // namespace serialization -} // namespace boost - - -// The STATIC_ASSERT is prevents one from setting tracking for a primitive type.   -// This almost HAS to be an error.  Doing this will effect serialization of all  -// char's in your program which is almost certainly what you don't want to do.   -// If you want to track all instances of a given primitive type, You'll have to  -// wrap it in your own type so its not a primitive anymore.  Then it will compile -// without problem. -#define BOOST_CLASS_TRACKING(T, E)           \ -namespace boost {                            \ -namespace serialization {                    \ -template<>                                   \ -struct tracking_level< T >                   \ -{                                            \ -    typedef mpl::integral_c_tag tag;         \ -    typedef mpl::int_< E> type;              \ -    BOOST_STATIC_CONSTANT(                   \ -        int,                                 \ -        value = tracking_level::type::value  \ -    );                                       \ -    /* tracking for a class  */              \ -    BOOST_STATIC_ASSERT((                    \ -        mpl::greater<                        \ -            /* that is a prmitive */         \ -            implementation_level< T >,       \ -            mpl::int_<primitive_type>        \ -        >::value                             \ -    ));                                      \ -};                                           \ -}} - -#endif // BOOST_SERIALIZATION_TRACKING_HPP diff --git a/3rdParty/Boost/src/boost/serialization/tracking_enum.hpp b/3rdParty/Boost/src/boost/serialization/tracking_enum.hpp deleted file mode 100644 index e4e4e21..0000000 --- a/3rdParty/Boost/src/boost/serialization/tracking_enum.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef BOOST_SERIALIZATION_TRACKING_ENUM_HPP -#define BOOST_SERIALIZATION_TRACKING_ENUM_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// tracking_enum.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -namespace boost { -namespace serialization { - -// addresses of serialized objects may be tracked to avoid saving/loading -// redundant copies.  This header defines a class trait that can be used -// to specify when objects should be tracked - -// names for each tracking level -enum tracking_type -{ -    // never track this type -    track_never = 0, -    // track objects of this type if the object is serialized through a  -    // pointer. -    track_selectively = 1, -    // always track this type -    track_always = 2 -}; - -} // namespace serialization -} // namespace boost - -#endif // BOOST_SERIALIZATION_TRACKING_ENUM_HPP diff --git a/3rdParty/Boost/src/boost/serialization/traits.hpp b/3rdParty/Boost/src/boost/serialization/traits.hpp deleted file mode 100644 index da80009..0000000 --- a/3rdParty/Boost/src/boost/serialization/traits.hpp +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef BOOST_SERIALIZATION_TRAITS_HPP -#define BOOST_SERIALIZATION_TRAITS_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// traits.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -// This header is used to apply serialization traits to templates.  The -// standard system can't be used for platforms which don't support -// Partial Templlate Specialization.   - -// The motivation for this is the Name-Value Pair (NVP) template. -// it has to work the same on all platforms in order for archives -// to be portable accross platforms. - -#include <boost/config.hpp> -#include <boost/static_assert.hpp> - -#include <boost/mpl/int.hpp> -#include <boost/mpl/bool.hpp> -#include <boost/serialization/level_enum.hpp> -#include <boost/serialization/tracking_enum.hpp> - -namespace boost { -namespace serialization { - -// common base class used to detect appended traits class -struct basic_traits {}; - -template <class T> -struct extended_type_info_impl; - -template< -    class T,  -    int Level,  -    int Tracking, -    unsigned int Version = 0, -    class ETII = extended_type_info_impl< T >, -    class Wrapper = mpl::false_ -> -struct traits : public basic_traits { -    BOOST_STATIC_ASSERT(Version == 0 || Level >= object_class_info); -    BOOST_STATIC_ASSERT(Tracking == track_never || Level >= object_serializable); -    typedef BOOST_DEDUCED_TYPENAME mpl::int_<Level> level; -    typedef BOOST_DEDUCED_TYPENAME mpl::int_<Tracking> tracking; -    typedef BOOST_DEDUCED_TYPENAME mpl::int_<Version> version; -    typedef ETII type_info_implementation; -    typedef Wrapper is_wrapper; -}; - -} // namespace serialization -} // namespace boost - -#endif // BOOST_SERIALIZATION_TRAITS_HPP diff --git a/3rdParty/Boost/src/boost/serialization/type_info_implementation.hpp b/3rdParty/Boost/src/boost/serialization/type_info_implementation.hpp deleted file mode 100644 index 00eb152..0000000 --- a/3rdParty/Boost/src/boost/serialization/type_info_implementation.hpp +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef BOOST_SERIALIZATION_TYPE_INFO_IMPLEMENTATION_HPP -#define BOOST_SERIALIZATION_TYPE_INFO_IMPLEMENTATION_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// type_info_implementation.hpp: interface for portable version of type_info - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - - -#include <boost/config.hpp> -#include <boost/detail/workaround.hpp> - -#include <boost/static_assert.hpp> -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/identity.hpp> -#include <boost/type_traits/is_base_and_derived.hpp> -#include <boost/serialization/traits.hpp> - -namespace boost { -namespace serialization { - -// note that T and const T are folded into const T so that -// there is only one table entry per type -template<class T> -struct type_info_implementation { -    template<class U> -    struct traits_class_typeinfo_implementation { -      typedef BOOST_DEDUCED_TYPENAME U::type_info_implementation::type type; -    }; -    // note: at least one compiler complained w/o the full qualification -    // on basic traits below -    typedef  -        BOOST_DEDUCED_TYPENAME mpl::eval_if< -            is_base_and_derived<boost::serialization::basic_traits, T>, -            traits_class_typeinfo_implementation< T >, -        //else -            mpl::identity< -                BOOST_DEDUCED_TYPENAME extended_type_info_impl< T >::type -            > -        >::type type; -}; - -} // namespace serialization -} // namespace boost - -// define a macro to assign a particular derivation of extended_type_info -// to a specified a class.  -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x560)) -#define BOOST_CLASS_TYPE_INFO(T, ETI)              \ -namespace boost {                                  \ -namespace serialization {                          \ -template<>                                         \ -struct type_info_implementation< T > {             \ -    typedef const ETI type;                        \ -};                                                 \ -}                                                  \ -}                                                  \ -/**/ -#else -#define BOOST_CLASS_TYPE_INFO(T, ETI)              \ -namespace boost {                                  \ -namespace serialization {                          \ -template<>                                         \ -struct type_info_implementation< T > {             \ -    typedef ETI type;                              \ -};                                                 \ -template<>                                         \ -struct type_info_implementation< const T > {       \ -    typedef ETI type;                              \ -};                                                 \ -}                                                  \ -}                                                  \ -/**/ -#endif - -#endif /// BOOST_SERIALIZATION_TYPE_INFO_IMPLEMENTATION_HPP diff --git a/3rdParty/Boost/src/boost/serialization/version.hpp b/3rdParty/Boost/src/boost/serialization/version.hpp deleted file mode 100644 index 72862fa..0000000 --- a/3rdParty/Boost/src/boost/serialization/version.hpp +++ /dev/null @@ -1,102 +0,0 @@ -#ifndef BOOST_SERIALIZATION_VERSION_HPP -#define BOOST_SERIALIZATION_VERSION_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// version.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .  -// 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) - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <boost/config.hpp> -#include <boost/mpl/assert.hpp> -#include <boost/mpl/int.hpp> -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/identity.hpp> -#include <boost/mpl/integral_c_tag.hpp> - -#include <boost/type_traits/is_base_and_derived.hpp> - -namespace boost {  -namespace serialization { - -struct basic_traits; - -// default version number is 0. Override with higher version -// when class definition changes. -template<class T> -struct version -{ -    template<class U> -    struct traits_class_version { -        typedef BOOST_DEDUCED_TYPENAME U::version type; -    }; - -    typedef mpl::integral_c_tag tag; -    // note: at least one compiler complained w/o the full qualification -    // on basic traits below -    typedef -        BOOST_DEDUCED_TYPENAME mpl::eval_if< -            is_base_and_derived<boost::serialization::basic_traits,T>, -            traits_class_version< T >, -            mpl::int_<0> -        >::type type; -    BOOST_STATIC_CONSTANT(int, value = version::type::value); -}; - -} // namespace serialization -} // namespace boost - -/* note: at first it seemed that this would be a good place to trap - * as an error an attempt to set a version # for a class which doesn't - * save its class information (including version #) in the archive. - * However, this imposes a requirement that the version be set after - * the implemention level which would be pretty confusing.  If this - * is to be done, do this check in the input or output operators when - * ALL the serialization traits are available.  Included the implementation - * here with this comment as a reminder not to do this! - */ -//#include <boost/serialization/level.hpp> -//#include <boost/mpl/equal_to.hpp> - -#include <boost/mpl/less.hpp> -#include <boost/mpl/comparison.hpp> - -// specify the current version number for the class -// version numbers limited to 8 bits !!! -#define BOOST_CLASS_VERSION(T, N)                                      \ -namespace boost {                                                      \ -namespace serialization {                                              \ -template<>                                                             \ -struct version<T >                                                     \ -{                                                                      \ -    typedef mpl::int_<N> type;                                         \ -    typedef mpl::integral_c_tag tag;                                   \ -    BOOST_STATIC_CONSTANT(int, value = version::type::value);          \ -    BOOST_MPL_ASSERT((                                                 \ -        boost::mpl::less<                                              \ -            boost::mpl::int_<N>,                                       \ -            boost::mpl::int_<256>                                      \ -        >                                                              \ -    ));                                                                \ -    /*                                                                 \ -    BOOST_MPL_ASSERT((                                                 \ -        mpl::equal_to<                                                 \ -            :implementation_level<T >,                                 \ -            mpl::int_<object_class_info>                               \ -        >::value                                                       \ -    ));                                                                \ -    */                                                                 \ -};                                                                     \ -}                                                                      \ -} - -#endif // BOOST_SERIALIZATION_VERSION_HPP diff --git a/3rdParty/Boost/src/boost/serialization/void_cast_fwd.hpp b/3rdParty/Boost/src/boost/serialization/void_cast_fwd.hpp deleted file mode 100644 index c94adb2..0000000 --- a/3rdParty/Boost/src/boost/serialization/void_cast_fwd.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef  BOOST_SERIALIZATION_VOID_CAST_FWD_HPP -#define BOOST_SERIALIZATION_VOID_CAST_FWD_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// void_cast_fwd.hpp:   interface for run-time casting of void pointers. - -// (C) Copyright 2005 Robert Ramey - http://www.rrsd.com .  -// 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) -// gennadiy.rozental@tfn.com - -//  See http://www.boost.org for updates, documentation, and revision history. - -#include <cstddef> // NULL -#include <boost/serialization/force_include.hpp> - -namespace boost { -namespace serialization { -namespace void_cast_detail{ -class void_caster; -} // namespace void_cast_detail -template<class Derived, class Base> -BOOST_DLLEXPORT  -inline const void_cast_detail::void_caster & void_cast_register( -    const Derived * dnull = NULL,  -    const Base * bnull = NULL -) BOOST_USED; -} // namespace serialization -} // namespace boost - -#endif // BOOST_SERIALIZATION_VOID_CAST_HPP diff --git a/3rdParty/Boost/src/boost/serialization/wrapper.hpp b/3rdParty/Boost/src/boost/serialization/wrapper.hpp deleted file mode 100644 index eeb4333..0000000 --- a/3rdParty/Boost/src/boost/serialization/wrapper.hpp +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef BOOST_SERIALIZATION_WRAPPER_HPP -#define BOOST_SERIALIZATION_WRAPPER_HPP - -// (C) Copyright 2005-2006 Matthias Troyer -// 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) - -#include <boost/serialization/traits.hpp> -#include <boost/type_traits/is_base_and_derived.hpp> -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/bool.hpp> - -namespace boost { namespace serialization { - -/// the base class for serialization wrappers -/// -/// wrappers need to be treated differently at various places in the serialization library, -/// e.g. saving of non-const wrappers has to be possible. Since partial specialization -// is not supported by all compilers, we derive all wrappers from wrapper_traits.  - -template< -    class T,  -    int Level = object_serializable,  -    int Tracking = track_never, -    unsigned int Version = 0, -    class ETII = extended_type_info_impl< T > -> -struct wrapper_traits :  -    public traits<T,Level,Tracking,Version,ETII,mpl::true_>  -{}; - -template<class T> -struct is_wrapper_impl : -    boost::mpl::eval_if< -      boost::is_base_and_derived<basic_traits,T>, -      boost::mpl::true_, -      boost::mpl::false_ -    >::type -{}; - -template<class T> -struct is_wrapper { -    typedef BOOST_DEDUCED_TYPENAME is_wrapper_impl<const T>::type type; -}; - -} // serialization -} // boost - -// A macro to define that a class is a wrapper -#define BOOST_CLASS_IS_WRAPPER(T)                       \ -namespace boost {                                       \ -namespace serialization {                               \ -template<>                                              \ -struct is_wrapper_impl<const T> : boost::mpl::true_ {}; \ -}                                                       \ -}                                                       \ -/**/ - -#endif //BOOST_SERIALIZATION_WRAPPER_HPP diff --git a/3rdParty/Boost/src/boost/signals/detail/named_slot_map.hpp b/3rdParty/Boost/src/boost/signals/detail/named_slot_map.hpp index 0528c61..763013f 100644 --- a/3rdParty/Boost/src/boost/signals/detail/named_slot_map.hpp +++ b/3rdParty/Boost/src/boost/signals/detail/named_slot_map.hpp @@ -32,10 +32,10 @@ class stored_group   public:    enum storage_kind { sk_empty, sk_front, sk_back, sk_group }; -  stored_group(storage_kind kind = sk_empty) : kind(kind), group() { } +  stored_group(storage_kind p_kind = sk_empty) : kind(p_kind), group() { }    template<typename T> -  stored_group(const T& group) : kind(sk_group), group(new T(group)) { } +  stored_group(const T& p_group) : kind(sk_group), group(new T(p_group)) { }    bool is_front() const { return kind == sk_front; }    bool is_back() const { return kind == sk_back; } @@ -133,12 +133,12 @@ public:  #endif  private: -  named_slot_map_iterator(group_iterator group, group_iterator last) : -    group(group), last_group(last), slot_assigned(false) +  named_slot_map_iterator(group_iterator giter, group_iterator last) : +    group(giter), last_group(last), slot_assigned(false)    { init_next_group(); } -  named_slot_map_iterator(group_iterator group, group_iterator last, +  named_slot_map_iterator(group_iterator giter, group_iterator last,                            slot_pair_iterator slot) : -    group(group), last_group(last), slot_(slot), slot_assigned(true) +    group(giter), last_group(last), slot_(slot), slot_assigned(true)    { }    void init_next_group() diff --git a/3rdParty/Boost/src/boost/signals/detail/slot_call_iterator.hpp b/3rdParty/Boost/src/boost/signals/detail/slot_call_iterator.hpp index c6706be..0d6afd9 100644 --- a/3rdParty/Boost/src/boost/signals/detail/slot_call_iterator.hpp +++ b/3rdParty/Boost/src/boost/signals/detail/slot_call_iterator.hpp @@ -47,9 +47,9 @@ namespace boost {          friend class iterator_core_access;        public: -        slot_call_iterator(Iterator iter_in, Iterator end_in, Function f, +        slot_call_iterator(Iterator iter_in, Iterator end_in, Function func,                             optional<result_type> &c) -          : iter(iter_in), end(end_in), f(f), cache(&c) +          : iter(iter_in), end(end_in), f(func), cache(&c)          {            iter = std::find_if(iter, end, is_callable());          } diff --git a/3rdParty/Boost/src/boost/signals/signal_template.hpp b/3rdParty/Boost/src/boost/signals/signal_template.hpp index a8420b6..6b0b91a 100644 --- a/3rdParty/Boost/src/boost/signals/signal_template.hpp +++ b/3rdParty/Boost/src/boost/signals/signal_template.hpp @@ -345,8 +345,8 @@ namespace boost {  #endif // BOOST_SIGNALS_NUM_ARGS > 0      call_bound_slot f(&args); -    typedef typename call_bound_slot::result_type result_type; -    optional<result_type> cache; +    typedef typename call_bound_slot::result_type call_result_type; +    optional<call_result_type> cache;      // Let the combiner call the slots via a pair of input iterators      return combiner()(slot_call_iterator(notification.impl->slots_.begin(),                                           impl->slots_.end(), f, cache), @@ -386,8 +386,8 @@ namespace boost {      call_bound_slot f(&args); -    typedef typename call_bound_slot::result_type result_type; -    optional<result_type> cache; +    typedef typename call_bound_slot::result_type call_result_type; +    optional<call_result_type> cache;      // Let the combiner call the slots via a pair of input iterators      return combiner()(slot_call_iterator(notification.impl->slots_.begin(), diff --git a/3rdParty/Boost/src/boost/static_assert.hpp b/3rdParty/Boost/src/boost/static_assert.hpp index 5bded5e..9fe9bc0 100644 --- a/3rdParty/Boost/src/boost/static_assert.hpp +++ b/3rdParty/Boost/src/boost/static_assert.hpp @@ -17,6 +17,12 @@  #include <boost/config.hpp>  #include <boost/detail/workaround.hpp> +#ifndef BOOST_NO_STATIC_ASSERT +#  define BOOST_STATIC_ASSERT_MSG( B, Msg ) static_assert(B, Msg) +#else +#  define BOOST_STATIC_ASSERT_MSG( B, Msg ) BOOST_STATIC_ASSERT( B ) +#endif +  #ifdef __BORLANDC__  //  // workaround for buggy integral-constant expression support: @@ -38,7 +44,7 @@  #  define BOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x)  #endif -#ifdef BOOST_HAS_STATIC_ASSERT +#ifndef BOOST_NO_STATIC_ASSERT  #  define BOOST_STATIC_ASSERT( B ) static_assert(B, #B)  #else @@ -125,7 +131,7 @@ template<int x> struct static_assert_test{};     enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \        = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) }  #endif -#endif // ndef BOOST_HAS_STATIC_ASSERT +#endif // defined(BOOST_NO_STATIC_ASSERT)  #endif // BOOST_STATIC_ASSERT_HPP diff --git a/3rdParty/Boost/src/boost/thread/win32/thread_heap_alloc.hpp b/3rdParty/Boost/src/boost/thread/win32/thread_heap_alloc.hpp index b70623a..c210a91 100644 --- a/3rdParty/Boost/src/boost/thread/win32/thread_heap_alloc.hpp +++ b/3rdParty/Boost/src/boost/thread/win32/thread_heap_alloc.hpp @@ -56,7 +56,7 @@ namespace boost  {      namespace detail      { -        inline BOOST_THREAD_DECL void* allocate_raw_heap_memory(unsigned size) +        inline /*BOOST_THREAD_DECL*/ void* allocate_raw_heap_memory(unsigned size)          {              void* const heap_memory=detail::win32::HeapAlloc(detail::win32::GetProcessHeap(),0,size);              if(!heap_memory) @@ -66,7 +66,7 @@ namespace boost              return heap_memory;          } -        inline BOOST_THREAD_DECL void free_raw_heap_memory(void* heap_memory) +        inline /*BOOST_THREAD_DECL*/ void free_raw_heap_memory(void* heap_memory)          {              BOOST_VERIFY(detail::win32::HeapFree(detail::win32::GetProcessHeap(),0,heap_memory)!=0);          } diff --git a/3rdParty/Boost/src/boost/throw_exception.hpp b/3rdParty/Boost/src/boost/throw_exception.hpp index a384054..a73acb6 100644 --- a/3rdParty/Boost/src/boost/throw_exception.hpp +++ b/3rdParty/Boost/src/boost/throw_exception.hpp @@ -79,7 +79,7 @@ template<class E> BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const                  set_info(                      set_info(                          set_info( -                            enable_error_info(x), +                            boost::enable_error_info(x),                              throw_function(current_function)),                          throw_file(file)),                      throw_line(line))); diff --git a/3rdParty/Boost/src/boost/token_functions.hpp b/3rdParty/Boost/src/boost/token_functions.hpp index 4e2d745..50f8330 100644 --- a/3rdParty/Boost/src/boost/token_functions.hpp +++ b/3rdParty/Boost/src/boost/token_functions.hpp @@ -218,9 +218,9 @@ namespace boost{      {  #if !defined(BOOST_NO_CWCTYPE)        if (sizeof(char_type) == 1) -        return std::isspace(c) != 0; +        return std::isspace(static_cast<int>(c)) != 0;        else -        return std::iswspace(c) != 0; +        return std::iswspace(static_cast<std::wint_t>(c)) != 0;  #else        return static_cast< unsigned >(c) <= 255 && std::isspace(c) != 0;  #endif @@ -230,9 +230,9 @@ namespace boost{      {  #if !defined(BOOST_NO_CWCTYPE)        if (sizeof(char_type) == 1) -        return std::ispunct(c) != 0; +        return std::ispunct(static_cast<int>(c)) != 0;        else -        return std::iswpunct(c) != 0; +        return std::iswpunct(static_cast<std::wint_t>(c)) != 0;  #else        return static_cast< unsigned >(c) <= 255 && std::ispunct(c) != 0;  #endif diff --git a/3rdParty/Boost/src/boost/tuple/detail/tuple_basic.hpp b/3rdParty/Boost/src/boost/tuple/detail/tuple_basic.hpp index 348fd80..88f0d90 100644 --- a/3rdParty/Boost/src/boost/tuple/detail/tuple_basic.hpp +++ b/3rdParty/Boost/src/boost/tuple/detail/tuple_basic.hpp @@ -37,6 +37,7 @@  #include "boost/type_traits/cv_traits.hpp"  #include "boost/type_traits/function_traits.hpp" +#include "boost/utility/swap.hpp"  #include "boost/detail/workaround.hpp" // needed for BOOST_WORKAROUND @@ -86,45 +87,28 @@ namespace detail {  template<class T>  class generate_error; -// - cons getters -------------------------------------------------------- -// called: get_class<N>::get<RETURN_TYPE>(aTuple) - -template< int N > -struct get_class { -  template<class RET, class HT, class TT > -  inline static RET get(const cons<HT, TT>& t) -  { -#if BOOST_WORKAROUND(__IBMCPP__,==600) -    // vacpp 6.0 is not very consistent regarding the member template keyword -    // Here it generates an error when the template keyword is used. -    return get_class<N-1>::get<RET>(t.tail); -#else -    return get_class<N-1>::BOOST_NESTED_TEMPLATE get<RET>(t.tail); -#endif -  } -  template<class RET, class HT, class TT > -  inline static RET get(cons<HT, TT>& t) -  { -#if BOOST_WORKAROUND(__IBMCPP__,==600) -    return get_class<N-1>::get<RET>(t.tail); -#else -    return get_class<N-1>::BOOST_NESTED_TEMPLATE get<RET>(t.tail); -#endif -  } +template<int N> +struct drop_front { +    template<class Tuple> +    struct apply { +        typedef BOOST_DEDUCED_TYPENAME drop_front<N-1>::BOOST_NESTED_TEMPLATE +            apply<Tuple> next; +        typedef BOOST_DEDUCED_TYPENAME next::type::tail_type type; +        static const type& call(const Tuple& tup) { +            return next::call(tup).tail; +        } +    };  };  template<> -struct get_class<0> { -  template<class RET, class HT, class TT> -  inline static RET get(const cons<HT, TT>& t) -  { -    return t.head; -  } -  template<class RET, class HT, class TT> -  inline static RET get(cons<HT, TT>& t) -  { -    return t.head; -  } +struct drop_front<0> { +    template<class Tuple> +    struct apply { +        typedef Tuple type; +        static const type& call(const Tuple& tup) { +            return tup; +        } +    };  };  } // end of namespace detail @@ -140,41 +124,23 @@ struct get_class<0> {  template<int N, class T>  struct element  { -private: -  typedef typename T::tail_type Next; -public: -  typedef typename element<N-1, Next>::type type; -}; -template<class T> -struct element<0,T> -{ -  typedef typename T::head_type type; +  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE +      apply<T>::type::head_type type;  };  template<int N, class T>  struct element<N, const T>  {  private: -  typedef typename T::tail_type Next; -  typedef typename element<N-1, Next>::type unqualified_type; +  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE +      apply<T>::type::head_type unqualified_type;  public:  #if BOOST_WORKAROUND(__BORLANDC__,<0x600)    typedef const unqualified_type type;  #else -  typedef typename boost::add_const<unqualified_type>::type type; -#endif - -}; -template<class T> -struct element<0,const T> -{ -#if BOOST_WORKAROUND(__BORLANDC__,<0x600) -  typedef const typename T::head_type type; -#else -  typedef typename boost::add_const<typename T::head_type>::type type; +  typedef BOOST_DEDUCED_TYPENAME boost::add_const<unqualified_type>::type type;  #endif  }; -  #else // def BOOST_NO_CV_SPECIALIZATIONS  namespace detail { @@ -182,31 +148,16 @@ namespace detail {  template<int N, class T, bool IsConst>  struct element_impl  { -private: -  typedef typename T::tail_type Next; -public: -  typedef typename element_impl<N-1, Next, IsConst>::type type; +  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE +      apply<T>::type::head_type type;  };  template<int N, class T>  struct element_impl<N, T, true /* IsConst */>  { -private: -  typedef typename T::tail_type Next; -public: -  typedef const typename element_impl<N-1, Next, true>::type type; -}; - -template<class T> -struct element_impl<0, T, false /* IsConst */> -{ -  typedef typename T::head_type type; -}; - -template<class T> -struct element_impl<0, T, true /* IsConst */> -{ -  typedef const typename T::head_type type; +  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE +      apply<T>::type::head_type unqualified_type; +  typedef const unqualified_type type;  };  } // end of namespace detail @@ -258,17 +209,10 @@ inline typename access_traits<                    typename element<N, cons<HT, TT> >::type                  >::non_const_type  get(cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) { -#if BOOST_WORKAROUND(__IBMCPP__,==600 ) -  return detail::get_class<N>:: -#else -  return detail::get_class<N>::BOOST_NESTED_TEMPLATE -#endif -         get< -           typename access_traits< -             typename element<N, cons<HT, TT> >::type -           >::non_const_type, -           HT,TT -         >(c); +  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE +      apply<cons<HT, TT> > impl; +  typedef BOOST_DEDUCED_TYPENAME impl::type cons_element; +  return const_cast<cons_element&>(impl::call(c)).head;  }  // get function for const cons-lists, returns a const reference to @@ -279,17 +223,10 @@ inline typename access_traits<                    typename element<N, cons<HT, TT> >::type                  >::const_type  get(const cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) { -#if BOOST_WORKAROUND(__IBMCPP__,==600) -  return detail::get_class<N>:: -#else -  return detail::get_class<N>::BOOST_NESTED_TEMPLATE -#endif -         get< -           typename access_traits< -             typename element<N, cons<HT, TT> >::type -           >::const_type, -           HT,TT -         >(c); +  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE +      apply<cons<HT, TT> > impl; +  typedef BOOST_DEDUCED_TYPENAME impl::type cons_element; +  return impl::call(c).head;  }  // -- the cons template  -------------------------------------------------- @@ -663,18 +600,21 @@ public:  // Swallows any assignment   (by Doug Gregor)  namespace detail { +struct swallow_assign; +typedef void (detail::swallow_assign::*ignore_t)();  struct swallow_assign { - +  swallow_assign(ignore_t(*)(ignore_t)) {}    template<typename T>    swallow_assign const& operator=(const T&) const {      return *this;    }  }; +  } // namespace detail  // "ignore" allows tuple positions to be ignored when using "tie". -detail::swallow_assign const ignore = detail::swallow_assign(); +inline detail::ignore_t ignore(detail::ignore_t) { return 0; }  // ---------------------------------------------------------------------------  // The call_traits for make_tuple @@ -756,6 +696,10 @@ struct make_tuple_traits<const reference_wrapper<T> >{    typedef T& type;  }; +template<> +struct make_tuple_traits<detail::ignore_t(detail::ignore_t)> { +  typedef detail::swallow_assign type; +}; @@ -877,71 +821,154 @@ make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,    return t(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);  } +namespace detail { +template<class T> +struct tie_traits { +  typedef T& type; +}; + +template<> +struct tie_traits<ignore_t(ignore_t)> { +  typedef swallow_assign type; +}; + +template<> +struct tie_traits<void> { +  typedef null_type type; +}; + +template < +  class T0 = void, class T1 = void, class T2 = void, +  class T3 = void, class T4 = void, class T5 = void, +  class T6 = void, class T7 = void, class T8 = void, +  class T9 = void +> +struct tie_mapper { +  typedef +    tuple<typename tie_traits<T0>::type, +          typename tie_traits<T1>::type, +          typename tie_traits<T2>::type, +          typename tie_traits<T3>::type, +          typename tie_traits<T4>::type, +          typename tie_traits<T5>::type, +          typename tie_traits<T6>::type, +          typename tie_traits<T7>::type, +          typename tie_traits<T8>::type, +          typename tie_traits<T9>::type> type; +}; + +}  // Tie function templates ------------------------------------------------- -template<class T1> -inline tuple<T1&> tie(T1& t1) { -  return tuple<T1&> (t1); +template<class T0> +inline typename detail::tie_mapper<T0>::type +tie(T0& t0) { +  typedef typename detail::tie_mapper<T0>::type t; +  return t(t0);  } -template<class T1, class T2> -inline tuple<T1&, T2&> tie(T1& t1, T2& t2) { -  return tuple<T1&, T2&> (t1, t2); +template<class T0, class T1> +inline typename detail::tie_mapper<T0, T1>::type +tie(T0& t0, T1& t1) { +  typedef typename detail::tie_mapper<T0, T1>::type t; +  return t(t0, t1);  } -template<class T1, class T2, class T3> -inline tuple<T1&, T2&, T3&> tie(T1& t1, T2& t2, T3& t3) { -  return tuple<T1&, T2&, T3&> (t1, t2, t3); +template<class T0, class T1, class T2> +inline typename detail::tie_mapper<T0, T1, T2>::type +tie(T0& t0, T1& t1, T2& t2) { +  typedef typename detail::tie_mapper<T0, T1, T2>::type t; +  return t(t0, t1, t2);  } -template<class T1, class T2, class T3, class T4> -inline tuple<T1&, T2&, T3&, T4&> tie(T1& t1, T2& t2, T3& t3, T4& t4) { -  return tuple<T1&, T2&, T3&, T4&> (t1, t2, t3, t4); +template<class T0, class T1, class T2, class T3> +inline typename detail::tie_mapper<T0, T1, T2, T3>::type +tie(T0& t0, T1& t1, T2& t2, T3& t3) { +  typedef typename detail::tie_mapper<T0, T1, T2, T3>::type t; +  return t(t0, t1, t2, t3);  } -template<class T1, class T2, class T3, class T4, class T5> -inline tuple<T1&, T2&, T3&, T4&, T5&> -tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5) { -  return tuple<T1&, T2&, T3&, T4&, T5&> (t1, t2, t3, t4, t5); +template<class T0, class T1, class T2, class T3, class T4> +inline typename detail::tie_mapper<T0, T1, T2, T3, T4>::type +tie(T0& t0, T1& t1, T2& t2, T3& t3, +                  T4& t4) { +  typedef typename detail::tie_mapper<T0, T1, T2, T3, T4>::type t; +  return t(t0, t1, t2, t3, t4);  } -template<class T1, class T2, class T3, class T4, class T5, class T6> -inline tuple<T1&, T2&, T3&, T4&, T5&, T6&> -tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6) { -  return tuple<T1&, T2&, T3&, T4&, T5&, T6&> (t1, t2, t3, t4, t5, t6); +template<class T0, class T1, class T2, class T3, class T4, class T5> +inline typename detail::tie_mapper<T0, T1, T2, T3, T4, T5>::type +tie(T0& t0, T1& t1, T2& t2, T3& t3, +                  T4& t4, T5& t5) { +  typedef typename detail::tie_mapper<T0, T1, T2, T3, T4, T5>::type t; +  return t(t0, t1, t2, t3, t4, t5);  } -template<class T1, class T2, class T3, class T4, class T5, class T6, class T7> -inline tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&> -tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7) { -  return tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&> (t1, t2, t3, t4, t5, t6, t7); +template<class T0, class T1, class T2, class T3, class T4, class T5, class T6> +inline typename detail::tie_mapper<T0, T1, T2, T3, T4, T5, T6>::type +tie(T0& t0, T1& t1, T2& t2, T3& t3, +                  T4& t4, T5& t5, T6& t6) { +  typedef typename detail::tie_mapper +           <T0, T1, T2, T3, T4, T5, T6>::type t; +  return t(t0, t1, t2, t3, t4, t5, t6); +} + +template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, +         class T7> +inline typename detail::tie_mapper<T0, T1, T2, T3, T4, T5, T6, T7>::type +tie(T0& t0, T1& t1, T2& t2, T3& t3, +                  T4& t4, T5& t5, T6& t6, T7& t7) { +  typedef typename detail::tie_mapper +           <T0, T1, T2, T3, T4, T5, T6, T7>::type t; +  return t(t0, t1, t2, t3, t4, t5, t6, t7);  } -template<class T1, class T2, class T3, class T4, class T5, class T6, class T7, -         class T8> -inline tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&> -tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8) { -  return tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&> -           (t1, t2, t3, t4, t5, t6, t7, t8); +template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, +         class T7, class T8> +inline typename detail::tie_mapper +  <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type +tie(T0& t0, T1& t1, T2& t2, T3& t3, +                  T4& t4, T5& t5, T6& t6, T7& t7, +                  T8& t8) { +  typedef typename detail::tie_mapper +           <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type t; +  return t(t0, t1, t2, t3, t4, t5, t6, t7, t8);  } -template<class T1, class T2, class T3, class T4, class T5, class T6, class T7, -         class T8, class T9> -inline tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&> -tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8, -           T9& t9) { -  return tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&> -            (t1, t2, t3, t4, t5, t6, t7, t8, t9); +template<class T0, class T1, class T2, class T3, class T4, class T5, class T6, +         class T7, class T8, class T9> +inline typename detail::tie_mapper +  <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type +tie(T0& t0, T1& t1, T2& t2, T3& t3, +                  T4& t4, T5& t5, T6& t6, T7& t7, +                  T8& t8, T9& t9) { +  typedef typename detail::tie_mapper +           <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type t; +  return t(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);  } -template<class T1, class T2, class T3, class T4, class T5, class T6, class T7, -         class T8, class T9, class T10> -inline tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&, T10&> -tie(T1& t1, T2& t2, T3& t3, T4& t4, T5& t5, T6& t6, T7& t7, T8& t8, -           T9& t9, T10& t10) { -  return tuple<T1&, T2&, T3&, T4&, T5&, T6&, T7&, T8&, T9&, T10&> -           (t1, t2, t3, t4, t5, t6, t7, t8, t9, t10); +template <class T0, class T1, class T2, class T3, class T4, +          class T5, class T6, class T7, class T8, class T9> +void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs, +          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs); +inline void swap(null_type&, null_type&) {} +template<class HH> +inline void swap(cons<HH, null_type>& lhs, cons<HH, null_type>& rhs) { +  ::boost::swap(lhs.head, rhs.head); +} +template<class HH, class TT> +inline void swap(cons<HH, TT>& lhs, cons<HH, TT>& rhs) { +  ::boost::swap(lhs.head, rhs.head); +  ::boost::tuples::swap(lhs.tail, rhs.tail); +} +template <class T0, class T1, class T2, class T3, class T4, +          class T5, class T6, class T7, class T8, class T9> +inline void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs, +          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs) { +  typedef tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> tuple_type; +  typedef typename tuple_type::inherited base; +  ::boost::tuples::swap(static_cast<base&>(lhs), static_cast<base&>(rhs));  }  } // end of namespace tuples diff --git a/3rdParty/Boost/src/boost/tuple/detail/tuple_basic_no_partial_spec.hpp b/3rdParty/Boost/src/boost/tuple/detail/tuple_basic_no_partial_spec.hpp index bb38662..7379bf8 100644 --- a/3rdParty/Boost/src/boost/tuple/detail/tuple_basic_no_partial_spec.hpp +++ b/3rdParty/Boost/src/boost/tuple/detail/tuple_basic_no_partial_spec.hpp @@ -27,6 +27,7 @@  #define BOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP  #include "boost/type_traits.hpp" +#include "boost/utility/swap.hpp"  #include <utility>  #if defined BOOST_MSVC @@ -836,6 +837,29 @@ namespace tuples {  detail::swallow_assign const ignore = detail::swallow_assign(); +template <class T0, class T1, class T2, class T3, class T4, +          class T5, class T6, class T7, class T8, class T9> +void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs, +          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs); +inline void swap(null_type&, null_type&) {} +template<class HH> +inline void swap(cons<HH, null_type>& lhs, cons<HH, null_type>& rhs) { +  ::boost::swap(lhs.head, rhs.head); +} +template<class HH, class TT> +inline void swap(cons<HH, TT>& lhs, cons<HH, TT>& rhs) { +  ::boost::swap(lhs.head, rhs.head); +  ::boost::tuples::swap(lhs.tail, rhs.tail); +} +template <class T0, class T1, class T2, class T3, class T4, +          class T5, class T6, class T7, class T8, class T9> +inline void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs, +          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs) { +  typedef tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> tuple_type; +  typedef typename tuple_type::inherited base; +  ::boost::tuples::swap(static_cast<base&>(lhs), static_cast<base&>(rhs)); +} +  } // namespace tuples  } // namespace boost  #endif // BOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP diff --git a/3rdParty/Boost/src/boost/type_traits/common_type.hpp b/3rdParty/Boost/src/boost/type_traits/common_type.hpp index 58525fd..74b0363 100644 --- a/3rdParty/Boost/src/boost/type_traits/common_type.hpp +++ b/3rdParty/Boost/src/boost/type_traits/common_type.hpp @@ -120,6 +120,11 @@ namespace type_traits_detail {      public:          typedef BOOST_TYPEOF_TPL(declval_b() ? declval_T() : declval_U()) type;  #endif + +#if defined(__GNUC__) && __GNUC__ == 3 && (__GNUC_MINOR__ == 2 || __GNUC_MINOR__ == 3) +    public: +        void public_dummy_function_just_to_silence_warning(); +#endif      };      template <class T> diff --git a/3rdParty/Boost/src/boost/type_traits/function_traits.hpp b/3rdParty/Boost/src/boost/type_traits/function_traits.hpp index 6d708cd..d715345 100644 --- a/3rdParty/Boost/src/boost/type_traits/function_traits.hpp +++ b/3rdParty/Boost/src/boost/type_traits/function_traits.hpp @@ -166,7 +166,7 @@ struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>  template<typename Function>  struct function_traits :  -	public boost::detail::function_traits_helper<typename boost::add_pointer<Function>::type> +  public boost::detail::function_traits_helper<typename boost::add_pointer<Function>::type>  {  }; diff --git a/3rdParty/Boost/src/boost/type_traits/is_const.hpp b/3rdParty/Boost/src/boost/type_traits/is_const.hpp index 812ed15..99b0f36 100644 --- a/3rdParty/Boost/src/boost/type_traits/is_const.hpp +++ b/3rdParty/Boost/src/boost/type_traits/is_const.hpp @@ -59,16 +59,16 @@ template <class T>  struct is_const_rvalue_filter  {  #if BOOST_WORKAROUND(BOOST_MSVC, < 1400) -	BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<typename boost::remove_bounds<T>::type*>::is_const); +   BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<typename boost::remove_bounds<T>::type*>::is_const);  #else -	BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<T*>::is_const); +   BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<T*>::is_const);  #endif  };  #ifndef BOOST_NO_RVALUE_REFERENCES  template <class T>  struct is_const_rvalue_filter<T&&>  { -	BOOST_STATIC_CONSTANT(bool, value = false); +   BOOST_STATIC_CONSTANT(bool, value = false);  };  #endif  } diff --git a/3rdParty/Boost/src/boost/type_traits/is_virtual_base_of.hpp b/3rdParty/Boost/src/boost/type_traits/is_virtual_base_of.hpp index 98ab159..8dcd988 100644 --- a/3rdParty/Boost/src/boost/type_traits/is_virtual_base_of.hpp +++ b/3rdParty/Boost/src/boost/type_traits/is_virtual_base_of.hpp @@ -22,7 +22,7 @@ namespace detail {  #ifdef BOOST_MSVC  #pragma warning( push ) -#pragma warning( disable : 4584 ) +#pragma warning( disable : 4584 4250)  #elif defined __GNUC__  #pragma GCC system_header  #endif diff --git a/3rdParty/Boost/src/boost/type_traits/is_volatile.hpp b/3rdParty/Boost/src/boost/type_traits/is_volatile.hpp index e531263..43c3a8b 100644 --- a/3rdParty/Boost/src/boost/type_traits/is_volatile.hpp +++ b/3rdParty/Boost/src/boost/type_traits/is_volatile.hpp @@ -46,9 +46,9 @@ template <class T>  struct is_volatile_rval_filter  {  #if BOOST_WORKAROUND(BOOST_MSVC, < 1400) -	BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<typename boost::remove_bounds<T>::type*>::is_volatile); +   BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<typename boost::remove_bounds<T>::type*>::is_volatile);  #else -	BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<T*>::is_volatile); +   BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<T*>::is_volatile);  #endif  };  #ifndef BOOST_NO_RVALUE_REFERENCES @@ -59,7 +59,7 @@ struct is_volatile_rval_filter  template <class T>  struct is_volatile_rval_filter<T&&>  { -	BOOST_STATIC_CONSTANT(bool, value = false); +   BOOST_STATIC_CONSTANT(bool, value = false);  };  #endif  } diff --git a/3rdParty/Boost/src/boost/type_traits/remove_cv.hpp b/3rdParty/Boost/src/boost/type_traits/remove_cv.hpp index 668e755..4061fd2 100644 --- a/3rdParty/Boost/src/boost/type_traits/remove_cv.hpp +++ b/3rdParty/Boost/src/boost/type_traits/remove_cv.hpp @@ -32,7 +32,7 @@ namespace detail{  template <class T>  struct rvalue_ref_filter_rem_cv  { -	typedef typename boost::detail::cv_traits_imp<T*>::unqualified_type type; +   typedef typename boost::detail::cv_traits_imp<T*>::unqualified_type type;  };  #ifndef BOOST_NO_RVALUE_REFERENCES @@ -43,7 +43,7 @@ struct rvalue_ref_filter_rem_cv  template <class T>  struct rvalue_ref_filter_rem_cv<T&&>  { -	typedef T&& type; +   typedef T&& type;  };  #endif diff --git a/3rdParty/Boost/src/boost/type_traits/remove_reference.hpp b/3rdParty/Boost/src/boost/type_traits/remove_reference.hpp index a87db33..f453086 100644 --- a/3rdParty/Boost/src/boost/type_traits/remove_reference.hpp +++ b/3rdParty/Boost/src/boost/type_traits/remove_reference.hpp @@ -32,13 +32,13 @@ namespace detail{  template <class T>  struct remove_rvalue_ref  { -	typedef T type; +   typedef T type;  };  #ifndef BOOST_NO_RVALUE_REFERENCES  template <class T>  struct remove_rvalue_ref<T&&>  { -	typedef T type; +   typedef T type;  };  #endif diff --git a/3rdParty/Boost/src/boost/typeof/msvc/typeof_impl.hpp b/3rdParty/Boost/src/boost/typeof/msvc/typeof_impl.hpp index 2f58c18..74ebc70 100644 --- a/3rdParty/Boost/src/boost/typeof/msvc/typeof_impl.hpp +++ b/3rdParty/Boost/src/boost/typeof/msvc/typeof_impl.hpp @@ -153,7 +153,9 @@ namespace boost              };          };  # endif -# if BOOST_WORKAROUND(BOOST_MSVC,==1310) +// EAN: preprocess this block out on advice of Peder Holt +// to eliminate errors in type_traits/common_type.hpp +# if 0 //BOOST_WORKAROUND(BOOST_MSVC,==1310)          template<const std::type_info& ref_type_info>          struct msvc_typeid_wrapper {              typedef typename msvc_extract_type<msvc_typeid_wrapper>::id2type id2type; diff --git a/3rdParty/Boost/src/boost/unordered/detail/buckets.hpp b/3rdParty/Boost/src/boost/unordered/detail/buckets.hpp index b1dee5c..913dbcd 100644 --- a/3rdParty/Boost/src/boost/unordered/detail/buckets.hpp +++ b/3rdParty/Boost/src/boost/unordered/detail/buckets.hpp @@ -64,7 +64,7 @@ namespace boost { namespace unordered_detail {      inline void hash_buckets<A, G>::delete_node(node_ptr b)      {          node* raw_ptr = static_cast<node*>(&*b); -        boost::unordered_detail::destroy(&raw_ptr->value()); +        boost::unordered_detail::destroy(raw_ptr->value_ptr());          real_node_ptr n(node_alloc().address(*raw_ptr));          node_alloc().destroy(n);          node_alloc().deallocate(n, 1); diff --git a/3rdParty/Boost/src/boost/unordered/detail/fwd.hpp b/3rdParty/Boost/src/boost/unordered/detail/fwd.hpp index be4d5e1..471d1d2 100644 --- a/3rdParty/Boost/src/boost/unordered/detail/fwd.hpp +++ b/3rdParty/Boost/src/boost/unordered/detail/fwd.hpp @@ -21,14 +21,14 @@  // This header defines most of the classes used to implement the unordered  // containers. It doesn't include the insert methods as they require a lot -// of preprocessor metaprogramming - they are in insert.hpp +// of preprocessor metaprogramming - they are in unique.hpp and equivalent.hpp.  // Template parameters:  //  // H = Hash Function  // P = Predicate  // A = Value Allocator -// G = Grouped/Ungrouped +// G = Bucket group policy, 'grouped' or 'ungrouped'  // E = Key Extractor  #if !defined(BOOST_NO_RVALUE_REFERENCES) && !defined(BOOST_NO_VARIADIC_TEMPLATES) @@ -90,7 +90,37 @@ namespace boost { namespace unordered_detail {  #pragma warning(pop)  #endif +    //////////////////////////////////////////////////////////////////////////// +    // +    // This section implements buckets and nodes. Here's a rough +    // inheritance diagram, to show how they pull together. +    // +    // For unordered_set/unordered_map: +    // +    // hash_bucket<A> +    //     | +    // ungrouped_node_base<A>     value_base<A::value_type> +    //     |                            | +    //     +--------------+-------------+ +    //                    | +    //         hash_node<A, ungrouped> +    // +    // For unordered_multiset/unordered_multimap: +    // +    // hash_bucket<A> +    //     | +    // grouped_node_base<A>       value_base<A::value_type> +    //     |                            | +    //     +--------------+-------------+ +    //                    | +    //         hash_node<A, grouped> +      // hash_bucket +    // +    // hash_bucket is used for both the buckets and as a base class for +    // nodes. By using 'bucket_ptr' for 'node_ptr', 'next_' can point +    // to either a bucket or a node. This is used later to implement a +    // sentinel at the end of the bucket array.      template <class A>      class hash_bucket @@ -109,6 +139,16 @@ namespace boost { namespace unordered_detail {          hash_bucket() : next_() {}      }; +    // In containers with equivalent keys (unordered_multimap and +    // unordered_multiset) equivalent nodes are grouped together, in +    // containers with unique keys (unordered_map and unordered_set) +    // individual nodes are treated as groups of one. The following two +    // classes implement the data structure. + +    // This is used for containers with unique keys. There are no groups +    // so it doesn't add any extra members, and just treats individual +    // nodes as groups of one. +      template <class A>      struct ungrouped_node_base : hash_bucket<A> {          typedef hash_bucket<A> bucket; @@ -125,6 +165,10 @@ namespace boost { namespace unordered_detail {          static void unlink_nodes(bucket& b, node_ptr end);      }; +    // This is used for containers with equivalent keys. It implements a +    // circular list running in the opposite direction to the linked +    // list through the nodes. +      template <class A>      struct grouped_node_base : hash_bucket<A>      { @@ -151,6 +195,10 @@ namespace boost { namespace unordered_detail {          }      }; +    // These two classes implement an easy way to pass around the node +    // group policy classes without the messy template parameters. +    // Whenever you see the template parameter 'G' it's one of these. +      struct ungrouped      {          template <class A> @@ -167,6 +215,8 @@ namespace boost { namespace unordered_detail {          };      }; +    // The space used to store values in a node. +      template <class ValueType>      struct value_base      { @@ -181,6 +231,9 @@ namespace boost { namespace unordered_detail {          value_type& value() {              return *(ValueType*) this;          } +        value_type* value_ptr() { +            return (ValueType*) this; +        }      private:          value_base& operator=(value_base const&);      }; @@ -199,11 +252,20 @@ namespace boost { namespace unordered_detail {          static value_type& get_value(node_ptr p) {              return static_cast<hash_node&>(*p).value();          } +        static value_type* get_value_ptr(node_ptr p) { +            return static_cast<hash_node&>(*p).value_ptr(); +        }      private:          hash_node& operator=(hash_node const&);      }; +    //////////////////////////////////////////////////////////////////////////// +    //      // Iterator Base +    // +    // This is the iterator used internally, the external iterators are +    // provided by lightweight wrappers (hash_iterator and +    // hast_const_iterator) which provide the full iterator interface.      template <class A, class G>      class hash_iterator_base @@ -248,12 +310,24 @@ namespace boost { namespace unordered_detail {          }      }; +    //////////////////////////////////////////////////////////////////////////// +    // +    // Now the main data structure: +    // +    // hash_buckets<A, G>     hash_buffered_functions<H, P> +    //       |                            | +    //       +-------------+--------------+ +    //                     | +    //                hash_table<T> +    // +    // T is a class which contains typedefs for all the types we need. +          // hash_buckets      //      // This is responsible for allocating and deallocating buckets and nodes.      //      // Notes: -    // 1. For the sake exception safety the allocators themselves don't allocate +    // 1. For the sake exception safety the consturctors don't allocate      //    anything.      // 2. It's the callers responsibility to allocate the buckets before calling      //    any of the methods (other than getters and setters). @@ -327,6 +401,17 @@ namespace boost { namespace unordered_detail {          std::size_t delete_to_bucket_end(node_ptr begin);      }; +    // Assigning and swapping the equality and hash function objects +    // needs strong exception safety. To implement that normally we'd +    // require one of them to be known to not throw and the other to +    // guarantee strong exception safety. Unfortunately they both only +    // have basic exception safety. So to acheive strong exception +    // safety we have storage space for two copies, and assign the new +    // copies to the unused space. Then switch to using that to use +    // them. This is implemented in 'set_hash_functions' which +    // atomically assigns the new function objects in a strongly +    // exception safe manner. +      template <class H, class P> class set_hash_functions;      template <class H, class P> @@ -429,6 +514,12 @@ namespace boost { namespace unordered_detail {          }      }; +    // This implements almost all of the required functionality, apart +    // from some things that are specific to containers with unique and +    // equivalent keys which is implemented in hash_unique_table and +    // hash_equivalent_table. See unique.hpp and equivalent.hpp for +    // their declaration and implementation. +      template <class T>      class hash_table : public T::buckets, public T::buffered_functions      { @@ -569,9 +660,13 @@ namespace boost { namespace unordered_detail {              node_constructor&, std::size_t);      }; -    // Iterator Access +    /////////////////////////////////////////////////////////////////// +    // +    // Iterators + +    // iterator_access is used to access the internal iterator without +    // making it publicly available. -#if !defined(__clang__)      class iterator_access      {      public: @@ -582,30 +677,6 @@ namespace boost { namespace unordered_detail {              return it.base_;          }      }; -#else -    class iterator_access -    { -    public: -        // Note: we access Iterator::base here, rather than in the function -        // signature to work around a bug in the friend support of an -        // early version of clang. - -        template <class Iterator> -        struct base -        { -            typedef BOOST_DEDUCED_TYPENAME Iterator::base type; -        }; -     -        template <class Iterator> -        static BOOST_DEDUCED_TYPENAME base<Iterator>::type const& -            get(Iterator const& it) -        { -            return it.base_; -        } -    }; -#endif - -    // Iterators      template <class A, class G> class hash_iterator;      template <class A, class G> class hash_const_iterator; @@ -644,7 +715,7 @@ namespace boost { namespace unordered_detail {              return node::get_value(ptr_);          }          value_type* operator->() const { -            return &node::get_value(ptr_); +            return node::get_value_ptr(ptr_);          }          hash_local_iterator& operator++() {              ptr_ = ptr_->next_; return *this; @@ -694,7 +765,7 @@ namespace boost { namespace unordered_detail {              return node::get_value(ptr_);          }          value_type const* operator->() const { -            return &node::get_value(ptr_); +            return node::get_value_ptr(ptr_);          }          hash_const_local_iterator& operator++() {              ptr_ = ptr_->next_; return *this; @@ -716,7 +787,7 @@ namespace boost { namespace unordered_detail {          }      }; -    // iterators +    // Iterators      //      // all no throw @@ -823,7 +894,12 @@ namespace boost { namespace unordered_detail {          }      }; +    //////////////////////////////////////////////////////////////////////////// +    //      // types +    // +    // This is used to convieniently pass around a container's typedefs +    // without having 7 template parameters.      template <class K, class V, class H, class P, class A, class E, class G>      struct types diff --git a/3rdParty/Boost/src/boost/unordered/detail/util.hpp b/3rdParty/Boost/src/boost/unordered/detail/util.hpp index 5540965..989883e 100644 --- a/3rdParty/Boost/src/boost/unordered/detail/util.hpp +++ b/3rdParty/Boost/src/boost/unordered/detail/util.hpp @@ -299,7 +299,7 @@ namespace boost { namespace unordered_detail {  #if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x0613))                  struct dummy { hash_node<Alloc, Grouped> x; };  #endif -                boost::unordered_detail::destroy(&node_->value()); +                boost::unordered_detail::destroy(node_->value_ptr());              }              if (node_constructed_) @@ -322,7 +322,7 @@ namespace boost { namespace unordered_detail {          }          else {              BOOST_ASSERT(node_constructed_ && value_constructed_); -            boost::unordered_detail::destroy(&node_->value()); +            boost::unordered_detail::destroy(node_->value_ptr());              value_constructed_ = false;          }      } diff --git a/3rdParty/Boost/src/boost/unordered/unordered_map.hpp b/3rdParty/Boost/src/boost/unordered/unordered_map.hpp index 5bad0eb..86a6fc6 100644 --- a/3rdParty/Boost/src/boost/unordered/unordered_map.hpp +++ b/3rdParty/Boost/src/boost/unordered/unordered_map.hpp @@ -160,6 +160,11 @@ namespace boost          ~unordered_map() {}  #if !defined(BOOST_NO_RVALUE_REFERENCES) +        unordered_map(unordered_map const& other) +          : table_(other.table_) +        { +        } +          unordered_map(unordered_map&& other)            : table_(other.table_, boost::unordered_detail::move_tag())          { @@ -170,6 +175,12 @@ namespace boost          {          } +        unordered_map& operator=(unordered_map const& x) +        { +            table_ = x.table_; +            return *this; +        } +          unordered_map& operator=(unordered_map&& x)          {              table_.move(x.table_); @@ -705,6 +716,11 @@ namespace boost          ~unordered_multimap() {}  #if !defined(BOOST_NO_RVALUE_REFERENCES) +        unordered_multimap(unordered_multimap const& other) +          : table_(other.table_) +        { +        } +          unordered_multimap(unordered_multimap&& other)            : table_(other.table_, boost::unordered_detail::move_tag())          { @@ -715,6 +731,12 @@ namespace boost          {          } +        unordered_multimap& operator=(unordered_multimap const& x) +        { +            table_ = x.table_; +            return *this; +        } +          unordered_multimap& operator=(unordered_multimap&& x)          {              table_.move(x.table_); diff --git a/3rdParty/Boost/src/boost/unordered/unordered_map_fwd.hpp b/3rdParty/Boost/src/boost/unordered/unordered_map_fwd.hpp index 5e9bb07..edecc5d 100644 --- a/3rdParty/Boost/src/boost/unordered/unordered_map_fwd.hpp +++ b/3rdParty/Boost/src/boost/unordered/unordered_map_fwd.hpp @@ -24,13 +24,13 @@ namespace boost          class A = std::allocator<std::pair<const K, T> > >      class unordered_map;      template <class K, class T, class H, class P, class A> -    bool operator==(unordered_map<K, T, H, P, A> const&, +    inline bool operator==(unordered_map<K, T, H, P, A> const&,          unordered_map<K, T, H, P, A> const&);      template <class K, class T, class H, class P, class A> -    bool operator!=(unordered_map<K, T, H, P, A> const&, +    inline bool operator!=(unordered_map<K, T, H, P, A> const&,          unordered_map<K, T, H, P, A> const&);      template <class K, class T, class H, class P, class A> -    void swap(unordered_map<K, T, H, P, A>&, +    inline void swap(unordered_map<K, T, H, P, A>&,              unordered_map<K, T, H, P, A>&);      template <class K, @@ -40,13 +40,13 @@ namespace boost          class A = std::allocator<std::pair<const K, T> > >      class unordered_multimap;      template <class K, class T, class H, class P, class A> -    bool operator==(unordered_multimap<K, T, H, P, A> const&, +    inline bool operator==(unordered_multimap<K, T, H, P, A> const&,          unordered_multimap<K, T, H, P, A> const&);      template <class K, class T, class H, class P, class A> -    bool operator!=(unordered_multimap<K, T, H, P, A> const&, +    inline bool operator!=(unordered_multimap<K, T, H, P, A> const&,          unordered_multimap<K, T, H, P, A> const&);      template <class K, class T, class H, class P, class A> -    void swap(unordered_multimap<K, T, H, P, A>&, +    inline void swap(unordered_multimap<K, T, H, P, A>&,              unordered_multimap<K, T, H, P, A>&);  } diff --git a/3rdParty/Boost/src/boost/utility/detail/in_place_factory_prefix.hpp b/3rdParty/Boost/src/boost/utility/detail/in_place_factory_prefix.hpp new file mode 100644 index 0000000..afd76b5 --- /dev/null +++ b/3rdParty/Boost/src/boost/utility/detail/in_place_factory_prefix.hpp @@ -0,0 +1,36 @@ +// Copyright (C) 2003, Fernando Luis Cacciola Carballal. +// Copyright (C) 2007, Tobias Schwinger. +// +// 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) +// +// See http://www.boost.org/libs/optional for documentation. +// +// You are welcome to contact the author at: +//  fernando_cacciola@hotmail.com +// +#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP +#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP + +#include <new> +#include <cstddef> +#include <boost/config.hpp> +#include <boost/preprocessor/cat.hpp> +#include <boost/preprocessor/punctuation/paren.hpp> +#include <boost/preprocessor/iteration/iterate.hpp> +#include <boost/preprocessor/repetition/repeat.hpp> +#include <boost/preprocessor/repetition/enum.hpp> +#include <boost/preprocessor/repetition/enum_params.hpp> +#include <boost/preprocessor/repetition/enum_binary_params.hpp> +#include <boost/preprocessor/repetition/enum_trailing_params.hpp> + +#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT(z,n,_) BOOST_PP_CAT(m_a,n) BOOST_PP_LPAREN() BOOST_PP_CAT(a,n) BOOST_PP_RPAREN() +#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL(z,n,_) BOOST_PP_CAT(A,n) const& BOOST_PP_CAT(m_a,n); + +#define BOOST_MAX_INPLACE_FACTORY_ARITY 10 + +#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP + +#endif + diff --git a/3rdParty/Boost/src/boost/utility/detail/in_place_factory_suffix.hpp b/3rdParty/Boost/src/boost/utility/detail/in_place_factory_suffix.hpp new file mode 100644 index 0000000..58f48c7 --- /dev/null +++ b/3rdParty/Boost/src/boost/utility/detail/in_place_factory_suffix.hpp @@ -0,0 +1,23 @@ +// Copyright (C) 2003, Fernando Luis Cacciola Carballal. +// Copyright (C) 2007, Tobias Schwinger. +// +// 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) +// +// See http://www.boost.org/libs/optional for documentation. +// +// You are welcome to contact the author at: +//  fernando_cacciola@hotmail.com +// +#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP +#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP + +#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT +#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL +#undef BOOST_MAX_INPLACE_FACTORY_ARITY + +#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP + +#endif + diff --git a/3rdParty/Boost/src/boost/utility/in_place_factory.hpp b/3rdParty/Boost/src/boost/utility/in_place_factory.hpp new file mode 100644 index 0000000..f84b003 --- /dev/null +++ b/3rdParty/Boost/src/boost/utility/in_place_factory.hpp @@ -0,0 +1,88 @@ +// Copyright (C) 2003, Fernando Luis Cacciola Carballal. +// Copyright (C) 2007, Tobias Schwinger. +// +// 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) +// +// See http://www.boost.org/libs/optional for documentation. +// +// You are welcome to contact the author at: +//  fernando_cacciola@hotmail.com +// +#ifndef BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP +#ifndef BOOST_PP_IS_ITERATING + +#include <boost/utility/detail/in_place_factory_prefix.hpp> + +namespace boost { + +class in_place_factory_base {} ; + +#define  BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY) +#define  BOOST_PP_FILENAME_1 <boost/utility/in_place_factory.hpp> +#include BOOST_PP_ITERATE() + +} // namespace boost + +#include <boost/utility/detail/in_place_factory_suffix.hpp> + +#define BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP +#else +#define N BOOST_PP_ITERATION() + +#if N +template< BOOST_PP_ENUM_PARAMS(N, class A) > +#endif +class BOOST_PP_CAT(in_place_factory,N) +  :  +  public in_place_factory_base +{ +public: + +  explicit BOOST_PP_CAT(in_place_factory,N) +      ( BOOST_PP_ENUM_BINARY_PARAMS(N,A,const& a) ) +#if N > 0 +    : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _) +#endif +  {} + +  template<class T> +  void* apply(void* address +      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const +  { +    return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) ); +  } + +  template<class T> +  void* apply(void* address, std::size_t n +      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const +  { +    for(char* next = address = this->BOOST_NESTED_TEMPLATE apply<T>(address); +        !! --n;) +      this->BOOST_NESTED_TEMPLATE apply<T>(next = next+sizeof(T)); +    return address;  +  } + +  BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _) +}; + +#if N > 0 +template< BOOST_PP_ENUM_PARAMS(N, class A) > +inline BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) > +in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) ) +{ +  return BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) > +      ( BOOST_PP_ENUM_PARAMS(N, a) ); +} +#else +inline in_place_factory0 in_place() +{ +  return in_place_factory0(); +} +#endif + +#undef N +#endif +#endif + diff --git a/3rdParty/Boost/src/boost/utility/value_init.hpp b/3rdParty/Boost/src/boost/utility/value_init.hpp deleted file mode 100644 index 5de9585..0000000 --- a/3rdParty/Boost/src/boost/utility/value_init.hpp +++ /dev/null @@ -1,258 +0,0 @@ -// (C) Copyright 2002-2008, Fernando Luis Cacciola Carballal. -// -// 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) -// -// 21 Ago 2002 (Created) Fernando Cacciola -// 24 Dec 2007 (Refactored and worked around various compiler bugs) Fernando Cacciola, Niels Dekker -// 23 May 2008 (Fixed operator= const issue, added initialized_value) Niels Dekker, Fernando Cacciola -// 21 Ago 2008 (Added swap) Niels Dekker, Fernando Cacciola -// 20 Feb 2009 (Fixed logical const-ness issues) Niels Dekker, Fernando Cacciola -// 03 Apr 2010 (Added initialized<T>, suggested by Jeffrey Hellrung, fixing #3472) Niels Dekker -// 30 May 2010 (Made memset call conditional, fixing #3869) Niels Dekker -// -#ifndef BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP -#define BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP - -// Note: The implementation of boost::value_initialized had to deal with the -// fact that various compilers haven't fully implemented value-initialization. -// The constructor of boost::value_initialized<T> works around these compiler -// issues, by clearing the bytes of T, before constructing the T object it -// contains. More details on these issues are at libs/utility/value_init.htm - -#include <boost/aligned_storage.hpp> -#include <boost/config.hpp> // For BOOST_NO_COMPLETE_VALUE_INITIALIZATION. -#include <boost/detail/workaround.hpp> -#include <boost/static_assert.hpp> -#include <boost/type_traits/cv_traits.hpp> -#include <boost/type_traits/alignment_of.hpp> -#include <boost/swap.hpp> -#include <cstring> -#include <new> - -#ifdef BOOST_MSVC -#pragma warning(push) -#if _MSC_VER >= 1310 -// It is safe to ignore the following warning from MSVC 7.1 or higher: -// "warning C4351: new behavior: elements of array will be default initialized" -#pragma warning(disable: 4351) -// It is safe to ignore the following MSVC warning, which may pop up when T is  -// a const type: "warning C4512: assignment operator could not be generated". -#pragma warning(disable: 4512) -#endif -#endif - -#ifdef BOOST_NO_COMPLETE_VALUE_INITIALIZATION -  // Implementation detail: The macro BOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED  -  // suggests that a workaround should be applied, because of compiler issues  -  // regarding value-initialization. -  #define BOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED -#endif - -// Implementation detail: The macro BOOST_DETAIL_VALUE_INIT_WORKAROUND -// switches the value-initialization workaround either on or off. -#ifndef BOOST_DETAIL_VALUE_INIT_WORKAROUND -  #ifdef BOOST_DETAIL_VALUE_INIT_WORKAROUND_SUGGESTED -  #define BOOST_DETAIL_VALUE_INIT_WORKAROUND 1 -  #else -  #define BOOST_DETAIL_VALUE_INIT_WORKAROUND 0 -  #endif -#endif - -namespace boost { - -template<class T> -class initialized -{ -  private : -    struct wrapper -    { -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592)) -      typename -#endif  -      remove_const<T>::type data; - -      wrapper() -      : -      data() -      { -      } - -      wrapper(T const & arg) -      : -      data(arg) -      { -      } -    }; - -    mutable -#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592)) -      typename -#endif  -      aligned_storage<sizeof(wrapper), alignment_of<wrapper>::value>::type x; - -    wrapper * wrapper_address() const -    { -      return static_cast<wrapper *>( static_cast<void*>(&x)); -    } - -  public : - -    initialized() -    { -#if BOOST_DETAIL_VALUE_INIT_WORKAROUND -      std::memset(&x, 0, sizeof(x)); -#endif -      new (wrapper_address()) wrapper(); -    } - -    initialized(initialized const & arg) -    { -      new (wrapper_address()) wrapper( static_cast<wrapper const &>(*(arg.wrapper_address()))); -    } - -    explicit initialized(T const & arg) -    { -      new (wrapper_address()) wrapper(arg); -    } - -    initialized & operator=(initialized const & arg) -    { -      // Assignment is only allowed when T is non-const. -      BOOST_STATIC_ASSERT( ! is_const<T>::value ); -      *wrapper_address() = static_cast<wrapper const &>(*(arg.wrapper_address())); -      return *this; -    } - -    ~initialized() -    { -      wrapper_address()->wrapper::~wrapper(); -    } - -    T const & data() const -    { -      return wrapper_address()->data; -    } - -    T& data() -    { -      return wrapper_address()->data; -    } - -    void swap(initialized & arg) -    { -      ::boost::swap( this->data(), arg.data() ); -    } - -    operator T const &() const -    { -      return wrapper_address()->data; -    } - -    operator T&() -    { -      return wrapper_address()->data; -    } - -} ; - -template<class T> -T const& get ( initialized<T> const& x ) -{ -  return x.data() ; -} - -template<class T> -T& get ( initialized<T>& x ) -{ -  return x.data() ; -} - -template<class T> -void swap ( initialized<T> & lhs, initialized<T> & rhs ) -{ -  lhs.swap(rhs) ; -} - -template<class T> -class value_initialized -{ -  private : - -    // initialized<T> does value-initialization by default. -    initialized<T> m_data; - -  public : -     -    value_initialized() -    : -    m_data() -    { } -     -    T const & data() const -    { -      return m_data.data(); -    } - -    T& data() -    { -      return m_data.data(); -    } - -    void swap(value_initialized & arg) -    { -      m_data.swap(arg.m_data); -    } - -    operator T const &() const -    { -      return m_data; -    } - -    operator T&() -    { -      return m_data; -    } -} ; - - -template<class T> -T const& get ( value_initialized<T> const& x ) -{ -  return x.data() ; -} - -template<class T> -T& get ( value_initialized<T>& x ) -{ -  return x.data() ; -} - -template<class T> -void swap ( value_initialized<T> & lhs, value_initialized<T> & rhs ) -{ -  lhs.swap(rhs) ; -} - - -class initialized_value_t -{ -  public : -     -    template <class T> operator T() const -    { -      return initialized<T>().data(); -    } -}; - -initialized_value_t const initialized_value = {} ; - - -} // namespace boost - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -#endif diff --git a/3rdParty/Boost/src/boost/version.hpp b/3rdParty/Boost/src/boost/version.hpp index bdb68d4..c80d428 100644 --- a/3rdParty/Boost/src/boost/version.hpp +++ b/3rdParty/Boost/src/boost/version.hpp @@ -19,7 +19,7 @@  //  BOOST_VERSION / 100 % 1000 is the minor version  //  BOOST_VERSION / 100000 is the major version -#define BOOST_VERSION 104500 +#define BOOST_VERSION 104601  //  //  BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION @@ -27,7 +27,7 @@  //  number, y is the minor version number, and z is the patch level if not 0.  //  This is used by <config/auto_link.hpp> to select which library version to link to. -#define BOOST_LIB_VERSION "1_45" +#define BOOST_LIB_VERSION "1_46_1"  #endif diff --git a/3rdParty/Boost/src/libs/filesystem/v2/src/v2_operations.cpp b/3rdParty/Boost/src/libs/filesystem/v2/src/v2_operations.cpp index 10df199..f29153c 100644 --- a/3rdParty/Boost/src/libs/filesystem/v2/src/v2_operations.cpp +++ b/3rdParty/Boost/src/libs/filesystem/v2/src/v2_operations.cpp @@ -44,7 +44,7 @@  #include <boost/filesystem/v2/operations.hpp>  #include <boost/scoped_array.hpp> -#include <boost/throw_exception.hpp> +#include <boost/assert.hpp>  #include <boost/detail/workaround.hpp>  #include <cstdlib>  // for malloc, free @@ -93,7 +93,6 @@ using boost::system::system_category;  #include <cstring>  #include <cstdio>      // for remove, rename  #include <cerrno> -#include <cassert>  // #include <iostream>    // for debugging only; comment out when not in use  #ifdef BOOST_NO_STDC_NAMESPACE @@ -294,7 +293,7 @@ namespace        if ( p1.handle != INVALID_HANDLE_VALUE          || p2.handle != INVALID_HANDLE_VALUE )          { return std::make_pair( ok, false ); } -      assert( p1.handle == INVALID_HANDLE_VALUE +      BOOST_ASSERT( p1.handle == INVALID_HANDLE_VALUE          && p2.handle == INVALID_HANDLE_VALUE );          { return std::make_pair( error_code( error1, system_category()), false ); }      } @@ -724,7 +723,7 @@ namespace boost            || ((mode&~std::ios_base::binary)            == (std::ios_base::in|std::ios_base::out|std::ios_base::trunc)) )            disposition = CREATE_ALWAYS; -        else assert( 0 && "invalid mode argument" ); +        else BOOST_ASSERT( 0 && "invalid mode argument" );          HANDLE handle ( ::CreateFileW( ph.c_str(), access,            FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE, 0, @@ -1215,8 +1214,9 @@ namespace boost          if ( ::stat( from_file_ph.c_str(), &from_stat ) != 0 )            { return error_code( errno, system_category() ); } -        int oflag = O_CREAT | O_WRONLY; -        if ( fail_if_exists ) oflag |= O_EXCL; +        int oflag = O_CREAT | O_WRONLY | O_TRUNC; +        if ( fail_if_exists ) +          oflag |= O_EXCL;          if (  (outfile = ::open( to_file_ph.c_str(), oflag, from_stat.st_mode )) < 0 )          {            int open_errno = errno; diff --git a/3rdParty/Boost/src/libs/filesystem/v2/src/v2_path.cpp b/3rdParty/Boost/src/libs/filesystem/v2/src/v2_path.cpp index 7adeaff..16f6583 100644 --- a/3rdParty/Boost/src/libs/filesystem/v2/src/v2_path.cpp +++ b/3rdParty/Boost/src/libs/filesystem/v2/src/v2_path.cpp @@ -86,7 +86,7 @@ namespace boost      void wpath_traits::imbue( const std::locale & new_loc )      { -      if ( locked ) boost::throw_exception( +      if ( locked ) BOOST_FILESYSTEM_THROW(          wfilesystem_error(            "boost::filesystem::wpath_traits::imbue() after lockdown",            make_error_code( system::errc::not_supported ) ) ); @@ -144,7 +144,7 @@ namespace boost        if ( converter()->out(           state, src.c_str(), src.c_str()+src.size(), from_next, work.get(),          work.get()+work_size, to_next ) != std::codecvt_base::ok ) -        boost::throw_exception( boost::filesystem::wfilesystem_error( +        BOOST_FILESYSTEM_THROW( boost::filesystem::wfilesystem_error(            "boost::filesystem::wpath::to_external conversion error",            ph, system::error_code( system::errc::invalid_argument, system::system_category() ) ) );        *to_next = '\0'; @@ -163,7 +163,7 @@ namespace boost        if ( converter()->in(           state, src.c_str(), src.c_str()+src.size(), from_next, work.get(),          work.get()+work_size, to_next ) != std::codecvt_base::ok ) -        boost::throw_exception( boost::filesystem::wfilesystem_error( +        BOOST_FILESYSTEM_THROW( boost::filesystem::wfilesystem_error(            "boost::filesystem::wpath::to_internal conversion error",            system::error_code( system::errc::invalid_argument, system::system_category() ) ) );        *to_next = L'\0'; diff --git a/3rdParty/Boost/src/libs/filesystem/v3/src/operations.cpp b/3rdParty/Boost/src/libs/filesystem/v3/src/operations.cpp index 04d9c17..2460c1d 100644 --- a/3rdParty/Boost/src/libs/filesystem/v3/src/operations.cpp +++ b/3rdParty/Boost/src/libs/filesystem/v3/src/operations.cpp @@ -34,6 +34,7 @@        !defined(_STATVFS_ACPP_PROBLEMS_FIXED))  #define _FILE_OFFSET_BITS 64 // at worst, these defines may have no effect,  #endif +#if !defined(__PGI)  #define __USE_FILE_OFFSET64 // but that is harmless on Windows and on POSIX        // 64-bit systems or on 32-bit systems which don't have files larger         // than can be represented by a traditional POSIX/UNIX off_t type.  @@ -44,11 +45,15 @@        // ensure that they are available to all included headers.        // That is required at least on Solaris, and possibly on other        // systems as well. +#else +#define _FILE_OFFSET_BITS 64 +#endif  #include <boost/filesystem/v3/operations.hpp>  #include <boost/scoped_array.hpp>  #include <boost/detail/workaround.hpp>  #include <cstdlib>  // for malloc, free +#include <vector>  #ifdef BOOST_FILEYSTEM_INCLUDE_IOSTREAM  # include <iostream> @@ -147,6 +152,9 @@ typedef struct _REPARSE_DATA_BUFFER {  #define REPARSE_DATA_BUFFER_HEADER_SIZE \    FIELD_OFFSET(REPARSE_DATA_BUFFER, GenericReparseBuffer) +#endif + +#ifndef MAXIMUM_REPARSE_DATA_BUFFER_SIZE  #define MAXIMUM_REPARSE_DATA_BUFFER_SIZE  ( 16 * 1024 )  #endif @@ -426,8 +434,9 @@ namespace      if (::stat(from_p.c_str(), &from_stat)!= 0)        { return false; } -    int oflag = O_CREAT | O_WRONLY; -    if (fail_if_exists)oflag |= O_EXCL; +    int oflag = O_CREAT | O_WRONLY | O_TRUNC; +    if (fail_if_exists) +      oflag |= O_EXCL;      if ((outfile = ::open(to_p.c_str(), oflag, from_stat.st_mode))< 0)      {        int open_errno = errno; @@ -1443,6 +1452,9 @@ namespace detail        {          return process_status_failure(p, ec);        } + +      if (!is_reparse_point_a_symlink(p)) +        return file_status(reparse_file);      }      if (ec != 0) ec->clear(); @@ -1512,6 +1524,55 @@ namespace detail  #   endif    } +   // contributed by Jeff Flinn +  BOOST_FILESYSTEM_DECL +  path temp_directory_path(system::error_code* ec) +  { +#   ifdef BOOST_POSIX_API +      const char* val = 0; +       +      (val = std::getenv("TMPDIR" )) || +      (val = std::getenv("TMP"    )) || +      (val = std::getenv("TEMP"   )) || +      (val = std::getenv("TEMPDIR")); +       +      path p((val!=0) ? val : "/tmp"); +       +      if (p.empty() || (ec&&!is_directory(p, *ec))||(!ec&&!is_directory(p))) +      { +        errno = ENOTDIR; +        error(true, p, ec, "boost::filesystem::temp_directory_path"); +        return p; +      } +         +      return p; +       +#   else  // Windows + +      std::vector<path::value_type> buf(GetTempPathW(0, NULL)); + +      if (buf.empty() || GetTempPathW(buf.size(), &buf[0])==0) +      { +        if(!buf.empty()) ::SetLastError(ENOTDIR); +        error(true, ec, "boost::filesystem::temp_directory_path"); +        return path(); +      } +           +      buf.pop_back(); +       +      path p(buf.begin(), buf.end()); +           +      if ((ec&&!is_directory(p, *ec))||(!ec&&!is_directory(p))) +      { +        ::SetLastError(ENOTDIR); +        error(true, p, ec, "boost::filesystem::temp_directory_path"); +        return path(); +      } +       +      return p; +#   endif +  } +      BOOST_FILESYSTEM_DECL    path system_complete(const path& p, system::error_code* ec)    { @@ -1637,6 +1698,10 @@ namespace      return ok;    } +#if defined(__PGI) && defined(__USE_FILE_OFFSET64) +#define dirent dirent64 +#endif +    error_code dir_itr_first(void *& handle, void *& buffer,      const char* dir, string& target,      fs::file_status &, fs::file_status &) @@ -1742,9 +1807,13 @@ namespace          ? 0 : ::GetLastError(), system_category() );      }      target = data.cFileName; -    if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) -    { sf.type(fs::directory_file); symlink_sf.type(fs::directory_file); } -    else { sf.type(fs::regular_file); symlink_sf.type(fs::regular_file); } +    if (data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) +      // reparse points are complex, so don't try to handle them here +      { sf.type(fs::status_error); symlink_sf.type(fs::status_error); } +    else if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) +      { sf.type(fs::directory_file); symlink_sf.type(fs::directory_file); } +    else +      { sf.type(fs::regular_file); symlink_sf.type(fs::regular_file); }      return error_code();    } @@ -1759,9 +1828,13 @@ namespace        return error_code(error == ERROR_NO_MORE_FILES ? 0 : error, system_category());      }      target = data.cFileName; -    if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) +    if (data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) +      // reparse points are complex, so don't try to handle them here +      { sf.type(fs::status_error); symlink_sf.type(fs::status_error); } +    else if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)        { sf.type(fs::directory_file); symlink_sf.type(fs::directory_file); } -    else { sf.type(fs::regular_file); symlink_sf.type(fs::regular_file); } +    else +      { sf.type(fs::regular_file); symlink_sf.type(fs::regular_file); }      return error_code();    }  #endif @@ -1878,7 +1951,12 @@ namespace detail        }        else if (ec != 0) ec->clear(); -      if (it.m_imp->handle == 0){ it.m_imp.reset(); return; } // eof, make end +      if (it.m_imp->handle == 0)  // eof, make end +      { +        it.m_imp.reset(); +        return; +      } +        if (!(filename[0] == dot // !(dot or dot-dot)          && (filename.size()== 1            || (filename[1] == dot diff --git a/3rdParty/Boost/src/libs/filesystem/v3/src/path.cpp b/3rdParty/Boost/src/libs/filesystem/v3/src/path.cpp index 53a4cc6..cc30570 100644 --- a/3rdParty/Boost/src/libs/filesystem/v3/src/path.cpp +++ b/3rdParty/Boost/src/libs/filesystem/v3/src/path.cpp @@ -27,6 +27,7 @@  #include <boost/scoped_array.hpp>  #include <boost/system/error_code.hpp>  #include <boost/assert.hpp> +#include <algorithm>  #include <cstddef>  #include <cstring>  #include <cassert> @@ -155,27 +156,17 @@ namespace filesystem3  # ifdef BOOST_WINDOWS_API -  void path::m_portable() -  { -    for (string_type::iterator it = m_pathname.begin(); -          it != m_pathname.end(); ++it) -    { -      if (*it == L'\\') -        *it = L'/'; -    } -  } -    const std::string path::generic_string(const codecvt_type& cvt) const    {       path tmp(*this); -    tmp.m_portable(); +    tmp.make_preferred();      return tmp.string(cvt);    }    const std::wstring path::generic_wstring() const    {       path tmp(*this); -    tmp.m_portable(); +    tmp.make_preferred();      return tmp.wstring();    } @@ -216,12 +207,7 @@ namespace filesystem3  # ifdef BOOST_WINDOWS_API    path & path::make_preferred()    { -    for (string_type::iterator it = m_pathname.begin(); -          it != m_pathname.end(); ++it) -    { -      if (*it == L'/') -        *it = L'\\'; -    } +    std::replace(m_pathname.begin(), m_pathname.end(), L'\\', L'/');      return *this;    }  # endif diff --git a/3rdParty/Boost/src/libs/filesystem/v3/src/windows_file_codecvt.cpp b/3rdParty/Boost/src/libs/filesystem/v3/src/windows_file_codecvt.cpp index dd89c02..ae9f9f2 100644 --- a/3rdParty/Boost/src/libs/filesystem/v3/src/windows_file_codecvt.cpp +++ b/3rdParty/Boost/src/libs/filesystem/v3/src/windows_file_codecvt.cpp @@ -31,7 +31,11 @@  #include "windows_file_codecvt.hpp" -#define WINVER 0x0500  // MinGW for GCC 4.4 requires this +// Versions of MinGW prior to GCC 4.6 requires this +#ifndef WINVER +# define WINVER 0x0500 +#endif +  #include <windows.h>    std::codecvt_base::result windows_file_codecvt::do_in( diff --git a/3rdParty/Boost/src/libs/regex/src/regex.cpp b/3rdParty/Boost/src/libs/regex/src/regex.cpp index 1f1caa6..27ac43c 100644 --- a/3rdParty/Boost/src/libs/regex/src/regex.cpp +++ b/3rdParty/Boost/src/libs/regex/src/regex.cpp @@ -224,19 +224,3 @@ int WINAPI DllEntryPoint(HINSTANCE , unsigned long , void*)  }  #endif -#if defined(__IBMCPP__) && defined(BOOST_REGEX_DYN_LINK) -// -// Is this correct - linker complains without it ? -// -int main() -{  -   return 0;  -} - -#endif - - - - - - diff --git a/3rdParty/Boost/src/libs/system/src/error_code.cpp b/3rdParty/Boost/src/libs/system/src/error_code.cpp index bd87403..bcdbea9 100644 --- a/3rdParty/Boost/src/libs/system/src/error_code.cpp +++ b/3rdParty/Boost/src/libs/system/src/error_code.cpp @@ -39,6 +39,9 @@ using namespace boost::system::errc;  namespace  { +#if defined(__PGI) +  using boost::system::errc::invalid_argument; +#endif    //  standard error categories  ---------------------------------------------//    class generic_error_category : public error_category diff --git a/3rdParty/Boost/src/tools/bcp/add_path.cpp b/3rdParty/Boost/src/tools/bcp/add_path.cpp index e55e8e3..2ed4a94 100644 --- a/3rdParty/Boost/src/tools/bcp/add_path.cpp +++ b/3rdParty/Boost/src/tools/bcp/add_path.cpp @@ -68,7 +68,7 @@ void bcp_implementation::add_directory(const fs::path& p)        // we need to convert *i back into        // a relative path, what follows is a hack:        // -      std::string s(i->string()); +      std::string s(i->path().string());        if(m_boost_path.string().size())           s.erase(0, m_boost_path.string().size() + 1);        fs::path np = s; diff --git a/3rdParty/Boost/src/tools/bcp/bcp.hpp b/3rdParty/Boost/src/tools/bcp/bcp.hpp index ea2b4d0..bec6364 100644 --- a/3rdParty/Boost/src/tools/bcp/bcp.hpp +++ b/3rdParty/Boost/src/tools/bcp/bcp.hpp @@ -9,6 +9,12 @@  #include <boost/shared_ptr.hpp> +#if defined(BOOST_FILESYSTEM_VERSION) && (BOOST_FILESYSTEM_VERSION != 3) +# error "This library must be built with Boost.Filesystem version 3" +#else +#define BOOST_FILESYSTEM_VERSION 3 +#endif +  class bcp_application;  typedef boost::shared_ptr<bcp_application> pbcp_application; diff --git a/3rdParty/Boost/src/tools/bcp/bcp_imp.cpp b/3rdParty/Boost/src/tools/bcp/bcp_imp.cpp index c5d7fb4..5801735 100644 --- a/3rdParty/Boost/src/tools/bcp/bcp_imp.cpp +++ b/3rdParty/Boost/src/tools/bcp/bcp_imp.cpp @@ -81,7 +81,7 @@ void bcp_implementation::enable_unix_lines()  void bcp_implementation::set_boost_path(const char* p)  {     // Hack to strip trailing slashes from the path  -   m_boost_path = (fs::path(p, fs::native) / "boost").parent_path();  +   m_boost_path = (fs::path(p) / "boost").parent_path();      fs::path check = m_boost_path / "boost" / "version.hpp";     if(!fs::exists(check))     { @@ -94,7 +94,7 @@ void bcp_implementation::set_boost_path(const char* p)  void bcp_implementation::set_destination(const char* p)  { -   m_dest_path = fs::path(p, fs::native); +   m_dest_path = fs::path(p);  }  void bcp_implementation::add_module(const char* p) @@ -140,7 +140,7 @@ int bcp_implementation::run()     if(!m_list_mode && !m_license_mode && !fs::exists(m_dest_path))     {        std::string msg("Destination path does not exist: "); -      msg.append(m_dest_path.native_file_string()); +      msg.append(m_dest_path.string());        std::runtime_error e(msg);        boost::throw_exception(e);     } @@ -190,15 +190,8 @@ int bcp_implementation::run()        //        fs::path module;        fs::path exmodule; -      try{ -         module = fs::path(*i); -         exmodule = fs::path(*i + ".hpp"); -      } -      catch(...) -      { -         module = fs::path(*i, fs::native); -         exmodule = fs::path(*i + ".hpp", fs::native); -      } +      module = fs::path(*i); +      exmodule = fs::path(*i + ".hpp");        if(m_scan_mode)        { diff --git a/3rdParty/Boost/src/tools/bcp/copy_path.cpp b/3rdParty/Boost/src/tools/bcp/copy_path.cpp index 496696a..85b5de1 100644 --- a/3rdParty/Boost/src/tools/bcp/copy_path.cpp +++ b/3rdParty/Boost/src/tools/bcp/copy_path.cpp @@ -63,7 +63,7 @@ void bcp_implementation::copy_path(const fs::path& p)        static std::vector<char> v1, v2;        v1.clear();        v2.clear(); -      std::ifstream is((m_boost_path / p).native_file_string().c_str()); +      std::ifstream is((m_boost_path / p).string().c_str());        std::copy(std::istreambuf_iterator<char>(is), std::istreambuf_iterator<char>(), std::back_inserter(v1));        static boost::regex libname_matcher; @@ -78,9 +78,9 @@ void bcp_implementation::copy_path(const fs::path& p)        std::ofstream os;        if(m_unix_lines) -         os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::binary | std::ios_base::out); +         os.open((m_dest_path / p).string().c_str(), std::ios_base::binary | std::ios_base::out);        else -         os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::out); +         os.open((m_dest_path / p).string().c_str(), std::ios_base::out);        os.write(&*v1.begin(), v1.size());        os.close();     } @@ -89,7 +89,7 @@ void bcp_implementation::copy_path(const fs::path& p)        static std::vector<char> v1, v2;        v1.clear();        v2.clear(); -      std::ifstream is((m_boost_path / p).native_file_string().c_str()); +      std::ifstream is((m_boost_path / p).string().c_str());        std::copy(std::istreambuf_iterator<char>(is), std::istreambuf_iterator<char>(), std::back_inserter(v1));        static boost::regex libname_matcher; @@ -111,9 +111,9 @@ void bcp_implementation::copy_path(const fs::path& p)        std::ofstream os;        if(m_unix_lines) -         os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::binary | std::ios_base::out); +         os.open((m_dest_path / p).string().c_str(), std::ios_base::binary | std::ios_base::out);        else -         os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::out); +         os.open((m_dest_path / p).string().c_str(), std::ios_base::out);        os.write(&*v1.begin(), v1.size());        os.close();     } @@ -127,7 +127,7 @@ void bcp_implementation::copy_path(const fs::path& p)        static std::vector<char> v1, v2;        v1.clear();        v2.clear(); -      std::ifstream is((m_boost_path / p).native_file_string().c_str()); +      std::ifstream is((m_boost_path / p).string().c_str());        std::copy(std::istreambuf_iterator<char>(is), std::istreambuf_iterator<char>(), std::back_inserter(v1));        static const boost::regex namespace_matcher( @@ -202,20 +202,20 @@ void bcp_implementation::copy_path(const fs::path& p)        std::ofstream os;        if(m_unix_lines) -         os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::binary | std::ios_base::out); +         os.open((m_dest_path / p).string().c_str(), std::ios_base::binary | std::ios_base::out);        else -         os.open((m_dest_path / p).native_file_string().c_str(), std::ios_base::out); +         os.open((m_dest_path / p).string().c_str(), std::ios_base::out);        if(v1.size())           os.write(&*v1.begin(), v1.size());        os.close();     }     else if(m_unix_lines && !is_binary_file(p))     { -      std::ifstream is((m_boost_path / p).native_file_string().c_str()); +      std::ifstream is((m_boost_path / p).string().c_str());        std::istreambuf_iterator<char> isi(is);        std::istreambuf_iterator<char> end; -      std::ofstream os((m_dest_path / p).native_file_string().c_str(), std::ios_base::binary | std::ios_base::out); +      std::ofstream os((m_dest_path / p).string().c_str(), std::ios_base::binary | std::ios_base::out);        std::ostreambuf_iterator<char> osi(os);        std::copy(isi, end, osi); diff --git a/3rdParty/Boost/src/tools/bcp/file_types.cpp b/3rdParty/Boost/src/tools/bcp/file_types.cpp index abc0149..7fc6850 100644 --- a/3rdParty/Boost/src/tools/bcp/file_types.cpp +++ b/3rdParty/Boost/src/tools/bcp/file_types.cpp @@ -23,7 +23,7 @@ bool bcp_implementation::is_source_file(const fs::path& p)        ")",         boost::regex::perl | boost::regex::icase        ); -   return boost::regex_match(p.filename(), e); +   return boost::regex_match(p.filename().string(), e);  }  bool bcp_implementation::is_html_file(const fs::path& p) @@ -34,7 +34,7 @@ bool bcp_implementation::is_html_file(const fs::path& p)           "html?|css"        ")"        ); -   return boost::regex_match(p.filename(), e); +   return boost::regex_match(p.filename().string(), e);  }  bool bcp_implementation::is_binary_file(const fs::path& p) @@ -52,7 +52,7 @@ bool bcp_implementation::is_binary_file(const fs::path& p)        "|"        "(Jamfile|makefile|configure)",        boost::regex::perl | boost::regex::icase); -   return !boost::regex_match(p.leaf(), e); +   return !boost::regex_match(p.leaf().string(), e);  } @@ -67,6 +67,6 @@ bool bcp_implementation::is_jam_file(const fs::path& p)        "(Jamfile|Jamroot)\\.?",         boost::regex::perl | boost::regex::icase        ); -   return boost::regex_match(p.filename(), e); +   return boost::regex_match(p.filename().string(), e);  } diff --git a/3rdParty/Boost/src/tools/bcp/fileview.cpp b/3rdParty/Boost/src/tools/bcp/fileview.cpp index 845582d..ec9e71a 100644 --- a/3rdParty/Boost/src/tools/bcp/fileview.cpp +++ b/3rdParty/Boost/src/tools/bcp/fileview.cpp @@ -57,11 +57,11 @@ void fileview::close()  void fileview::open(const boost::filesystem::path& p)  {     cow(); -   std::ifstream is(p.native_file_string().c_str()); +   std::ifstream is(p.string().c_str());     if(!is)     {        std::string msg("Bad file name: "); -      msg += p.native_file_string(); +      msg += p.string();        std::runtime_error e(msg);        boost::throw_exception(e);     } diff --git a/3rdParty/Boost/src/tools/bcp/fileview.hpp b/3rdParty/Boost/src/tools/bcp/fileview.hpp index ede4232..fe76f84 100644 --- a/3rdParty/Boost/src/tools/bcp/fileview.hpp +++ b/3rdParty/Boost/src/tools/bcp/fileview.hpp @@ -7,6 +7,12 @@   *   */ +#if defined(BOOST_FILESYSTEM_VERSION) && (BOOST_FILESYSTEM_VERSION != 3) +# error "This library must be built with Boost.Filesystem version 3" +#else +#define BOOST_FILESYSTEM_VERSION 3 +#endif +  #include <boost/shared_ptr.hpp>  #include <boost/filesystem/path.hpp> diff --git a/3rdParty/Boost/src/tools/bcp/main.cpp b/3rdParty/Boost/src/tools/bcp/main.cpp index a152138..28a5491 100644 --- a/3rdParty/Boost/src/tools/bcp/main.cpp +++ b/3rdParty/Boost/src/tools/bcp/main.cpp @@ -13,9 +13,9 @@  #include <cstring>  #include <string>  #include <list> +#include "bcp.hpp"  #include <boost/filesystem/path.hpp>  #include <boost/version.hpp> -#include "bcp.hpp"  #ifdef BOOST_NO_STDC_NAMESPACE  namespace std{ @@ -60,7 +60,7 @@ int cpp_main(int argc, char* argv[])     // with files that already exist, if they're not portable     // names it's too late for us to do anything about it).     // -   boost::filesystem::path::default_name_check(filesystem_name_check); +   /*boost::filesystem::path::default_name_check(filesystem_name_check);*/     //     // without arguments just show help:     // @@ -68,7 +68,7 @@ int cpp_main(int argc, char* argv[])     {        std::cout << "Error: insufficient arguments, don't know what to do." << std::endl;        show_usage(); -      return 0; +      return 1;     }     //     // create the application object: diff --git a/3rdParty/Boost/src/tools/bcp/output_licence_info.cpp b/3rdParty/Boost/src/tools/bcp/output_licence_info.cpp index 26eae7b..2349acc 100644 --- a/3rdParty/Boost/src/tools/bcp/output_licence_info.cpp +++ b/3rdParty/Boost/src/tools/bcp/output_licence_info.cpp @@ -57,7 +57,7 @@ void bcp_implementation::output_license_info()     i = m_license_data.begin();     j = m_license_data.end(); -   std::ofstream os(m_dest_path.native_file_string().c_str()); +   std::ofstream os(m_dest_path.string().c_str());     if(!os)     {        std::string msg("Error opening "); diff --git a/3rdParty/Boost/src/tools/bcp/scan_licence.cpp b/3rdParty/Boost/src/tools/bcp/scan_licence.cpp index 13a0286..d1bf0bb 100644 --- a/3rdParty/Boost/src/tools/bcp/scan_licence.cpp +++ b/3rdParty/Boost/src/tools/bcp/scan_licence.cpp @@ -239,10 +239,10 @@ void bcp_implementation::scan_license(const fs::path& p, const fileview& v)         // Perform the actual conversion         if (m_bsl_convert_mode) {            try{ -            std::ofstream out((m_boost_path / p).native_file_string().c_str()); +             std::ofstream out((m_boost_path / p).string().c_str());              if (!out) {                 std::string msg("Cannot open file for license conversion: "); -               msg += p.native_file_string(); +               msg += p.string();                 std::runtime_error e(msg);                 boost::throw_exception(e);              }  | 
 Swift