From 0efa7c32aaf21a29b42b5926cc116007056843be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Thu, 11 Feb 2010 13:14:00 +0100 Subject: Moved some modules into separate git modules. diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..70b56c4 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,18 @@ +[submodule "3rdParty/CppUnit"] + path = 3rdParty/CppUnit + url = swift@swift.im:git/cppunit-module.git +[submodule "3rdParty/ZLib"] + path = 3rdParty/ZLib + url = swift@swift.im:git/zlib-module.git +[submodule "3rdParty/Boost"] + path = 3rdParty/Boost + url = swift@swift.im:git/boost-module.git +[submodule "3rdParty/CAres"] + path = 3rdParty/CAres + url = swift@swift.im:git/cares-module.git +[submodule "3rdParty/SQLite"] + path = 3rdParty/SQLite + url = swift@swift.im:git/sqlite-module.git +[submodule "Slimber"] + path = Slimber + url = swift@swift.im:git/slimber-module.git diff --git a/3rdParty/Boost b/3rdParty/Boost new file mode 160000 index 0000000..3bbdbc8 --- /dev/null +++ b/3rdParty/Boost @@ -0,0 +1 @@ +Subproject commit 3bbdbc8cf1996f23d9a366da8bac0f97be6ad79e diff --git a/3rdParty/Boost/SConscript b/3rdParty/Boost/SConscript deleted file mode 100644 index d828edc..0000000 --- a/3rdParty/Boost/SConscript +++ /dev/null @@ -1,66 +0,0 @@ -Import("env") - -cppdefines = ["BOOST_ALL_NO_LIB", ("BOOST_SIGNALS_NAMESPACE", "bsignals")] -env["BOOST_FLAGS"] = { - "CPPFLAGS": ["-I" + Dir(".").abspath], - "CPPDEFINES": cppdefines, - "LIBPATH": [Dir(".")], - "LIBS": ["Boost"] - } - -myenv = env.Clone() -myenv.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]]) - -sources = [ - "libs/date_time/src/gregorian/date_generators.cpp", - "libs/date_time/src/gregorian/greg_month.cpp", - "libs/date_time/src/gregorian/greg_weekday.cpp", - "libs/date_time/src/gregorian/gregorian_types.cpp", - "libs/date_time/src/posix_time/posix_time_types.cpp", - "libs/system/src/error_code.cpp", - "libs/thread/src/tss_null.cpp", - "libs/signals/src/connection.cpp", - "libs/signals/src/named_slot_map.cpp", - "libs/signals/src/signal_base.cpp", - "libs/signals/src/slot.cpp", - "libs/signals/src/trackable.cpp", - "libs/filesystem/src/operations.cpp", - "libs/filesystem/src/path.cpp", - "libs/filesystem/src/portability.cpp", - "libs/filesystem/src/utf8_codecvt_facet.cpp", - "libs/regex/src/c_regex_traits.cpp", - "libs/regex/src/cpp_regex_traits.cpp", - "libs/regex/src/cregex.cpp", - "libs/regex/src/fileiter.cpp", - "libs/regex/src/icu.cpp", - "libs/regex/src/instances.cpp", - "libs/regex/src/posix_api.cpp", - "libs/regex/src/regex.cpp", - "libs/regex/src/regex_debug.cpp", - "libs/regex/src/regex_raw_buffer.cpp", - "libs/regex/src/regex_traits_defaults.cpp", - "libs/regex/src/static_mutex.cpp", - "libs/regex/src/w32_regex_traits.cpp", - "libs/regex/src/wc_regex_traits.cpp", - "libs/regex/src/wide_posix_api.cpp", - "libs/regex/src/winstances.cpp", - "libs/regex/src/usinstances.cpp"] - -if env["PLATFORM"] != "win32" : - sources += [ - "libs/thread/src/pthread/exceptions.cpp", - "libs/thread/src/pthread/once.cpp", - "libs/thread/src/pthread/thread.cpp"] - env["BOOST_FLAGS"]["LIBS"] += ["pthread"] -else : - sources += [ - "win32_stubs.cpp", - "libs/thread/src/win32/exceptions.cpp", - "libs/thread/src/win32/thread.cpp", - "libs/thread/src/win32/tss_dll.cpp", - "libs/thread/src/win32/tss_pe.cpp"] - env["BOOST_FLAGS"]["CPPDEFINES"] += [("_WIN32_WINNT", "0x0501")] - if env["PLATFORM"] == "cygwin" : - env["BOOST_FLAGS"]["CPPDEFINES"] += ["__USE_W32_SOCKETS"] - -myenv.StaticLibrary("Boost", sources, CPPFLAGS = "-I" + Dir(".").abspath, CPPDEFINES = cppdefines) diff --git a/3rdParty/Boost/boost/algorithm/string/case_conv.hpp b/3rdParty/Boost/boost/algorithm/string/case_conv.hpp deleted file mode 100644 index 536c022..0000000 --- a/3rdParty/Boost/boost/algorithm/string/case_conv.hpp +++ /dev/null @@ -1,176 +0,0 @@ -// Boost string_algo library case_conv.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_CASE_CONV_HPP -#define BOOST_STRING_CASE_CONV_HPP - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -/*! \file - Defines sequence case-conversion algorithms. - Algorithms convert each element in the input sequence to the - desired case using provided locales. -*/ - -namespace boost { - namespace algorithm { - -// to_lower -----------------------------------------------// - - //! Convert to lower case - /*! - Each element of the input sequence is converted to lower - case. The result is a copy of the input converted to lower case. - It is returned as a sequence or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input range - \param Loc A locale used for conversion - \return - An output iterator pointing just after the last inserted character or - a copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - - */ - template - inline OutputIteratorT - to_lower_copy( - OutputIteratorT Output, - const RangeT& Input, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::detail::transform_range_copy( - Output, - as_literal(Input), - ::boost::algorithm::detail::to_lowerF< - typename range_value::type >(Loc)); - } - - //! Convert to lower case - /*! - \overload - */ - template - inline SequenceT to_lower_copy( - const SequenceT& Input, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::detail::transform_range_copy( - Input, - ::boost::algorithm::detail::to_lowerF< - typename range_value::type >(Loc)); - } - - //! Convert to lower case - /*! - Each element of the input sequence is converted to lower - case. The input sequence is modified in-place. - - \param Input A range - \param Loc a locale used for conversion - */ - template - inline void to_lower( - WritableRangeT& Input, - const std::locale& Loc=std::locale()) - { - ::boost::algorithm::detail::transform_range( - as_literal(Input), - ::boost::algorithm::detail::to_lowerF< - typename range_value::type >(Loc)); - } - -// to_upper -----------------------------------------------// - - //! Convert to upper case - /*! - Each element of the input sequence is converted to upper - case. The result is a copy of the input converted to upper case. - It is returned as a sequence or copied to the output iterator - - \param Output An output iterator to which the result will be copied - \param Input An input range - \param Loc A locale used for conversion - \return - An output iterator pointing just after the last inserted character or - a copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template - inline OutputIteratorT - to_upper_copy( - OutputIteratorT Output, - const RangeT& Input, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::detail::transform_range_copy( - Output, - as_literal(Input), - ::boost::algorithm::detail::to_upperF< - typename range_value::type >(Loc)); - } - - //! Convert to upper case - /*! - \overload - */ - template - inline SequenceT to_upper_copy( - const SequenceT& Input, - const std::locale& Loc=std::locale()) - { - return ::boost::algorithm::detail::transform_range_copy( - Input, - ::boost::algorithm::detail::to_upperF< - typename range_value::type >(Loc)); - } - - //! Convert to upper case - /*! - Each element of the input sequence is converted to upper - case. The input sequence is modified in-place. - - \param Input An input range - \param Loc a locale used for conversion - */ - template - inline void to_upper( - WritableRangeT& Input, - const std::locale& Loc=std::locale()) - { - ::boost::algorithm::detail::transform_range( - as_literal(Input), - ::boost::algorithm::detail::to_upperF< - typename range_value::type >(Loc)); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::to_lower; - using algorithm::to_lower_copy; - using algorithm::to_upper; - using algorithm::to_upper_copy; - -} // namespace boost - -#endif // BOOST_STRING_CASE_CONV_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/compare.hpp b/3rdParty/Boost/boost/algorithm/string/compare.hpp deleted file mode 100644 index 734303a..0000000 --- a/3rdParty/Boost/boost/algorithm/string/compare.hpp +++ /dev/null @@ -1,199 +0,0 @@ -// Boost string_algo library compare.hpp header file -------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// Distributed under the 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. - -#ifndef BOOST_STRING_COMPARE_HPP -#define BOOST_STRING_COMPARE_HPP - -#include -#include - -/*! \file - Defines element comparison predicates. Many algorithms in this library can - take an additional argument with a predicate used to compare elements. - This makes it possible, for instance, to have case insensitive versions - of the algorithms. -*/ - -namespace boost { - namespace algorithm { - - // is_equal functor -----------------------------------------------// - - //! is_equal functor - /*! - Standard STL equal_to only handle comparison between arguments - of the same type. This is a less restrictive version which wraps operator ==. - */ - struct is_equal - { - //! Function operator - /*! - Compare two operands for equality - */ - template< typename T1, typename T2 > - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - return Arg1==Arg2; - } - }; - - //! case insensitive version of is_equal - /*! - Case insensitive comparison predicate. Comparison is done using - specified locales. - */ - struct is_iequal - { - //! Constructor - /*! - \param Loc locales used for comparison - */ - is_iequal( const std::locale& Loc=std::locale() ) : - m_Loc( Loc ) {} - - //! Function operator - /*! - Compare two operands. Case is ignored. - */ - template< typename T1, typename T2 > - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) - return std::toupper(Arg1)==std::toupper(Arg2); - #else - return std::toupper(Arg1,m_Loc)==std::toupper(Arg2,m_Loc); - #endif - } - - private: - std::locale m_Loc; - }; - - // is_less functor -----------------------------------------------// - - //! is_less functor - /*! - Convenient version of standard std::less. Operation is templated, therefore it is - not required to specify the exact types upon the construction - */ - struct is_less - { - //! Functor operation - /*! - Compare two operands using > operator - */ - template< typename T1, typename T2 > - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - return Arg1 - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) - return std::toupper(Arg1)(Arg1,m_Loc)(Arg2,m_Loc); - #endif - } - - private: - std::locale m_Loc; - }; - - // is_not_greater functor -----------------------------------------------// - - //! is_not_greater functor - /*! - Convenient version of standard std::not_greater_to. Operation is templated, therefore it is - not required to specify the exact types upon the construction - */ - struct is_not_greater - { - //! Functor operation - /*! - Compare two operands using > operator - */ - template< typename T1, typename T2 > - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - return Arg1<=Arg2; - } - }; - - - //! case insensitive version of is_not_greater - /*! - Case insensitive comparison predicate. Comparison is done using - specified locales. - */ - struct is_not_igreater - { - //! Constructor - /*! - \param Loc locales used for comparison - */ - is_not_igreater( const std::locale& Loc=std::locale() ) : - m_Loc( Loc ) {} - - //! Function operator - /*! - Compare two operands. Case is ignored. - */ - template< typename T1, typename T2 > - bool operator()( const T1& Arg1, const T2& Arg2 ) const - { - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) - return std::toupper(Arg1)<=std::toupper(Arg2); - #else - return std::toupper(Arg1,m_Loc)<=std::toupper(Arg2,m_Loc); - #endif - } - - private: - std::locale m_Loc; - }; - - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::is_equal; - using algorithm::is_iequal; - using algorithm::is_less; - using algorithm::is_iless; - using algorithm::is_not_greater; - using algorithm::is_not_igreater; - -} // namespace boost - - -#endif // BOOST_STRING_COMPARE_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/concept.hpp b/3rdParty/Boost/boost/algorithm/string/concept.hpp deleted file mode 100644 index 9876e98..0000000 --- a/3rdParty/Boost/boost/algorithm/string/concept.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// Boost string_algo library concept.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_CONCEPT_HPP -#define BOOST_STRING_CONCEPT_HPP - -#include -#include -#include -#include - -/*! \file - Defines concepts used in string_algo library -*/ - -namespace boost { - namespace algorithm { - - //! Finder concept - /*! - Defines the Finder concept. Finder is a functor which selects - an arbitrary part of a string. Search is performed on - the range specified by starting and ending iterators. - - Result of the find operation must be convertible to iterator_range. - */ - template - struct FinderConcept - { - private: - typedef iterator_range range; - public: - void constraints() - { - // Operation - r=(*pF)(i,i); - } - private: - range r; - IteratorT i; - FinderT* pF; - }; // Finder_concept - - - //! Formatter concept - /*! - Defines the Formatter concept. Formatter is a functor, which - takes a result from a finder operation and transforms it - in a specific way. - - Result must be a container supported by container_traits, - or a reference to it. - */ - template - struct FormatterConcept - { - public: - void constraints() - { - // Operation - ::boost::begin((*pFo)( (*pF)(i,i) )); - ::boost::end((*pFo)( (*pF)(i,i) )); - } - private: - IteratorT i; - FinderT* pF; - FormatterT *pFo; - }; // FormatterConcept; - - } // namespace algorithm -} // namespace boost - - - - -#endif // BOOST_STRING_CONCEPT_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/config.hpp b/3rdParty/Boost/boost/algorithm/string/config.hpp deleted file mode 100644 index 559750a..0000000 --- a/3rdParty/Boost/boost/algorithm/string/config.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// Boost string_algo library config.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_CONFIG_HPP -#define BOOST_STRING_CONFIG_HPP - -#include -#include - -#ifdef BOOST_STRING_DEDUCED_TYPENAME -# error "macro already defined!" -#endif - -#define BOOST_STRING_TYPENAME BOOST_DEDUCED_TYPENAME - -// Metrowerks workaround -#if BOOST_WORKAROUND(__MWERKS__, <= 0x3003) // 8.x -#pragma parse_func_templ off -#endif - -#endif // BOOST_STRING_CONFIG_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/constants.hpp b/3rdParty/Boost/boost/algorithm/string/constants.hpp deleted file mode 100644 index 6ed70ef..0000000 --- a/3rdParty/Boost/boost/algorithm/string/constants.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// Boost string_algo library constants.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_CONSTANTS_HPP -#define BOOST_STRING_CONSTANTS_HPP - -namespace boost { - namespace algorithm { - - //! Token compression mode - /*! - Specifies token compression mode for the token_finder. - */ - enum token_compress_mode_type - { - token_compress_on, //!< Compress adjacent tokens - token_compress_off //!< Do not compress adjacent tokens - }; - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::token_compress_on; - using algorithm::token_compress_off; - -} // namespace boost - -#endif // BOOST_STRING_CONSTANTS_HPP - diff --git a/3rdParty/Boost/boost/algorithm/string/detail/case_conv.hpp b/3rdParty/Boost/boost/algorithm/string/detail/case_conv.hpp deleted file mode 100644 index 5253454..0000000 --- a/3rdParty/Boost/boost/algorithm/string/detail/case_conv.hpp +++ /dev/null @@ -1,121 +0,0 @@ -// Boost string_algo library string_funct.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_CASE_CONV_DETAIL_HPP -#define BOOST_STRING_CASE_CONV_DETAIL_HPP - -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// case conversion functors -----------------------------------------------// - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -#pragma warning(push) -#pragma warning(disable:4512) //assignment operator could not be generated -#endif - - // a tolower functor - template - struct to_lowerF : public std::unary_function - { - // Constructor - to_lowerF( const std::locale& Loc ) : m_Loc( Loc ) {} - - // Operation - CharT operator ()( CharT Ch ) const - { - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) - return std::tolower( Ch); - #else - return std::tolower( Ch, m_Loc ); - #endif - } - private: - const std::locale& m_Loc; - }; - - // a toupper functor - template - struct to_upperF : public std::unary_function - { - // Constructor - to_upperF( const std::locale& Loc ) : m_Loc( Loc ) {} - - // Operation - CharT operator ()( CharT Ch ) const - { - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL) - return std::toupper( Ch); - #else - return std::toupper( Ch, m_Loc ); - #endif - } - private: - const std::locale& m_Loc; - }; - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -#pragma warning(pop) -#endif - -// algorithm implementation ------------------------------------------------------------------------- - - // Transform a range - template - OutputIteratorT transform_range_copy( - OutputIteratorT Output, - const RangeT& Input, - FunctorT Functor) - { - return std::transform( - ::boost::begin(Input), - ::boost::end(Input), - Output, - Functor); - } - - // Transform a range (in-place) - template - void transform_range( - const RangeT& Input, - FunctorT Functor) - { - std::transform( - ::boost::begin(Input), - ::boost::end(Input), - ::boost::begin(Input), - Functor); - } - - template - inline SequenceT transform_range_copy( - const RangeT& Input, - FunctorT Functor) - { - return SequenceT( - make_transform_iterator( - ::boost::begin(Input), - Functor), - make_transform_iterator( - ::boost::end(Input), - Functor)); - } - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_CASE_CONV_DETAIL_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/detail/find_format.hpp b/3rdParty/Boost/boost/algorithm/string/detail/find_format.hpp deleted file mode 100644 index 8fb625e..0000000 --- a/3rdParty/Boost/boost/algorithm/string/detail/find_format.hpp +++ /dev/null @@ -1,193 +0,0 @@ -// Boost string_algo library find_format.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_FORMAT_DETAIL_HPP -#define BOOST_STRING_FIND_FORMAT_DETAIL_HPP - -#include -#include -#include -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// find_format_copy (iterator variant) implementation -------------------------------// - - template< - typename OutputIteratorT, - typename InputT, - typename FormatterT, - typename FindResultT > - inline OutputIteratorT find_format_copy_impl( - OutputIteratorT Output, - const InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult ) - { - return find_format_copy_impl2( - Output, - Input, - Formatter, - FindResult, - Formatter(FindResult) ); - } - - template< - typename OutputIteratorT, - typename InputT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline OutputIteratorT find_format_copy_impl2( - OutputIteratorT Output, - const InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult, - const FormatResultT& FormatResult ) - { - typedef find_format_store< - BOOST_STRING_TYPENAME - range_const_iterator::type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - if ( !M ) - { - // Match not found - return original sequence - std::copy( ::boost::begin(Input), ::boost::end(Input), Output ); - return Output; - } - - // Copy the beginning of the sequence - std::copy( ::boost::begin(Input), ::boost::begin(M), Output ); - // Format find result - // Copy formated result - std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output ); - // Copy the rest of the sequence - std::copy( M.end(), ::boost::end(Input), Output ); - - return Output; - } - -// find_format_copy implementation --------------------------------------------------// - - template< - typename InputT, - typename FormatterT, - typename FindResultT > - inline InputT find_format_copy_impl( - const InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult) - { - return find_format_copy_impl2( - Input, - Formatter, - FindResult, - Formatter(FindResult) ); - } - - template< - typename InputT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline InputT find_format_copy_impl2( - const InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult, - const FormatResultT& FormatResult) - { - typedef find_format_store< - BOOST_STRING_TYPENAME - range_const_iterator::type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - if ( !M ) - { - // Match not found - return original sequence - return InputT( Input ); - } - - InputT Output; - // Copy the beginning of the sequence - insert( Output, ::boost::end(Output), ::boost::begin(Input), M.begin() ); - // Copy formated result - insert( Output, ::boost::end(Output), M.format_result() ); - // Copy the rest of the sequence - insert( Output, ::boost::end(Output), M.end(), ::boost::end(Input) ); - - return Output; - } - -// replace implementation ----------------------------------------------------// - - template< - typename InputT, - typename FormatterT, - typename FindResultT > - inline void find_format_impl( - InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult) - { - find_format_impl2( - Input, - Formatter, - FindResult, - Formatter(FindResult) ); - } - - template< - typename InputT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline void find_format_impl2( - InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult, - const FormatResultT& FormatResult) - { - typedef find_format_store< - BOOST_STRING_TYPENAME - range_iterator::type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - if ( !M ) - { - // Search not found - return original sequence - return; - } - - // Replace match - replace( Input, M.begin(), M.end(), M.format_result() ); - } - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FIND_FORMAT_DETAIL_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/detail/find_format_all.hpp b/3rdParty/Boost/boost/algorithm/string/detail/find_format_all.hpp deleted file mode 100644 index 9533be6..0000000 --- a/3rdParty/Boost/boost/algorithm/string/detail/find_format_all.hpp +++ /dev/null @@ -1,263 +0,0 @@ -// Boost string_algo library find_format_all.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP -#define BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP - -#include -#include -#include -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// find_format_all_copy (iterator variant) implementation ---------------------------// - - template< - typename OutputIteratorT, - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT > - inline OutputIteratorT find_format_all_copy_impl( - OutputIteratorT Output, - const InputT& Input, - FinderT Finder, - FormatterT Formatter, - const FindResultT& FindResult ) - { - return find_format_all_copy_impl2( - Output, - Input, - Finder, - Formatter, - FindResult, - Formatter(FindResult) ); - } - - template< - typename OutputIteratorT, - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline OutputIteratorT find_format_all_copy_impl2( - OutputIteratorT Output, - const InputT& Input, - FinderT Finder, - FormatterT Formatter, - const FindResultT& FindResult, - const FormatResultT& FormatResult ) - { - typedef BOOST_STRING_TYPENAME - range_const_iterator::type input_iterator_type; - - typedef find_format_store< - input_iterator_type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - // Initialize last match - input_iterator_type LastMatch=::boost::begin(Input); - - // Iterate through all matches - while( M ) - { - // Copy the beginning of the sequence - std::copy( LastMatch, M.begin(), Output ); - // Copy formated result - std::copy( ::boost::begin(M.format_result()), ::boost::end(M.format_result()), Output ); - - // Proceed to the next match - LastMatch=M.end(); - M=Finder( LastMatch, ::boost::end(Input) ); - } - - // Copy the rest of the sequence - std::copy( LastMatch, ::boost::end(Input), Output ); - - return Output; - } - -// find_format_all_copy implementation ----------------------------------------------// - - template< - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT > - inline InputT find_format_all_copy_impl( - const InputT& Input, - FinderT Finder, - FormatterT Formatter, - const FindResultT& FindResult) - { - return find_format_all_copy_impl2( - Input, - Finder, - Formatter, - FindResult, - Formatter(FindResult) ); - } - - template< - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline InputT find_format_all_copy_impl2( - const InputT& Input, - FinderT Finder, - FormatterT Formatter, - const FindResultT& FindResult, - const FormatResultT& FormatResult) - { - typedef BOOST_STRING_TYPENAME - range_const_iterator::type input_iterator_type; - - typedef find_format_store< - input_iterator_type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - // Initialize last match - input_iterator_type LastMatch=::boost::begin(Input); - - // Output temporary - InputT Output; - - // Iterate through all matches - while( M ) - { - // Copy the beginning of the sequence - insert( Output, ::boost::end(Output), LastMatch, M.begin() ); - // Copy formated result - insert( Output, ::boost::end(Output), M.format_result() ); - - // Proceed to the next match - LastMatch=M.end(); - M=Finder( LastMatch, ::boost::end(Input) ); - } - - // Copy the rest of the sequence - insert( Output, ::boost::end(Output), LastMatch, ::boost::end(Input) ); - - return Output; - } - -// find_format_all implementation ------------------------------------------------// - - template< - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT > - inline void find_format_all_impl( - InputT& Input, - FinderT Finder, - FormatterT Formatter, - FindResultT FindResult) - { - find_format_all_impl2( - Input, - Finder, - Formatter, - FindResult, - Formatter(FindResult) ); - } - - template< - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT, - typename FormatResultT > - inline void find_format_all_impl2( - InputT& Input, - FinderT Finder, - FormatterT Formatter, - FindResultT FindResult, - FormatResultT FormatResult) - { - typedef BOOST_STRING_TYPENAME - range_iterator::type input_iterator_type; - typedef find_format_store< - input_iterator_type, - FormatterT, - FormatResultT > store_type; - - // Create store for the find result - store_type M( FindResult, FormatResult, Formatter ); - - // Instantiate replacement storage - std::deque< - BOOST_STRING_TYPENAME range_value::type> Storage; - - // Initialize replacement iterators - input_iterator_type InsertIt=::boost::begin(Input); - input_iterator_type SearchIt=::boost::begin(Input); - - while( M ) - { - // process the segment - InsertIt=process_segment( - Storage, - Input, - InsertIt, - SearchIt, - M.begin() ); - - // Adjust search iterator - SearchIt=M.end(); - - // Copy formated replace to the storage - copy_to_storage( Storage, M.format_result() ); - - // Find range for a next match - M=Finder( SearchIt, ::boost::end(Input) ); - } - - // process the last segment - InsertIt=process_segment( - Storage, - Input, - InsertIt, - SearchIt, - ::boost::end(Input) ); - - if ( Storage.empty() ) - { - // Truncate input - erase( Input, InsertIt, ::boost::end(Input) ); - } - else - { - // Copy remaining data to the end of input - insert( Input, ::boost::end(Input), Storage.begin(), Storage.end() ); - } - } - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/detail/find_format_store.hpp b/3rdParty/Boost/boost/algorithm/string/detail/find_format_store.hpp deleted file mode 100644 index 2260fc2e..0000000 --- a/3rdParty/Boost/boost/algorithm/string/detail/find_format_store.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// Boost string_algo library find_format_store.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP -#define BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP - -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// temporary format and find result storage --------------------------------// - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -#pragma warning(push) -#pragma warning(disable:4512) //assignment operator could not be generated -#endif - template< - typename ForwardIteratorT, - typename FormatterT, - typename FormatResultT > - class find_format_store : - public iterator_range - { - public: - // typedefs - typedef iterator_range base_type; - typedef FormatterT formatter_type; - typedef FormatResultT format_result_type; - - public: - // Construction - find_format_store( - const base_type& FindResult, - const format_result_type& FormatResult, - const formatter_type& Formatter ) : - base_type(FindResult), - m_FormatResult(FormatResult), - m_Formatter(Formatter) {} - - // Assignment - template< typename FindResultT > - find_format_store& operator=( FindResultT FindResult ) - { - iterator_range::operator=(FindResult); - m_FormatResult=m_Formatter(FindResult); - - return *this; - } - - // Retrieve format result - const format_result_type& format_result() - { - return m_FormatResult; - } - - private: - format_result_type m_FormatResult; - const formatter_type& m_Formatter; - }; - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -#pragma warning(pop) -#endif - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/detail/finder.hpp b/3rdParty/Boost/boost/algorithm/string/detail/finder.hpp deleted file mode 100644 index c6d0752..0000000 --- a/3rdParty/Boost/boost/algorithm/string/detail/finder.hpp +++ /dev/null @@ -1,646 +0,0 @@ -// Boost string_algo library finder.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// Distributed under the 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. - -#ifndef BOOST_STRING_FINDER_DETAIL_HPP -#define BOOST_STRING_FINDER_DETAIL_HPP - -#include -#include -#include - -#include -#include -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - - -// find first functor -----------------------------------------------// - - // find a subsequence in the sequence ( functor ) - /* - Returns a pair marking the subsequence in the sequence. - If the find fails, functor returns - */ - template - struct first_finderF - { - typedef SearchIteratorT search_iterator_type; - - // Construction - template< typename SearchT > - first_finderF( const SearchT& Search, PredicateT Comp ) : - m_Search(::boost::begin(Search), ::boost::end(Search)), m_Comp(Comp) {} - first_finderF( - search_iterator_type SearchBegin, - search_iterator_type SearchEnd, - PredicateT Comp ) : - m_Search(SearchBegin, SearchEnd), m_Comp(Comp) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - typedef iterator_range result_type; - typedef ForwardIteratorT input_iterator_type; - - // Outer loop - for(input_iterator_type OuterIt=Begin; - OuterIt!=End; - ++OuterIt) - { - // Sanity check - if( boost::empty(m_Search) ) - return result_type( End, End ); - - input_iterator_type InnerIt=OuterIt; - search_iterator_type SubstrIt=m_Search.begin(); - for(; - InnerIt!=End && SubstrIt!=m_Search.end(); - ++InnerIt,++SubstrIt) - { - if( !( m_Comp(*InnerIt,*SubstrIt) ) ) - break; - } - - // Substring matching succeeded - if ( SubstrIt==m_Search.end() ) - return result_type( OuterIt, InnerIt ); - } - - return result_type( End, End ); - } - - private: - iterator_range m_Search; - PredicateT m_Comp; - }; - -// find last functor -----------------------------------------------// - - // find the last match a subseqeunce in the sequence ( functor ) - /* - Returns a pair marking the subsequence in the sequence. - If the find fails, returns - */ - template - struct last_finderF - { - typedef SearchIteratorT search_iterator_type; - typedef first_finderF< - search_iterator_type, - PredicateT> first_finder_type; - - // Construction - template< typename SearchT > - last_finderF( const SearchT& Search, PredicateT Comp ) : - m_Search(::boost::begin(Search), ::boost::end(Search)), m_Comp(Comp) {} - last_finderF( - search_iterator_type SearchBegin, - search_iterator_type SearchEnd, - PredicateT Comp ) : - m_Search(SearchBegin, SearchEnd), m_Comp(Comp) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - typedef iterator_range result_type; - - if( boost::empty(m_Search) ) - return result_type( End, End ); - - typedef BOOST_STRING_TYPENAME boost::detail:: - iterator_traits::iterator_category category; - - return findit( Begin, End, category() ); - } - - private: - // forward iterator - template< typename ForwardIteratorT > - iterator_range - findit( - ForwardIteratorT Begin, - ForwardIteratorT End, - std::forward_iterator_tag ) const - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - first_finder_type first_finder( - m_Search.begin(), m_Search.end(), m_Comp ); - - result_type M=first_finder( Begin, End ); - result_type Last=M; - - while( M ) - { - Last=M; - M=first_finder( ::boost::end(M), End ); - } - - return Last; - } - - // bidirectional iterator - template< typename ForwardIteratorT > - iterator_range - findit( - ForwardIteratorT Begin, - ForwardIteratorT End, - std::bidirectional_iterator_tag ) const - { - typedef iterator_range result_type; - typedef ForwardIteratorT input_iterator_type; - - // Outer loop - for(input_iterator_type OuterIt=End; - OuterIt!=Begin; ) - { - input_iterator_type OuterIt2=--OuterIt; - - input_iterator_type InnerIt=OuterIt2; - search_iterator_type SubstrIt=m_Search.begin(); - for(; - InnerIt!=End && SubstrIt!=m_Search.end(); - ++InnerIt,++SubstrIt) - { - if( !( m_Comp(*InnerIt,*SubstrIt) ) ) - break; - } - - // Substring matching succeeded - if( SubstrIt==m_Search.end() ) - return result_type( OuterIt2, InnerIt ); - } - - return result_type( End, End ); - } - - private: - iterator_range m_Search; - PredicateT m_Comp; - }; - -// find n-th functor -----------------------------------------------// - - // find the n-th match of a subsequence in the sequence ( functor ) - /* - Returns a pair marking the subsequence in the sequence. - If the find fails, returns - */ - template - struct nth_finderF - { - typedef SearchIteratorT search_iterator_type; - typedef first_finderF< - search_iterator_type, - PredicateT> first_finder_type; - typedef last_finderF< - search_iterator_type, - PredicateT> last_finder_type; - - // Construction - template< typename SearchT > - nth_finderF( - const SearchT& Search, - int Nth, - PredicateT Comp) : - m_Search(::boost::begin(Search), ::boost::end(Search)), - m_Nth(Nth), - m_Comp(Comp) {} - nth_finderF( - search_iterator_type SearchBegin, - search_iterator_type SearchEnd, - int Nth, - PredicateT Comp) : - m_Search(SearchBegin, SearchEnd), - m_Nth(Nth), - m_Comp(Comp) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - if(m_Nth>=0) - { - return find_forward(Begin, End, m_Nth); - } - else - { - return find_backward(Begin, End, -m_Nth); - } - - } - - private: - // Implementation helpers - template< typename ForwardIteratorT > - iterator_range - find_forward( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N) const - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - // Sanity check - if( boost::empty(m_Search) ) - return result_type( End, End ); - - // Instantiate find functor - first_finder_type first_finder( - m_Search.begin(), m_Search.end(), m_Comp ); - - result_type M( Begin, Begin ); - - for( unsigned int n=0; n<=N; ++n ) - { - // find next match - M=first_finder( ::boost::end(M), End ); - - if ( !M ) - { - // Subsequence not found, return - return M; - } - } - - return M; - } - - template< typename ForwardIteratorT > - iterator_range - find_backward( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N) const - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - // Sanity check - if( boost::empty(m_Search) ) - return result_type( End, End ); - - // Instantiate find functor - last_finder_type last_finder( - m_Search.begin(), m_Search.end(), m_Comp ); - - result_type M( End, End ); - - for( unsigned int n=1; n<=N; ++n ) - { - // find next match - M=last_finder( Begin, ::boost::begin(M) ); - - if ( !M ) - { - // Subsequence not found, return - return M; - } - } - - return M; - } - - - private: - iterator_range m_Search; - int m_Nth; - PredicateT m_Comp; - }; - -// find head/tail implementation helpers ---------------------------// - - template - iterator_range - find_head_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N, - std::forward_iterator_tag ) - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - input_iterator_type It=Begin; - for( - unsigned int Index=0; - Index - iterator_range - find_head_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N, - std::random_access_iterator_tag ) - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - if ( (End<=Begin) || ( static_cast(End-Begin) < N ) ) - return result_type( Begin, End ); - - return result_type(Begin,Begin+N); - } - - // Find head implementation - template - iterator_range - find_head_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N ) - { - typedef BOOST_STRING_TYPENAME boost::detail:: - iterator_traits::iterator_category category; - - return find_head_impl( Begin, End, N, category() ); - } - - template< typename ForwardIteratorT > - iterator_range - find_tail_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N, - std::forward_iterator_tag ) - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - unsigned int Index=0; - input_iterator_type It=Begin; - input_iterator_type It2=Begin; - - // Advance It2 by N increments - for( Index=0; Index - iterator_range - find_tail_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N, - std::bidirectional_iterator_tag ) - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - input_iterator_type It=End; - for( - unsigned int Index=0; - Index - iterator_range - find_tail_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N, - std::random_access_iterator_tag ) - { - typedef ForwardIteratorT input_iterator_type; - typedef iterator_range result_type; - - if ( (End<=Begin) || ( static_cast(End-Begin) < N ) ) - return result_type( Begin, End ); - - return result_type( End-N, End ); - } - - // Operation - template< typename ForwardIteratorT > - iterator_range - find_tail_impl( - ForwardIteratorT Begin, - ForwardIteratorT End, - unsigned int N ) - { - typedef BOOST_STRING_TYPENAME boost::detail:: - iterator_traits::iterator_category category; - - return find_tail_impl( Begin, End, N, category() ); - } - - - -// find head functor -----------------------------------------------// - - - // find a head in the sequence ( functor ) - /* - This functor find a head of the specified range. For - a specified N, the head is a subsequence of N starting - elements of the range. - */ - struct head_finderF - { - // Construction - head_finderF( int N ) : m_N(N) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - if(m_N>=0) - { - return find_head_impl( Begin, End, m_N ); - } - else - { - iterator_range Res= - find_tail_impl( Begin, End, -m_N ); - - return make_iterator_range(Begin, Res.begin()); - } - } - - private: - int m_N; - }; - -// find tail functor -----------------------------------------------// - - - // find a tail in the sequence ( functor ) - /* - This functor find a tail of the specified range. For - a specified N, the head is a subsequence of N starting - elements of the range. - */ - struct tail_finderF - { - // Construction - tail_finderF( int N ) : m_N(N) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - if(m_N>=0) - { - return find_tail_impl( Begin, End, m_N ); - } - else - { - iterator_range Res= - find_head_impl( Begin, End, -m_N ); - - return make_iterator_range(Res.end(), End); - } - } - - private: - int m_N; - }; - -// find token functor -----------------------------------------------// - - // find a token in a sequence ( functor ) - /* - This find functor finds a token specified be a predicate - in a sequence. It is equivalent of std::find algorithm, - with an exception that it return range instead of a single - iterator. - - If bCompress is set to true, adjacent matching tokens are - concatenated into one match. - */ - template< typename PredicateT > - struct token_finderF - { - // Construction - token_finderF( - PredicateT Pred, - token_compress_mode_type eCompress=token_compress_off ) : - m_Pred(Pred), m_eCompress(eCompress) {} - - // Operation - template< typename ForwardIteratorT > - iterator_range - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - typedef iterator_range result_type; - - ForwardIteratorT It=std::find_if( Begin, End, m_Pred ); - - if( It==End ) - { - return result_type( End, End ); - } - else - { - ForwardIteratorT It2=It; - - if( m_eCompress==token_compress_on ) - { - // Find first non-matching character - while( It2!=End && m_Pred(*It2) ) ++It2; - } - else - { - // Advance by one position - ++It2; - } - - return result_type( It, It2 ); - } - } - - private: - PredicateT m_Pred; - token_compress_mode_type m_eCompress; - }; - -// find range functor -----------------------------------------------// - - // find a range in the sequence ( functor ) - /* - This functor actually does not perform any find operation. - It always returns given iterator range as a result. - */ - template - struct range_finderF - { - typedef ForwardIterator1T input_iterator_type; - typedef iterator_range result_type; - - // Construction - range_finderF( - input_iterator_type Begin, - input_iterator_type End ) : m_Range(Begin, End) {} - - range_finderF(const iterator_range& Range) : - m_Range(Range) {} - - // Operation - template< typename ForwardIterator2T > - iterator_range - operator()( - ForwardIterator2T, - ForwardIterator2T ) const - { -#if BOOST_WORKAROUND( __MWERKS__, <= 0x3003 ) - return iterator_range(this->m_Range); -#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - return iterator_range(m_Range.begin(), m_Range.end()); -#else - return m_Range; -#endif - } - - private: - iterator_range m_Range; - }; - - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FINDER_DETAIL_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp b/3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp deleted file mode 100644 index bd6a780..0000000 --- a/3rdParty/Boost/boost/algorithm/string/detail/formatter.hpp +++ /dev/null @@ -1,94 +0,0 @@ -// Boost string_algo library formatter.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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 for updates, documentation, and revision history. - -#ifndef BOOST_STRING_FORMATTER_DETAIL_HPP -#define BOOST_STRING_FORMATTER_DETAIL_HPP - - -#include -#include -#include -#include - -#include - -// generic replace functors -----------------------------------------------// - -namespace boost { - namespace algorithm { - namespace detail { - -// const format functor ----------------------------------------------------// - - // constant format functor - template - struct const_formatF - { - private: - typedef BOOST_STRING_TYPENAME - range_const_iterator::type format_iterator; - typedef iterator_range result_type; - - public: - // Construction - const_formatF(const RangeT& Format) : - m_Format(::boost::begin(Format), ::boost::end(Format)) {} - - // Operation -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - template - result_type& operator()(const Range2T&) - { - return m_Format; - } -#endif - - template - const result_type& operator()(const Range2T&) const - { - return m_Format; - } - - private: - result_type m_Format; - }; - -// identity format functor ----------------------------------------------------// - - // identity format functor - template - struct identity_formatF - { - // Operation - template< typename Range2T > - const RangeT& operator()(const Range2T& Replace) const - { - return RangeT(::boost::begin(Replace), ::boost::end(Replace)); - } - }; - -// empty format functor ( used by erase ) ------------------------------------// - - // empty format functor - template< typename CharT > - struct empty_formatF - { - template< typename ReplaceT > - empty_container operator()(const ReplaceT&) const - { - return empty_container(); - } - }; - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_FORMATTER_DETAIL_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/detail/replace_storage.hpp b/3rdParty/Boost/boost/algorithm/string/detail/replace_storage.hpp deleted file mode 100644 index 7aff247..0000000 --- a/3rdParty/Boost/boost/algorithm/string/detail/replace_storage.hpp +++ /dev/null @@ -1,159 +0,0 @@ -// Boost string_algo library replace_storage.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP -#define BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP - -#include -#include -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// storage handling routines -----------------------------------------------// - - template< typename StorageT, typename OutputIteratorT > - inline OutputIteratorT move_from_storage( - StorageT& Storage, - OutputIteratorT DestBegin, - OutputIteratorT DestEnd ) - { - OutputIteratorT OutputIt=DestBegin; - - while( !Storage.empty() && OutputIt!=DestEnd ) - { - *OutputIt=Storage.front(); - Storage.pop_front(); - ++OutputIt; - } - - return OutputIt; - } - - template< typename StorageT, typename WhatT > - inline void copy_to_storage( - StorageT& Storage, - const WhatT& What ) - { - Storage.insert( Storage.end(), ::boost::begin(What), ::boost::end(What) ); - } - - -// process segment routine -----------------------------------------------// - - template< bool HasStableIterators > - struct process_segment_helper - { - // Optimized version of process_segment for generic sequence - template< - typename StorageT, - typename InputT, - typename ForwardIteratorT > - ForwardIteratorT operator()( - StorageT& Storage, - InputT& /*Input*/, - ForwardIteratorT InsertIt, - ForwardIteratorT SegmentBegin, - ForwardIteratorT SegmentEnd ) - { - // Copy data from the storage until the beginning of the segment - ForwardIteratorT It=move_from_storage( Storage, InsertIt, SegmentBegin ); - - // 3 cases are possible : - // a) Storage is empty, It==SegmentBegin - // b) Storage is empty, It!=SegmentBegin - // c) Storage is not empty - - if( Storage.empty() ) - { - if( It==SegmentBegin ) - { - // Case a) everything is grand, just return end of segment - return SegmentEnd; - } - else - { - // Case b) move the segment backwards - return std::copy( SegmentBegin, SegmentEnd, It ); - } - } - else - { - // Case c) -> shift the segment to the left and keep the overlap in the storage - while( It!=SegmentEnd ) - { - // Store value into storage - Storage.push_back( *It ); - // Get the top from the storage and put it here - *It=Storage.front(); - Storage.pop_front(); - - // Advance - ++It; - } - - return It; - } - } - }; - - template<> - struct process_segment_helper< true > - { - // Optimized version of process_segment for list-like sequence - template< - typename StorageT, - typename InputT, - typename ForwardIteratorT > - ForwardIteratorT operator()( - StorageT& Storage, - InputT& Input, - ForwardIteratorT InsertIt, - ForwardIteratorT SegmentBegin, - ForwardIteratorT SegmentEnd ) - - { - // Call replace to do the job - replace( Input, InsertIt, SegmentBegin, Storage ); - // Empty the storage - Storage.clear(); - // Iterators were not changed, simply return the end of segment - return SegmentEnd; - } - }; - - // Process one segment in the replace_all algorithm - template< - typename StorageT, - typename InputT, - typename ForwardIteratorT > - inline ForwardIteratorT process_segment( - StorageT& Storage, - InputT& Input, - ForwardIteratorT InsertIt, - ForwardIteratorT SegmentBegin, - ForwardIteratorT SegmentEnd ) - { - return - process_segment_helper< - has_stable_iterators::value>()( - Storage, Input, InsertIt, SegmentBegin, SegmentEnd ); - } - - - } // namespace detail - } // namespace algorithm -} // namespace boost - -#endif // BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/detail/sequence.hpp b/3rdParty/Boost/boost/algorithm/string/detail/sequence.hpp deleted file mode 100644 index de01350..0000000 --- a/3rdParty/Boost/boost/algorithm/string/detail/sequence.hpp +++ /dev/null @@ -1,200 +0,0 @@ -// Boost string_algo library sequence.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_DETAIL_SEQUENCE_HPP -#define BOOST_STRING_DETAIL_SEQUENCE_HPP - -#include -#include -#include -#include -#include - -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// insert helpers -------------------------------------------------// - - template< typename InputT, typename ForwardIteratorT > - inline void insert( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator At, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - Input.insert( At, Begin, End ); - } - - template< typename InputT, typename InsertT > - inline void insert( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator At, - const InsertT& Insert ) - { - insert( Input, At, ::boost::begin(Insert), ::boost::end(Insert) ); - } - -// erase helper ---------------------------------------------------// - - // Erase a range in the sequence - /* - Returns the iterator pointing just after the erase subrange - */ - template< typename InputT > - inline typename InputT::iterator erase( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To ) - { - return Input.erase( From, To ); - } - -// replace helper implementation ----------------------------------// - - // Optimized version of replace for generic sequence containers - // Assumption: insert and erase are expensive - template< bool HasConstTimeOperations > - struct replace_const_time_helper - { - template< typename InputT, typename ForwardIteratorT > - void operator()( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - // Copy data to the container ( as much as possible ) - ForwardIteratorT InsertIt=Begin; - BOOST_STRING_TYPENAME InputT::iterator InputIt=From; - for(; InsertIt!=End && InputIt!=To; InsertIt++, InputIt++ ) - { - *InputIt=*InsertIt; - } - - if ( InsertIt!=End ) - { - // Replace sequence is longer, insert it - Input.insert( InputIt, InsertIt, End ); - } - else - { - if ( InputIt!=To ) - { - // Replace sequence is shorter, erase the rest - Input.erase( InputIt, To ); - } - } - } - }; - - template<> - struct replace_const_time_helper< true > - { - // Const-time erase and insert methods -> use them - template< typename InputT, typename ForwardIteratorT > - void operator()( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - BOOST_STRING_TYPENAME InputT::iterator At=Input.erase( From, To ); - if ( Begin!=End ) - { - if(!Input.empty()) - { - Input.insert( At, Begin, End ); - } - else - { - Input.insert( Input.begin(), Begin, End ); - } - } - } - }; - - // No native replace method - template< bool HasNative > - struct replace_native_helper - { - template< typename InputT, typename ForwardIteratorT > - void operator()( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - replace_const_time_helper< - boost::mpl::and_< - has_const_time_insert, - has_const_time_erase >::value >()( - Input, From, To, Begin, End ); - } - }; - - // Container has native replace method - template<> - struct replace_native_helper< true > - { - template< typename InputT, typename ForwardIteratorT > - void operator()( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - Input.replace( From, To, Begin, End ); - } - }; - -// replace helper -------------------------------------------------// - - template< typename InputT, typename ForwardIteratorT > - inline void replace( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - replace_native_helper< has_native_replace::value >()( - Input, From, To, Begin, End ); - } - - template< typename InputT, typename InsertT > - inline void replace( - InputT& Input, - BOOST_STRING_TYPENAME InputT::iterator From, - BOOST_STRING_TYPENAME InputT::iterator To, - const InsertT& Insert ) - { - if(From!=To) - { - replace( Input, From, To, ::boost::begin(Insert), ::boost::end(Insert) ); - } - else - { - insert( Input, From, ::boost::begin(Insert), ::boost::end(Insert) ); - } - } - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_DETAIL_SEQUENCE_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/detail/util.hpp b/3rdParty/Boost/boost/algorithm/string/detail/util.hpp deleted file mode 100644 index 7e8471f..0000000 --- a/3rdParty/Boost/boost/algorithm/string/detail/util.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// Boost string_algo library util.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_UTIL_DETAIL_HPP -#define BOOST_STRING_UTIL_DETAIL_HPP - -#include -#include -#include - -namespace boost { - namespace algorithm { - namespace detail { - -// empty container -----------------------------------------------// - - // empty_container - /* - This class represents always empty container, - containing elements of type CharT. - - It is supposed to be used in a const version only - */ - template< typename CharT > - struct empty_container - { - typedef empty_container type; - typedef CharT value_type; - typedef std::size_t size_type; - typedef std::ptrdiff_t difference_type; - typedef const value_type& reference; - typedef const value_type& const_reference; - typedef const value_type* iterator; - typedef const value_type* const_iterator; - - - // Operations - const_iterator begin() const - { - return reinterpret_cast(0); - } - - const_iterator end() const - { - return reinterpret_cast(0); - } - - bool empty() const - { - return false; - } - - size_type size() const - { - return 0; - } - }; - -// bounded copy algorithm -----------------------------------------------// - - // Bounded version of the std::copy algorithm - template - inline OutputIteratorT bounded_copy( - InputIteratorT First, - InputIteratorT Last, - OutputIteratorT DestFirst, - OutputIteratorT DestLast ) - { - InputIteratorT InputIt=First; - OutputIteratorT OutputIt=DestFirst; - for(; InputIt!=Last && OutputIt!=DestLast; InputIt++, OutputIt++ ) - { - *OutputIt=*InputIt; - } - - return OutputIt; - } - -// iterator range utilities -----------------------------------------// - - // copy range functor - template< - typename SeqT, - typename IteratorT=BOOST_STRING_TYPENAME SeqT::const_iterator > - struct copy_iterator_rangeF : - public std::unary_function< iterator_range, SeqT > - { - SeqT operator()( const iterator_range& Range ) const - { - return copy_range(Range); - } - }; - - } // namespace detail - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_UTIL_DETAIL_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/erase.hpp b/3rdParty/Boost/boost/algorithm/string/erase.hpp deleted file mode 100644 index b50323b..0000000 --- a/3rdParty/Boost/boost/algorithm/string/erase.hpp +++ /dev/null @@ -1,844 +0,0 @@ -// Boost string_algo library erase.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// Distributed under the 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. - -#ifndef BOOST_STRING_ERASE_HPP -#define BOOST_STRING_ERASE_HPP - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines various erase algorithms. Each algorithm removes - part(s) of the input according to a searching criteria. -*/ - -namespace boost { - namespace algorithm { - -// erase_range -------------------------------------------------------// - - //! Erase range algorithm - /*! - Remove the given range from the input. The result is a modified copy of - the input. It is returned as a sequence or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input sequence - \param SearchRange A range in the input to be removed - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template - inline OutputIteratorT erase_range_copy( - OutputIteratorT Output, - const RangeT& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_const_iterator::type>& SearchRange ) - { - return find_format_copy( - Output, - Input, - range_finder(SearchRange), - empty_formatter(Input) ); - } - - //! Erase range algorithm - /*! - \overload - */ - template - inline SequenceT erase_range_copy( - const SequenceT& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_const_iterator::type>& SearchRange ) - { - return find_format_copy( - Input, - range_finder(SearchRange), - empty_formatter(Input) ); - } - - //! Erase range algorithm - /*! - Remove the given range from the input. - The input sequence is modified in-place. - - \param Input An input sequence - \param SearchRange A range in the input to be removed - */ - template - inline void erase_range( - SequenceT& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_iterator::type>& SearchRange ) - { - find_format( - Input, - range_finder(SearchRange), - empty_formatter(Input) ); - } - -// erase_first --------------------------------------------------------// - - //! Erase first algorithm - /*! - Remove the first occurrence of the substring from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT erase_first_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search ) - { - return find_format_copy( - Output, - Input, - first_finder(Search), - empty_formatter(Input) ); - } - - //! Erase first algorithm - /*! - \overload - */ - template - inline SequenceT erase_first_copy( - const SequenceT& Input, - const RangeT& Search ) - { - return find_format_copy( - Input, - first_finder(Search), - empty_formatter(Input) ); - } - - //! Erase first algorithm - /*! - Remove the first occurrence of the substring from the input. - The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for. - */ - template - inline void erase_first( - SequenceT& Input, - const RangeT& Search ) - { - find_format( - Input, - first_finder(Search), - empty_formatter(Input) ); - } - -// erase_first ( case insensitive ) ------------------------------------// - - //! Erase first algorithm ( case insensitive ) - /*! - Remove the first occurrence of the substring from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT ierase_first_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Output, - Input, - first_finder(Search, is_iequal(Loc)), - empty_formatter(Input) ); - } - - //! Erase first algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ierase_first_copy( - const SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Input, - first_finder(Search, is_iequal(Loc)), - empty_formatter(Input) ); - } - - //! Erase first algorithm ( case insensitive ) - /*! - Remove the first occurrence of the substring from the input. - The input sequence is modified in-place. Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Loc A locale used for case insensitive comparison - */ - template - inline void ierase_first( - SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - find_format( - Input, - first_finder(Search, is_iequal(Loc)), - empty_formatter(Input) ); - } - -// erase_last --------------------------------------------------------// - - //! Erase last algorithm - /*! - Remove the last occurrence of the substring from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for. - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT erase_last_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search ) - { - return find_format_copy( - Output, - Input, - last_finder(Search), - empty_formatter(Input) ); - } - - //! Erase last algorithm - /*! - \overload - */ - template - inline SequenceT erase_last_copy( - const SequenceT& Input, - const RangeT& Search ) - { - return find_format_copy( - Input, - last_finder(Search), - empty_formatter(Input) ); - } - - //! Erase last algorithm - /*! - Remove the last occurrence of the substring from the input. - The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for - */ - template - inline void erase_last( - SequenceT& Input, - const RangeT& Search ) - { - find_format( - Input, - last_finder(Search), - empty_formatter(Input) ); - } - -// erase_last ( case insensitive ) ------------------------------------// - - //! Erase last algorithm ( case insensitive ) - /*! - Remove the last occurrence of the substring from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT ierase_last_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Output, - Input, - last_finder(Search, is_iequal(Loc)), - empty_formatter(Input) ); - } - - //! Erase last algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ierase_last_copy( - const SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Input, - last_finder(Search, is_iequal(Loc)), - empty_formatter(Input) ); - } - - //! Erase last algorithm ( case insensitive ) - /*! - Remove the last occurrence of the substring from the input. - The input sequence is modified in-place. Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Loc A locale used for case insensitive comparison - */ - template - inline void ierase_last( - SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - find_format( - Input, - last_finder(Search, is_iequal(Loc)), - empty_formatter(Input) ); - } - -// erase_nth --------------------------------------------------------------------// - - //! Erase nth algorithm - /*! - Remove the Nth occurrence of the substring in the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT erase_nth_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - int Nth ) - { - return find_format_copy( - Output, - Input, - nth_finder(Search, Nth), - empty_formatter(Input) ); - } - - //! Erase nth algorithm - /*! - \overload - */ - template - inline SequenceT erase_nth_copy( - const SequenceT& Input, - const RangeT& Search, - int Nth ) - { - return find_format_copy( - Input, - nth_finder(Search, Nth), - empty_formatter(Input) ); - } - - //! Erase nth algorithm - /*! - Remove the Nth occurrence of the substring in the input. - The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for. - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - */ - template - inline void erase_nth( - SequenceT& Input, - const RangeT& Search, - int Nth ) - { - find_format( - Input, - nth_finder(Search, Nth), - empty_formatter(Input) ); - } - -// erase_nth ( case insensitive ) ---------------------------------------------// - - //! Erase nth algorithm ( case insensitive ) - /*! - Remove the Nth occurrence of the substring in the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for. - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT ierase_nth_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - int Nth, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Output, - Input, - nth_finder(Search, Nth, is_iequal(Loc)), - empty_formatter(Input) ); - } - - //! Erase nth algorithm - /*! - \overload - */ - template - inline SequenceT ierase_nth_copy( - const SequenceT& Input, - const RangeT& Search, - int Nth, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Input, - nth_finder(Search, Nth, is_iequal(Loc)), - empty_formatter(Input) ); - } - - //! Erase nth algorithm - /*! - Remove the Nth occurrence of the substring in the input. - The input sequence is modified in-place. Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for. - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Loc A locale used for case insensitive comparison - */ - template - inline void ierase_nth( - SequenceT& Input, - const RangeT& Search, - int Nth, - const std::locale& Loc=std::locale() ) - { - find_format( - Input, - nth_finder(Search, Nth, is_iequal(Loc)), - empty_formatter(Input) ); - } - - -// erase_all --------------------------------------------------------// - - //! Erase all algorithm - /*! - Remove all the occurrences of the string from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - - \param Output An output iterator to which the result will be copied - \param Input An input sequence - \param Search A substring to be searched for. - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT erase_all_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search ) - { - return find_format_all_copy( - Output, - Input, - first_finder(Search), - empty_formatter(Input) ); - } - - //! Erase all algorithm - /*! - \overload - */ - template - inline SequenceT erase_all_copy( - const SequenceT& Input, - const RangeT& Search ) - { - return find_format_all_copy( - Input, - first_finder(Search), - empty_formatter(Input) ); - } - - //! Erase all algorithm - /*! - Remove all the occurrences of the string from the input. - The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for. - */ - template - inline void erase_all( - SequenceT& Input, - const RangeT& Search ) - { - find_format_all( - Input, - first_finder(Search), - empty_formatter(Input) ); - } - -// erase_all ( case insensitive ) ------------------------------------// - - //! Erase all algorithm ( case insensitive ) - /*! - Remove all the occurrences of the string from the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT ierase_all_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale() ) - { - return find_format_all_copy( - Output, - Input, - first_finder(Search, is_iequal(Loc)), - empty_formatter(Input) ); - } - - //! Erase all algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ierase_all_copy( - const SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - return find_format_all_copy( - Input, - first_finder(Search, is_iequal(Loc)), - empty_formatter(Input) ); - } - - //! Erase all algorithm ( case insensitive ) - /*! - Remove all the occurrences of the string from the input. - The input sequence is modified in-place. Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for. - \param Loc A locale used for case insensitive comparison - */ - template - inline void ierase_all( - SequenceT& Input, - const RangeT& Search, - const std::locale& Loc=std::locale() ) - { - find_format_all( - Input, - first_finder(Search, is_iequal(Loc)), - empty_formatter(Input) ); - } - -// erase_head --------------------------------------------------------------------// - - //! Erase head algorithm - /*! - Remove the head from the input. The head is a prefix of a sequence of given size. - If the sequence is shorter then required, the whole string is - considered to be the head. The result is a modified copy of the input. - It is returned as a sequence or copied to the output iterator. - - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param N Length of the head. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT> - inline OutputIteratorT erase_head_copy( - OutputIteratorT Output, - const RangeT& Input, - int N ) - { - return find_format_copy( - Output, - Input, - head_finder(N), - empty_formatter( Input ) ); - } - - //! Erase head algorithm - /*! - \overload - */ - template - inline SequenceT erase_head_copy( - const SequenceT& Input, - int N ) - { - return find_format_copy( - Input, - head_finder(N), - empty_formatter( Input ) ); - } - - //! Erase head algorithm - /*! - Remove the head from the input. The head is a prefix of a sequence of given size. - If the sequence is shorter then required, the whole string is - considered to be the head. The input sequence is modified in-place. - - \param Input An input string - \param N Length of the head - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - */ - template - inline void erase_head( - SequenceT& Input, - int N ) - { - find_format( - Input, - head_finder(N), - empty_formatter( Input ) ); - } - -// erase_tail --------------------------------------------------------------------// - - //! Erase tail algorithm - /*! - Remove the tail from the input. The tail is a suffix of a sequence of given size. - If the sequence is shorter then required, the whole string is - considered to be the tail. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param N Length of the head. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT> - inline OutputIteratorT erase_tail_copy( - OutputIteratorT Output, - const RangeT& Input, - int N ) - { - return find_format_copy( - Output, - Input, - tail_finder(N), - empty_formatter( Input ) ); - } - - //! Erase tail algorithm - /*! - \overload - */ - template - inline SequenceT erase_tail_copy( - const SequenceT& Input, - int N ) - { - return find_format_copy( - Input, - tail_finder(N), - empty_formatter( Input ) ); - } - - //! Erase tail algorithm - /*! - Remove the tail from the input. The tail is a suffix of a sequence of given size. - If the sequence is shorter then required, the whole string is - considered to be the tail. The input sequence is modified in-place. - - \param Input An input string - \param N Length of the head - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - */ - template - inline void erase_tail( - SequenceT& Input, - int N ) - { - find_format( - Input, - tail_finder(N), - empty_formatter( Input ) ); - } - - } // namespace algorithm - - // pull names into the boost namespace - using algorithm::erase_range_copy; - using algorithm::erase_range; - using algorithm::erase_first_copy; - using algorithm::erase_first; - using algorithm::ierase_first_copy; - using algorithm::ierase_first; - using algorithm::erase_last_copy; - using algorithm::erase_last; - using algorithm::ierase_last_copy; - using algorithm::ierase_last; - using algorithm::erase_nth_copy; - using algorithm::erase_nth; - using algorithm::ierase_nth_copy; - using algorithm::ierase_nth; - using algorithm::erase_all_copy; - using algorithm::erase_all; - using algorithm::ierase_all_copy; - using algorithm::ierase_all; - using algorithm::erase_head_copy; - using algorithm::erase_head; - using algorithm::erase_tail_copy; - using algorithm::erase_tail; - -} // namespace boost - - -#endif // BOOST_ERASE_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/find_format.hpp b/3rdParty/Boost/boost/algorithm/string/find_format.hpp deleted file mode 100644 index 7cbaf34..0000000 --- a/3rdParty/Boost/boost/algorithm/string/find_format.hpp +++ /dev/null @@ -1,269 +0,0 @@ -// Boost string_algo library find_format.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_FORMAT_HPP -#define BOOST_STRING_FIND_FORMAT_HPP - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines generic replace algorithms. Each algorithm replaces - part(s) of the input. The part to be replaced is looked up using a Finder object. - Result of finding is then used by a Formatter object to generate the replacement. -*/ - -namespace boost { - namespace algorithm { - -// generic replace -----------------------------------------------------------------// - - //! Generic replace algorithm - /*! - Use the Finder to search for a substring. Use the Formatter to format - this substring and replace it in the input. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input sequence - \param Finder A Finder object used to search for a match to be replaced - \param Formatter A Formatter object used to format a match - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT, - typename FinderT, - typename FormatterT> - inline OutputIteratorT find_format_copy( - OutputIteratorT Output, - const RangeT& Input, - FinderT Finder, - FormatterT Formatter ) - { - // Concept check - function_requires< - FinderConcept::type> >(); - function_requires< - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> >(); - - iterator_range::type> lit_input(as_literal(Input)); - - return detail::find_format_copy_impl( - Output, - lit_input, - Formatter, - Finder( ::boost::begin(lit_input), ::boost::end(lit_input) ) ); - } - - //! Generic replace algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename FinderT, - typename FormatterT> - inline SequenceT find_format_copy( - const SequenceT& Input, - FinderT Finder, - FormatterT Formatter ) - { - // Concept check - function_requires< - FinderConcept::type> >(); - function_requires< - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> >(); - - return detail::find_format_copy_impl( - Input, - Formatter, - Finder(::boost::begin(Input), ::boost::end(Input))); - } - - //! Generic replace algorithm - /*! - Use the Finder to search for a substring. Use the Formatter to format - this substring and replace it in the input. The input is modified in-place. - - \param Input An input sequence - \param Finder A Finder object used to search for a match to be replaced - \param Formatter A Formatter object used to format a match - */ - template< - typename SequenceT, - typename FinderT, - typename FormatterT> - inline void find_format( - SequenceT& Input, - FinderT Finder, - FormatterT Formatter) - { - // Concept check - function_requires< - FinderConcept::type> >(); - function_requires< - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> >(); - - detail::find_format_impl( - Input, - Formatter, - Finder(::boost::begin(Input), ::boost::end(Input))); - } - - -// find_format_all generic ----------------------------------------------------------------// - - //! Generic replace all algorithm - /*! - Use the Finder to search for a substring. Use the Formatter to format - this substring and replace it in the input. Repeat this for all matching - substrings. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input sequence - \param Finder A Finder object used to search for a match to be replaced - \param Formatter A Formatter object used to format a match - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename RangeT, - typename FinderT, - typename FormatterT> - inline OutputIteratorT find_format_all_copy( - OutputIteratorT Output, - const RangeT& Input, - FinderT Finder, - FormatterT Formatter) - { - // Concept check - function_requires< - FinderConcept::type> >(); - function_requires< - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> >(); - - iterator_range::type> lit_input(as_literal(Input)); - - return detail::find_format_all_copy_impl( - Output, - lit_input, - Finder, - Formatter, - Finder(::boost::begin(lit_input), ::boost::end(lit_input))); - } - - //! Generic replace all algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename FinderT, - typename FormatterT > - inline SequenceT find_format_all_copy( - const SequenceT& Input, - FinderT Finder, - FormatterT Formatter ) - { - // Concept check - function_requires< - FinderConcept::type> >(); - function_requires< - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> >(); - - return detail::find_format_all_copy_impl( - Input, - Finder, - Formatter, - Finder( ::boost::begin(Input), ::boost::end(Input) ) ); - } - - //! Generic replace all algorithm - /*! - Use the Finder to search for a substring. Use the Formatter to format - this substring and replace it in the input. Repeat this for all matching - substrings.The input is modified in-place. - - \param Input An input sequence - \param Finder A Finder object used to search for a match to be replaced - \param Formatter A Formatter object used to format a match - */ - template< - typename SequenceT, - typename FinderT, - typename FormatterT > - inline void find_format_all( - SequenceT& Input, - FinderT Finder, - FormatterT Formatter ) - { - // Concept check - function_requires< - FinderConcept::type> >(); - function_requires< - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> >(); - - detail::find_format_all_impl( - Input, - Finder, - Formatter, - Finder(::boost::begin(Input), ::boost::end(Input))); - - } - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::find_format_copy; - using algorithm::find_format; - using algorithm::find_format_all_copy; - using algorithm::find_format_all; - -} // namespace boost - - -#endif // BOOST_STRING_FIND_FORMAT_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/finder.hpp b/3rdParty/Boost/boost/algorithm/string/finder.hpp deleted file mode 100644 index c936ddb..0000000 --- a/3rdParty/Boost/boost/algorithm/string/finder.hpp +++ /dev/null @@ -1,270 +0,0 @@ -// Boost string_algo library finder.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// Distributed under the 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. - -#ifndef BOOST_STRING_FINDER_HPP -#define BOOST_STRING_FINDER_HPP - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines Finder generators. Finder object is a functor which is able to - find a substring matching a specific criteria in the input. - Finders are used as a pluggable components for replace, find - and split facilities. This header contains generator functions - for finders provided in this library. -*/ - -namespace boost { - namespace algorithm { - -// Finder generators ------------------------------------------// - - //! "First" finder - /*! - Construct the \c first_finder. The finder searches for the first - occurrence of the string in a given input. - The result is given as an \c iterator_range delimiting the match. - - \param Search A substring to be searched for. - \param Comp An element comparison predicate - \return An instance of the \c first_finder object - */ - template - inline detail::first_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - is_equal> - first_finder( const RangeT& Search ) - { - return - detail::first_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - is_equal>( as_literal(Search), is_equal() ) ; - } - - //! "First" finder - /*! - \overload - */ - template - inline detail::first_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - PredicateT> - first_finder( - const RangeT& Search, PredicateT Comp ) - { - return - detail::first_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - PredicateT>( as_literal(Search), Comp ); - } - - //! "Last" finder - /*! - Construct the \c last_finder. The finder searches for the last - occurrence of the string in a given input. - The result is given as an \c iterator_range delimiting the match. - - \param Search A substring to be searched for. - \param Comp An element comparison predicate - \return An instance of the \c last_finder object - */ - template - inline detail::last_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - is_equal> - last_finder( const RangeT& Search ) - { - return - detail::last_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - is_equal>( as_literal(Search), is_equal() ); - } - //! "Last" finder - /*! - \overload - */ - template - inline detail::last_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - PredicateT> - last_finder( const RangeT& Search, PredicateT Comp ) - { - return - detail::last_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - PredicateT>( as_literal(Search), Comp ) ; - } - - //! "Nth" finder - /*! - Construct the \c nth_finder. The finder searches for the n-th (zero-indexed) - occurrence of the string in a given input. - The result is given as an \c iterator_range delimiting the match. - - \param Search A substring to be searched for. - \param Nth An index of the match to be find - \param Comp An element comparison predicate - \return An instance of the \c nth_finder object - */ - template - inline detail::nth_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - is_equal> - nth_finder( - const RangeT& Search, - int Nth) - { - return - detail::nth_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - is_equal>( as_literal(Search), Nth, is_equal() ) ; - } - //! "Nth" finder - /*! - \overload - */ - template - inline detail::nth_finderF< - BOOST_STRING_TYPENAME range_const_iterator::type, - PredicateT> - nth_finder( - const RangeT& Search, - int Nth, - PredicateT Comp ) - { - return - detail::nth_finderF< - BOOST_STRING_TYPENAME - range_const_iterator::type, - PredicateT>( as_literal(Search), Nth, Comp ); - } - - //! "Head" finder - /*! - Construct the \c head_finder. The finder returns a head of a given - input. The head is a prefix of a string up to n elements in - size. If an input has less then n elements, whole input is - considered a head. - The result is given as an \c iterator_range delimiting the match. - - \param N The size of the head - \return An instance of the \c head_finder object - */ - inline detail::head_finderF - head_finder( int N ) - { - return detail::head_finderF(N); - } - - //! "Tail" finder - /*! - Construct the \c tail_finder. The finder returns a tail of a given - input. The tail is a suffix of a string up to n elements in - size. If an input has less then n elements, whole input is - considered a head. - The result is given as an \c iterator_range delimiting the match. - - \param N The size of the head - \return An instance of the \c tail_finder object - */ - inline detail::tail_finderF - tail_finder( int N ) - { - return detail::tail_finderF(N); - } - - //! "Token" finder - /*! - Construct the \c token_finder. The finder searches for a token - specified by a predicate. It is similar to std::find_if - algorithm, with an exception that it return a range of - instead of a single iterator. - - If "compress token mode" is enabled, adjacent matching tokens are - concatenated into one match. Thus the finder can be used to - search for continuous segments of characters satisfying the - given predicate. - - The result is given as an \c iterator_range delimiting the match. - - \param Pred An element selection predicate - \param eCompress Compress flag - \return An instance of the \c token_finder object - */ - template< typename PredicateT > - inline detail::token_finderF - token_finder( - PredicateT Pred, - token_compress_mode_type eCompress=token_compress_off ) - { - return detail::token_finderF( Pred, eCompress ); - } - - //! "Range" finder - /*! - Construct the \c range_finder. The finder does not perform - any operation. It simply returns the given range for - any input. - - \param Begin Beginning of the range - \param End End of the range - \param Range The range. - \return An instance of the \c range_finger object - */ - template< typename ForwardIteratorT > - inline detail::range_finderF - range_finder( - ForwardIteratorT Begin, - ForwardIteratorT End ) - { - return detail::range_finderF( Begin, End ); - } - - //! "Range" finder - /*! - \overload - */ - template< typename ForwardIteratorT > - inline detail::range_finderF - range_finder( iterator_range Range ) - { - return detail::range_finderF( Range ); - } - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::first_finder; - using algorithm::last_finder; - using algorithm::nth_finder; - using algorithm::head_finder; - using algorithm::tail_finder; - using algorithm::token_finder; - using algorithm::range_finder; - -} // namespace boost - - -#endif // BOOST_STRING_FINDER_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/formatter.hpp b/3rdParty/Boost/boost/algorithm/string/formatter.hpp deleted file mode 100644 index e04a50f..0000000 --- a/3rdParty/Boost/boost/algorithm/string/formatter.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// Boost string_algo library formatter.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_FORMATTER_HPP -#define BOOST_STRING_FORMATTER_HPP - -#include -#include -#include -#include - -#include - -/*! \file - Defines Formatter generators. Formatter is a functor which formats - a string according to given parameters. A Formatter works - in conjunction with a Finder. A Finder can provide additional information - for a specific Formatter. An example of such a cooperation is regex_finder - and regex_formatter. - - Formatters are used as pluggable components for replace facilities. - This header contains generator functions for the Formatters provided in this library. -*/ - -namespace boost { - namespace algorithm { - -// generic formatters ---------------------------------------------------------------// - - //! Constant formatter - /*! - Construct the \c const_formatter. Const formatter always returns - the same value, regardless of the parameter. - - \param Format A predefined value used as a result for formating - \return An instance of the \c const_formatter object. - */ - template - inline detail::const_formatF< - iterator_range< - BOOST_STRING_TYPENAME range_const_iterator::type> > - const_formatter(const RangeT& Format) - { - return detail::const_formatF< - iterator_range< - BOOST_STRING_TYPENAME range_const_iterator::type> >(as_literal(Format)); - } - - //! Identity formatter - /*! - Construct the \c identity_formatter. Identity formatter always returns - the parameter. - - \return An instance of the \c identity_formatter object. - */ - template - inline detail::identity_formatF< - iterator_range< - BOOST_STRING_TYPENAME range_const_iterator::type> > - identity_formatter() - { - return detail::identity_formatF< - iterator_range< - BOOST_STRING_TYPENAME range_const_iterator::type> >(); - } - - //! Empty formatter - /*! - Construct the \c empty_formatter. Empty formatter always returns an empty - sequence. - - \param Input container used to select a correct value_type for the - resulting empty_container<>. - \return An instance of the \c empty_formatter object. - */ - template - inline detail::empty_formatF< - BOOST_STRING_TYPENAME range_value::type> - empty_formatter(const RangeT&) - { - return detail::empty_formatF< - BOOST_STRING_TYPENAME range_value::type>(); - } - - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::const_formatter; - using algorithm::identity_formatter; - using algorithm::empty_formatter; - -} // namespace boost - - -#endif // BOOST_FORMATTER_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/replace.hpp b/3rdParty/Boost/boost/algorithm/string/replace.hpp deleted file mode 100644 index 1c59ec7..0000000 --- a/3rdParty/Boost/boost/algorithm/string/replace.hpp +++ /dev/null @@ -1,928 +0,0 @@ -// Boost string_algo library replace.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-2006. -// -// Distributed under the 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. - -#ifndef BOOST_STRING_REPLACE_HPP -#define BOOST_STRING_REPLACE_HPP - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -/*! \file - Defines various replace algorithms. Each algorithm replaces - part(s) of the input according to set of searching and replace criteria. -*/ - -namespace boost { - namespace algorithm { - -// replace_range --------------------------------------------------------------------// - - //! Replace range algorithm - /*! - Replace the given range in the input string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param SearchRange A range in the input to be substituted - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT replace_range_copy( - OutputIteratorT Output, - const Range1T& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_const_iterator::type>& SearchRange, - const Range2T& Format) - { - return find_format_copy( - Output, - Input, - range_finder(SearchRange), - const_formatter(Format)); - } - - //! Replace range algorithm - /*! - \overload - */ - template - inline SequenceT replace_range_copy( - const SequenceT& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_const_iterator::type>& SearchRange, - const RangeT& Format) - { - return find_format_copy( - Input, - range_finder(SearchRange), - const_formatter(Format)); - } - - //! Replace range algorithm - /*! - Replace the given range in the input string. - The input sequence is modified in-place. - - \param Input An input string - \param SearchRange A range in the input to be substituted - \param Format A substitute string - */ - template - inline void replace_range( - SequenceT& Input, - const iterator_range< - BOOST_STRING_TYPENAME - range_iterator::type>& SearchRange, - const RangeT& Format) - { - find_format( - Input, - range_finder(SearchRange), - const_formatter(Format)); - } - -// replace_first --------------------------------------------------------------------// - - //! Replace first algorithm - /*! - Replace the first match of the search substring in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT replace_first_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format) - { - return find_format_copy( - Output, - Input, - first_finder(Search), - const_formatter(Format) ); - } - - //! Replace first algorithm - /*! - \overload - */ - template - inline SequenceT replace_first_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - return find_format_copy( - Input, - first_finder(Search), - const_formatter(Format) ); - } - - //! Replace first algorithm - /*! - replace the first match of the search substring in the input - with the format string. The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - */ - template - inline void replace_first( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - find_format( - Input, - first_finder(Search), - const_formatter(Format) ); - } - -// replace_first ( case insensitive ) ---------------------------------------------// - - //! Replace first algorithm ( case insensitive ) - /*! - Replace the first match of the search substring in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT ireplace_first_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Output, - Input, - first_finder(Search, is_iequal(Loc)), - const_formatter(Format) ); - } - - //! Replace first algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ireplace_first_copy( - const SequenceT& Input, - const Range2T& Search, - const Range1T& Format, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Input, - first_finder(Search, is_iequal(Loc)), - const_formatter(Format) ); - } - - //! Replace first algorithm ( case insensitive ) - /*! - Replace the first match of the search substring in the input - with the format string. Input sequence is modified in-place. - Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - */ - template - inline void ireplace_first( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - find_format( - Input, - first_finder(Search, is_iequal(Loc)), - const_formatter(Format) ); - } - -// replace_last --------------------------------------------------------------------// - - //! Replace last algorithm - /*! - Replace the last match of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT replace_last_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format ) - { - return find_format_copy( - Output, - Input, - last_finder(Search), - const_formatter(Format) ); - } - - //! Replace last algorithm - /*! - \overload - */ - template - inline SequenceT replace_last_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - return find_format_copy( - Input, - last_finder(Search), - const_formatter(Format) ); - } - - //! Replace last algorithm - /*! - Replace the last match of the search string in the input - with the format string. Input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - */ - template - inline void replace_last( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - find_format( - Input, - last_finder(Search), - const_formatter(Format) ); - } - -// replace_last ( case insensitive ) -----------------------------------------------// - - //! Replace last algorithm ( case insensitive ) - /*! - Replace the last match of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT ireplace_last_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Output, - Input, - last_finder(Search, is_iequal(Loc)), - const_formatter(Format) ); - } - - //! Replace last algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ireplace_last_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Input, - last_finder(Search, is_iequal(Loc)), - const_formatter(Format) ); - } - - //! Replace last algorithm ( case insensitive ) - /*! - Replace the last match of the search string in the input - with the format string.The input sequence is modified in-place. - Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - \return A reference to the modified input - */ - template - inline void ireplace_last( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - find_format( - Input, - last_finder(Search, is_iequal(Loc)), - const_formatter(Format) ); - } - -// replace_nth --------------------------------------------------------------------// - - //! Replace nth algorithm - /*! - Replace an Nth (zero-indexed) match of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT replace_nth_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - int Nth, - const Range3T& Format ) - { - return find_format_copy( - Output, - Input, - nth_finder(Search, Nth), - const_formatter(Format) ); - } - - //! Replace nth algorithm - /*! - \overload - */ - template - inline SequenceT replace_nth_copy( - const SequenceT& Input, - const Range1T& Search, - int Nth, - const Range2T& Format ) - { - return find_format_copy( - Input, - nth_finder(Search, Nth), - const_formatter(Format) ); - } - - //! Replace nth algorithm - /*! - Replace an Nth (zero-indexed) match of the search string in the input - with the format string. Input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Format A substitute string - */ - template - inline void replace_nth( - SequenceT& Input, - const Range1T& Search, - int Nth, - const Range2T& Format ) - { - find_format( - Input, - nth_finder(Search, Nth), - const_formatter(Format) ); - } - -// replace_nth ( case insensitive ) -----------------------------------------------// - - //! Replace nth algorithm ( case insensitive ) - /*! - Replace an Nth (zero-indexed) match of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT ireplace_nth_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - int Nth, - const Range3T& Format, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Output, - Input, - nth_finder(Search, Nth, is_iequal(Loc) ), - const_formatter(Format) ); - } - - //! Replace nth algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ireplace_nth_copy( - const SequenceT& Input, - const Range1T& Search, - int Nth, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - return find_format_copy( - Input, - nth_finder(Search, Nth, is_iequal(Loc)), - const_formatter(Format) ); - } - - //! Replace nth algorithm ( case insensitive ) - /*! - Replace an Nth (zero-indexed) match of the search string in the input - with the format string. Input sequence is modified in-place. - Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Nth An index of the match to be replaced. The index is 0-based. - For negative N, matches are counted from the end of string. - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - */ - template - inline void ireplace_nth( - SequenceT& Input, - const Range1T& Search, - int Nth, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - find_format( - Input, - nth_finder(Search, Nth, is_iequal(Loc)), - const_formatter(Format) ); - } - -// replace_all --------------------------------------------------------------------// - - //! Replace all algorithm - /*! - Replace all occurrences of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT replace_all_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format ) - { - return find_format_all_copy( - Output, - Input, - first_finder(Search), - const_formatter(Format) ); - } - - //! Replace all algorithm - /*! - \overload - */ - template - inline SequenceT replace_all_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - return find_format_all_copy( - Input, - first_finder(Search), - const_formatter(Format) ); - } - - //! Replace all algorithm - /*! - Replace all occurrences of the search string in the input - with the format string. The input sequence is modified in-place. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \return A reference to the modified input - */ - template - inline void replace_all( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - find_format_all( - Input, - first_finder(Search), - const_formatter(Format) ); - } - -// replace_all ( case insensitive ) -----------------------------------------------// - - //! Replace all algorithm ( case insensitive ) - /*! - Replace all occurrences of the search string in the input - with the format string. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - Searching is case insensitive. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T, - typename Range3T> - inline OutputIteratorT ireplace_all_copy( - OutputIteratorT Output, - const Range1T& Input, - const Range2T& Search, - const Range3T& Format, - const std::locale& Loc=std::locale() ) - { - return find_format_all_copy( - Output, - Input, - first_finder(Search, is_iequal(Loc)), - const_formatter(Format) ); - } - - //! Replace all algorithm ( case insensitive ) - /*! - \overload - */ - template - inline SequenceT ireplace_all_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - return find_format_all_copy( - Input, - first_finder(Search, is_iequal(Loc)), - const_formatter(Format) ); - } - - //! Replace all algorithm ( case insensitive ) - /*! - Replace all occurrences of the search string in the input - with the format string.The input sequence is modified in-place. - Searching is case insensitive. - - \param Input An input string - \param Search A substring to be searched for - \param Format A substitute string - \param Loc A locale used for case insensitive comparison - */ - template - inline void ireplace_all( - SequenceT& Input, - const Range1T& Search, - const Range2T& Format, - const std::locale& Loc=std::locale() ) - { - find_format_all( - Input, - first_finder(Search, is_iequal(Loc)), - const_formatter(Format) ); - } - -// replace_head --------------------------------------------------------------------// - - //! Replace head algorithm - /*! - Replace the head of the input with the given format string. - The head is a prefix of a string of given size. - If the sequence is shorter then required, whole string if - considered to be the head. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param N Length of the head. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT replace_head_copy( - OutputIteratorT Output, - const Range1T& Input, - int N, - const Range2T& Format ) - { - return find_format_copy( - Output, - Input, - head_finder(N), - const_formatter(Format) ); - } - - //! Replace head algorithm - /*! - \overload - */ - template - inline SequenceT replace_head_copy( - const SequenceT& Input, - int N, - const RangeT& Format ) - { - return find_format_copy( - Input, - head_finder(N), - const_formatter(Format) ); - } - - //! Replace head algorithm - /*! - Replace the head of the input with the given format string. - The head is a prefix of a string of given size. - If the sequence is shorter then required, the whole string is - considered to be the head. The input sequence is modified in-place. - - \param Input An input string - \param N Length of the head. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \param Format A substitute string - */ - template - inline void replace_head( - SequenceT& Input, - int N, - const RangeT& Format ) - { - find_format( - Input, - head_finder(N), - const_formatter(Format) ); - } - -// replace_tail --------------------------------------------------------------------// - - //! Replace tail algorithm - /*! - Replace the tail of the input with the given format string. - The tail is a suffix of a string of given size. - If the sequence is shorter then required, whole string is - considered to be the tail. - The result is a modified copy of the input. It is returned as a sequence - or copied to the output iterator. - - \param Output An output iterator to which the result will be copied - \param Input An input string - \param N Length of the tail. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \param Format A substitute string - \return An output iterator pointing just after the last inserted character or - a modified copy of the input - - \note The second variant of this function provides the strong exception-safety guarantee - */ - template< - typename OutputIteratorT, - typename Range1T, - typename Range2T> - inline OutputIteratorT replace_tail_copy( - OutputIteratorT Output, - const Range1T& Input, - int N, - const Range2T& Format ) - { - return find_format_copy( - Output, - Input, - tail_finder(N), - const_formatter(Format) ); - } - - //! Replace tail algorithm - /*! - \overload - */ - template - inline SequenceT replace_tail_copy( - const SequenceT& Input, - int N, - const RangeT& Format ) - { - return find_format_copy( - Input, - tail_finder(N), - const_formatter(Format) ); - } - - //! Replace tail algorithm - /*! - Replace the tail of the input with the given format sequence. - The tail is a suffix of a string of given size. - If the sequence is shorter then required, the whole string is - considered to be the tail. The input sequence is modified in-place. - - \param Input An input string - \param N Length of the tail. - For N>=0, at most N characters are extracted. - For N<0, size(Input)-|N| characters are extracted. - \param Format A substitute string - */ - template - inline void replace_tail( - SequenceT& Input, - int N, - const RangeT& Format ) - { - find_format( - Input, - tail_finder(N), - const_formatter(Format) ); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::replace_range_copy; - using algorithm::replace_range; - using algorithm::replace_first_copy; - using algorithm::replace_first; - using algorithm::ireplace_first_copy; - using algorithm::ireplace_first; - using algorithm::replace_last_copy; - using algorithm::replace_last; - using algorithm::ireplace_last_copy; - using algorithm::ireplace_last; - using algorithm::replace_nth_copy; - using algorithm::replace_nth; - using algorithm::ireplace_nth_copy; - using algorithm::ireplace_nth; - using algorithm::replace_all_copy; - using algorithm::replace_all; - using algorithm::ireplace_all_copy; - using algorithm::ireplace_all; - using algorithm::replace_head_copy; - using algorithm::replace_head; - using algorithm::replace_tail_copy; - using algorithm::replace_tail; - -} // namespace boost - -#endif // BOOST_REPLACE_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/sequence_traits.hpp b/3rdParty/Boost/boost/algorithm/string/sequence_traits.hpp deleted file mode 100644 index b1ac67e..0000000 --- a/3rdParty/Boost/boost/algorithm/string/sequence_traits.hpp +++ /dev/null @@ -1,193 +0,0 @@ -// Boost string_algo library sequence_traits.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_SEQUENCE_TRAITS_HPP -#define BOOST_STRING_SEQUENCE_TRAITS_HPP - -#include -#include -#include - -/*! \file - Traits defined in this header are used by various algorithms to achieve - better performance for specific containers. - Traits provide fail-safe defaults. If a container supports some of these - features, it is possible to specialize the specific trait for this container. - For lacking compilers, it is possible of define an override for a specific tester - function. - - Due to a language restriction, it is not currently possible to define specializations for - stl containers without including the corresponding header. To decrease the overhead - needed by this inclusion, user can selectively include a specialization - header for a specific container. They are located in boost/algorithm/string/stl - directory. Alternatively she can include boost/algorithm/string/std_collection_traits.hpp - header which contains specializations for all stl containers. -*/ - -namespace boost { - namespace algorithm { - -// sequence traits -----------------------------------------------// - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - //! Native replace tester - /*! - Declare an override of this tester function with return - type boost::string_algo::yes_type for a sequence with this property. - - \return yes_type if the container has basic_string like native replace - method. - */ - no_type has_native_replace_tester(...); - - //! Stable iterators tester - /*! - Declare an override of this tester function with return - type boost::string_algo::yes_type for a sequence with this property. - - \return yes_type if the sequence's insert/replace/erase methods do not invalidate - existing iterators. - */ - no_type has_stable_iterators_tester(...); - - //! const time insert tester - /*! - Declare an override of this tester function with return - type boost::string_algo::yes_type for a sequence with this property. - - \return yes_type if the sequence's insert method is working in constant time - */ - no_type has_const_time_insert_tester(...); - - //! const time erase tester - /*! - Declare an override of this tester function with return - type boost::string_algo::yes_type for a sequence with this property. - - \return yes_type if the sequence's erase method is working in constant time - */ - no_type has_const_time_erase_tester(...); - -#endif //BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - //! Native replace trait - /*! - This trait specifies that the sequence has \c std::string like replace method - */ - template< typename T > - class has_native_replace - { - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - private: - static T* t; - public: - BOOST_STATIC_CONSTANT(bool, value=( - sizeof(has_native_replace_tester(t))==sizeof(yes_type) ) ); -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - - typedef mpl::bool_::value> type; - }; - - - //! Stable iterators trait - /*! - This trait specifies that the sequence has stable iterators. It means - that operations like insert/erase/replace do not invalidate iterators. - */ - template< typename T > - class has_stable_iterators - { -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - private: - static T* t; - public: - BOOST_STATIC_CONSTANT(bool, value=( - sizeof(has_stable_iterators_tester(t))==sizeof(yes_type) ) ); -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - typedef mpl::bool_::value> type; - }; - - - //! Const time insert trait - /*! - This trait specifies that the sequence's insert method has - constant time complexity. - */ - template< typename T > - class has_const_time_insert - { -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - private: - static T* t; - public: - BOOST_STATIC_CONSTANT(bool, value=( - sizeof(has_const_time_insert_tester(t))==sizeof(yes_type) ) ); -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - typedef mpl::bool_::value> type; - }; - - - //! Const time erase trait - /*! - This trait specifies that the sequence's erase method has - constant time complexity. - */ - template< typename T > - class has_const_time_erase - { -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - private: - static T* t; - public: - BOOST_STATIC_CONSTANT(bool, value=( - sizeof(has_const_time_erase_tester(t))==sizeof(yes_type) ) ); -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - typedef mpl::bool_::value> type; - }; - - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_SEQUENCE_TRAITS_HPP diff --git a/3rdParty/Boost/boost/algorithm/string/yes_no_type.hpp b/3rdParty/Boost/boost/algorithm/string/yes_no_type.hpp deleted file mode 100644 index b76cc6c..0000000 --- a/3rdParty/Boost/boost/algorithm/string/yes_no_type.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// Boost string_algo library yes_no_type.hpp header file ---------------------------// - -// Copyright Pavol Droba 2002-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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_YES_NO_TYPE_DETAIL_HPP -#define BOOST_STRING_YES_NO_TYPE_DETAIL_HPP - -namespace boost { - namespace algorithm { - - // taken from boost mailing-list - // when yes_no_type will become officially - // a part of boost distribution, this header - // will be deprecated - template struct size_descriptor - { - typedef char (& type)[I]; - }; - - typedef size_descriptor<1>::type yes_type; - typedef size_descriptor<2>::type no_type; - - } // namespace algorithm -} // namespace boost - - -#endif // BOOST_STRING_YES_NO_TYPE_DETAIL_HPP diff --git a/3rdParty/Boost/boost/aligned_storage.hpp b/3rdParty/Boost/boost/aligned_storage.hpp deleted file mode 100644 index cfaf787..0000000 --- a/3rdParty/Boost/boost/aligned_storage.hpp +++ /dev/null @@ -1,170 +0,0 @@ -//----------------------------------------------------------------------------- -// boost aligned_storage.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2002-2003 -// Eric Friedman, Itay Maman -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_ALIGNED_STORAGE_HPP -#define BOOST_ALIGNED_STORAGE_HPP - -#include // for std::size_t - -#include "boost/config.hpp" -#include "boost/detail/workaround.hpp" -#include "boost/type_traits/alignment_of.hpp" -#include "boost/type_traits/type_with_alignment.hpp" -#include "boost/type_traits/is_pod.hpp" - -#include "boost/mpl/eval_if.hpp" -#include "boost/mpl/identity.hpp" - -#include "boost/type_traits/detail/bool_trait_def.hpp" - -namespace boost { - -namespace detail { namespace aligned_storage { - -BOOST_STATIC_CONSTANT( - std::size_t - , alignment_of_max_align = ::boost::alignment_of::value - ); - -// -// To be TR1 conforming this must be a POD type: -// -template < - std::size_t size_ - , std::size_t alignment_ -> -struct aligned_storage_imp -{ - union data_t - { - char buf[size_]; - - typename mpl::eval_if_c< - alignment_ == std::size_t(-1) - , mpl::identity - , type_with_alignment - >::type align_; - } data_; -}; - -}} // namespace detail::aligned_storage - -template < - std::size_t size_ - , std::size_t alignment_ = std::size_t(-1) -> -class aligned_storage -{ -private: // representation - - detail::aligned_storage::aligned_storage_imp data_; - -public: // constants - - typedef detail::aligned_storage::aligned_storage_imp type; - - BOOST_STATIC_CONSTANT( - std::size_t - , size = size_ - ); - BOOST_STATIC_CONSTANT( - std::size_t - , alignment = ( - alignment_ == std::size_t(-1) - ? ::boost::detail::aligned_storage::alignment_of_max_align - : alignment_ - ) - ); - -#if defined(__GNUC__) &&\ - (__GNUC__ > 3) ||\ - (__GNUC__ == 3 && (__GNUC_MINOR__ > 2 ||\ - (__GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ >=3))) - -private: // noncopyable - - aligned_storage(const aligned_storage&); - aligned_storage& operator=(const aligned_storage&); - -#else // gcc less than 3.2.3 - -public: // _should_ be noncopyable, but GCC compiler emits error - - aligned_storage(const aligned_storage&); - aligned_storage& operator=(const aligned_storage&); - -#endif // gcc < 3.2.3 workaround - -public: // structors - - aligned_storage() - { - } - - ~aligned_storage() - { - } - -public: // accessors - - void* address() - { - return this; - } - -#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) - - const void* address() const - { - return this; - } - -#else // MSVC6 - - const void* address() const; - -#endif // MSVC6 workaround - -}; - -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - -// MSVC6 seems not to like inline functions with const void* returns, so we -// declare the following here: - -template -const void* aligned_storage::address() const -{ - return const_cast< aligned_storage* >(this)->address(); -} - -#endif // MSVC6 workaround - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -// -// Make sure that is_pod recognises aligned_storage<>::type -// as a POD (Note that aligned_storage<> itself is not a POD): -// -template -struct is_pod > - BOOST_TT_AUX_BOOL_C_BASE(true) -{ - BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(true) -}; -#endif - - -} // namespace boost - -#include "boost/type_traits/detail/bool_trait_undef.hpp" - -#endif // BOOST_ALIGNED_STORAGE_HPP diff --git a/3rdParty/Boost/boost/any.hpp b/3rdParty/Boost/boost/any.hpp deleted file mode 100644 index 47773dc..0000000 --- a/3rdParty/Boost/boost/any.hpp +++ /dev/null @@ -1,237 +0,0 @@ -// See http://www.boost.org/libs/any for Documentation. - -#ifndef BOOST_ANY_INCLUDED -#define BOOST_ANY_INCLUDED - -// what: variant type boost::any -// who: contributed by Kevlin Henney, -// with features contributed and bugs found by -// Ed Brey, Mark Rodgers, Peter Dimov, and James Curran -// when: July 2001 -// where: tested with BCC 5.5, MSVC 6.0, and g++ 2.95 - -#include -#include - -#include "boost/config.hpp" -#include -#include -#include -#include - -namespace boost -{ - class any - { - public: // structors - - any() - : content(0) - { - } - - template - any(const ValueType & value) - : content(new holder(value)) - { - } - - any(const any & other) - : content(other.content ? other.content->clone() : 0) - { - } - - ~any() - { - delete content; - } - - public: // modifiers - - any & swap(any & rhs) - { - std::swap(content, rhs.content); - return *this; - } - - template - any & operator=(const ValueType & rhs) - { - any(rhs).swap(*this); - return *this; - } - - any & operator=(any rhs) - { - rhs.swap(*this); - return *this; - } - - public: // queries - - bool empty() const - { - return !content; - } - - const std::type_info & type() const - { - return content ? content->type() : typeid(void); - } - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - private: // types -#else - public: // types (public so any_cast can be non-friend) -#endif - - class placeholder - { - public: // structors - - virtual ~placeholder() - { - } - - public: // queries - - virtual const std::type_info & type() const = 0; - - virtual placeholder * clone() const = 0; - - }; - - template - class holder : public placeholder - { - public: // structors - - holder(const ValueType & value) - : held(value) - { - } - - public: // queries - - virtual const std::type_info & type() const - { - return typeid(ValueType); - } - - virtual placeholder * clone() const - { - return new holder(held); - } - - public: // representation - - ValueType held; - - private: // intentionally left unimplemented - holder & operator=(const holder &); - }; - -#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS - - private: // representation - - template - friend ValueType * any_cast(any *); - - template - friend ValueType * unsafe_any_cast(any *); - -#else - - public: // representation (public so any_cast can be non-friend) - -#endif - - placeholder * content; - - }; - - class bad_any_cast : public std::bad_cast - { - public: - virtual const char * what() const throw() - { - return "boost::bad_any_cast: " - "failed conversion using boost::any_cast"; - } - }; - - template - ValueType * any_cast(any * operand) - { - return operand && operand->type() == typeid(ValueType) - ? &static_cast *>(operand->content)->held - : 0; - } - - template - inline const ValueType * any_cast(const any * operand) - { - return any_cast(const_cast(operand)); - } - - template - ValueType any_cast(any & operand) - { - typedef BOOST_DEDUCED_TYPENAME remove_reference::type nonref; - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - // If 'nonref' is still reference type, it means the user has not - // specialized 'remove_reference'. - - // Please use BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION macro - // to generate specialization of remove_reference for your class - // See type traits library documentation for details - BOOST_STATIC_ASSERT(!is_reference::value); -#endif - - nonref * result = any_cast(&operand); - if(!result) - boost::throw_exception(bad_any_cast()); - return *result; - } - - template - inline ValueType any_cast(const any & operand) - { - typedef BOOST_DEDUCED_TYPENAME remove_reference::type nonref; - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - // The comment in the above version of 'any_cast' explains when this - // assert is fired and what to do. - BOOST_STATIC_ASSERT(!is_reference::value); -#endif - - return any_cast(const_cast(operand)); - } - - // Note: The "unsafe" versions of any_cast are not part of the - // public interface and may be removed at any time. They are - // required where we know what type is stored in the any and can't - // use typeid() comparison, e.g., when our types may travel across - // different shared libraries. - template - inline ValueType * unsafe_any_cast(any * operand) - { - return &static_cast *>(operand->content)->held; - } - - template - inline const ValueType * unsafe_any_cast(const any * operand) - { - return unsafe_any_cast(const_cast(operand)); - } -} - -// Copyright Kevlin Henney, 2000, 2001, 2002. All rights reserved. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#endif diff --git a/3rdParty/Boost/boost/array.hpp b/3rdParty/Boost/boost/array.hpp deleted file mode 100644 index 52218aa..0000000 --- a/3rdParty/Boost/boost/array.hpp +++ /dev/null @@ -1,321 +0,0 @@ -/* The following code declares class array, - * an STL container (as wrapper) for arrays of constant size. - * - * See - * http://www.boost.org/libs/array/ - * for documentation. - * - * The original author site is at: http://www.josuttis.com/ - * - * (C) Copyright Nicolai M. Josuttis 2001. - * - * Distributed under the Boost Software License, Version 1.0. (See - * accompanying file LICENSE_1_0.txt or copy at - * http://www.boost.org/LICENSE_1_0.txt) - * - * 29 Jan 2004 - c_array() added, BOOST_NO_PRIVATE_IN_AGGREGATE removed (Nico Josuttis) - * 23 Aug 2002 - fix for Non-MSVC compilers combined with MSVC libraries. - * 05 Aug 2001 - minor update (Nico Josuttis) - * 20 Jan 2001 - STLport fix (Beman Dawes) - * 29 Sep 2000 - Initial Revision (Nico Josuttis) - * - * Jan 29, 2004 - */ -#ifndef BOOST_ARRAY_HPP -#define BOOST_ARRAY_HPP - -#include -#include -#include - -// Handles broken standard libraries better than -#include -#include -#include - -// FIXES for broken compilers -#include - - -namespace boost { - - template - class array { - public: - T elems[N]; // fixed-size array of elements of type T - - public: - // type definitions - typedef T value_type; - typedef T* iterator; - typedef const T* const_iterator; - typedef T& reference; - typedef const T& const_reference; - typedef std::size_t size_type; - 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; } - - // reverse iterator support -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; -#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310) - // workaround for broken reverse_iterator in VC7 - typedef std::reverse_iterator > reverse_iterator; - typedef std::reverse_iterator > const_reverse_iterator; -#else - // workaround for broken reverse_iterator implementations - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; -#endif - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - - // operator[] - reference operator[](size_type i) - { - BOOST_ASSERT( i < N && "out of range" ); - return elems[i]; - } - - const_reference operator[](size_type i) const - { - BOOST_ASSERT( i < N && "out of range" ); - return elems[i]; - } - - // at() with range check - reference at(size_type i) { rangecheck(i); return elems[i]; } - const_reference at(size_type i) const { rangecheck(i); return elems[i]; } - - // front() and back() - reference front() - { - return elems[0]; - } - - const_reference front() const - { - return elems[0]; - } - - reference back() - { - return elems[N-1]; - } - - const_reference back() const - { - return elems[N-1]; - } - - // size is constant - static size_type size() { return N; } - static bool empty() { return false; } - static size_type max_size() { return N; } - enum { static_size = N }; - - // swap (note: linear complexity) - void swap (array& y) { - std::swap_ranges(begin(),end(),y.begin()); - } - - // direct access to data (read-only) - const T* data() const { return elems; } - T* data() { return elems; } - - // use array as C array (direct read/write access to data) - T* c_array() { return elems; } - - // assignment with type conversion - template - array& operator= (const array& rhs) { - std::copy(rhs.begin(),rhs.end(), begin()); - return *this; - } - - // assign one value to all elements - void assign (const T& value) - { - std::fill_n(begin(),size(),value); - } - - // check range (may be private because it is static) - static void rangecheck (size_type i) { - if (i >= size()) { - throw std::out_of_range("array<>: index out of range"); - } - } - - }; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - template< class T > - class array< T, 0 > { - - public: - // type definitions - typedef T value_type; - typedef T* iterator; - typedef const T* const_iterator; - typedef T& reference; - typedef const T& const_reference; - typedef std::size_t size_type; - 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(); } - - // reverse iterator support -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; -#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310) - // workaround for broken reverse_iterator in VC7 - typedef std::reverse_iterator > reverse_iterator; - typedef std::reverse_iterator > const_reverse_iterator; -#else - // workaround for broken reverse_iterator implementations - typedef std::reverse_iterator reverse_iterator; - typedef std::reverse_iterator const_reverse_iterator; -#endif - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - - // operator[] - reference operator[](size_type i) - { - return failed_rangecheck(); - } - - const_reference operator[](size_type i) const - { - return failed_rangecheck(); - } - - // at() with range check - reference at(size_type i) { return failed_rangecheck(); } - const_reference at(size_type i) const { return failed_rangecheck(); } - - // front() and back() - reference front() - { - return failed_rangecheck(); - } - - const_reference front() const - { - return failed_rangecheck(); - } - - reference back() - { - return failed_rangecheck(); - } - - const_reference back() const - { - return failed_rangecheck(); - } - - // size is constant - static size_type size() { return 0; } - static bool empty() { return true; } - static size_type max_size() { return 0; } - enum { static_size = 0 }; - - void swap (array& y) { - } - - // direct access to data (read-only) - const T* data() const { return 0; } - T* data() { return 0; } - - // use array as C array (direct read/write access to data) - T* c_array() { return 0; } - - // assignment with type conversion - template - array& operator= (const array& ) { - return *this; - } - - // assign one value to all elements - void assign (const T& ) { } - - // check range (may be private because it is static) - static reference failed_rangecheck () { - std::out_of_range e("attempt to access element of an empty array"); - boost::throw_exception(e); - // - // We need to return something here to keep - // some compilers happy: however we will never - // actually get here.... - // - static T placeholder; - return placeholder; - } - }; -#endif - - // comparisons - template - bool operator== (const array& x, const array& y) { - return std::equal(x.begin(), x.end(), y.begin()); - } - template - bool operator< (const array& x, const array& y) { - return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end()); - } - template - bool operator!= (const array& x, const array& y) { - return !(x==y); - } - template - bool operator> (const array& x, const array& y) { - return y - bool operator<= (const array& x, const array& y) { - return !(y - bool operator>= (const array& x, const array& y) { - return !(x - inline void swap (array& x, array& y) { - x.swap(y); - } - -} /* namespace boost */ - -#endif /*BOOST_ARRAY_HPP*/ diff --git a/3rdParty/Boost/boost/asio.hpp b/3rdParty/Boost/boost/asio.hpp deleted file mode 100644 index 5d8b43b..0000000 --- a/3rdParty/Boost/boost/asio.hpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// asio.hpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// -// See www.boost.org/libs/asio for documentation. -// - -#ifndef BOOST_ASIO_HPP -#define BOOST_ASIO_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif // BOOST_ASIO_HPP diff --git a/3rdParty/Boost/boost/asio/basic_datagram_socket.hpp b/3rdParty/Boost/boost/asio/basic_datagram_socket.hpp deleted file mode 100644 index 8fa870b..0000000 --- a/3rdParty/Boost/boost/asio/basic_datagram_socket.hpp +++ /dev/null @@ -1,805 +0,0 @@ -// -// basic_datagram_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BASIC_DATAGRAM_SOCKET_HPP -#define BOOST_ASIO_BASIC_DATAGRAM_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Provides datagram-oriented socket functionality. -/** - * The basic_datagram_socket class template provides asynchronous and blocking - * datagram-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template > -class basic_datagram_socket - : public basic_socket -{ -public: - /// The native representation of a socket. - typedef typename DatagramSocketService::native_type native_type; - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_datagram_socket without opening it. - /** - * This constructor creates a datagram socket without opening it. The open() - * function must be called before data can be sent or received on the socket. - * - * @param io_service The io_service object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - */ - explicit basic_datagram_socket(boost::asio::io_service& io_service) - : basic_socket(io_service) - { - } - - /// Construct and open a basic_datagram_socket. - /** - * This constructor creates and opens a datagram socket. - * - * @param io_service The io_service object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_datagram_socket(boost::asio::io_service& io_service, - const protocol_type& protocol) - : basic_socket(io_service, protocol) - { - } - - /// Construct a basic_datagram_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a datagram socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_service The io_service object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param endpoint An endpoint on the local machine to which the datagram - * socket will be bound. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_datagram_socket(boost::asio::io_service& io_service, - const endpoint_type& endpoint) - : basic_socket(io_service, endpoint) - { - } - - /// Construct a basic_datagram_socket on an existing native socket. - /** - * This constructor creates a datagram socket object to hold an existing - * native socket. - * - * @param io_service The io_service object that the datagram socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_datagram_socket(boost::asio::io_service& io_service, - const protocol_type& protocol, const native_type& native_socket) - : basic_socket( - io_service, protocol, native_socket) - { - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code socket.send(boost::asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.send(this->implementation, buffers, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - boost::system::error_code ec; - std::size_t s = this->service.send( - this->implementation, buffers, flags, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected datagram socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return this->service.send(this->implementation, buffers, flags, ec); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected datagram - * socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_send(const ConstBufferSequence& buffers, WriteHandler handler) - { - this->service.async_send(this->implementation, buffers, 0, handler); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to send data on the datagram socket. The function - * call will block until the data has been sent successfully or an error - * occurs. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected datagram - * socket. - */ - template - void async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, WriteHandler handler) - { - this->service.async_send(this->implementation, buffers, flags, handler); - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @returns The number of bytes sent. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * boost::asio::ip::udp::endpoint destination( - * boost::asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.send_to(boost::asio::buffer(data, size), destination); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination) - { - boost::system::error_code ec; - std::size_t s = this->service.send_to( - this->implementation, buffers, destination, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws boost::system::system_error Thrown on failure. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags) - { - boost::system::error_code ec; - std::size_t s = this->service.send_to( - this->implementation, buffers, destination, flags, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Send a datagram to the specified endpoint. - /** - * This function is used to send a datagram to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - boost::system::error_code& ec) - { - return this->service.send_to(this->implementation, - buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send a datagram to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * boost::asio::ip::udp::endpoint destination( - * boost::asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_send_to( - * boost::asio::buffer(data, size), destination, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, WriteHandler handler) - { - this->service.async_send_to(this->implementation, buffers, destination, 0, - handler); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send a datagram to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ - template - void async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - WriteHandler handler) - { - this->service.async_send_to(this->implementation, buffers, destination, - flags, handler); - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.receive(boost::asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.receive( - this->implementation, buffers, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - boost::system::error_code ec; - std::size_t s = this->service.receive( - this->implementation, buffers, flags, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the datagram socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected datagram - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return this->service.receive(this->implementation, buffers, flags, ec); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the datagram - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * datagram socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_receive(const MutableBufferSequence& buffers, ReadHandler handler) - { - this->service.async_receive(this->implementation, buffers, 0, handler); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the datagram - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * datagram socket. - */ - template - void async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, ReadHandler handler) - { - this->service.async_receive(this->implementation, buffers, flags, handler); - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @returns The number of bytes received. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * boost::asio::ip::udp::endpoint sender_endpoint; - * socket.receive_from( - * boost::asio::buffer(data, size), sender_endpoint); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint) - { - boost::system::error_code ec; - std::size_t s = this->service.receive_from( - this->implementation, buffers, sender_endpoint, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws boost::system::system_error Thrown on failure. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags) - { - boost::system::error_code ec; - std::size_t s = this->service.receive_from( - this->implementation, buffers, sender_endpoint, flags, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Receive a datagram with the endpoint of the sender. - /** - * This function is used to receive a datagram. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - boost::system::error_code& ec) - { - return this->service.receive_from(this->implementation, buffers, - sender_endpoint, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive a datagram. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.async_receive_from( - * boost::asio::buffer(data, size), 0, sender_endpoint, handler); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, ReadHandler handler) - { - this->service.async_receive_from(this->implementation, buffers, - sender_endpoint, 0, handler); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive a datagram. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the datagram. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ - template - void async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - ReadHandler handler) - { - this->service.async_receive_from(this->implementation, buffers, - sender_endpoint, flags, handler); - } -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BASIC_DATAGRAM_SOCKET_HPP diff --git a/3rdParty/Boost/boost/asio/basic_deadline_timer.hpp b/3rdParty/Boost/boost/asio/basic_deadline_timer.hpp deleted file mode 100644 index 65256b8..0000000 --- a/3rdParty/Boost/boost/asio/basic_deadline_timer.hpp +++ /dev/null @@ -1,383 +0,0 @@ -// -// basic_deadline_timer.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BASIC_DEADLINE_TIMER_HPP -#define BOOST_ASIO_BASIC_DEADLINE_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Provides waitable timer functionality. -/** - * The basic_deadline_timer class template provides the ability to perform a - * blocking or asynchronous wait for a timer to expire. - * - * Most applications will use the boost::asio::deadline_timer typedef. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Examples - * Performing a blocking wait: - * @code - * // Construct a timer without setting an expiry time. - * boost::asio::deadline_timer timer(io_service); - * - * // Set an expiry time relative to now. - * timer.expires_from_now(boost::posix_time::seconds(5)); - * - * // Wait for the timer to expire. - * timer.wait(); - * @endcode - * - * @par - * Performing an asynchronous wait: - * @code - * void handler(const boost::system::error_code& error) - * { - * if (!error) - * { - * // Timer expired. - * } - * } - * - * ... - * - * // Construct a timer with an absolute expiry time. - * boost::asio::deadline_timer timer(io_service, - * boost::posix_time::time_from_string("2005-12-07 23:59:59.000")); - * - * // Start an asynchronous wait. - * timer.async_wait(handler); - * @endcode - * - * @par Changing an active deadline_timer's expiry time - * - * Changing the expiry time of a timer while there are pending asynchronous - * waits causes those wait operations to be cancelled. To ensure that the action - * associated with the timer is performed only once, use something like this: - * used: - * - * @code - * void on_some_event() - * { - * if (my_timer.expires_from_now(seconds(5)) > 0) - * { - * // We managed to cancel the timer. Start new asynchronous wait. - * my_timer.async_wait(on_timeout); - * } - * else - * { - * // Too late, timer has already expired! - * } - * } - * - * void on_timeout(const boost::system::error_code& e) - * { - * if (e != boost::asio::error::operation_aborted) - * { - * // Timer was not cancelled, take necessary action. - * } - * } - * @endcode - * - * @li The boost::asio::basic_deadline_timer::expires_from_now() function - * cancels any pending asynchronous waits, and returns the number of - * asynchronous waits that were cancelled. If it returns 0 then you were too - * late and the wait handler has already been executed, or will soon be - * executed. If it returns 1 then the wait handler was successfully cancelled. - * - * @li If a wait handler is cancelled, the boost::system::error_code passed to - * it contains the value boost::asio::error::operation_aborted. - */ -template , - typename TimerService = deadline_timer_service > -class basic_deadline_timer - : public basic_io_object -{ -public: - /// The time traits type. - typedef TimeTraits traits_type; - - /// The time type. - typedef typename traits_type::time_type time_type; - - /// The duration type. - typedef typename traits_type::duration_type duration_type; - - /// Constructor. - /** - * This constructor creates a timer without setting an expiry time. The - * expires_at() or expires_from_now() functions must be called to set an - * expiry time before the timer can be waited on. - * - * @param io_service The io_service object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - */ - explicit basic_deadline_timer(boost::asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Constructor to set a particular expiry time as an absolute time. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_service The io_service object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, expressed - * as an absolute time. - */ - basic_deadline_timer(boost::asio::io_service& io_service, - const time_type& expiry_time) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.expires_at(this->implementation, expiry_time, ec); - boost::asio::detail::throw_error(ec); - } - - /// Constructor to set a particular expiry time relative to now. - /** - * This constructor creates a timer and sets the expiry time. - * - * @param io_service The io_service object that the timer will use to dispatch - * handlers for any asynchronous operations performed on the timer. - * - * @param expiry_time The expiry time to be used for the timer, relative to - * now. - */ - basic_deadline_timer(boost::asio::io_service& io_service, - const duration_type& expiry_time) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.expires_from_now(this->implementation, expiry_time, ec); - boost::asio::detail::throw_error(ec); - } - - /// Cancel any asynchronous operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the boost::asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws boost::system::system_error Thrown on failure. - */ - std::size_t cancel() - { - boost::system::error_code ec; - std::size_t s = this->service.cancel(this->implementation, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Cancel any asynchronous operations that are waiting on the timer. - /** - * This function forces the completion of any pending asynchronous wait - * operations against the timer. The handler for each cancelled operation will - * be invoked with the boost::asio::error::operation_aborted error code. - * - * Cancelling the timer does not change the expiry time. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - */ - std::size_t cancel(boost::system::error_code& ec) - { - return this->service.cancel(this->implementation, ec); - } - - /// Get the timer's expiry time as an absolute time. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - time_type expires_at() const - { - return this->service.expires_at(this->implementation); - } - - /// Set the timer's expiry time as an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the boost::asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws boost::system::system_error Thrown on failure. - */ - std::size_t expires_at(const time_type& expiry_time) - { - boost::system::error_code ec; - std::size_t s = this->service.expires_at( - this->implementation, expiry_time, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Set the timer's expiry time as an absolute time. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the boost::asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - */ - std::size_t expires_at(const time_type& expiry_time, - boost::system::error_code& ec) - { - return this->service.expires_at(this->implementation, expiry_time, ec); - } - - /// Get the timer's expiry time relative to now. - /** - * This function may be used to obtain the timer's current expiry time. - * Whether the timer has expired or not does not affect this value. - */ - duration_type expires_from_now() const - { - return this->service.expires_from_now(this->implementation); - } - - /// Set the timer's expiry time relative to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the boost::asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @return The number of asynchronous operations that were cancelled. - * - * @throws boost::system::system_error Thrown on failure. - */ - std::size_t expires_from_now(const duration_type& expiry_time) - { - boost::system::error_code ec; - std::size_t s = this->service.expires_from_now( - this->implementation, expiry_time, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Set the timer's expiry time relative to now. - /** - * This function sets the expiry time. Any pending asynchronous wait - * operations will be cancelled. The handler for each cancelled operation will - * be invoked with the boost::asio::error::operation_aborted error code. - * - * @param expiry_time The expiry time to be used for the timer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of asynchronous operations that were cancelled. - */ - std::size_t expires_from_now(const duration_type& expiry_time, - boost::system::error_code& ec) - { - return this->service.expires_from_now( - this->implementation, expiry_time, ec); - } - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @throws boost::system::system_error Thrown on failure. - */ - void wait() - { - boost::system::error_code ec; - this->service.wait(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Perform a blocking wait on the timer. - /** - * This function is used to wait for the timer to expire. This function - * blocks and does not return until the timer has expired. - * - * @param ec Set to indicate what error occurred, if any. - */ - void wait(boost::system::error_code& ec) - { - this->service.wait(this->implementation, ec); - } - - /// Start an asynchronous wait on the timer. - /** - * This function may be used to initiate an asynchronous wait against the - * timer. It always returns immediately. - * - * For each call to async_wait(), the supplied handler will be called exactly - * once. The handler will be called when: - * - * @li The timer has expired. - * - * @li The timer was cancelled, in which case the handler is passed the error - * code boost::asio::error::operation_aborted. - * - * @param handler The handler to be called when the timer expires. Copies - * will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const boost::system::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ - template - void async_wait(WaitHandler handler) - { - this->service.async_wait(this->implementation, handler); - } -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BASIC_DEADLINE_TIMER_HPP diff --git a/3rdParty/Boost/boost/asio/basic_io_object.hpp b/3rdParty/Boost/boost/asio/basic_io_object.hpp deleted file mode 100644 index 1cbf9bb..0000000 --- a/3rdParty/Boost/boost/asio/basic_io_object.hpp +++ /dev/null @@ -1,99 +0,0 @@ -// -// basic_io_object.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BASIC_IO_OBJECT_HPP -#define BOOST_ASIO_BASIC_IO_OBJECT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include - -namespace boost { -namespace asio { - -/// Base class for all I/O objects. -template -class basic_io_object - : private noncopyable -{ -public: - /// The type of the service that will be used to provide I/O operations. - typedef IoObjectService service_type; - - /// The underlying implementation type of I/O object. - typedef typename service_type::implementation_type implementation_type; - - /// (Deprecated: use get_io_service().) Get the io_service associated with - /// the object. - /** - * This function may be used to obtain the io_service object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_service object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - boost::asio::io_service& io_service() - { - return service.get_io_service(); - } - - /// Get the io_service associated with the object. - /** - * This function may be used to obtain the io_service object that the I/O - * object uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_service object that the I/O object will use - * to dispatch handlers. Ownership is not transferred to the caller. - */ - boost::asio::io_service& get_io_service() - { - return service.get_io_service(); - } - -protected: - /// Construct a basic_io_object. - /** - * Performs: - * @code service.construct(implementation); @endcode - */ - explicit basic_io_object(boost::asio::io_service& io_service) - : service(boost::asio::use_service(io_service)) - { - service.construct(implementation); - } - - /// Protected destructor to prevent deletion through this type. - /** - * Performs: - * @code service.destroy(implementation); @endcode - */ - ~basic_io_object() - { - service.destroy(implementation); - } - - /// The service associated with the I/O object. - service_type& service; - - /// The underlying implementation of the I/O object. - implementation_type implementation; -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BASIC_IO_OBJECT_HPP diff --git a/3rdParty/Boost/boost/asio/basic_raw_socket.hpp b/3rdParty/Boost/boost/asio/basic_raw_socket.hpp deleted file mode 100644 index 1ba5558..0000000 --- a/3rdParty/Boost/boost/asio/basic_raw_socket.hpp +++ /dev/null @@ -1,800 +0,0 @@ -// -// basic_raw_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BASIC_RAW_SOCKET_HPP -#define BOOST_ASIO_BASIC_RAW_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Provides raw-oriented socket functionality. -/** - * The basic_raw_socket class template provides asynchronous and blocking - * raw-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template > -class basic_raw_socket - : public basic_socket -{ -public: - /// The native representation of a socket. - typedef typename RawSocketService::native_type native_type; - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_raw_socket without opening it. - /** - * This constructor creates a raw socket without opening it. The open() - * function must be called before data can be sent or received on the socket. - * - * @param io_service The io_service object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - */ - explicit basic_raw_socket(boost::asio::io_service& io_service) - : basic_socket(io_service) - { - } - - /// Construct and open a basic_raw_socket. - /** - * This constructor creates and opens a raw socket. - * - * @param io_service The io_service object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_raw_socket(boost::asio::io_service& io_service, - const protocol_type& protocol) - : basic_socket(io_service, protocol) - { - } - - /// Construct a basic_raw_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a raw socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_service The io_service object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param endpoint An endpoint on the local machine to which the raw - * socket will be bound. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_raw_socket(boost::asio::io_service& io_service, - const endpoint_type& endpoint) - : basic_socket(io_service, endpoint) - { - } - - /// Construct a basic_raw_socket on an existing native socket. - /** - * This constructor creates a raw socket object to hold an existing - * native socket. - * - * @param io_service The io_service object that the raw socket will use - * to dispatch handlers for any asynchronous operations performed on the - * socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_raw_socket(boost::asio::io_service& io_service, - const protocol_type& protocol, const native_type& native_socket) - : basic_socket( - io_service, protocol, native_socket) - { - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code socket.send(boost::asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.send(this->implementation, buffers, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One ore more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - boost::system::error_code ec; - std::size_t s = this->service.send( - this->implementation, buffers, flags, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Send some data on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - * - * @note The send operation can only be used with a connected socket. Use - * the send_to function to send data on an unconnected raw socket. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return this->service.send(this->implementation, buffers, flags, ec); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected raw - * socket. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_send(const ConstBufferSequence& buffers, WriteHandler handler) - { - this->service.async_send(this->implementation, buffers, 0, handler); - } - - /// Start an asynchronous send on a connected socket. - /** - * This function is used to send data on the raw socket. The function call - * will block until the data has been sent successfully or an error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The async_send operation can only be used with a connected socket. - * Use the async_send_to function to send data on an unconnected raw - * socket. - */ - template - void async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, WriteHandler handler) - { - this->service.async_send(this->implementation, buffers, flags, handler); - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @returns The number of bytes sent. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * boost::asio::ip::udp::endpoint destination( - * boost::asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.send_to(boost::asio::buffer(data, size), destination); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination) - { - boost::system::error_code ec; - std::size_t s = this->service.send_to( - this->implementation, buffers, destination, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws boost::system::system_error Thrown on failure. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags) - { - boost::system::error_code ec; - std::size_t s = this->service.send_to( - this->implementation, buffers, destination, flags, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Send raw data to the specified endpoint. - /** - * This function is used to send raw data to the specified remote endpoint. - * The function call will block until the data has been sent successfully or - * an error occurs. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * - * @param destination The remote endpoint to which the data will be sent. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. - */ - template - std::size_t send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - boost::system::error_code& ec) - { - return this->service.send_to(this->implementation, - buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send raw data to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * boost::asio::ip::udp::endpoint destination( - * boost::asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_send_to( - * boost::asio::buffer(data, size), destination, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, WriteHandler handler) - { - this->service.async_send_to(this->implementation, buffers, destination, 0, - handler); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send raw data to the specified - * remote endpoint. The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent to the remote endpoint. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param destination The remote endpoint to which the data will be sent. - * Copies will be made of the endpoint as required. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ - template - void async_send_to(const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - WriteHandler handler) - { - this->service.async_send_to(this->implementation, buffers, destination, - flags, handler); - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.receive(boost::asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.receive( - this->implementation, buffers, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - boost::system::error_code ec; - std::size_t s = this->service.receive( - this->implementation, buffers, flags, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the raw socket. The function - * call will block until data has been received successfully or an error - * occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - * - * @note The receive operation can only be used with a connected socket. Use - * the receive_from function to receive data on an unconnected raw - * socket. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return this->service.receive(this->implementation, buffers, flags, ec); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the raw - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * raw socket. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_receive(const MutableBufferSequence& buffers, ReadHandler handler) - { - this->service.async_receive(this->implementation, buffers, 0, handler); - } - - /// Start an asynchronous receive on a connected socket. - /** - * This function is used to asynchronously receive data from the raw - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The async_receive operation can only be used with a connected socket. - * Use the async_receive_from function to receive data on an unconnected - * raw socket. - */ - template - void async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, ReadHandler handler) - { - this->service.async_receive(this->implementation, buffers, flags, handler); - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @returns The number of bytes received. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * boost::asio::ip::udp::endpoint sender_endpoint; - * socket.receive_from( - * boost::asio::buffer(data, size), sender_endpoint); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint) - { - boost::system::error_code ec; - std::size_t s = this->service.receive_from( - this->implementation, buffers, sender_endpoint, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws boost::system::system_error Thrown on failure. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags) - { - boost::system::error_code ec; - std::size_t s = this->service.receive_from( - this->implementation, buffers, sender_endpoint, flags, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Receive raw data with the endpoint of the sender. - /** - * This function is used to receive raw data. The function call will block - * until data has been received successfully or an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. - */ - template - std::size_t receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - boost::system::error_code& ec) - { - return this->service.receive_from(this->implementation, buffers, - sender_endpoint, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive raw data. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code socket.async_receive_from( - * boost::asio::buffer(data, size), 0, sender_endpoint, handler); @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, ReadHandler handler) - { - this->service.async_receive_from(this->implementation, buffers, - sender_endpoint, 0, handler); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive raw data. The function - * call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param sender_endpoint An endpoint object that receives the endpoint of - * the remote sender of the data. Ownership of the sender_endpoint object - * is retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ - template - void async_receive_from(const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - ReadHandler handler) - { - this->service.async_receive_from(this->implementation, buffers, - sender_endpoint, flags, handler); - } -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BASIC_RAW_SOCKET_HPP diff --git a/3rdParty/Boost/boost/asio/basic_serial_port.hpp b/3rdParty/Boost/boost/asio/basic_serial_port.hpp deleted file mode 100644 index 339d5df..0000000 --- a/3rdParty/Boost/boost/asio/basic_serial_port.hpp +++ /dev/null @@ -1,624 +0,0 @@ -// -// basic_serial_port.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_BASIC_SERIAL_PORT_HPP -#define BOOST_ASIO_BASIC_SERIAL_PORT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#if defined(BOOST_ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { - -/// Provides serial port functionality. -/** - * The basic_serial_port class template provides functionality that is common - * to all serial ports. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_serial_port - : public basic_io_object, - public serial_port_base -{ -public: - /// The native representation of a serial port. - typedef typename SerialPortService::native_type native_type; - - /// A basic_serial_port is always the lowest layer. - typedef basic_serial_port lowest_layer_type; - - /// Construct a basic_serial_port without opening it. - /** - * This constructor creates a serial port without opening it. - * - * @param io_service The io_service object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - */ - explicit basic_serial_port(boost::asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Construct and open a basic_serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_service The io_service object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit basic_serial_port(boost::asio::io_service& io_service, - const char* device) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.open(this->implementation, device, ec); - boost::asio::detail::throw_error(ec); - } - - /// Construct and open a basic_serial_port. - /** - * This constructor creates and opens a serial port for the specified device - * name. - * - * @param io_service The io_service object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param device The platform-specific device name for this serial - * port. - */ - explicit basic_serial_port(boost::asio::io_service& io_service, - const std::string& device) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.open(this->implementation, device, ec); - boost::asio::detail::throw_error(ec); - } - - /// Construct a basic_serial_port on an existing native serial port. - /** - * This constructor creates a serial port object to hold an existing native - * serial port. - * - * @param io_service The io_service object that the serial port will use to - * dispatch handlers for any asynchronous operations performed on the port. - * - * @param native_serial_port A native serial port. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_serial_port(boost::asio::io_service& io_service, - const native_type& native_serial_port) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.assign(this->implementation, native_serial_port, ec); - boost::asio::detail::throw_error(ec); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_serial_port cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_serial_port cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port for the specified device name. - * - * @param device The platform-specific device name. - * - * @throws boost::system::system_error Thrown on failure. - */ - void open(const std::string& device) - { - boost::system::error_code ec; - this->service.open(this->implementation, device, ec); - boost::asio::detail::throw_error(ec); - } - - /// Open the serial port using the specified device name. - /** - * This function opens the serial port using the given platform-specific - * device name. - * - * @param device The platform-specific device name. - * - * @param ec Set the indicate what error occurred, if any. - */ - boost::system::error_code open(const std::string& device, - boost::system::error_code& ec) - { - return this->service.open(this->implementation, device, ec); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @throws boost::system::system_error Thrown on failure. - */ - void assign(const native_type& native_serial_port) - { - boost::system::error_code ec; - this->service.assign(this->implementation, native_serial_port, ec); - boost::asio::detail::throw_error(ec); - } - - /// Assign an existing native serial port to the serial port. - /* - * This function opens the serial port to hold an existing native serial port. - * - * @param native_serial_port A native serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code assign(const native_type& native_serial_port, - boost::system::error_code& ec) - { - return this->service.assign(this->implementation, native_serial_port, ec); - } - - /// Determine whether the serial port is open. - bool is_open() const - { - return this->service.is_open(this->implementation); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * boost::asio::error::operation_aborted error. - * - * @throws boost::system::system_error Thrown on failure. - */ - void close() - { - boost::system::error_code ec; - this->service.close(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Close the serial port. - /** - * This function is used to close the serial port. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * boost::asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code close(boost::system::error_code& ec) - { - return this->service.close(this->implementation, ec); - } - - /// Get the native serial port representation. - /** - * This function may be used to obtain the underlying representation of the - * serial port. This is intended to allow access to native serial port - * functionality that is not otherwise provided. - */ - native_type native() - { - return this->service.native(this->implementation); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the boost::asio::error::operation_aborted error. - * - * @throws boost::system::system_error Thrown on failure. - */ - void cancel() - { - boost::system::error_code ec; - this->service.cancel(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Cancel all asynchronous operations associated with the serial port. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the boost::asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code cancel(boost::system::error_code& ec) - { - return this->service.cancel(this->implementation, ec); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @throws boost::system::system_error Thrown on failure. - */ - void send_break() - { - boost::system::error_code ec; - this->service.send_break(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Send a break sequence to the serial port. - /** - * This function causes a break sequence of platform-specific duration to be - * sent out the serial port. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code send_break(boost::system::error_code& ec) - { - return this->service.send_break(this->implementation, ec); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @throws boost::system::system_error Thrown on failure. - * - * @sa SettableSerialPortOption @n - * boost::asio::serial_port_base::baud_rate @n - * boost::asio::serial_port_base::flow_control @n - * boost::asio::serial_port_base::parity @n - * boost::asio::serial_port_base::stop_bits @n - * boost::asio::serial_port_base::character_size - */ - template - void set_option(const SettableSerialPortOption& option) - { - boost::system::error_code ec; - this->service.set_option(this->implementation, option, ec); - boost::asio::detail::throw_error(ec); - } - - /// Set an option on the serial port. - /** - * This function is used to set an option on the serial port. - * - * @param option The option value to be set on the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSerialPortOption @n - * boost::asio::serial_port_base::baud_rate @n - * boost::asio::serial_port_base::flow_control @n - * boost::asio::serial_port_base::parity @n - * boost::asio::serial_port_base::stop_bits @n - * boost::asio::serial_port_base::character_size - */ - template - boost::system::error_code set_option(const SettableSerialPortOption& option, - boost::system::error_code& ec) - { - return this->service.set_option(this->implementation, option, ec); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @throws boost::system::system_error Thrown on failure. - * - * @sa GettableSerialPortOption @n - * boost::asio::serial_port_base::baud_rate @n - * boost::asio::serial_port_base::flow_control @n - * boost::asio::serial_port_base::parity @n - * boost::asio::serial_port_base::stop_bits @n - * boost::asio::serial_port_base::character_size - */ - template - void get_option(GettableSerialPortOption& option) - { - boost::system::error_code ec; - this->service.get_option(this->implementation, option, ec); - boost::asio::detail::throw_error(ec); - } - - /// Get an option from the serial port. - /** - * This function is used to get the current value of an option on the serial - * port. - * - * @param option The option value to be obtained from the serial port. - * - * @param ec Set to indicate what error occured, if any. - * - * @sa GettableSerialPortOption @n - * boost::asio::serial_port_base::baud_rate @n - * boost::asio::serial_port_base::flow_control @n - * boost::asio::serial_port_base::parity @n - * boost::asio::serial_port_base::stop_bits @n - * boost::asio::serial_port_base::character_size - */ - template - boost::system::error_code get_option(GettableSerialPortOption& option, - boost::system::error_code& ec) - { - return this->service.get_option(this->implementation, option, ec); - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @returns The number of bytes written. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.write_some(boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.write_some(this->implementation, buffers, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Write some data to the serial port. - /** - * This function is used to write data to the serial port. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the serial port. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - boost::system::error_code& ec) - { - return this->service.write_some(this->implementation, buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the serial port. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the serial port. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_write_some(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_write_some(const ConstBufferSequence& buffers, - WriteHandler handler) - { - this->service.async_write_some(this->implementation, buffers, handler); - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.read_some(boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.read_some(this->implementation, buffers, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Read some data from the serial port. - /** - * This function is used to read data from the serial port. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - boost::system::error_code& ec) - { - return this->service.read_some(this->implementation, buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the serial port. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * serial_port.async_read_some(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_read_some(const MutableBufferSequence& buffers, - ReadHandler handler) - { - this->service.async_read_some(this->implementation, buffers, handler); - } -}; - -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_BASIC_SERIAL_PORT_HPP diff --git a/3rdParty/Boost/boost/asio/basic_socket.hpp b/3rdParty/Boost/boost/asio/basic_socket.hpp deleted file mode 100644 index c991132..0000000 --- a/3rdParty/Boost/boost/asio/basic_socket.hpp +++ /dev/null @@ -1,1065 +0,0 @@ -// -// basic_socket.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BASIC_SOCKET_HPP -#define BOOST_ASIO_BASIC_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Provides socket functionality. -/** - * The basic_socket class template provides functionality that is common to both - * stream-oriented and datagram-oriented sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_socket - : public basic_io_object, - public socket_base -{ -public: - /// The native representation of a socket. - typedef typename SocketService::native_type native_type; - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// A basic_socket is always the lowest layer. - typedef basic_socket lowest_layer_type; - - /// Construct a basic_socket without opening it. - /** - * This constructor creates a socket without opening it. - * - * @param io_service The io_service object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - */ - explicit basic_socket(boost::asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Construct and open a basic_socket. - /** - * This constructor creates and opens a socket. - * - * @param io_service The io_service object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_socket(boost::asio::io_service& io_service, - const protocol_type& protocol) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.open(this->implementation, protocol, ec); - boost::asio::detail::throw_error(ec); - } - - /// Construct a basic_socket, opening it and binding it to the given local - /// endpoint. - /** - * This constructor creates a socket and automatically opens it bound to the - * specified endpoint on the local machine. The protocol used is the protocol - * associated with the given endpoint. - * - * @param io_service The io_service object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_socket(boost::asio::io_service& io_service, - const endpoint_type& endpoint) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.open(this->implementation, endpoint.protocol(), ec); - boost::asio::detail::throw_error(ec); - this->service.bind(this->implementation, endpoint, ec); - boost::asio::detail::throw_error(ec); - } - - /// Construct a basic_socket on an existing native socket. - /** - * This constructor creates a socket object to hold an existing native socket. - * - * @param io_service The io_service object that the socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket A native socket. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_socket(boost::asio::io_service& io_service, - const protocol_type& protocol, const native_type& native_socket) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.assign(this->implementation, protocol, native_socket, ec); - boost::asio::detail::throw_error(ec); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_socket cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_socket cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Open the socket using the specified protocol. - /** - * This function opens the socket so that it will use the specified protocol. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * socket.open(boost::asio::ip::tcp::v4()); - * @endcode - */ - void open(const protocol_type& protocol = protocol_type()) - { - boost::system::error_code ec; - this->service.open(this->implementation, protocol, ec); - boost::asio::detail::throw_error(ec); - } - - /// Open the socket using the specified protocol. - /** - * This function opens the socket so that it will use the specified protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * boost::system::error_code ec; - * socket.open(boost::asio::ip::tcp::v4(), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - boost::system::error_code open(const protocol_type& protocol, - boost::system::error_code& ec) - { - return this->service.open(this->implementation, protocol, ec); - } - - /// Assign an existing native socket to the socket. - /* - * This function opens the socket to hold an existing native socket. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_socket A native socket. - * - * @throws boost::system::system_error Thrown on failure. - */ - void assign(const protocol_type& protocol, const native_type& native_socket) - { - boost::system::error_code ec; - this->service.assign(this->implementation, protocol, native_socket, ec); - boost::asio::detail::throw_error(ec); - } - - /// Assign an existing native socket to the socket. - /* - * This function opens the socket to hold an existing native socket. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_socket A native socket. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code assign(const protocol_type& protocol, - const native_type& native_socket, boost::system::error_code& ec) - { - return this->service.assign(this->implementation, - protocol, native_socket, ec); - } - - /// Determine whether the socket is open. - bool is_open() const - { - return this->service.is_open(this->implementation); - } - - /// Close the socket. - /** - * This function is used to close the socket. Any asynchronous send, receive - * or connect operations will be cancelled immediately, and will complete - * with the boost::asio::error::operation_aborted error. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note For portable behaviour with respect to graceful closure of a - * connected socket, call shutdown() before closing the socket. - */ - void close() - { - boost::system::error_code ec; - this->service.close(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Close the socket. - /** - * This function is used to close the socket. Any asynchronous send, receive - * or connect operations will be cancelled immediately, and will complete - * with the boost::asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::system::error_code ec; - * socket.close(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - * - * @note For portable behaviour with respect to graceful closure of a - * connected socket, call shutdown() before closing the socket. - */ - boost::system::error_code close(boost::system::error_code& ec) - { - return this->service.close(this->implementation, ec); - } - - /// Get the native socket representation. - /** - * This function may be used to obtain the underlying representation of the - * socket. This is intended to allow access to native socket functionality - * that is not otherwise provided. - */ - native_type native() - { - return this->service.native(this->implementation); - } - - /// Cancel all asynchronous operations associated with the socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the boost::asio::error::operation_aborted error. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note Calls to cancel() will always fail with - * boost::asio::error::operation_not_supported when run on Windows XP, Windows - * Server 2003, and earlier versions of Windows, unless - * BOOST_ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has - * two issues that should be considered before enabling its use: - * - * @li It will only cancel asynchronous operations that were initiated in the - * current thread. - * - * @li It can appear to complete without error, but the request to cancel the - * unfinished operations may be silently ignored by the operating system. - * Whether it works or not seems to depend on the drivers that are installed. - * - * For portable cancellation, consider using one of the following - * alternatives: - * - * @li Disable asio's I/O completion port backend by defining - * BOOST_ASIO_DISABLE_IOCP. - * - * @li Use the close() function to simultaneously cancel the outstanding - * operations and close the socket. - * - * When running on Windows Vista, Windows Server 2008, and later, the - * CancelIoEx function is always used. This function does not have the - * problems described above. - */ -#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \ - && !defined(BOOST_ASIO_ENABLE_CANCELIO) - __declspec(deprecated("By default, this function always fails with " - "operation_not_supported when used on Windows XP, Windows Server 2003, " - "or earlier. Consult documentation for details.")) -#endif - void cancel() - { - boost::system::error_code ec; - this->service.cancel(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Cancel all asynchronous operations associated with the socket. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the boost::asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - * - * @note Calls to cancel() will always fail with - * boost::asio::error::operation_not_supported when run on Windows XP, Windows - * Server 2003, and earlier versions of Windows, unless - * BOOST_ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has - * two issues that should be considered before enabling its use: - * - * @li It will only cancel asynchronous operations that were initiated in the - * current thread. - * - * @li It can appear to complete without error, but the request to cancel the - * unfinished operations may be silently ignored by the operating system. - * Whether it works or not seems to depend on the drivers that are installed. - * - * For portable cancellation, consider using one of the following - * alternatives: - * - * @li Disable asio's I/O completion port backend by defining - * BOOST_ASIO_DISABLE_IOCP. - * - * @li Use the close() function to simultaneously cancel the outstanding - * operations and close the socket. - * - * When running on Windows Vista, Windows Server 2008, and later, the - * CancelIoEx function is always used. This function does not have the - * problems described above. - */ -#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400) \ - && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \ - && !defined(BOOST_ASIO_ENABLE_CANCELIO) - __declspec(deprecated("By default, this function always fails with " - "operation_not_supported when used on Windows XP, Windows Server 2003, " - "or earlier. Consult documentation for details.")) -#endif - boost::system::error_code cancel(boost::system::error_code& ec) - { - return this->service.cancel(this->implementation, ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - /** - * This function is used to check whether the socket input is currently - * positioned at the out-of-band data mark. - * - * @return A bool indicating whether the socket is at the out-of-band data - * mark. - * - * @throws boost::system::system_error Thrown on failure. - */ - bool at_mark() const - { - boost::system::error_code ec; - bool b = this->service.at_mark(this->implementation, ec); - boost::asio::detail::throw_error(ec); - return b; - } - - /// Determine whether the socket is at the out-of-band data mark. - /** - * This function is used to check whether the socket input is currently - * positioned at the out-of-band data mark. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return A bool indicating whether the socket is at the out-of-band data - * mark. - */ - bool at_mark(boost::system::error_code& ec) const - { - return this->service.at_mark(this->implementation, ec); - } - - /// Determine the number of bytes available for reading. - /** - * This function is used to determine the number of bytes that may be read - * without blocking. - * - * @return The number of bytes that may be read without blocking, or 0 if an - * error occurs. - * - * @throws boost::system::system_error Thrown on failure. - */ - std::size_t available() const - { - boost::system::error_code ec; - std::size_t s = this->service.available(this->implementation, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Determine the number of bytes available for reading. - /** - * This function is used to determine the number of bytes that may be read - * without blocking. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of bytes that may be read without blocking, or 0 if an - * error occurs. - */ - std::size_t available(boost::system::error_code& ec) const - { - return this->service.available(this->implementation, ec); - } - - /// Bind the socket to the given local endpoint. - /** - * This function binds the socket to the specified endpoint on the local - * machine. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * socket.open(boost::asio::ip::tcp::v4()); - * socket.bind(boost::asio::ip::tcp::endpoint( - * boost::asio::ip::tcp::v4(), 12345)); - * @endcode - */ - void bind(const endpoint_type& endpoint) - { - boost::system::error_code ec; - this->service.bind(this->implementation, endpoint, ec); - boost::asio::detail::throw_error(ec); - } - - /// Bind the socket to the given local endpoint. - /** - * This function binds the socket to the specified endpoint on the local - * machine. - * - * @param endpoint An endpoint on the local machine to which the socket will - * be bound. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * socket.open(boost::asio::ip::tcp::v4()); - * boost::system::error_code ec; - * socket.bind(boost::asio::ip::tcp::endpoint( - * boost::asio::ip::tcp::v4(), 12345), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - boost::system::error_code bind(const endpoint_type& endpoint, - boost::system::error_code& ec) - { - return this->service.bind(this->implementation, endpoint, ec); - } - - /// Connect the socket to the specified endpoint. - /** - * This function is used to connect a socket to the specified remote endpoint. - * The function call will block until the connection is successfully made or - * an error occurs. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * boost::asio::ip::tcp::endpoint endpoint( - * boost::asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.connect(endpoint); - * @endcode - */ - void connect(const endpoint_type& peer_endpoint) - { - boost::system::error_code ec; - if (!is_open()) - { - this->service.open(this->implementation, peer_endpoint.protocol(), ec); - boost::asio::detail::throw_error(ec); - } - this->service.connect(this->implementation, peer_endpoint, ec); - boost::asio::detail::throw_error(ec); - } - - /// Connect the socket to the specified endpoint. - /** - * This function is used to connect a socket to the specified remote endpoint. - * The function call will block until the connection is successfully made or - * an error occurs. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * boost::asio::ip::tcp::endpoint endpoint( - * boost::asio::ip::address::from_string("1.2.3.4"), 12345); - * boost::system::error_code ec; - * socket.connect(endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - boost::system::error_code connect(const endpoint_type& peer_endpoint, - boost::system::error_code& ec) - { - if (!is_open()) - { - if (this->service.open(this->implementation, - peer_endpoint.protocol(), ec)) - { - return ec; - } - } - - return this->service.connect(this->implementation, peer_endpoint, ec); - } - - /// Start an asynchronous connect. - /** - * This function is used to asynchronously connect a socket to the specified - * remote endpoint. The function call always returns immediately. - * - * The socket is automatically opened if it is not already open. If the - * connect fails, and the socket was automatically opened, the socket is - * not returned to the closed state. - * - * @param peer_endpoint The remote endpoint to which the socket will be - * connected. Copies will be made of the endpoint object as required. - * - * @param handler The handler to be called when the connection operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error // Result of operation - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * @code - * void connect_handler(const boost::system::error_code& error) - * { - * if (!error) - * { - * // Connect succeeded. - * } - * } - * - * ... - * - * boost::asio::ip::tcp::socket socket(io_service); - * boost::asio::ip::tcp::endpoint endpoint( - * boost::asio::ip::address::from_string("1.2.3.4"), 12345); - * socket.async_connect(endpoint, connect_handler); - * @endcode - */ - template - void async_connect(const endpoint_type& peer_endpoint, ConnectHandler handler) - { - if (!is_open()) - { - boost::system::error_code ec; - if (this->service.open(this->implementation, - peer_endpoint.protocol(), ec)) - { - this->get_io_service().post( - boost::asio::detail::bind_handler(handler, ec)); - return; - } - } - - this->service.async_connect(this->implementation, peer_endpoint, handler); - } - - /// Set an option on the socket. - /** - * This function is used to set an option on the socket. - * - * @param option The new option value to be set on the socket. - * - * @throws boost::system::system_error Thrown on failure. - * - * @sa SettableSocketOption @n - * boost::asio::socket_base::broadcast @n - * boost::asio::socket_base::do_not_route @n - * boost::asio::socket_base::keep_alive @n - * boost::asio::socket_base::linger @n - * boost::asio::socket_base::receive_buffer_size @n - * boost::asio::socket_base::receive_low_watermark @n - * boost::asio::socket_base::reuse_address @n - * boost::asio::socket_base::send_buffer_size @n - * boost::asio::socket_base::send_low_watermark @n - * boost::asio::ip::multicast::join_group @n - * boost::asio::ip::multicast::leave_group @n - * boost::asio::ip::multicast::enable_loopback @n - * boost::asio::ip::multicast::outbound_interface @n - * boost::asio::ip::multicast::hops @n - * boost::asio::ip::tcp::no_delay - * - * @par Example - * Setting the IPPROTO_TCP/TCP_NODELAY option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::tcp::no_delay option(true); - * socket.set_option(option); - * @endcode - */ - template - void set_option(const SettableSocketOption& option) - { - boost::system::error_code ec; - this->service.set_option(this->implementation, option, ec); - boost::asio::detail::throw_error(ec); - } - - /// Set an option on the socket. - /** - * This function is used to set an option on the socket. - * - * @param option The new option value to be set on the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSocketOption @n - * boost::asio::socket_base::broadcast @n - * boost::asio::socket_base::do_not_route @n - * boost::asio::socket_base::keep_alive @n - * boost::asio::socket_base::linger @n - * boost::asio::socket_base::receive_buffer_size @n - * boost::asio::socket_base::receive_low_watermark @n - * boost::asio::socket_base::reuse_address @n - * boost::asio::socket_base::send_buffer_size @n - * boost::asio::socket_base::send_low_watermark @n - * boost::asio::ip::multicast::join_group @n - * boost::asio::ip::multicast::leave_group @n - * boost::asio::ip::multicast::enable_loopback @n - * boost::asio::ip::multicast::outbound_interface @n - * boost::asio::ip::multicast::hops @n - * boost::asio::ip::tcp::no_delay - * - * @par Example - * Setting the IPPROTO_TCP/TCP_NODELAY option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::tcp::no_delay option(true); - * boost::system::error_code ec; - * socket.set_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - boost::system::error_code set_option(const SettableSocketOption& option, - boost::system::error_code& ec) - { - return this->service.set_option(this->implementation, option, ec); - } - - /// Get an option from the socket. - /** - * This function is used to get the current value of an option on the socket. - * - * @param option The option value to be obtained from the socket. - * - * @throws boost::system::system_error Thrown on failure. - * - * @sa GettableSocketOption @n - * boost::asio::socket_base::broadcast @n - * boost::asio::socket_base::do_not_route @n - * boost::asio::socket_base::keep_alive @n - * boost::asio::socket_base::linger @n - * boost::asio::socket_base::receive_buffer_size @n - * boost::asio::socket_base::receive_low_watermark @n - * boost::asio::socket_base::reuse_address @n - * boost::asio::socket_base::send_buffer_size @n - * boost::asio::socket_base::send_low_watermark @n - * boost::asio::ip::multicast::join_group @n - * boost::asio::ip::multicast::leave_group @n - * boost::asio::ip::multicast::enable_loopback @n - * boost::asio::ip::multicast::outbound_interface @n - * boost::asio::ip::multicast::hops @n - * boost::asio::ip::tcp::no_delay - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::tcp::socket::keep_alive option; - * socket.get_option(option); - * bool is_set = option.get(); - * @endcode - */ - template - void get_option(GettableSocketOption& option) const - { - boost::system::error_code ec; - this->service.get_option(this->implementation, option, ec); - boost::asio::detail::throw_error(ec); - } - - /// Get an option from the socket. - /** - * This function is used to get the current value of an option on the socket. - * - * @param option The option value to be obtained from the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSocketOption @n - * boost::asio::socket_base::broadcast @n - * boost::asio::socket_base::do_not_route @n - * boost::asio::socket_base::keep_alive @n - * boost::asio::socket_base::linger @n - * boost::asio::socket_base::receive_buffer_size @n - * boost::asio::socket_base::receive_low_watermark @n - * boost::asio::socket_base::reuse_address @n - * boost::asio::socket_base::send_buffer_size @n - * boost::asio::socket_base::send_low_watermark @n - * boost::asio::ip::multicast::join_group @n - * boost::asio::ip::multicast::leave_group @n - * boost::asio::ip::multicast::enable_loopback @n - * boost::asio::ip::multicast::outbound_interface @n - * boost::asio::ip::multicast::hops @n - * boost::asio::ip::tcp::no_delay - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::tcp::socket::keep_alive option; - * boost::system::error_code ec; - * socket.get_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * bool is_set = option.get(); - * @endcode - */ - template - boost::system::error_code get_option(GettableSocketOption& option, - boost::system::error_code& ec) const - { - return this->service.get_option(this->implementation, option, ec); - } - - /// Perform an IO control command on the socket. - /** - * This function is used to execute an IO control command on the socket. - * - * @param command The IO control command to be performed on the socket. - * - * @throws boost::system::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * boost::asio::socket_base::bytes_readable @n - * boost::asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::tcp::socket::bytes_readable command; - * socket.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - boost::system::error_code ec; - this->service.io_control(this->implementation, command, ec); - boost::asio::detail::throw_error(ec); - } - - /// Perform an IO control command on the socket. - /** - * This function is used to execute an IO control command on the socket. - * - * @param command The IO control command to be performed on the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * boost::asio::socket_base::bytes_readable @n - * boost::asio::socket_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::tcp::socket::bytes_readable command; - * boost::system::error_code ec; - * socket.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - boost::system::error_code io_control(IoControlCommand& command, - boost::system::error_code& ec) - { - return this->service.io_control(this->implementation, command, ec); - } - - /// Get the local endpoint of the socket. - /** - * This function is used to obtain the locally bound endpoint of the socket. - * - * @returns An object that represents the local endpoint of the socket. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::tcp::endpoint endpoint = socket.local_endpoint(); - * @endcode - */ - endpoint_type local_endpoint() const - { - boost::system::error_code ec; - endpoint_type ep = this->service.local_endpoint(this->implementation, ec); - boost::asio::detail::throw_error(ec); - return ep; - } - - /// Get the local endpoint of the socket. - /** - * This function is used to obtain the locally bound endpoint of the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the local endpoint of the socket. - * Returns a default-constructed endpoint object if an error occurred. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::system::error_code ec; - * boost::asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type local_endpoint(boost::system::error_code& ec) const - { - return this->service.local_endpoint(this->implementation, ec); - } - - /// Get the remote endpoint of the socket. - /** - * This function is used to obtain the remote endpoint of the socket. - * - * @returns An object that represents the remote endpoint of the socket. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(); - * @endcode - */ - endpoint_type remote_endpoint() const - { - boost::system::error_code ec; - endpoint_type ep = this->service.remote_endpoint(this->implementation, ec); - boost::asio::detail::throw_error(ec); - return ep; - } - - /// Get the remote endpoint of the socket. - /** - * This function is used to obtain the remote endpoint of the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the remote endpoint of the socket. - * Returns a default-constructed endpoint object if an error occurred. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::system::error_code ec; - * boost::asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type remote_endpoint(boost::system::error_code& ec) const - { - return this->service.remote_endpoint(this->implementation, ec); - } - - /// Disable sends or receives on the socket. - /** - * This function is used to disable send operations, receive operations, or - * both. - * - * @param what Determines what types of operation will no longer be allowed. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * Shutting down the send side of the socket: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * socket.shutdown(boost::asio::ip::tcp::socket::shutdown_send); - * @endcode - */ - void shutdown(shutdown_type what) - { - boost::system::error_code ec; - this->service.shutdown(this->implementation, what, ec); - boost::asio::detail::throw_error(ec); - } - - /// Disable sends or receives on the socket. - /** - * This function is used to disable send operations, receive operations, or - * both. - * - * @param what Determines what types of operation will no longer be allowed. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * Shutting down the send side of the socket: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::system::error_code ec; - * socket.shutdown(boost::asio::ip::tcp::socket::shutdown_send, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - boost::system::error_code shutdown(shutdown_type what, - boost::system::error_code& ec) - { - return this->service.shutdown(this->implementation, what, ec); - } - -protected: - /// Protected destructor to prevent deletion through this type. - ~basic_socket() - { - } -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BASIC_SOCKET_HPP diff --git a/3rdParty/Boost/boost/asio/basic_socket_acceptor.hpp b/3rdParty/Boost/boost/asio/basic_socket_acceptor.hpp deleted file mode 100644 index afa0d63..0000000 --- a/3rdParty/Boost/boost/asio/basic_socket_acceptor.hpp +++ /dev/null @@ -1,826 +0,0 @@ -// -// basic_socket_acceptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_HPP -#define BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Provides the ability to accept new connections. -/** - * The basic_socket_acceptor class template is used for accepting new socket - * connections. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Example - * Opening a socket acceptor with the SO_REUSEADDR option enabled: - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port); - * acceptor.open(endpoint.protocol()); - * acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true)); - * acceptor.bind(endpoint); - * acceptor.listen(); - * @endcode - */ -template > -class basic_socket_acceptor - : public basic_io_object, - public socket_base -{ -public: - /// The native representation of an acceptor. - typedef typename SocketAcceptorService::native_type native_type; - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct an acceptor without opening it. - /** - * This constructor creates an acceptor without opening it to listen for new - * connections. The open() function must be called before the acceptor can - * accept new socket connections. - * - * @param io_service The io_service object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - */ - explicit basic_socket_acceptor(boost::asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Construct an open acceptor. - /** - * This constructor creates an acceptor and automatically opens it. - * - * @param io_service The io_service object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_socket_acceptor(boost::asio::io_service& io_service, - const protocol_type& protocol) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.open(this->implementation, protocol, ec); - boost::asio::detail::throw_error(ec); - } - - /// Construct an acceptor opened on the given endpoint. - /** - * This constructor creates an acceptor and automatically opens it to listen - * for new connections on the specified endpoint. - * - * @param io_service The io_service object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param endpoint An endpoint on the local machine on which the acceptor - * will listen for new connections. - * - * @param reuse_addr Whether the constructor should set the socket option - * socket_base::reuse_address. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note This constructor is equivalent to the following code: - * @code - * basic_socket_acceptor acceptor(io_service); - * acceptor.open(endpoint.protocol()); - * if (reuse_addr) - * acceptor.set_option(socket_base::reuse_address(true)); - * acceptor.bind(endpoint); - * acceptor.listen(listen_backlog); - * @endcode - */ - basic_socket_acceptor(boost::asio::io_service& io_service, - const endpoint_type& endpoint, bool reuse_addr = true) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.open(this->implementation, endpoint.protocol(), ec); - boost::asio::detail::throw_error(ec); - if (reuse_addr) - { - this->service.set_option(this->implementation, - socket_base::reuse_address(true), ec); - boost::asio::detail::throw_error(ec); - } - this->service.bind(this->implementation, endpoint, ec); - boost::asio::detail::throw_error(ec); - this->service.listen(this->implementation, - socket_base::max_connections, ec); - boost::asio::detail::throw_error(ec); - } - - /// Construct a basic_socket_acceptor on an existing native acceptor. - /** - * This constructor creates an acceptor object to hold an existing native - * acceptor. - * - * @param io_service The io_service object that the acceptor will use to - * dispatch handlers for any asynchronous operations performed on the - * acceptor. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_acceptor A native acceptor. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_socket_acceptor(boost::asio::io_service& io_service, - const protocol_type& protocol, const native_type& native_acceptor) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.assign(this->implementation, protocol, native_acceptor, ec); - boost::asio::detail::throw_error(ec); - } - - /// Open the acceptor using the specified protocol. - /** - * This function opens the socket acceptor so that it will use the specified - * protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * acceptor.open(boost::asio::ip::tcp::v4()); - * @endcode - */ - void open(const protocol_type& protocol = protocol_type()) - { - boost::system::error_code ec; - this->service.open(this->implementation, protocol, ec); - boost::asio::detail::throw_error(ec); - } - - /// Open the acceptor using the specified protocol. - /** - * This function opens the socket acceptor so that it will use the specified - * protocol. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * boost::system::error_code ec; - * acceptor.open(boost::asio::ip::tcp::v4(), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - boost::system::error_code open(const protocol_type& protocol, - boost::system::error_code& ec) - { - return this->service.open(this->implementation, protocol, ec); - } - - /// Assigns an existing native acceptor to the acceptor. - /* - * This function opens the acceptor to hold an existing native acceptor. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_acceptor A native acceptor. - * - * @throws boost::system::system_error Thrown on failure. - */ - void assign(const protocol_type& protocol, const native_type& native_acceptor) - { - boost::system::error_code ec; - this->service.assign(this->implementation, protocol, native_acceptor, ec); - boost::asio::detail::throw_error(ec); - } - - /// Assigns an existing native acceptor to the acceptor. - /* - * This function opens the acceptor to hold an existing native acceptor. - * - * @param protocol An object specifying which protocol is to be used. - * - * @param native_acceptor A native acceptor. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code assign(const protocol_type& protocol, - const native_type& native_acceptor, boost::system::error_code& ec) - { - return this->service.assign(this->implementation, - protocol, native_acceptor, ec); - } - - /// Determine whether the acceptor is open. - bool is_open() const - { - return this->service.is_open(this->implementation); - } - - /// Bind the acceptor to the given local endpoint. - /** - * This function binds the socket acceptor to the specified endpoint on the - * local machine. - * - * @param endpoint An endpoint on the local machine to which the socket - * acceptor will be bound. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * acceptor.open(boost::asio::ip::tcp::v4()); - * acceptor.bind(boost::asio::ip::tcp::endpoint(12345)); - * @endcode - */ - void bind(const endpoint_type& endpoint) - { - boost::system::error_code ec; - this->service.bind(this->implementation, endpoint, ec); - boost::asio::detail::throw_error(ec); - } - - /// Bind the acceptor to the given local endpoint. - /** - * This function binds the socket acceptor to the specified endpoint on the - * local machine. - * - * @param endpoint An endpoint on the local machine to which the socket - * acceptor will be bound. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * acceptor.open(boost::asio::ip::tcp::v4()); - * boost::system::error_code ec; - * acceptor.bind(boost::asio::ip::tcp::endpoint(12345), ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - boost::system::error_code bind(const endpoint_type& endpoint, - boost::system::error_code& ec) - { - return this->service.bind(this->implementation, endpoint, ec); - } - - /// Place the acceptor into the state where it will listen for new - /// connections. - /** - * This function puts the socket acceptor into the state where it may accept - * new connections. - * - * @param backlog The maximum length of the queue of pending connections. - * - * @throws boost::system::system_error Thrown on failure. - */ - void listen(int backlog = socket_base::max_connections) - { - boost::system::error_code ec; - this->service.listen(this->implementation, backlog, ec); - boost::asio::detail::throw_error(ec); - } - - /// Place the acceptor into the state where it will listen for new - /// connections. - /** - * This function puts the socket acceptor into the state where it may accept - * new connections. - * - * @param backlog The maximum length of the queue of pending connections. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::system::error_code ec; - * acceptor.listen(boost::asio::socket_base::max_connections, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - boost::system::error_code listen(int backlog, boost::system::error_code& ec) - { - return this->service.listen(this->implementation, backlog, ec); - } - - /// Close the acceptor. - /** - * This function is used to close the acceptor. Any asynchronous accept - * operations will be cancelled immediately. - * - * A subsequent call to open() is required before the acceptor can again be - * used to again perform socket accept operations. - * - * @throws boost::system::system_error Thrown on failure. - */ - void close() - { - boost::system::error_code ec; - this->service.close(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Close the acceptor. - /** - * This function is used to close the acceptor. Any asynchronous accept - * operations will be cancelled immediately. - * - * A subsequent call to open() is required before the acceptor can again be - * used to again perform socket accept operations. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::system::error_code ec; - * acceptor.close(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - boost::system::error_code close(boost::system::error_code& ec) - { - return this->service.close(this->implementation, ec); - } - - /// Get the native acceptor representation. - /** - * This function may be used to obtain the underlying representation of the - * acceptor. This is intended to allow access to native acceptor functionality - * that is not otherwise provided. - */ - native_type native() - { - return this->service.native(this->implementation); - } - - /// Cancel all asynchronous operations associated with the acceptor. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the boost::asio::error::operation_aborted error. - * - * @throws boost::system::system_error Thrown on failure. - */ - void cancel() - { - boost::system::error_code ec; - this->service.cancel(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Cancel all asynchronous operations associated with the acceptor. - /** - * This function causes all outstanding asynchronous connect, send and receive - * operations to finish immediately, and the handlers for cancelled operations - * will be passed the boost::asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code cancel(boost::system::error_code& ec) - { - return this->service.cancel(this->implementation, ec); - } - - /// Set an option on the acceptor. - /** - * This function is used to set an option on the acceptor. - * - * @param option The new option value to be set on the acceptor. - * - * @throws boost::system::system_error Thrown on failure. - * - * @sa SettableSocketOption @n - * boost::asio::socket_base::reuse_address - * boost::asio::socket_base::enable_connection_aborted - * - * @par Example - * Setting the SOL_SOCKET/SO_REUSEADDR option: - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::ip::tcp::acceptor::reuse_address option(true); - * acceptor.set_option(option); - * @endcode - */ - template - void set_option(const SettableSocketOption& option) - { - boost::system::error_code ec; - this->service.set_option(this->implementation, option, ec); - boost::asio::detail::throw_error(ec); - } - - /// Set an option on the acceptor. - /** - * This function is used to set an option on the acceptor. - * - * @param option The new option value to be set on the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa SettableSocketOption @n - * boost::asio::socket_base::reuse_address - * boost::asio::socket_base::enable_connection_aborted - * - * @par Example - * Setting the SOL_SOCKET/SO_REUSEADDR option: - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::ip::tcp::acceptor::reuse_address option(true); - * boost::system::error_code ec; - * acceptor.set_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - boost::system::error_code set_option(const SettableSocketOption& option, - boost::system::error_code& ec) - { - return this->service.set_option(this->implementation, option, ec); - } - - /// Get an option from the acceptor. - /** - * This function is used to get the current value of an option on the - * acceptor. - * - * @param option The option value to be obtained from the acceptor. - * - * @throws boost::system::system_error Thrown on failure. - * - * @sa GettableSocketOption @n - * boost::asio::socket_base::reuse_address - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_REUSEADDR option: - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::ip::tcp::acceptor::reuse_address option; - * acceptor.get_option(option); - * bool is_set = option.get(); - * @endcode - */ - template - void get_option(GettableSocketOption& option) - { - boost::system::error_code ec; - this->service.get_option(this->implementation, option, ec); - boost::asio::detail::throw_error(ec); - } - - /// Get an option from the acceptor. - /** - * This function is used to get the current value of an option on the - * acceptor. - * - * @param option The option value to be obtained from the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa GettableSocketOption @n - * boost::asio::socket_base::reuse_address - * - * @par Example - * Getting the value of the SOL_SOCKET/SO_REUSEADDR option: - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::ip::tcp::acceptor::reuse_address option; - * boost::system::error_code ec; - * acceptor.get_option(option, ec); - * if (ec) - * { - * // An error occurred. - * } - * bool is_set = option.get(); - * @endcode - */ - template - boost::system::error_code get_option(GettableSocketOption& option, - boost::system::error_code& ec) - { - return this->service.get_option(this->implementation, option, ec); - } - - /// Get the local endpoint of the acceptor. - /** - * This function is used to obtain the locally bound endpoint of the acceptor. - * - * @returns An object that represents the local endpoint of the acceptor. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(); - * @endcode - */ - endpoint_type local_endpoint() const - { - boost::system::error_code ec; - endpoint_type ep = this->service.local_endpoint(this->implementation, ec); - boost::asio::detail::throw_error(ec); - return ep; - } - - /// Get the local endpoint of the acceptor. - /** - * This function is used to obtain the locally bound endpoint of the acceptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns An object that represents the local endpoint of the acceptor. - * Returns a default-constructed endpoint object if an error occurred and the - * error handler did not throw an exception. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::system::error_code ec; - * boost::asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - endpoint_type local_endpoint(boost::system::error_code& ec) const - { - return this->service.local_endpoint(this->implementation, ec); - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer into the - * given socket. The function call will block until a new connection has been - * accepted successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::ip::tcp::socket socket(io_service); - * acceptor.accept(socket); - * @endcode - */ - template - void accept(basic_socket& peer) - { - boost::system::error_code ec; - this->service.accept(this->implementation, peer, 0, ec); - boost::asio::detail::throw_error(ec); - } - - /// Accept a new connection. - /** - * This function is used to accept a new connection from a peer into the - * given socket. The function call will block until a new connection has been - * accepted successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::ip::tcp::soocket socket(io_service); - * boost::system::error_code ec; - * acceptor.accept(socket, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - boost::system::error_code accept( - basic_socket& peer, - boost::system::error_code& ec) - { - return this->service.accept(this->implementation, peer, 0, ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection into a - * socket. The function call always returns immediately. - * - * @param peer The socket into which the new connection will be accepted. - * Ownership of the peer object is retained by the caller, which must - * guarantee that it is valid until the handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * @code - * void accept_handler(const boost::system::error_code& error) - * { - * if (!error) - * { - * // Accept succeeded. - * } - * } - * - * ... - * - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::ip::tcp::socket socket(io_service); - * acceptor.async_accept(socket, accept_handler); - * @endcode - */ - template - void async_accept(basic_socket& peer, - AcceptHandler handler) - { - this->service.async_accept(this->implementation, peer, 0, handler); - } - - /// Accept a new connection and obtain the endpoint of the peer - /** - * This function is used to accept a new connection from a peer into the - * given socket, and additionally provide the endpoint of the remote peer. - * The function call will block until a new connection has been accepted - * successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param peer_endpoint An endpoint object which will receive the endpoint of - * the remote peer. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::ip::tcp::socket socket(io_service); - * boost::asio::ip::tcp::endpoint endpoint; - * acceptor.accept(socket, endpoint); - * @endcode - */ - template - void accept(basic_socket& peer, - endpoint_type& peer_endpoint) - { - boost::system::error_code ec; - this->service.accept(this->implementation, peer, &peer_endpoint, ec); - boost::asio::detail::throw_error(ec); - } - - /// Accept a new connection and obtain the endpoint of the peer - /** - * This function is used to accept a new connection from a peer into the - * given socket, and additionally provide the endpoint of the remote peer. - * The function call will block until a new connection has been accepted - * successfully or an error occurs. - * - * @param peer The socket into which the new connection will be accepted. - * - * @param peer_endpoint An endpoint object which will receive the endpoint of - * the remote peer. - * - * @param ec Set to indicate what error occurred, if any. - * - * @par Example - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::ip::tcp::socket socket(io_service); - * boost::asio::ip::tcp::endpoint endpoint; - * boost::system::error_code ec; - * acceptor.accept(socket, endpoint, ec); - * if (ec) - * { - * // An error occurred. - * } - * @endcode - */ - template - boost::system::error_code accept( - basic_socket& peer, - endpoint_type& peer_endpoint, boost::system::error_code& ec) - { - return this->service.accept(this->implementation, peer, &peer_endpoint, ec); - } - - /// Start an asynchronous accept. - /** - * This function is used to asynchronously accept a new connection into a - * socket, and additionally obtain the endpoint of the remote peer. The - * function call always returns immediately. - * - * @param peer The socket into which the new connection will be accepted. - * Ownership of the peer object is retained by the caller, which must - * guarantee that it is valid until the handler is called. - * - * @param peer_endpoint An endpoint object into which the endpoint of the - * remote peer will be written. Ownership of the peer_endpoint object is - * retained by the caller, which must guarantee that it is valid until the - * handler is called. - * - * @param handler The handler to be called when the accept operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error // Result of operation. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ - template - void async_accept(basic_socket& peer, - endpoint_type& peer_endpoint, AcceptHandler handler) - { - this->service.async_accept(this->implementation, - peer, &peer_endpoint, handler); - } -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_HPP diff --git a/3rdParty/Boost/boost/asio/basic_socket_iostream.hpp b/3rdParty/Boost/boost/asio/basic_socket_iostream.hpp deleted file mode 100644 index b0ae259..0000000 --- a/3rdParty/Boost/boost/asio/basic_socket_iostream.hpp +++ /dev/null @@ -1,150 +0,0 @@ -// -// basic_socket_iostream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BASIC_SOCKET_IOSTREAM_HPP -#define BOOST_ASIO_BASIC_SOCKET_IOSTREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#if !defined(BOOST_ASIO_SOCKET_IOSTREAM_MAX_ARITY) -#define BOOST_ASIO_SOCKET_IOSTREAM_MAX_ARITY 5 -#endif // !defined(BOOST_ASIO_SOCKET_IOSTREAM_MAX_ARITY) - -// A macro that should expand to: -// template -// explicit basic_socket_iostream(T1 x1, ..., Tn xn) -// : basic_iostream(&this->boost::base_from_member< -// basic_socket_streambuf >::member) -// { -// if (rdbuf()->connect(x1, ..., xn) == 0) -// this->setstate(std::ios_base::failbit); -// } -// This macro should only persist within this file. - -#define BOOST_ASIO_PRIVATE_CTR_DEF(z, n, data) \ - template \ - explicit basic_socket_iostream(BOOST_PP_ENUM_BINARY_PARAMS(n, T, x)) \ - : std::basic_iostream(&this->boost::base_from_member< \ - basic_socket_streambuf >::member) \ - { \ - tie(this); \ - if (rdbuf()->connect(BOOST_PP_ENUM_PARAMS(n, x)) == 0) \ - this->setstate(std::ios_base::failbit); \ - } \ - /**/ - -// A macro that should expand to: -// template -// void connect(T1 x1, ..., Tn xn) -// { -// if (rdbuf()->connect(x1, ..., xn) == 0) -// this->setstate(std::ios_base::failbit); -// } -// This macro should only persist within this file. - -#define BOOST_ASIO_PRIVATE_CONNECT_DEF(z, n, data) \ - template \ - void connect(BOOST_PP_ENUM_BINARY_PARAMS(n, T, x)) \ - { \ - if (rdbuf()->connect(BOOST_PP_ENUM_PARAMS(n, x)) == 0) \ - this->setstate(std::ios_base::failbit); \ - } \ - /**/ - -namespace boost { -namespace asio { - -/// Iostream interface for a socket. -template > -class basic_socket_iostream - : public boost::base_from_member< - basic_socket_streambuf >, - public std::basic_iostream -{ -public: - /// Construct a basic_socket_iostream without establishing a connection. - basic_socket_iostream() - : std::basic_iostream(&this->boost::base_from_member< - basic_socket_streambuf >::member) - { - tie(this); - } - -#if defined(GENERATING_DOCUMENTATION) - /// Establish a connection to an endpoint corresponding to a resolver query. - /** - * This constructor automatically establishes a connection based on the - * supplied resolver query parameters. The arguments are used to construct - * a resolver query object. - */ - template - explicit basic_socket_iostream(T1 t1, ..., TN tn); -#else - BOOST_PP_REPEAT_FROM_TO( - 1, BOOST_PP_INC(BOOST_ASIO_SOCKET_IOSTREAM_MAX_ARITY), - BOOST_ASIO_PRIVATE_CTR_DEF, _ ) -#endif - -#if defined(GENERATING_DOCUMENTATION) - /// Establish a connection to an endpoint corresponding to a resolver query. - /** - * This function automatically establishes a connection based on the supplied - * resolver query parameters. The arguments are used to construct a resolver - * query object. - */ - template - void connect(T1 t1, ..., TN tn); -#else - BOOST_PP_REPEAT_FROM_TO( - 1, BOOST_PP_INC(BOOST_ASIO_SOCKET_IOSTREAM_MAX_ARITY), - BOOST_ASIO_PRIVATE_CONNECT_DEF, _ ) -#endif - - /// Close the connection. - void close() - { - if (rdbuf()->close() == 0) - this->setstate(std::ios_base::failbit); - } - - /// Return a pointer to the underlying streambuf. - basic_socket_streambuf* rdbuf() const - { - return const_cast*>( - &this->boost::base_from_member< - basic_socket_streambuf >::member); - } -}; - -} // namespace asio -} // namespace boost - -#undef BOOST_ASIO_PRIVATE_CTR_DEF -#undef BOOST_ASIO_PRIVATE_CONNECT_DEF - -#include - -#endif // BOOST_ASIO_BASIC_SOCKET_IOSTREAM_HPP diff --git a/3rdParty/Boost/boost/asio/basic_socket_streambuf.hpp b/3rdParty/Boost/boost/asio/basic_socket_streambuf.hpp deleted file mode 100644 index 9977be6..0000000 --- a/3rdParty/Boost/boost/asio/basic_socket_streambuf.hpp +++ /dev/null @@ -1,287 +0,0 @@ -// -// basic_socket_streambuf.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BASIC_SOCKET_STREAMBUF_HPP -#define BOOST_ASIO_BASIC_SOCKET_STREAMBUF_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#if !defined(BOOST_ASIO_SOCKET_STREAMBUF_MAX_ARITY) -#define BOOST_ASIO_SOCKET_STREAMBUF_MAX_ARITY 5 -#endif // !defined(BOOST_ASIO_SOCKET_STREAMBUF_MAX_ARITY) - -// A macro that should expand to: -// template -// basic_socket_streambuf* connect( -// T1 x1, ..., Tn xn) -// { -// init_buffers(); -// boost::system::error_code ec; -// this->basic_socket::close(ec); -// typedef typename Protocol::resolver_query resolver_query; -// resolver_query query(x1, ..., xn); -// resolve_and_connect(query, ec); -// return !ec ? this : 0; -// } -// This macro should only persist within this file. - -#define BOOST_ASIO_PRIVATE_CONNECT_DEF( z, n, data ) \ - template \ - basic_socket_streambuf* connect( \ - BOOST_PP_ENUM_BINARY_PARAMS(n, T, x)) \ - { \ - init_buffers(); \ - boost::system::error_code ec; \ - this->basic_socket::close(ec); \ - typedef typename Protocol::resolver_query resolver_query; \ - resolver_query query(BOOST_PP_ENUM_PARAMS(n, x)); \ - resolve_and_connect(query, ec); \ - return !ec ? this : 0; \ - } \ - /**/ - -namespace boost { -namespace asio { - -/// Iostream streambuf for a socket. -template > -class basic_socket_streambuf - : public std::streambuf, - private boost::base_from_member, - public basic_socket -{ -public: - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_socket_streambuf without establishing a connection. - basic_socket_streambuf() - : basic_socket( - boost::base_from_member::member), - unbuffered_(false) - { - init_buffers(); - } - - /// Destructor flushes buffered data. - virtual ~basic_socket_streambuf() - { - if (pptr() != pbase()) - overflow(traits_type::eof()); - } - - /// Establish a connection. - /** - * This function establishes a connection to the specified endpoint. - * - * @return \c this if a connection was successfully established, a null - * pointer otherwise. - */ - basic_socket_streambuf* connect( - const endpoint_type& endpoint) - { - init_buffers(); - boost::system::error_code ec; - this->basic_socket::close(ec); - this->basic_socket::connect(endpoint, ec); - return !ec ? this : 0; - } - -#if defined(GENERATING_DOCUMENTATION) - /// Establish a connection. - /** - * This function automatically establishes a connection based on the supplied - * resolver query parameters. The arguments are used to construct a resolver - * query object. - * - * @return \c this if a connection was successfully established, a null - * pointer otherwise. - */ - template - basic_socket_streambuf* connect( - T1 t1, ..., TN tn); -#else - BOOST_PP_REPEAT_FROM_TO( - 1, BOOST_PP_INC(BOOST_ASIO_SOCKET_STREAMBUF_MAX_ARITY), - BOOST_ASIO_PRIVATE_CONNECT_DEF, _ ) -#endif - - /// Close the connection. - /** - * @return \c this if a connection was successfully established, a null - * pointer otherwise. - */ - basic_socket_streambuf* close() - { - boost::system::error_code ec; - sync(); - this->basic_socket::close(ec); - if (!ec) - init_buffers(); - return !ec ? this : 0; - } - -protected: - int_type underflow() - { - if (gptr() == egptr()) - { - boost::system::error_code ec; - std::size_t bytes_transferred = this->service.receive( - this->implementation, - boost::asio::buffer(boost::asio::buffer(get_buffer_) + putback_max), - 0, ec); - if (ec) - return traits_type::eof(); - setg(get_buffer_.begin(), get_buffer_.begin() + putback_max, - get_buffer_.begin() + putback_max + bytes_transferred); - return traits_type::to_int_type(*gptr()); - } - else - { - return traits_type::eof(); - } - } - - int_type overflow(int_type c) - { - if (unbuffered_) - { - if (traits_type::eq_int_type(c, traits_type::eof())) - { - // Nothing to do. - return traits_type::not_eof(c); - } - else - { - // Send the single character immediately. - boost::system::error_code ec; - char_type ch = traits_type::to_char_type(c); - this->service.send(this->implementation, - boost::asio::buffer(&ch, sizeof(char_type)), 0, ec); - if (ec) - return traits_type::eof(); - return c; - } - } - else - { - // Send all data in the output buffer. - boost::asio::const_buffer buffer = - boost::asio::buffer(pbase(), pptr() - pbase()); - while (boost::asio::buffer_size(buffer) > 0) - { - boost::system::error_code ec; - std::size_t bytes_transferred = this->service.send( - this->implementation, boost::asio::buffer(buffer), - 0, ec); - if (ec) - return traits_type::eof(); - buffer = buffer + bytes_transferred; - } - setp(put_buffer_.begin(), put_buffer_.end()); - - // If the new character is eof then our work here is done. - if (traits_type::eq_int_type(c, traits_type::eof())) - return traits_type::not_eof(c); - - // Add the new character to the output buffer. - *pptr() = traits_type::to_char_type(c); - pbump(1); - return c; - } - } - - int sync() - { - return overflow(traits_type::eof()); - } - - std::streambuf* setbuf(char_type* s, std::streamsize n) - { - if (pptr() == pbase() && s == 0 && n == 0) - { - unbuffered_ = true; - setp(0, 0); - return this; - } - - return 0; - } - -private: - void init_buffers() - { - setg(get_buffer_.begin(), - get_buffer_.begin() + putback_max, - get_buffer_.begin() + putback_max); - if (unbuffered_) - setp(0, 0); - else - setp(put_buffer_.begin(), put_buffer_.end()); - } - - template - void resolve_and_connect(const ResolverQuery& query, - boost::system::error_code& ec) - { - typedef typename Protocol::resolver resolver_type; - typedef typename Protocol::resolver_iterator iterator_type; - resolver_type resolver( - boost::base_from_member::member); - iterator_type i = resolver.resolve(query, ec); - if (!ec) - { - iterator_type end; - ec = boost::asio::error::host_not_found; - while (ec && i != end) - { - this->basic_socket::close(); - this->basic_socket::connect(*i, ec); - ++i; - } - } - } - - enum { putback_max = 8 }; - enum { buffer_size = 512 }; - boost::array get_buffer_; - boost::array put_buffer_; - bool unbuffered_; -}; - -} // namespace asio -} // namespace boost - -#undef BOOST_ASIO_PRIVATE_CONNECT_DEF - -#include - -#endif // BOOST_ASIO_BASIC_SOCKET_STREAMBUF_HPP diff --git a/3rdParty/Boost/boost/asio/basic_stream_socket.hpp b/3rdParty/Boost/boost/asio/basic_stream_socket.hpp deleted file mode 100644 index c020369..0000000 --- a/3rdParty/Boost/boost/asio/basic_stream_socket.hpp +++ /dev/null @@ -1,720 +0,0 @@ -// -// basic_stream_socket.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BASIC_STREAM_SOCKET_HPP -#define BOOST_ASIO_BASIC_STREAM_SOCKET_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Provides stream-oriented socket functionality. -/** - * The basic_stream_socket class template provides asynchronous and blocking - * stream-oriented socket functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template > -class basic_stream_socket - : public basic_socket -{ -public: - /// The native representation of a socket. - typedef typename StreamSocketService::native_type native_type; - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - /// Construct a basic_stream_socket without opening it. - /** - * This constructor creates a stream socket without opening it. The socket - * needs to be opened and then connected or accepted before data can be sent - * or received on it. - * - * @param io_service The io_service object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - */ - explicit basic_stream_socket(boost::asio::io_service& io_service) - : basic_socket(io_service) - { - } - - /// Construct and open a basic_stream_socket. - /** - * This constructor creates and opens a stream socket. The socket needs to be - * connected or accepted before data can be sent or received on it. - * - * @param io_service The io_service object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_stream_socket(boost::asio::io_service& io_service, - const protocol_type& protocol) - : basic_socket(io_service, protocol) - { - } - - /// Construct a basic_stream_socket, opening it and binding it to the given - /// local endpoint. - /** - * This constructor creates a stream socket and automatically opens it bound - * to the specified endpoint on the local machine. The protocol used is the - * protocol associated with the given endpoint. - * - * @param io_service The io_service object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param endpoint An endpoint on the local machine to which the stream - * socket will be bound. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_stream_socket(boost::asio::io_service& io_service, - const endpoint_type& endpoint) - : basic_socket(io_service, endpoint) - { - } - - /// Construct a basic_stream_socket on an existing native socket. - /** - * This constructor creates a stream socket object to hold an existing native - * socket. - * - * @param io_service The io_service object that the stream socket will use to - * dispatch handlers for any asynchronous operations performed on the socket. - * - * @param protocol An object specifying protocol parameters to be used. - * - * @param native_socket The new underlying socket implementation. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_stream_socket(boost::asio::io_service& io_service, - const protocol_type& protocol, const native_type& native_socket) - : basic_socket( - io_service, protocol, native_socket) - { - } - - /// Send some data on the socket. - /** - * This function is used to send data on the stream socket. The function - * call will block until one or more bytes of the data has been sent - * successfully, or an until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @returns The number of bytes sent. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.send(boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.send( - this->implementation, buffers, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Send some data on the socket. - /** - * This function is used to send data on the stream socket. The function - * call will block until one or more bytes of the data has been sent - * successfully, or an until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @returns The number of bytes sent. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.send(boost::asio::buffer(data, size), 0); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags) - { - boost::system::error_code ec; - std::size_t s = this->service.send( - this->implementation, buffers, flags, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Send some data on the socket. - /** - * This function is used to send data on the stream socket. The function - * call will block until one or more bytes of the data has been sent - * successfully, or an until error occurs. - * - * @param buffers One or more data buffers to be sent on the socket. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes sent. Returns 0 if an error occurred. - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref write function if you need to ensure that all data - * is written before the blocking operation completes. - */ - template - std::size_t send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return this->service.send(this->implementation, buffers, flags, ec); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send data on the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_send(const ConstBufferSequence& buffers, WriteHandler handler) - { - this->service.async_send(this->implementation, buffers, 0, handler); - } - - /// Start an asynchronous send. - /** - * This function is used to asynchronously send data on the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be sent on the socket. Although - * the buffers object may be copied as necessary, ownership of the underlying - * memory blocks is retained by the caller, which must guarantee that they - * remain valid until the handler is called. - * - * @param flags Flags specifying how the send call is to be made. - * - * @param handler The handler to be called when the send operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes sent. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The send operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To send a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_send(boost::asio::buffer(data, size), 0, handler); - * @endcode - * See the @ref buffer documentation for information on sending multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_send(const ConstBufferSequence& buffers, - socket_base::message_flags flags, WriteHandler handler) - { - this->service.async_send(this->implementation, buffers, flags, handler); - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the stream socket. The function - * call will block until one or more bytes of data has been received - * successfully, or until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @returns The number of bytes received. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.receive(this->implementation, buffers, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Receive some data on the socket. - /** - * This function is used to receive data on the stream socket. The function - * call will block until one or more bytes of data has been received - * successfully, or until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @returns The number of bytes received. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.receive(boost::asio::buffer(data, size), 0); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags) - { - boost::system::error_code ec; - std::size_t s = this->service.receive( - this->implementation, buffers, flags, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Receive some data on a connected socket. - /** - * This function is used to receive data on the stream socket. The function - * call will block until one or more bytes of data has been received - * successfully, or until an error occurs. - * - * @param buffers One or more buffers into which the data will be received. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes received. Returns 0 if an error occurred. - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that the - * requested amount of data is read before the blocking operation completes. - */ - template - std::size_t receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return this->service.receive(this->implementation, buffers, flags, ec); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the stream - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref async_read function if you need to ensure - * that the requested amount of data is received before the asynchronous - * operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_receive(const MutableBufferSequence& buffers, ReadHandler handler) - { - this->service.async_receive(this->implementation, buffers, 0, handler); - } - - /// Start an asynchronous receive. - /** - * This function is used to asynchronously receive data from the stream - * socket. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be received. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param flags Flags specifying how the receive call is to be made. - * - * @param handler The handler to be called when the receive operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes received. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The receive operation may not receive all of the requested number of - * bytes. Consider using the @ref async_read function if you need to ensure - * that the requested amount of data is received before the asynchronous - * operation completes. - * - * @par Example - * To receive into a single data buffer use the @ref buffer function as - * follows: - * @code - * socket.async_receive(boost::asio::buffer(data, size), 0, handler); - * @endcode - * See the @ref buffer documentation for information on receiving into - * multiple buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_receive(const MutableBufferSequence& buffers, - socket_base::message_flags flags, ReadHandler handler) - { - this->service.async_receive(this->implementation, buffers, flags, handler); - } - - /// Write some data to the socket. - /** - * This function is used to write data to the stream socket. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the socket. - * - * @returns The number of bytes written. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * socket.write_some(boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.send(this->implementation, buffers, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Write some data to the socket. - /** - * This function is used to write data to the stream socket. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the socket. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - boost::system::error_code& ec) - { - return this->service.send(this->implementation, buffers, 0, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the socket. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_write_some(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_write_some(const ConstBufferSequence& buffers, - WriteHandler handler) - { - this->service.async_send(this->implementation, buffers, 0, handler); - } - - /// Read some data from the socket. - /** - * This function is used to read data from the stream socket. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * socket.read_some(boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.receive(this->implementation, buffers, 0, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Read some data from the socket. - /** - * This function is used to read data from the stream socket. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - boost::system::error_code& ec) - { - return this->service.receive(this->implementation, buffers, 0, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream socket. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * socket.async_read_some(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_read_some(const MutableBufferSequence& buffers, - ReadHandler handler) - { - this->service.async_receive(this->implementation, buffers, 0, handler); - } -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BASIC_STREAM_SOCKET_HPP diff --git a/3rdParty/Boost/boost/asio/basic_streambuf.hpp b/3rdParty/Boost/boost/asio/basic_streambuf.hpp deleted file mode 100644 index db0e0c5..0000000 --- a/3rdParty/Boost/boost/asio/basic_streambuf.hpp +++ /dev/null @@ -1,340 +0,0 @@ -// -// basic_streambuf.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BASIC_STREAMBUF_HPP -#define BOOST_ASIO_BASIC_STREAMBUF_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { - -/// Automatically resizable buffer class based on std::streambuf. -/** - * The @c basic_streambuf class is derived from @c std::streambuf to associate - * the streambuf's input and output sequences with one or more character - * arrays. These character arrays are internal to the @c basic_streambuf - * object, but direct access to the array elements is provided to permit them - * to be used efficiently with I/O operations. Characters written to the output - * sequence of a @c basic_streambuf object are appended to the input sequence - * of the same object. - * - * The @c basic_streambuf class's public interface is intended to permit the - * following implementation strategies: - * - * @li A single contiguous character array, which is reallocated as necessary - * to accommodate changes in the size of the character sequence. This is the - * implementation approach currently used in Asio. - * - * @li A sequence of one or more character arrays, where each array is of the - * same size. Additional character array objects are appended to the sequence - * to accommodate changes in the size of the character sequence. - * - * @li A sequence of one or more character arrays of varying sizes. Additional - * character array objects are appended to the sequence to accommodate changes - * in the size of the character sequence. - * - * The constructor for basic_streambuf accepts a @c size_t argument specifying - * the maximum of the sum of the sizes of the input sequence and output - * sequence. During the lifetime of the @c basic_streambuf object, the following - * invariant holds: - * @code size() <= max_size()@endcode - * Any member function that would, if successful, cause the invariant to be - * violated shall throw an exception of class @c std::length_error. - * - * The constructor for @c basic_streambuf takes an Allocator argument. A copy - * of this argument is used for any memory allocation performed, by the - * constructor and by all member functions, during the lifetime of each @c - * basic_streambuf object. - * - * @par Examples - * Writing directly from an streambuf to a socket: - * @code - * boost::asio::streambuf b; - * std::ostream os(&b); - * os << "Hello, World!\n"; - * - * // try sending some data in input sequence - * size_t n = sock.send(b.data()); - * - * b.consume(n); // sent data is removed from input sequence - * @endcode - * - * Reading from a socket directly into a streambuf: - * @code - * boost::asio::streambuf b; - * - * // reserve 512 bytes in output sequence - * boost::asio::streambuf::const_buffers_type bufs = b.prepare(512); - * - * size_t n = sock.receive(bufs); - * - * // received data is "committed" from output sequence to input sequence - * b.commit(n); - * - * std::istream is(&b); - * std::string s; - * is >> s; - * @endcode - */ -template > -class basic_streambuf - : public std::streambuf, - private noncopyable -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The type used to represent the input sequence as a list of buffers. - typedef implementation_defined const_buffers_type; - - /// The type used to represent the output sequence as a list of buffers. - typedef implementation_defined mutable_buffers_type; -#else - typedef boost::asio::const_buffers_1 const_buffers_type; - typedef boost::asio::mutable_buffers_1 mutable_buffers_type; -#endif - - /// Construct a basic_streambuf object. - /** - * Constructs a streambuf with the specified maximum size. The initial size - * of the streambuf's input sequence is 0. - */ - explicit basic_streambuf( - std::size_t max_size = (std::numeric_limits::max)(), - const Allocator& allocator = Allocator()) - : max_size_(max_size), - buffer_(allocator) - { - std::size_t pend = (std::min)(max_size_, buffer_delta); - buffer_.resize((std::max)(pend, 1)); - setg(&buffer_[0], &buffer_[0], &buffer_[0]); - setp(&buffer_[0], &buffer_[0] + pend); - } - - /// Get the size of the input sequence. - /** - * @returns The size of the input sequence. The value is equal to that - * calculated for @c s in the following code: - * @code - * size_t s = 0; - * const_buffers_type bufs = data(); - * const_buffers_type::const_iterator i = bufs.begin(); - * while (i != bufs.end()) - * { - * const_buffer buf(*i++); - * s += buffer_size(buf); - * } - * @endcode - */ - std::size_t size() const - { - return pptr() - gptr(); - } - - /// Get the maximum size of the basic_streambuf. - /** - * @returns The allowed maximum of the sum of the sizes of the input sequence - * and output sequence. - */ - std::size_t max_size() const - { - return max_size_; - } - - /// Get a list of buffers that represents the input sequence. - /** - * @returns An object of type @c const_buffers_type that satisfies - * ConstBufferSequence requirements, representing all character arrays in the - * input sequence. - * - * @note The returned object is invalidated by any @c basic_streambuf member - * function that modifies the input sequence or output sequence. - */ - const_buffers_type data() const - { - return boost::asio::buffer(boost::asio::const_buffer(gptr(), - (pptr() - gptr()) * sizeof(char_type))); - } - - /// Get a list of buffers that represents the output sequence, with the given - /// size. - /** - * Ensures that the output sequence can accommodate @c n characters, - * reallocating character array objects as necessary. - * - * @returns An object of type @c mutable_buffers_type that satisfies - * MutableBufferSequence requirements, representing character array objects - * at the start of the output sequence such that the sum of the buffer sizes - * is @c n. - * - * @throws std::length_error If size() + n > max_size(). - * - * @note The returned object is invalidated by any @c basic_streambuf member - * function that modifies the input sequence or output sequence. - */ - mutable_buffers_type prepare(std::size_t n) - { - reserve(n); - return boost::asio::buffer(boost::asio::mutable_buffer( - pptr(), n * sizeof(char_type))); - } - - /// Move characters from the output sequence to the input sequence. - /** - * Appends @c n characters from the start of the output sequence to the input - * sequence. The beginning of the output sequence is advanced by @c n - * characters. - * - * Requires a preceding call prepare(x) where x >= n, and - * no intervening operations that modify the input or output sequence. - * - * @throws std::length_error If @c n is greater than the size of the output - * sequence. - */ - void commit(std::size_t n) - { - if (pptr() + n > epptr()) - n = epptr() - pptr(); - pbump(static_cast(n)); - setg(eback(), gptr(), pptr()); - } - - /// Remove characters from the input sequence. - /** - * Removes @c n characters from the beginning of the input sequence. - * - * @throws std::length_error If n > size(). - */ - void consume(std::size_t n) - { - if (gptr() + n > pptr()) - n = pptr() - gptr(); - gbump(static_cast(n)); - } - -protected: - enum { buffer_delta = 128 }; - - /// Override std::streambuf behaviour. - /** - * Behaves according to the specification of @c std::streambuf::underflow(). - */ - int_type underflow() - { - if (gptr() < pptr()) - { - setg(&buffer_[0], gptr(), pptr()); - return traits_type::to_int_type(*gptr()); - } - else - { - return traits_type::eof(); - } - } - - /// Override std::streambuf behaviour. - /** - * Behaves according to the specification of @c std::streambuf::overflow(), - * with the specialisation that @c std::length_error is thrown if appending - * the character to the input sequence would require the condition - * size() > max_size() to be true. - */ - int_type overflow(int_type c) - { - if (!traits_type::eq_int_type(c, traits_type::eof())) - { - if (pptr() == epptr()) - { - std::size_t buffer_size = pptr() - gptr(); - if (buffer_size < max_size_ && max_size_ - buffer_size < buffer_delta) - { - reserve(max_size_ - buffer_size); - } - else - { - reserve(buffer_delta); - } - } - - *pptr() = traits_type::to_char_type(c); - pbump(1); - return c; - } - - return traits_type::not_eof(c); - } - - void reserve(std::size_t n) - { - // Get current stream positions as offsets. - std::size_t gnext = gptr() - &buffer_[0]; - std::size_t pnext = pptr() - &buffer_[0]; - std::size_t pend = epptr() - &buffer_[0]; - - // Check if there is already enough space in the put area. - if (n <= pend - pnext) - { - return; - } - - // Shift existing contents of get area to start of buffer. - if (gnext > 0) - { - pnext -= gnext; - std::memmove(&buffer_[0], &buffer_[0] + gnext, pnext); - } - - // Ensure buffer is large enough to hold at least the specified size. - if (n > pend - pnext) - { - if (n <= max_size_ && pnext <= max_size_ - n) - { - pend = pnext + n; - buffer_.resize((std::max)(pend, 1)); - } - else - { - throw std::length_error("boost::asio::streambuf too long"); - } - } - - // Update stream positions. - setg(&buffer_[0], &buffer_[0], &buffer_[0] + pnext); - setp(&buffer_[0] + pnext, &buffer_[0] + pend); - } - -private: - std::size_t max_size_; - std::vector buffer_; -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BASIC_STREAMBUF_HPP diff --git a/3rdParty/Boost/boost/asio/buffer.hpp b/3rdParty/Boost/boost/asio/buffer.hpp deleted file mode 100644 index 056d712..0000000 --- a/3rdParty/Boost/boost/asio/buffer.hpp +++ /dev/null @@ -1,1042 +0,0 @@ -// -// buffer.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BUFFER_HPP -#define BOOST_ASIO_BUFFER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(BOOST_MSVC) -# if defined(_HAS_ITERATOR_DEBUGGING) && (_HAS_ITERATOR_DEBUGGING != 0) -# if !defined(BOOST_ASIO_DISABLE_BUFFER_DEBUGGING) -# define BOOST_ASIO_ENABLE_BUFFER_DEBUGGING -# endif // !defined(BOOST_ASIO_DISABLE_BUFFER_DEBUGGING) -# endif // defined(_HAS_ITERATOR_DEBUGGING) -#endif // defined(BOOST_MSVC) - -#if defined(__GNUC__) -# if defined(_GLIBCXX_DEBUG) -# if !defined(BOOST_ASIO_DISABLE_BUFFER_DEBUGGING) -# define BOOST_ASIO_ENABLE_BUFFER_DEBUGGING -# endif // !defined(BOOST_ASIO_DISABLE_BUFFER_DEBUGGING) -# endif // defined(_GLIBCXX_DEBUG) -#endif // defined(__GNUC__) - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) -# include -# include -# include -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - -namespace boost { -namespace asio { - -class mutable_buffer; -class const_buffer; - -namespace detail { -void* buffer_cast_helper(const mutable_buffer&); -const void* buffer_cast_helper(const const_buffer&); -std::size_t buffer_size_helper(const mutable_buffer&); -std::size_t buffer_size_helper(const const_buffer&); -} // namespace detail - -/// Holds a buffer that can be modified. -/** - * The mutable_buffer class provides a safe representation of a buffer that can - * be modified. It does not own the underlying data, and so is cheap to copy or - * assign. - */ -class mutable_buffer -{ -public: - /// Construct an empty buffer. - mutable_buffer() - : data_(0), - size_(0) - { - } - - /// Construct a buffer to represent a given memory range. - mutable_buffer(void* data, std::size_t size) - : data_(data), - size_(size) - { - } - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - mutable_buffer(void* data, std::size_t size, - boost::function debug_check) - : data_(data), - size_(size), - debug_check_(debug_check) - { - } - - const boost::function& get_debug_check() const - { - return debug_check_; - } -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - -private: - friend void* boost::asio::detail::buffer_cast_helper( - const mutable_buffer& b); - friend std::size_t boost::asio::detail::buffer_size_helper( - const mutable_buffer& b); - - void* data_; - std::size_t size_; - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - boost::function debug_check_; -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING -}; - -namespace detail { - -inline void* buffer_cast_helper(const mutable_buffer& b) -{ -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - if (b.size_ && b.debug_check_) - b.debug_check_(); -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - return b.data_; -} - -inline std::size_t buffer_size_helper(const mutable_buffer& b) -{ - return b.size_; -} - -} // namespace detail - -/// Cast a non-modifiable buffer to a specified pointer to POD type. -/** - * @relates mutable_buffer - */ -template -inline PointerToPodType buffer_cast(const mutable_buffer& b) -{ - return static_cast(detail::buffer_cast_helper(b)); -} - -/// Get the number of bytes in a non-modifiable buffer. -/** - * @relates mutable_buffer - */ -inline std::size_t buffer_size(const mutable_buffer& b) -{ - return detail::buffer_size_helper(b); -} - -/// Create a new modifiable buffer that is offset from the start of another. -/** - * @relates mutable_buffer - */ -inline mutable_buffer operator+(const mutable_buffer& b, std::size_t start) -{ - if (start > buffer_size(b)) - return mutable_buffer(); - char* new_data = buffer_cast(b) + start; - std::size_t new_size = buffer_size(b) - start; - return mutable_buffer(new_data, new_size -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new modifiable buffer that is offset from the start of another. -/** - * @relates mutable_buffer - */ -inline mutable_buffer operator+(std::size_t start, const mutable_buffer& b) -{ - if (start > buffer_size(b)) - return mutable_buffer(); - char* new_data = buffer_cast(b) + start; - std::size_t new_size = buffer_size(b) - start; - return mutable_buffer(new_data, new_size -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Adapts a single modifiable buffer so that it meets the requirements of the -/// MutableBufferSequence concept. -class mutable_buffers_1 - : public mutable_buffer -{ -public: - /// The type for each element in the list of buffers. - typedef mutable_buffer value_type; - - /// A random-access iterator type that may be used to read elements. - typedef const mutable_buffer* const_iterator; - - /// Construct to represent a given memory range. - mutable_buffers_1(void* data, std::size_t size) - : mutable_buffer(data, size) - { - } - - /// Construct to represent a single modifiable buffer. - explicit mutable_buffers_1(const mutable_buffer& b) - : mutable_buffer(b) - { - } - - /// Get a random-access iterator to the first element. - const_iterator begin() const - { - return this; - } - - /// Get a random-access iterator for one past the last element. - const_iterator end() const - { - return begin() + 1; - } -}; - -/// Holds a buffer that cannot be modified. -/** - * The const_buffer class provides a safe representation of a buffer that cannot - * be modified. It does not own the underlying data, and so is cheap to copy or - * assign. - */ -class const_buffer -{ -public: - /// Construct an empty buffer. - const_buffer() - : data_(0), - size_(0) - { - } - - /// Construct a buffer to represent a given memory range. - const_buffer(const void* data, std::size_t size) - : data_(data), - size_(size) - { - } - - /// Construct a non-modifiable buffer from a modifiable one. - const_buffer(const mutable_buffer& b) - : data_(boost::asio::detail::buffer_cast_helper(b)), - size_(boost::asio::detail::buffer_size_helper(b)) -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , debug_check_(b.get_debug_check()) -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - { - } - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - const_buffer(const void* data, std::size_t size, - boost::function debug_check) - : data_(data), - size_(size), - debug_check_(debug_check) - { - } - - const boost::function& get_debug_check() const - { - return debug_check_; - } -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - -private: - friend const void* boost::asio::detail::buffer_cast_helper( - const const_buffer& b); - friend std::size_t boost::asio::detail::buffer_size_helper( - const const_buffer& b); - - const void* data_; - std::size_t size_; - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - boost::function debug_check_; -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING -}; - -namespace detail { - -inline const void* buffer_cast_helper(const const_buffer& b) -{ -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - if (b.size_ && b.debug_check_) - b.debug_check_(); -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - return b.data_; -} - -inline std::size_t buffer_size_helper(const const_buffer& b) -{ - return b.size_; -} - -} // namespace detail - -/// Cast a non-modifiable buffer to a specified pointer to POD type. -/** - * @relates const_buffer - */ -template -inline PointerToPodType buffer_cast(const const_buffer& b) -{ - return static_cast(detail::buffer_cast_helper(b)); -} - -/// Get the number of bytes in a non-modifiable buffer. -/** - * @relates const_buffer - */ -inline std::size_t buffer_size(const const_buffer& b) -{ - return detail::buffer_size_helper(b); -} - -/// Create a new non-modifiable buffer that is offset from the start of another. -/** - * @relates const_buffer - */ -inline const_buffer operator+(const const_buffer& b, std::size_t start) -{ - if (start > buffer_size(b)) - return const_buffer(); - const char* new_data = buffer_cast(b) + start; - std::size_t new_size = buffer_size(b) - start; - return const_buffer(new_data, new_size -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Create a new non-modifiable buffer that is offset from the start of another. -/** - * @relates const_buffer - */ -inline const_buffer operator+(std::size_t start, const const_buffer& b) -{ - if (start > buffer_size(b)) - return const_buffer(); - const char* new_data = buffer_cast(b) + start; - std::size_t new_size = buffer_size(b) - start; - return const_buffer(new_data, new_size -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - ); -} - -/// Adapts a single non-modifiable buffer so that it meets the requirements of -/// the ConstBufferSequence concept. -class const_buffers_1 - : public const_buffer -{ -public: - /// The type for each element in the list of buffers. - typedef const_buffer value_type; - - /// A random-access iterator type that may be used to read elements. - typedef const const_buffer* const_iterator; - - /// Construct to represent a given memory range. - const_buffers_1(const void* data, std::size_t size) - : const_buffer(data, size) - { - } - - /// Construct to represent a single non-modifiable buffer. - explicit const_buffers_1(const const_buffer& b) - : const_buffer(b) - { - } - - /// Get a random-access iterator to the first element. - const_iterator begin() const - { - return this; - } - - /// Get a random-access iterator for one past the last element. - const_iterator end() const - { - return begin() + 1; - } -}; - -/// An implementation of both the ConstBufferSequence and MutableBufferSequence -/// concepts to represent a null buffer sequence. -class null_buffers -{ -public: - /// The type for each element in the list of buffers. - typedef mutable_buffer value_type; - - /// A random-access iterator type that may be used to read elements. - typedef const mutable_buffer* const_iterator; - - /// Get a random-access iterator to the first element. - const_iterator begin() const - { - return &buf_; - } - - /// Get a random-access iterator for one past the last element. - const_iterator end() const - { - return &buf_; - } - -private: - mutable_buffer buf_; -}; - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) -namespace detail { - -template -class buffer_debug_check -{ -public: - buffer_debug_check(Iterator iter) - : iter_(iter) - { - } - - ~buffer_debug_check() - { -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) - // MSVC's string iterator checking may crash in a std::string::iterator - // object's destructor when the iterator points to an already-destroyed - // std::string object, unless the iterator is cleared first. - iter_ = Iterator(); -#endif // BOOST_WORKAROUND(BOOST_MSVC, >= 1400) - } - - void operator()() - { - *iter_; - } - -private: - Iterator iter_; -}; - -} // namespace detail -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - -/** @defgroup buffer boost::asio::buffer - * - * @brief The boost::asio::buffer function is used to create a buffer object to - * represent raw memory, an array of POD elements, a vector of POD elements, - * or a std::string. - * - * A buffer object represents a contiguous region of memory as a 2-tuple - * consisting of a pointer and size in bytes. A tuple of the form {void*, - * size_t} specifies a mutable (modifiable) region of memory. Similarly, a - * tuple of the form {const void*, size_t} specifies a const - * (non-modifiable) region of memory. These two forms correspond to the classes - * mutable_buffer and const_buffer, respectively. To mirror C++'s conversion - * rules, a mutable_buffer is implicitly convertible to a const_buffer, and the - * opposite conversion is not permitted. - * - * The simplest use case involves reading or writing a single buffer of a - * specified size: - * - * @code sock.send(boost::asio::buffer(data, size)); @endcode - * - * In the above example, the return value of boost::asio::buffer meets the - * requirements of the ConstBufferSequence concept so that it may be directly - * passed to the socket's write function. A buffer created for modifiable - * memory also meets the requirements of the MutableBufferSequence concept. - * - * An individual buffer may be created from a builtin array, std::vector or - * boost::array of POD elements. This helps prevent buffer overruns by - * automatically determining the size of the buffer: - * - * @code char d1[128]; - * size_t bytes_transferred = sock.receive(boost::asio::buffer(d1)); - * - * std::vector d2(128); - * bytes_transferred = sock.receive(boost::asio::buffer(d2)); - * - * boost::array d3; - * bytes_transferred = sock.receive(boost::asio::buffer(d3)); @endcode - * - * In all three cases above, the buffers created are exactly 128 bytes long. - * Note that a vector is @e never automatically resized when creating or using - * a buffer. The buffer size is determined using the vector's size() - * member function, and not its capacity. - * - * @par Accessing Buffer Contents - * - * The contents of a buffer may be accessed using the boost::asio::buffer_size - * and boost::asio::buffer_cast functions: - * - * @code boost::asio::mutable_buffer b1 = ...; - * std::size_t s1 = boost::asio::buffer_size(b1); - * unsigned char* p1 = boost::asio::buffer_cast(b1); - * - * boost::asio::const_buffer b2 = ...; - * std::size_t s2 = boost::asio::buffer_size(b2); - * const void* p2 = boost::asio::buffer_cast(b2); @endcode - * - * The boost::asio::buffer_cast function permits violations of type safety, so - * uses of it in application code should be carefully considered. - * - * @par Buffer Invalidation - * - * A buffer object does not have any ownership of the memory it refers to. It - * is the responsibility of the application to ensure the memory region remains - * valid until it is no longer required for an I/O operation. When the memory - * is no longer available, the buffer is said to have been invalidated. - * - * For the boost::asio::buffer overloads that accept an argument of type - * std::vector, the buffer objects returned are invalidated by any vector - * operation that also invalidates all references, pointers and iterators - * referring to the elements in the sequence (C++ Std, 23.2.4) - * - * For the boost::asio::buffer overloads that accept an argument of type - * std::string, the buffer objects returned are invalidated according to the - * rules defined for invalidation of references, pointers and iterators - * referring to elements of the sequence (C++ Std, 21.3). - * - * @par Buffer Arithmetic - * - * Buffer objects may be manipulated using simple arithmetic in a safe way - * which helps prevent buffer overruns. Consider an array initialised as - * follows: - * - * @code boost::array a = { 'a', 'b', 'c', 'd', 'e' }; @endcode - * - * A buffer object @c b1 created using: - * - * @code b1 = boost::asio::buffer(a); @endcode - * - * represents the entire array, { 'a', 'b', 'c', 'd', 'e' }. An - * optional second argument to the boost::asio::buffer function may be used to - * limit the size, in bytes, of the buffer: - * - * @code b2 = boost::asio::buffer(a, 3); @endcode - * - * such that @c b2 represents the data { 'a', 'b', 'c' }. Even if the - * size argument exceeds the actual size of the array, the size of the buffer - * object created will be limited to the array size. - * - * An offset may be applied to an existing buffer to create a new one: - * - * @code b3 = b1 + 2; @endcode - * - * where @c b3 will set to represent { 'c', 'd', 'e' }. If the offset - * exceeds the size of the existing buffer, the newly created buffer will be - * empty. - * - * Both an offset and size may be specified to create a buffer that corresponds - * to a specific range of bytes within an existing buffer: - * - * @code b4 = boost::asio::buffer(b1 + 1, 3); @endcode - * - * so that @c b4 will refer to the bytes { 'b', 'c', 'd' }. - * - * @par Buffers and Scatter-Gather I/O - * - * To read or write using multiple buffers (i.e. scatter-gather I/O), multiple - * buffer objects may be assigned into a container that supports the - * MutableBufferSequence (for read) or ConstBufferSequence (for write) concepts: - * - * @code - * char d1[128]; - * std::vector d2(128); - * boost::array d3; - * - * boost::array bufs1 = { - * boost::asio::buffer(d1), - * boost::asio::buffer(d2), - * boost::asio::buffer(d3) }; - * bytes_transferred = sock.receive(bufs1); - * - * std::vector bufs2; - * bufs2.push_back(boost::asio::buffer(d1)); - * bufs2.push_back(boost::asio::buffer(d2)); - * bufs2.push_back(boost::asio::buffer(d3)); - * bytes_transferred = sock.send(bufs2); @endcode - */ -/*@{*/ - -/// Create a new modifiable buffer from an existing buffer. -/** - * @returns mutable_buffers_1(b). - */ -inline mutable_buffers_1 buffer(const mutable_buffer& b) -{ - return mutable_buffers_1(b); -} - -/// Create a new modifiable buffer from an existing buffer. -/** - * @returns A mutable_buffers_1 value equivalent to: - * @code mutable_buffers_1( - * buffer_cast(b), - * min(buffer_size(b), max_size_in_bytes)); @endcode - */ -inline mutable_buffers_1 buffer(const mutable_buffer& b, - std::size_t max_size_in_bytes) -{ - return mutable_buffers_1( - mutable_buffer(buffer_cast(b), - buffer_size(b) < max_size_in_bytes - ? buffer_size(b) : max_size_in_bytes -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - )); -} - -/// Create a new non-modifiable buffer from an existing buffer. -/** - * @returns const_buffers_1(b). - */ -inline const_buffers_1 buffer(const const_buffer& b) -{ - return const_buffers_1(b); -} - -/// Create a new non-modifiable buffer from an existing buffer. -/** - * @returns A const_buffers_1 value equivalent to: - * @code const_buffers_1( - * buffer_cast(b), - * min(buffer_size(b), max_size_in_bytes)); @endcode - */ -inline const_buffers_1 buffer(const const_buffer& b, - std::size_t max_size_in_bytes) -{ - return const_buffers_1( - const_buffer(buffer_cast(b), - buffer_size(b) < max_size_in_bytes - ? buffer_size(b) : max_size_in_bytes -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , b.get_debug_check() -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - )); -} - -/// Create a new modifiable buffer that represents the given memory range. -/** - * @returns mutable_buffers_1(data, size_in_bytes). - */ -inline mutable_buffers_1 buffer(void* data, std::size_t size_in_bytes) -{ - return mutable_buffers_1(mutable_buffer(data, size_in_bytes)); -} - -/// Create a new non-modifiable buffer that represents the given memory range. -/** - * @returns const_buffers_1(data, size_in_bytes). - */ -inline const_buffers_1 buffer(const void* data, - std::size_t size_in_bytes) -{ - return const_buffers_1(const_buffer(data, size_in_bytes)); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffers_1 value equivalent to: - * @code mutable_buffers_1( - * static_cast(data), - * N * sizeof(PodType)); @endcode - */ -template -inline mutable_buffers_1 buffer(PodType (&data)[N]) -{ - return mutable_buffers_1(mutable_buffer(data, N * sizeof(PodType))); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffers_1 value equivalent to: - * @code mutable_buffers_1( - * static_cast(data), - * min(N * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline mutable_buffers_1 buffer(PodType (&data)[N], - std::size_t max_size_in_bytes) -{ - return mutable_buffers_1( - mutable_buffer(data, - N * sizeof(PodType) < max_size_in_bytes - ? N * sizeof(PodType) : max_size_in_bytes)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffers_1 value equivalent to: - * @code const_buffers_1( - * static_cast(data), - * N * sizeof(PodType)); @endcode - */ -template -inline const_buffers_1 buffer(const PodType (&data)[N]) -{ - return const_buffers_1(const_buffer(data, N * sizeof(PodType))); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffers_1 value equivalent to: - * @code const_buffers_1( - * static_cast(data), - * min(N * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline const_buffers_1 buffer(const PodType (&data)[N], - std::size_t max_size_in_bytes) -{ - return const_buffers_1( - const_buffer(data, - N * sizeof(PodType) < max_size_in_bytes - ? N * sizeof(PodType) : max_size_in_bytes)); -} - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) - -// Borland C++ and Sun Studio think the overloads: -// -// unspecified buffer(boost::array& array ...); -// -// and -// -// unspecified buffer(boost::array& array ...); -// -// are ambiguous. This will be worked around by using a buffer_types traits -// class that contains typedefs for the appropriate buffer and container -// classes, based on whether PodType is const or non-const. - -namespace detail { - -template -struct buffer_types_base; - -template <> -struct buffer_types_base -{ - typedef mutable_buffer buffer_type; - typedef mutable_buffers_1 container_type; -}; - -template <> -struct buffer_types_base -{ - typedef const_buffer buffer_type; - typedef const_buffers_1 container_type; -}; - -template -struct buffer_types - : public buffer_types_base::value> -{ -}; - -} // namespace detail - -template -inline typename detail::buffer_types::container_type -buffer(boost::array& data) -{ - typedef typename boost::asio::detail::buffer_types::buffer_type - buffer_type; - typedef typename boost::asio::detail::buffer_types::container_type - container_type; - return container_type( - buffer_type(data.c_array(), data.size() * sizeof(PodType))); -} - -template -inline typename detail::buffer_types::container_type -buffer(boost::array& data, std::size_t max_size_in_bytes) -{ - typedef typename boost::asio::detail::buffer_types::buffer_type - buffer_type; - typedef typename boost::asio::detail::buffer_types::container_type - container_type; - return container_type( - buffer_type(data.c_array(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes)); -} - -#else // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) - // || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffers_1 value equivalent to: - * @code mutable_buffers_1( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline mutable_buffers_1 buffer(boost::array& data) -{ - return mutable_buffers_1( - mutable_buffer(data.c_array(), data.size() * sizeof(PodType))); -} - -/// Create a new modifiable buffer that represents the given POD array. -/** - * @returns A mutable_buffers_1 value equivalent to: - * @code mutable_buffers_1( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline mutable_buffers_1 buffer(boost::array& data, - std::size_t max_size_in_bytes) -{ - return mutable_buffers_1( - mutable_buffer(data.c_array(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes)); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffers_1 value equivalent to: - * @code const_buffers_1( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline const_buffers_1 buffer(boost::array& data) -{ - return const_buffers_1( - const_buffer(data.data(), data.size() * sizeof(PodType))); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffers_1 value equivalent to: - * @code const_buffers_1( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline const_buffers_1 buffer(boost::array& data, - std::size_t max_size_in_bytes) -{ - return const_buffers_1( - const_buffer(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes)); -} - -#endif // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) - // || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffers_1 value equivalent to: - * @code const_buffers_1( - * data.data(), - * data.size() * sizeof(PodType)); @endcode - */ -template -inline const_buffers_1 buffer(const boost::array& data) -{ - return const_buffers_1( - const_buffer(data.data(), data.size() * sizeof(PodType))); -} - -/// Create a new non-modifiable buffer that represents the given POD array. -/** - * @returns A const_buffers_1 value equivalent to: - * @code const_buffers_1( - * data.data(), - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - */ -template -inline const_buffers_1 buffer(const boost::array& data, - std::size_t max_size_in_bytes) -{ - return const_buffers_1( - const_buffer(data.data(), - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes)); -} - -/// Create a new modifiable buffer that represents the given POD vector. -/** - * @returns A mutable_buffers_1 value equivalent to: - * @code mutable_buffers_1( - * data.size() ? &data[0] : 0, - * data.size() * sizeof(PodType)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline mutable_buffers_1 buffer(std::vector& data) -{ - return mutable_buffers_1( - mutable_buffer(data.size() ? &data[0] : 0, data.size() * sizeof(PodType) -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::iterator - >(data.begin()) -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - )); -} - -/// Create a new modifiable buffer that represents the given POD vector. -/** - * @returns A mutable_buffers_1 value equivalent to: - * @code mutable_buffers_1( - * data.size() ? &data[0] : 0, - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline mutable_buffers_1 buffer(std::vector& data, - std::size_t max_size_in_bytes) -{ - return mutable_buffers_1( - mutable_buffer(data.size() ? &data[0] : 0, - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::iterator - >(data.begin()) -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - )); -} - -/// Create a new non-modifiable buffer that represents the given POD vector. -/** - * @returns A const_buffers_1 value equivalent to: - * @code const_buffers_1( - * data.size() ? &data[0] : 0, - * data.size() * sizeof(PodType)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline const_buffers_1 buffer( - const std::vector& data) -{ - return const_buffers_1( - const_buffer(data.size() ? &data[0] : 0, data.size() * sizeof(PodType) -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::const_iterator - >(data.begin()) -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - )); -} - -/// Create a new non-modifiable buffer that represents the given POD vector. -/** - * @returns A const_buffers_1 value equivalent to: - * @code const_buffers_1( - * data.size() ? &data[0] : 0, - * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any vector operation that would also - * invalidate iterators. - */ -template -inline const_buffers_1 buffer( - const std::vector& data, std::size_t max_size_in_bytes) -{ - return const_buffers_1( - const_buffer(data.size() ? &data[0] : 0, - data.size() * sizeof(PodType) < max_size_in_bytes - ? data.size() * sizeof(PodType) : max_size_in_bytes -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check< - typename std::vector::const_iterator - >(data.begin()) -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - )); -} - -/// Create a new non-modifiable buffer that represents the given string. -/** - * @returns const_buffers_1(data.data(), data.size()). - * - * @note The buffer is invalidated by any non-const operation called on the - * given string object. - */ -inline const_buffers_1 buffer(const std::string& data) -{ - return const_buffers_1(const_buffer(data.data(), data.size() -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check(data.begin()) -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - )); -} - -/// Create a new non-modifiable buffer that represents the given string. -/** - * @returns A const_buffers_1 value equivalent to: - * @code const_buffers_1( - * data.data(), - * min(data.size(), max_size_in_bytes)); @endcode - * - * @note The buffer is invalidated by any non-const operation called on the - * given string object. - */ -inline const_buffers_1 buffer(const std::string& data, - std::size_t max_size_in_bytes) -{ - return const_buffers_1( - const_buffer(data.data(), - data.size() < max_size_in_bytes - ? data.size() : max_size_in_bytes -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - , detail::buffer_debug_check(data.begin()) -#endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING - )); -} - -/*@}*/ - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BUFFER_HPP diff --git a/3rdParty/Boost/boost/asio/buffered_read_stream.hpp b/3rdParty/Boost/boost/asio/buffered_read_stream.hpp deleted file mode 100644 index 742123b..0000000 --- a/3rdParty/Boost/boost/asio/buffered_read_stream.hpp +++ /dev/null @@ -1,422 +0,0 @@ -// -// buffered_read_stream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BUFFERED_READ_STREAM_HPP -#define BOOST_ASIO_BUFFERED_READ_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Adds buffering to the read-related operations of a stream. -/** - * The buffered_read_stream class template can be used to add buffering to the - * synchronous and asynchronous read operations of a stream. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, Sync_Read_Stream, SyncWriteStream. - */ -template -class buffered_read_stream - : private noncopyable -{ -public: - /// The type of the next layer. - typedef typename boost::remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - -#if defined(GENERATING_DOCUMENTATION) - /// The default buffer size. - static const std::size_t default_buffer_size = implementation_defined; -#else - BOOST_STATIC_CONSTANT(std::size_t, default_buffer_size = 1024); -#endif - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_read_stream(Arg& a) - : next_layer_(a), - storage_(default_buffer_size) - { - } - - /// Construct, passing the specified argument to initialise the next layer. - template - buffered_read_stream(Arg& a, std::size_t buffer_size) - : next_layer_(a), - storage_(buffer_size) - { - } - - /// Get a reference to the next layer. - next_layer_type& next_layer() - { - return next_layer_; - } - - /// Get a reference to the lowest layer. - lowest_layer_type& lowest_layer() - { - return next_layer_.lowest_layer(); - } - - /// Get a const reference to the lowest layer. - const lowest_layer_type& lowest_layer() const - { - return next_layer_.lowest_layer(); - } - - /// (Deprecated: use get_io_service().) Get the io_service associated with - /// the object. - boost::asio::io_service& io_service() - { - return next_layer_.get_io_service(); - } - - /// Get the io_service associated with the object. - boost::asio::io_service& get_io_service() - { - return next_layer_.get_io_service(); - } - - /// Close the stream. - void close() - { - next_layer_.close(); - } - - /// Close the stream. - boost::system::error_code close(boost::system::error_code& ec) - { - return next_layer_.close(ec); - } - - /// Write the given data to the stream. Returns the number of bytes written. - /// Throws an exception on failure. - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - return next_layer_.write_some(buffers); - } - - /// Write the given data to the stream. Returns the number of bytes written, - /// or 0 if an error occurred. - template - std::size_t write_some(const ConstBufferSequence& buffers, - boost::system::error_code& ec) - { - return next_layer_.write_some(buffers, ec); - } - - /// Start an asynchronous write. The data being written must be valid for the - /// lifetime of the asynchronous operation. - template - void async_write_some(const ConstBufferSequence& buffers, - WriteHandler handler) - { - next_layer_.async_write_some(buffers, handler); - } - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation. Throws an exception on failure. - std::size_t fill() - { - detail::buffer_resize_guard - resize_guard(storage_); - std::size_t previous_size = storage_.size(); - storage_.resize(storage_.capacity()); - storage_.resize(previous_size + next_layer_.read_some(buffer( - storage_.data() + previous_size, - storage_.size() - previous_size))); - resize_guard.commit(); - return storage_.size() - previous_size; - } - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation, or 0 if an error occurred. - std::size_t fill(boost::system::error_code& ec) - { - detail::buffer_resize_guard - resize_guard(storage_); - std::size_t previous_size = storage_.size(); - storage_.resize(storage_.capacity()); - storage_.resize(previous_size + next_layer_.read_some(buffer( - storage_.data() + previous_size, - storage_.size() - previous_size), - ec)); - resize_guard.commit(); - return storage_.size() - previous_size; - } - - template - class fill_handler - { - public: - fill_handler(boost::asio::io_service& io_service, - detail::buffered_stream_storage& storage, - std::size_t previous_size, ReadHandler handler) - : io_service_(io_service), - storage_(storage), - previous_size_(previous_size), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - storage_.resize(previous_size_ + bytes_transferred); - io_service_.dispatch(detail::bind_handler( - handler_, ec, bytes_transferred)); - } - - private: - boost::asio::io_service& io_service_; - detail::buffered_stream_storage& storage_; - std::size_t previous_size_; - ReadHandler handler_; - }; - - /// Start an asynchronous fill. - template - void async_fill(ReadHandler handler) - { - std::size_t previous_size = storage_.size(); - storage_.resize(storage_.capacity()); - next_layer_.async_read_some( - buffer( - storage_.data() + previous_size, - storage_.size() - previous_size), - fill_handler(get_io_service(), - storage_, previous_size, handler)); - } - - /// Read some data from the stream. Returns the number of bytes read. Throws - /// an exception on failure. - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - if (storage_.empty()) - fill(); - return copy(buffers); - } - - /// Read some data from the stream. Returns the number of bytes read or 0 if - /// an error occurred. - template - std::size_t read_some(const MutableBufferSequence& buffers, - boost::system::error_code& ec) - { - ec = boost::system::error_code(); - if (storage_.empty() && !fill(ec)) - return 0; - return copy(buffers); - } - - template - class read_some_handler - { - public: - read_some_handler(boost::asio::io_service& io_service, - detail::buffered_stream_storage& storage, - const MutableBufferSequence& buffers, ReadHandler handler) - : io_service_(io_service), - storage_(storage), - buffers_(buffers), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, std::size_t) - { - if (ec || storage_.empty()) - { - std::size_t length = 0; - io_service_.dispatch(detail::bind_handler(handler_, ec, length)); - } - else - { - using namespace std; // For memcpy. - - std::size_t bytes_avail = storage_.size(); - std::size_t bytes_copied = 0; - - typename MutableBufferSequence::const_iterator iter = buffers_.begin(); - typename MutableBufferSequence::const_iterator end = buffers_.end(); - for (; iter != end && bytes_avail > 0; ++iter) - { - std::size_t max_length = buffer_size(*iter); - std::size_t length = (max_length < bytes_avail) - ? max_length : bytes_avail; - memcpy(buffer_cast(*iter), - storage_.data() + bytes_copied, length); - bytes_copied += length; - bytes_avail -= length; - } - - storage_.consume(bytes_copied); - io_service_.dispatch(detail::bind_handler(handler_, ec, bytes_copied)); - } - } - - private: - boost::asio::io_service& io_service_; - detail::buffered_stream_storage& storage_; - MutableBufferSequence buffers_; - ReadHandler handler_; - }; - - /// Start an asynchronous read. The buffer into which the data will be read - /// must be valid for the lifetime of the asynchronous operation. - template - void async_read_some(const MutableBufferSequence& buffers, - ReadHandler handler) - { - if (storage_.empty()) - { - async_fill(read_some_handler( - get_io_service(), storage_, buffers, handler)); - } - else - { - std::size_t length = copy(buffers); - get_io_service().post(detail::bind_handler( - handler, boost::system::error_code(), length)); - } - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read. - /// Throws an exception on failure. - template - std::size_t peek(const MutableBufferSequence& buffers) - { - if (storage_.empty()) - fill(); - return peek_copy(buffers); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read, - /// or 0 if an error occurred. - template - std::size_t peek(const MutableBufferSequence& buffers, - boost::system::error_code& ec) - { - ec = boost::system::error_code(); - if (storage_.empty() && !fill(ec)) - return 0; - return peek_copy(buffers); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail() - { - return storage_.size(); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail(boost::system::error_code& ec) - { - ec = boost::system::error_code(); - return storage_.size(); - } - -private: - /// Copy data out of the internal buffer to the specified target buffer. - /// Returns the number of bytes copied. - template - std::size_t copy(const MutableBufferSequence& buffers) - { - using namespace std; // For memcpy. - - std::size_t bytes_avail = storage_.size(); - std::size_t bytes_copied = 0; - - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - for (; iter != end && bytes_avail > 0; ++iter) - { - std::size_t max_length = buffer_size(*iter); - std::size_t length = (max_length < bytes_avail) - ? max_length : bytes_avail; - memcpy(buffer_cast(*iter), storage_.data() + bytes_copied, length); - bytes_copied += length; - bytes_avail -= length; - } - - storage_.consume(bytes_copied); - return bytes_copied; - } - - /// Copy data from the internal buffer to the specified target buffer, without - /// removing the data from the internal buffer. Returns the number of bytes - /// copied. - template - std::size_t peek_copy(const MutableBufferSequence& buffers) - { - using namespace std; // For memcpy. - - std::size_t bytes_avail = storage_.size(); - std::size_t bytes_copied = 0; - - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - for (; iter != end && bytes_avail > 0; ++iter) - { - std::size_t max_length = buffer_size(*iter); - std::size_t length = (max_length < bytes_avail) - ? max_length : bytes_avail; - memcpy(buffer_cast(*iter), storage_.data() + bytes_copied, length); - bytes_copied += length; - bytes_avail -= length; - } - - return bytes_copied; - } - - /// The next layer. - Stream next_layer_; - - // The data in the buffer. - detail::buffered_stream_storage storage_; -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BUFFERED_READ_STREAM_HPP diff --git a/3rdParty/Boost/boost/asio/buffered_read_stream_fwd.hpp b/3rdParty/Boost/boost/asio/buffered_read_stream_fwd.hpp deleted file mode 100644 index da9765e..0000000 --- a/3rdParty/Boost/boost/asio/buffered_read_stream_fwd.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// buffered_read_stream_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BUFFERED_READ_STREAM_FWD_HPP -#define BOOST_ASIO_BUFFERED_READ_STREAM_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -namespace boost { -namespace asio { - -template -class buffered_read_stream; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BUFFERED_READ_STREAM_FWD_HPP diff --git a/3rdParty/Boost/boost/asio/buffered_stream.hpp b/3rdParty/Boost/boost/asio/buffered_stream.hpp deleted file mode 100644 index e1b8d38..0000000 --- a/3rdParty/Boost/boost/asio/buffered_stream.hpp +++ /dev/null @@ -1,258 +0,0 @@ -// -// buffered_stream.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BUFFERED_STREAM_HPP -#define BOOST_ASIO_BUFFERED_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Adds buffering to the read- and write-related operations of a stream. -/** - * The buffered_stream class template can be used to add buffering to the - * synchronous and asynchronous read and write operations of a stream. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class buffered_stream - : private noncopyable -{ -public: - /// The type of the next layer. - typedef typename boost::remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_stream(Arg& a) - : inner_stream_impl_(a), - stream_impl_(inner_stream_impl_) - { - } - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_stream(Arg& a, std::size_t read_buffer_size, - std::size_t write_buffer_size) - : inner_stream_impl_(a, write_buffer_size), - stream_impl_(inner_stream_impl_, read_buffer_size) - { - } - - /// Get a reference to the next layer. - next_layer_type& next_layer() - { - return stream_impl_.next_layer().next_layer(); - } - - /// Get a reference to the lowest layer. - lowest_layer_type& lowest_layer() - { - return stream_impl_.lowest_layer(); - } - - /// Get a const reference to the lowest layer. - const lowest_layer_type& lowest_layer() const - { - return stream_impl_.lowest_layer(); - } - - /// (Deprecated: use get_io_service().) Get the io_service associated with - /// the object. - boost::asio::io_service& io_service() - { - return stream_impl_.get_io_service(); - } - - /// Get the io_service associated with the object. - boost::asio::io_service& get_io_service() - { - return stream_impl_.get_io_service(); - } - - /// Close the stream. - void close() - { - stream_impl_.close(); - } - - /// Close the stream. - boost::system::error_code close(boost::system::error_code& ec) - { - return stream_impl_.close(ec); - } - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation. Throws an - /// exception on failure. - std::size_t flush() - { - return stream_impl_.next_layer().flush(); - } - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation, or 0 if an - /// error occurred. - std::size_t flush(boost::system::error_code& ec) - { - return stream_impl_.next_layer().flush(ec); - } - - /// Start an asynchronous flush. - template - void async_flush(WriteHandler handler) - { - return stream_impl_.next_layer().async_flush(handler); - } - - /// Write the given data to the stream. Returns the number of bytes written. - /// Throws an exception on failure. - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - return stream_impl_.write_some(buffers); - } - - /// Write the given data to the stream. Returns the number of bytes written, - /// or 0 if an error occurred. - template - std::size_t write_some(const ConstBufferSequence& buffers, - boost::system::error_code& ec) - { - return stream_impl_.write_some(buffers, ec); - } - - /// Start an asynchronous write. The data being written must be valid for the - /// lifetime of the asynchronous operation. - template - void async_write_some(const ConstBufferSequence& buffers, - WriteHandler handler) - { - stream_impl_.async_write_some(buffers, handler); - } - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation. Throws an exception on failure. - std::size_t fill() - { - return stream_impl_.fill(); - } - - /// Fill the buffer with some data. Returns the number of bytes placed in the - /// buffer as a result of the operation, or 0 if an error occurred. - std::size_t fill(boost::system::error_code& ec) - { - return stream_impl_.fill(ec); - } - - /// Start an asynchronous fill. - template - void async_fill(ReadHandler handler) - { - stream_impl_.async_fill(handler); - } - - /// Read some data from the stream. Returns the number of bytes read. Throws - /// an exception on failure. - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - return stream_impl_.read_some(buffers); - } - - /// Read some data from the stream. Returns the number of bytes read or 0 if - /// an error occurred. - template - std::size_t read_some(const MutableBufferSequence& buffers, - boost::system::error_code& ec) - { - return stream_impl_.read_some(buffers, ec); - } - - /// Start an asynchronous read. The buffer into which the data will be read - /// must be valid for the lifetime of the asynchronous operation. - template - void async_read_some(const MutableBufferSequence& buffers, - ReadHandler handler) - { - stream_impl_.async_read_some(buffers, handler); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read. - /// Throws an exception on failure. - template - std::size_t peek(const MutableBufferSequence& buffers) - { - return stream_impl_.peek(buffers); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read, - /// or 0 if an error occurred. - template - std::size_t peek(const MutableBufferSequence& buffers, - boost::system::error_code& ec) - { - return stream_impl_.peek(buffers, ec); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail() - { - return stream_impl_.in_avail(); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail(boost::system::error_code& ec) - { - return stream_impl_.in_avail(ec); - } - -private: - // The buffered write stream. - typedef buffered_write_stream write_stream_type; - write_stream_type inner_stream_impl_; - - // The buffered read stream. - typedef buffered_read_stream read_stream_type; - read_stream_type stream_impl_; -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BUFFERED_STREAM_HPP diff --git a/3rdParty/Boost/boost/asio/buffered_stream_fwd.hpp b/3rdParty/Boost/boost/asio/buffered_stream_fwd.hpp deleted file mode 100644 index 7641235..0000000 --- a/3rdParty/Boost/boost/asio/buffered_stream_fwd.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// buffered_stream_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BUFFERED_STREAM_FWD_HPP -#define BOOST_ASIO_BUFFERED_STREAM_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -namespace boost { -namespace asio { - -template -class buffered_stream; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BUFFERED_STREAM_FWD_HPP diff --git a/3rdParty/Boost/boost/asio/buffered_write_stream.hpp b/3rdParty/Boost/boost/asio/buffered_write_stream.hpp deleted file mode 100644 index 1d06541..0000000 --- a/3rdParty/Boost/boost/asio/buffered_write_stream.hpp +++ /dev/null @@ -1,376 +0,0 @@ -// -// buffered_write_stream.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BUFFERED_WRITE_STREAM_HPP -#define BOOST_ASIO_BUFFERED_WRITE_STREAM_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Adds buffering to the write-related operations of a stream. -/** - * The buffered_write_stream class template can be used to add buffering to the - * synchronous and asynchronous write operations of a stream. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class buffered_write_stream - : private noncopyable -{ -public: - /// The type of the next layer. - typedef typename boost::remove_reference::type next_layer_type; - - /// The type of the lowest layer. - typedef typename next_layer_type::lowest_layer_type lowest_layer_type; - -#if defined(GENERATING_DOCUMENTATION) - /// The default buffer size. - static const std::size_t default_buffer_size = implementation_defined; -#else - BOOST_STATIC_CONSTANT(std::size_t, default_buffer_size = 1024); -#endif - - /// Construct, passing the specified argument to initialise the next layer. - template - explicit buffered_write_stream(Arg& a) - : next_layer_(a), - storage_(default_buffer_size) - { - } - - /// Construct, passing the specified argument to initialise the next layer. - template - buffered_write_stream(Arg& a, std::size_t buffer_size) - : next_layer_(a), - storage_(buffer_size) - { - } - - /// Get a reference to the next layer. - next_layer_type& next_layer() - { - return next_layer_; - } - - /// Get a reference to the lowest layer. - lowest_layer_type& lowest_layer() - { - return next_layer_.lowest_layer(); - } - - /// Get a const reference to the lowest layer. - const lowest_layer_type& lowest_layer() const - { - return next_layer_.lowest_layer(); - } - - /// (Deprecated: use get_io_service().) Get the io_service associated with - /// the object. - boost::asio::io_service& io_service() - { - return next_layer_.get_io_service(); - } - - /// Get the io_service associated with the object. - boost::asio::io_service& get_io_service() - { - return next_layer_.get_io_service(); - } - - /// Close the stream. - void close() - { - next_layer_.close(); - } - - /// Close the stream. - boost::system::error_code close(boost::system::error_code& ec) - { - return next_layer_.close(ec); - } - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation. Throws an - /// exception on failure. - std::size_t flush() - { - std::size_t bytes_written = write(next_layer_, - buffer(storage_.data(), storage_.size())); - storage_.consume(bytes_written); - return bytes_written; - } - - /// Flush all data from the buffer to the next layer. Returns the number of - /// bytes written to the next layer on the last write operation, or 0 if an - /// error occurred. - std::size_t flush(boost::system::error_code& ec) - { - std::size_t bytes_written = write(next_layer_, - buffer(storage_.data(), storage_.size()), - transfer_all(), ec); - storage_.consume(bytes_written); - return bytes_written; - } - - template - class flush_handler - { - public: - flush_handler(boost::asio::io_service& io_service, - detail::buffered_stream_storage& storage, WriteHandler handler) - : io_service_(io_service), - storage_(storage), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_written) - { - storage_.consume(bytes_written); - io_service_.dispatch(detail::bind_handler(handler_, ec, bytes_written)); - } - - private: - boost::asio::io_service& io_service_; - detail::buffered_stream_storage& storage_; - WriteHandler handler_; - }; - - /// Start an asynchronous flush. - template - void async_flush(WriteHandler handler) - { - async_write(next_layer_, buffer(storage_.data(), storage_.size()), - flush_handler(get_io_service(), storage_, handler)); - } - - /// Write the given data to the stream. Returns the number of bytes written. - /// Throws an exception on failure. - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - if (storage_.size() == storage_.capacity()) - flush(); - return copy(buffers); - } - - /// Write the given data to the stream. Returns the number of bytes written, - /// or 0 if an error occurred and the error handler did not throw. - template - std::size_t write_some(const ConstBufferSequence& buffers, - boost::system::error_code& ec) - { - ec = boost::system::error_code(); - if (storage_.size() == storage_.capacity() && !flush(ec)) - return 0; - return copy(buffers); - } - - template - class write_some_handler - { - public: - write_some_handler(boost::asio::io_service& io_service, - detail::buffered_stream_storage& storage, - const ConstBufferSequence& buffers, WriteHandler handler) - : io_service_(io_service), - storage_(storage), - buffers_(buffers), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, std::size_t) - { - if (ec) - { - std::size_t length = 0; - io_service_.dispatch(detail::bind_handler(handler_, ec, length)); - } - else - { - using namespace std; // For memcpy. - - std::size_t orig_size = storage_.size(); - std::size_t space_avail = storage_.capacity() - orig_size; - std::size_t bytes_copied = 0; - - typename ConstBufferSequence::const_iterator iter = buffers_.begin(); - typename ConstBufferSequence::const_iterator end = buffers_.end(); - for (; iter != end && space_avail > 0; ++iter) - { - std::size_t bytes_avail = buffer_size(*iter); - std::size_t length = (bytes_avail < space_avail) - ? bytes_avail : space_avail; - storage_.resize(orig_size + bytes_copied + length); - memcpy(storage_.data() + orig_size + bytes_copied, - buffer_cast(*iter), length); - bytes_copied += length; - space_avail -= length; - } - - io_service_.dispatch(detail::bind_handler(handler_, ec, bytes_copied)); - } - } - - private: - boost::asio::io_service& io_service_; - detail::buffered_stream_storage& storage_; - ConstBufferSequence buffers_; - WriteHandler handler_; - }; - - /// Start an asynchronous write. The data being written must be valid for the - /// lifetime of the asynchronous operation. - template - void async_write_some(const ConstBufferSequence& buffers, - WriteHandler handler) - { - if (storage_.size() == storage_.capacity()) - { - async_flush(write_some_handler( - get_io_service(), storage_, buffers, handler)); - } - else - { - std::size_t bytes_copied = copy(buffers); - get_io_service().post(detail::bind_handler( - handler, boost::system::error_code(), bytes_copied)); - } - } - - /// Read some data from the stream. Returns the number of bytes read. Throws - /// an exception on failure. - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - return next_layer_.read_some(buffers); - } - - /// Read some data from the stream. Returns the number of bytes read or 0 if - /// an error occurred. - template - std::size_t read_some(const MutableBufferSequence& buffers, - boost::system::error_code& ec) - { - return next_layer_.read_some(buffers, ec); - } - - /// Start an asynchronous read. The buffer into which the data will be read - /// must be valid for the lifetime of the asynchronous operation. - template - void async_read_some(const MutableBufferSequence& buffers, - ReadHandler handler) - { - next_layer_.async_read_some(buffers, handler); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read. - /// Throws an exception on failure. - template - std::size_t peek(const MutableBufferSequence& buffers) - { - return next_layer_.peek(buffers); - } - - /// Peek at the incoming data on the stream. Returns the number of bytes read, - /// or 0 if an error occurred. - template - std::size_t peek(const MutableBufferSequence& buffers, - boost::system::error_code& ec) - { - return next_layer_.peek(buffers, ec); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail() - { - return next_layer_.in_avail(); - } - - /// Determine the amount of data that may be read without blocking. - std::size_t in_avail(boost::system::error_code& ec) - { - return next_layer_.in_avail(ec); - } - -private: - /// Copy data into the internal buffer from the specified source buffer. - /// Returns the number of bytes copied. - template - std::size_t copy(const ConstBufferSequence& buffers) - { - using namespace std; // For memcpy. - - std::size_t orig_size = storage_.size(); - std::size_t space_avail = storage_.capacity() - orig_size; - std::size_t bytes_copied = 0; - - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - for (; iter != end && space_avail > 0; ++iter) - { - std::size_t bytes_avail = buffer_size(*iter); - std::size_t length = (bytes_avail < space_avail) - ? bytes_avail : space_avail; - storage_.resize(orig_size + bytes_copied + length); - memcpy(storage_.data() + orig_size + bytes_copied, - buffer_cast(*iter), length); - bytes_copied += length; - space_avail -= length; - } - - return bytes_copied; - } - - /// The next layer. - Stream next_layer_; - - // The data in the buffer. - detail::buffered_stream_storage storage_; -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BUFFERED_WRITE_STREAM_HPP diff --git a/3rdParty/Boost/boost/asio/buffered_write_stream_fwd.hpp b/3rdParty/Boost/boost/asio/buffered_write_stream_fwd.hpp deleted file mode 100644 index 4774e89..0000000 --- a/3rdParty/Boost/boost/asio/buffered_write_stream_fwd.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// buffered_write_stream_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BUFFERED_WRITE_STREAM_FWD_HPP -#define BOOST_ASIO_BUFFERED_WRITE_STREAM_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -namespace boost { -namespace asio { - -template -class buffered_write_stream; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BUFFERED_WRITE_STREAM_FWD_HPP diff --git a/3rdParty/Boost/boost/asio/buffers_iterator.hpp b/3rdParty/Boost/boost/asio/buffers_iterator.hpp deleted file mode 100644 index f9d61da..0000000 --- a/3rdParty/Boost/boost/asio/buffers_iterator.hpp +++ /dev/null @@ -1,327 +0,0 @@ -// -// buffers_iterator.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_BUFFERS_ITERATOR_HPP -#define BOOST_ASIO_BUFFERS_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -namespace boost { -namespace asio { - -namespace detail -{ - template - struct buffers_iterator_types_helper; - - template <> - struct buffers_iterator_types_helper - { - typedef const_buffer buffer_type; - template - struct byte_type - { - typedef typename boost::add_const::type type; - }; - }; - - template <> - struct buffers_iterator_types_helper - { - typedef mutable_buffer buffer_type; - template - struct byte_type - { - typedef ByteType type; - }; - }; - - template - struct buffers_iterator_types - { - enum - { - is_mutable = boost::is_convertible< - typename BufferSequence::value_type, mutable_buffer>::value - }; - typedef buffers_iterator_types_helper helper; - typedef typename helper::buffer_type buffer_type; - typedef typename helper::template byte_type::type byte_type; - }; -} - -/// A random access iterator over the bytes in a buffer sequence. -template -class buffers_iterator - : public boost::iterator_facade< - buffers_iterator, - typename detail::buffers_iterator_types< - BufferSequence, ByteType>::byte_type, - boost::random_access_traversal_tag> -{ -private: - typedef typename detail::buffers_iterator_types< - BufferSequence, ByteType>::buffer_type buffer_type; - typedef typename detail::buffers_iterator_types< - BufferSequence, ByteType>::byte_type byte_type; - -public: - /// Default constructor. Creates an iterator in an undefined state. - buffers_iterator() - : current_buffer_(), - current_buffer_position_(0), - begin_(), - current_(), - end_(), - position_(0) - { - } - - /// Construct an iterator representing the beginning of the buffers' data. - static buffers_iterator begin(const BufferSequence& buffers) -#if BOOST_WORKAROUND(__GNUC__, == 4) && BOOST_WORKAROUND(__GNUC_MINOR__, == 3) - __attribute__ ((noinline)) -#endif - { - buffers_iterator new_iter; - new_iter.begin_ = buffers.begin(); - new_iter.current_ = buffers.begin(); - new_iter.end_ = buffers.end(); - while (new_iter.current_ != new_iter.end_) - { - new_iter.current_buffer_ = *new_iter.current_; - if (boost::asio::buffer_size(new_iter.current_buffer_) > 0) - break; - ++new_iter.current_; - } - return new_iter; - } - - /// Construct an iterator representing the end of the buffers' data. - static buffers_iterator end(const BufferSequence& buffers) -#if BOOST_WORKAROUND(__GNUC__, == 4) && BOOST_WORKAROUND(__GNUC_MINOR__, == 3) - __attribute__ ((noinline)) -#endif - { - buffers_iterator new_iter; - new_iter.begin_ = buffers.begin(); - new_iter.current_ = buffers.begin(); - new_iter.end_ = buffers.end(); - while (new_iter.current_ != new_iter.end_) - { - buffer_type buffer = *new_iter.current_; - new_iter.position_ += boost::asio::buffer_size(buffer); - ++new_iter.current_; - } - return new_iter; - } - -private: - friend class boost::iterator_core_access; - - // Dereference the iterator. - byte_type& dereference() const - { - return buffer_cast(current_buffer_)[current_buffer_position_]; - } - - // Compare two iterators for equality. - bool equal(const buffers_iterator& other) const - { - return position_ == other.position_; - } - - // Increment the iterator. - void increment() - { - BOOST_ASSERT(current_ != end_ && "iterator out of bounds"); - ++position_; - - // Check if the increment can be satisfied by the current buffer. - ++current_buffer_position_; - if (current_buffer_position_ != boost::asio::buffer_size(current_buffer_)) - return; - - // Find the next non-empty buffer. - ++current_; - current_buffer_position_ = 0; - while (current_ != end_) - { - current_buffer_ = *current_; - if (boost::asio::buffer_size(current_buffer_) > 0) - return; - ++current_; - } - } - - // Decrement the iterator. - void decrement() - { - BOOST_ASSERT(position_ > 0 && "iterator out of bounds"); - --position_; - - // Check if the decrement can be satisfied by the current buffer. - if (current_buffer_position_ != 0) - { - --current_buffer_position_; - return; - } - - // Find the previous non-empty buffer. - typename BufferSequence::const_iterator iter = current_; - while (iter != begin_) - { - --iter; - buffer_type buffer = *iter; - std::size_t buffer_size = boost::asio::buffer_size(buffer); - if (buffer_size > 0) - { - current_ = iter; - current_buffer_ = buffer; - current_buffer_position_ = buffer_size - 1; - return; - } - } - } - - // Advance the iterator by the specified distance. - void advance(std::ptrdiff_t n) - { - if (n > 0) - { - BOOST_ASSERT(current_ != end_ && "iterator out of bounds"); - for (;;) - { - std::ptrdiff_t current_buffer_balance - = boost::asio::buffer_size(current_buffer_) - - current_buffer_position_; - - // Check if the advance can be satisfied by the current buffer. - if (current_buffer_balance > n) - { - position_ += n; - current_buffer_position_ += n; - return; - } - - // Update position. - n -= current_buffer_balance; - position_ += current_buffer_balance; - - // Move to next buffer. If it is empty then it will be skipped on the - // next iteration of this loop. - if (++current_ == end_) - { - BOOST_ASSERT(n == 0 && "iterator out of bounds"); - current_buffer_ = buffer_type(); - current_buffer_position_ = 0; - return; - } - current_buffer_ = *current_; - current_buffer_position_ = 0; - } - } - else if (n < 0) - { - std::size_t abs_n = -n; - BOOST_ASSERT(position_ >= abs_n && "iterator out of bounds"); - for (;;) - { - // Check if the advance can be satisfied by the current buffer. - if (current_buffer_position_ >= abs_n) - { - position_ -= abs_n; - current_buffer_position_ -= abs_n; - return; - } - - // Update position. - abs_n -= current_buffer_position_; - position_ -= current_buffer_position_; - - // Check if we've reached the beginning of the buffers. - if (current_ == begin_) - { - BOOST_ASSERT(abs_n == 0 && "iterator out of bounds"); - current_buffer_position_ = 0; - return; - } - - // Find the previous non-empty buffer. - typename BufferSequence::const_iterator iter = current_; - while (iter != begin_) - { - --iter; - buffer_type buffer = *iter; - std::size_t buffer_size = boost::asio::buffer_size(buffer); - if (buffer_size > 0) - { - current_ = iter; - current_buffer_ = buffer; - current_buffer_position_ = buffer_size; - break; - } - } - } - } - } - - // Determine the distance between two iterators. - std::ptrdiff_t distance_to(const buffers_iterator& other) const - { - return other.position_ - position_; - } - - buffer_type current_buffer_; - std::size_t current_buffer_position_; - typename BufferSequence::const_iterator begin_; - typename BufferSequence::const_iterator current_; - typename BufferSequence::const_iterator end_; - std::size_t position_; -}; - -/// Construct an iterator representing the beginning of the buffers' data. -template -inline buffers_iterator buffers_begin( - const BufferSequence& buffers) -{ - return buffers_iterator::begin(buffers); -} - -/// Construct an iterator representing the end of the buffers' data. -template -inline buffers_iterator buffers_end( - const BufferSequence& buffers) -{ - return buffers_iterator::end(buffers); -} - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_BUFFERS_ITERATOR_HPP diff --git a/3rdParty/Boost/boost/asio/completion_condition.hpp b/3rdParty/Boost/boost/asio/completion_condition.hpp deleted file mode 100644 index c317c02..0000000 --- a/3rdParty/Boost/boost/asio/completion_condition.hpp +++ /dev/null @@ -1,166 +0,0 @@ -// -// completion_condition.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_COMPLETION_CONDITION_HPP -#define BOOST_ASIO_COMPLETION_CONDITION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { - -namespace detail { - -// The default maximum number of bytes to transfer in a single operation. -enum { default_max_transfer_size = 65536 }; - -// Adapt result of old-style completion conditions (which had a bool result -// where true indicated that the operation was complete). -inline std::size_t adapt_completion_condition_result(bool result) -{ - return result ? 0 : default_max_transfer_size; -} - -// Adapt result of current completion conditions (which have a size_t result -// where 0 means the operation is complete, and otherwise the result is the -// maximum number of bytes to transfer on the next underlying operation). -inline std::size_t adapt_completion_condition_result(std::size_t result) -{ - return result; -} - -class transfer_all_t -{ -public: - typedef std::size_t result_type; - - template - std::size_t operator()(const Error& err, std::size_t) - { - return !!err ? 0 : default_max_transfer_size; - } -}; - -class transfer_at_least_t -{ -public: - typedef std::size_t result_type; - - explicit transfer_at_least_t(std::size_t minimum) - : minimum_(minimum) - { - } - - template - std::size_t operator()(const Error& err, std::size_t bytes_transferred) - { - return (!!err || bytes_transferred >= minimum_) - ? 0 : default_max_transfer_size; - } - -private: - std::size_t minimum_; -}; - -} // namespace detail - -/** - * @defgroup completion_condition Completion Condition Function Objects - * - * Function objects used for determining when a read or write operation should - * complete. - */ -/*@{*/ - -/// Return a completion condition function object that indicates that a read or -/// write operation should continue until all of the data has been transferred, -/// or until an error occurs. -/** - * This function is used to create an object, of unspecified type, that meets - * CompletionCondition requirements. - * - * @par Example - * Reading until a buffer is full: - * @code - * boost::array buf; - * boost::system::error_code ec; - * std::size_t n = boost::asio::read( - * sock, boost::asio::buffer(buf), - * boost::asio::transfer_all(), ec); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * // n == 128 - * } - * @endcode - */ -#if defined(GENERATING_DOCUMENTATION) -unspecified transfer_all(); -#else -inline detail::transfer_all_t transfer_all() -{ - return detail::transfer_all_t(); -} -#endif - -/// Return a completion condition function object that indicates that a read or -/// write operation should continue until a minimum number of bytes has been -/// transferred, or until an error occurs. -/** - * This function is used to create an object, of unspecified type, that meets - * CompletionCondition requirements. - * - * @par Example - * Reading until a buffer is full or contains at least 64 bytes: - * @code - * boost::array buf; - * boost::system::error_code ec; - * std::size_t n = boost::asio::read( - * sock, boost::asio::buffer(buf), - * boost::asio::transfer_at_least(64), ec); - * if (ec) - * { - * // An error occurred. - * } - * else - * { - * // n >= 64 && n <= 128 - * } - * @endcode - */ -#if defined(GENERATING_DOCUMENTATION) -unspecified transfer_at_least(std::size_t minimum); -#else -inline detail::transfer_at_least_t transfer_at_least(std::size_t minimum) -{ - return detail::transfer_at_least_t(minimum); -} -#endif - -/*@}*/ - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_COMPLETION_CONDITION_HPP diff --git a/3rdParty/Boost/boost/asio/datagram_socket_service.hpp b/3rdParty/Boost/boost/asio/datagram_socket_service.hpp deleted file mode 100644 index 8cc6617..0000000 --- a/3rdParty/Boost/boost/asio/datagram_socket_service.hpp +++ /dev/null @@ -1,325 +0,0 @@ -// -// datagram_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DATAGRAM_SOCKET_SERVICE_HPP -#define BOOST_ASIO_DATAGRAM_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Default service implementation for a datagram socket. -template -class datagram_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public boost::asio::io_service::service -#else - : public boost::asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static boost::asio::io_service::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(BOOST_ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#elif defined(BOOST_ASIO_HAS_EPOLL) - typedef detail::reactive_socket_service< - Protocol, detail::epoll_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_KQUEUE) - typedef detail::reactive_socket_service< - Protocol, detail::kqueue_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_DEV_POLL) - typedef detail::reactive_socket_service< - Protocol, detail::dev_poll_reactor > service_impl_type; -#else - typedef detail::reactive_socket_service< - Protocol, detail::select_reactor > service_impl_type; -#endif - -public: - /// The type of a datagram socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_type; -#else - typedef typename service_impl_type::native_type native_type; -#endif - - /// Construct a new datagram socket service for the specified io_service. - explicit datagram_socket_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - datagram_socket_service >(io_service), - service_impl_(boost::asio::use_service(io_service)) - { - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Construct a new datagram socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a datagram socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - // Open a new datagram socket implementation. - boost::system::error_code open(implementation_type& impl, - const protocol_type& protocol, boost::system::error_code& ec) - { - if (protocol.type() == SOCK_DGRAM) - service_impl_.open(impl, protocol, ec); - else - ec = boost::asio::error::invalid_argument; - return ec; - } - - /// Assign an existing native socket to a datagram socket. - boost::system::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_type& native_socket, - boost::system::error_code& ec) - { - return service_impl_.assign(impl, protocol, native_socket, ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a datagram socket implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.close(impl, ec); - } - - /// Get the native socket implementation. - native_type native(implementation_type& impl) - { - return service_impl_.native(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - // Bind the datagram socket to the specified local endpoint. - boost::system::error_code bind(implementation_type& impl, - const endpoint_type& endpoint, boost::system::error_code& ec) - { - return service_impl_.bind(impl, endpoint, ec); - } - - /// Connect the datagram socket to the specified endpoint. - boost::system::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, boost::system::error_code& ec) - { - return service_impl_.connect(impl, peer_endpoint, ec); - } - - /// Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, ConnectHandler handler) - { - service_impl_.async_connect(impl, peer_endpoint, handler); - } - - /// Set a socket option. - template - boost::system::error_code set_option(implementation_type& impl, - const SettableSocketOption& option, boost::system::error_code& ec) - { - return service_impl_.set_option(impl, option, ec); - } - - /// Get a socket option. - template - boost::system::error_code get_option(const implementation_type& impl, - GettableSocketOption& option, boost::system::error_code& ec) const - { - return service_impl_.get_option(impl, option, ec); - } - - /// Perform an IO control command on the socket. - template - boost::system::error_code io_control(implementation_type& impl, - IoControlCommand& command, boost::system::error_code& ec) - { - return service_impl_.io_control(impl, command, ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - boost::system::error_code shutdown(implementation_type& impl, - socket_base::shutdown_type what, boost::system::error_code& ec) - { - return service_impl_.shutdown(impl, what, ec); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - void async_send(implementation_type& impl, const ConstBufferSequence& buffers, - socket_base::message_flags flags, WriteHandler handler) - { - service_impl_.async_send(impl, buffers, flags, handler); - } - - /// Send a datagram to the specified endpoint. - template - std::size_t send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return service_impl_.send_to(impl, buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - template - void async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, WriteHandler handler) - { - service_impl_.async_send_to(impl, buffers, destination, flags, handler); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return service_impl_.receive(impl, buffers, flags, ec); - } - - /// Start an asynchronous receive. - template - void async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, ReadHandler handler) - { - service_impl_.async_receive(impl, buffers, flags, handler); - } - - /// Receive a datagram with the endpoint of the sender. - template - std::size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return service_impl_.receive_from(impl, buffers, sender_endpoint, flags, - ec); - } - - /// Start an asynchronous receive that will get the endpoint of the sender. - template - void async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, ReadHandler handler) - { - service_impl_.async_receive_from(impl, buffers, sender_endpoint, flags, - handler); - } - -private: - // The service that provides the platform-specific implementation. - service_impl_type& service_impl_; -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DATAGRAM_SOCKET_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/deadline_timer.hpp b/3rdParty/Boost/boost/asio/deadline_timer.hpp deleted file mode 100644 index a62a2ce..0000000 --- a/3rdParty/Boost/boost/asio/deadline_timer.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// -// deadline_timer.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DEADLINE_TIMER_HPP -#define BOOST_ASIO_DEADLINE_TIMER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include // Must come before posix_time. - -#include -#include -#include - -#include - -namespace boost { -namespace asio { - -/// Typedef for the typical usage of timer. -typedef basic_deadline_timer deadline_timer; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DEADLINE_TIMER_HPP diff --git a/3rdParty/Boost/boost/asio/deadline_timer_service.hpp b/3rdParty/Boost/boost/asio/deadline_timer_service.hpp deleted file mode 100644 index dccd139..0000000 --- a/3rdParty/Boost/boost/asio/deadline_timer_service.hpp +++ /dev/null @@ -1,170 +0,0 @@ -// -// deadline_timer_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DEADLINE_TIMER_SERVICE_HPP -#define BOOST_ASIO_DEADLINE_TIMER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Default service implementation for a timer. -template > -class deadline_timer_service -#if defined(GENERATING_DOCUMENTATION) - : public boost::asio::io_service::service -#else - : public boost::asio::detail::service_base< - deadline_timer_service > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static boost::asio::io_service::id id; -#endif - - /// The time traits type. - typedef TimeTraits traits_type; - - /// The time type. - typedef typename traits_type::time_type time_type; - - /// The duration type. - typedef typename traits_type::duration_type duration_type; - -private: - // The type of the platform-specific implementation. -#if defined(BOOST_ASIO_HAS_IOCP) - typedef detail::deadline_timer_service< - traits_type, detail::win_iocp_io_service> service_impl_type; -#elif defined(BOOST_ASIO_HAS_EPOLL) - typedef detail::deadline_timer_service< - traits_type, detail::epoll_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_KQUEUE) - typedef detail::deadline_timer_service< - traits_type, detail::kqueue_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_DEV_POLL) - typedef detail::deadline_timer_service< - traits_type, detail::dev_poll_reactor > service_impl_type; -#else - typedef detail::deadline_timer_service< - traits_type, detail::select_reactor > service_impl_type; -#endif - -public: - /// The implementation type of the deadline timer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// Construct a new timer service for the specified io_service. - explicit deadline_timer_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - deadline_timer_service >(io_service), - service_impl_(boost::asio::use_service(io_service)) - { - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Construct a new timer implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a timer implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Cancel any asynchronous wait operations associated with the timer. - std::size_t cancel(implementation_type& impl, boost::system::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Get the expiry time for the timer as an absolute time. - time_type expires_at(const implementation_type& impl) const - { - return service_impl_.expires_at(impl); - } - - /// Set the expiry time for the timer as an absolute time. - std::size_t expires_at(implementation_type& impl, - const time_type& expiry_time, boost::system::error_code& ec) - { - return service_impl_.expires_at(impl, expiry_time, ec); - } - - /// Get the expiry time for the timer relative to now. - duration_type expires_from_now(const implementation_type& impl) const - { - return service_impl_.expires_from_now(impl); - } - - /// Set the expiry time for the timer relative to now. - std::size_t expires_from_now(implementation_type& impl, - const duration_type& expiry_time, boost::system::error_code& ec) - { - return service_impl_.expires_from_now(impl, expiry_time, ec); - } - - // Perform a blocking wait on the timer. - void wait(implementation_type& impl, boost::system::error_code& ec) - { - service_impl_.wait(impl, ec); - } - - // Start an asynchronous wait on the timer. - template - void async_wait(implementation_type& impl, WaitHandler handler) - { - service_impl_.async_wait(impl, handler); - } - -private: - // The service that provides the platform-specific implementation. - service_impl_type& service_impl_; -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DEADLINE_TIMER_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/bind_handler.hpp b/3rdParty/Boost/boost/asio/detail/bind_handler.hpp deleted file mode 100644 index 3a9ad01..0000000 --- a/3rdParty/Boost/boost/asio/detail/bind_handler.hpp +++ /dev/null @@ -1,351 +0,0 @@ -// -// bind_handler.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_BIND_HANDLER_HPP -#define BOOST_ASIO_DETAIL_BIND_HANDLER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class binder1 -{ -public: - binder1(const Handler& handler, const Arg1& arg1) - : handler_(handler), - arg1_(arg1) - { - } - - void operator()() - { - handler_(arg1_); - } - - void operator()() const - { - handler_(arg1_); - } - -//private: - Handler handler_; - Arg1 arg1_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder1* this_handler) -{ - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder1* this_handler) -{ - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder1* this_handler) -{ - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); -} - -template -inline binder1 bind_handler(const Handler& handler, - const Arg1& arg1) -{ - return binder1(handler, arg1); -} - -template -class binder2 -{ -public: - binder2(const Handler& handler, const Arg1& arg1, const Arg2& arg2) - : handler_(handler), - arg1_(arg1), - arg2_(arg2) - { - } - - void operator()() - { - handler_(arg1_, arg2_); - } - - void operator()() const - { - handler_(arg1_, arg2_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder2* this_handler) -{ - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder2* this_handler) -{ - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder2* this_handler) -{ - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); -} - -template -inline binder2 bind_handler(const Handler& handler, - const Arg1& arg1, const Arg2& arg2) -{ - return binder2(handler, arg1, arg2); -} - -template -class binder3 -{ -public: - binder3(const Handler& handler, const Arg1& arg1, const Arg2& arg2, - const Arg3& arg3) - : handler_(handler), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3) - { - } - - void operator()() - { - handler_(arg1_, arg2_, arg3_); - } - - void operator()() const - { - handler_(arg1_, arg2_, arg3_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; - Arg3 arg3_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder3* this_handler) -{ - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder3* this_handler) -{ - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder3* this_handler) -{ - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); -} - -template -inline binder3 bind_handler(const Handler& handler, - const Arg1& arg1, const Arg2& arg2, const Arg3& arg3) -{ - return binder3(handler, arg1, arg2, arg3); -} - -template -class binder4 -{ -public: - binder4(const Handler& handler, const Arg1& arg1, const Arg2& arg2, - const Arg3& arg3, const Arg4& arg4) - : handler_(handler), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3), - arg4_(arg4) - { - } - - void operator()() - { - handler_(arg1_, arg2_, arg3_, arg4_); - } - - void operator()() const - { - handler_(arg1_, arg2_, arg3_, arg4_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; - Arg3 arg3_; - Arg4 arg4_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder4* this_handler) -{ - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder4* this_handler) -{ - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder4* this_handler) -{ - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); -} - -template -inline binder4 bind_handler( - const Handler& handler, const Arg1& arg1, const Arg2& arg2, - const Arg3& arg3, const Arg4& arg4) -{ - return binder4(handler, arg1, arg2, arg3, - arg4); -} - -template -class binder5 -{ -public: - binder5(const Handler& handler, const Arg1& arg1, const Arg2& arg2, - const Arg3& arg3, const Arg4& arg4, const Arg5& arg5) - : handler_(handler), - arg1_(arg1), - arg2_(arg2), - arg3_(arg3), - arg4_(arg4), - arg5_(arg5) - { - } - - void operator()() - { - handler_(arg1_, arg2_, arg3_, arg4_, arg5_); - } - - void operator()() const - { - handler_(arg1_, arg2_, arg3_, arg4_, arg5_); - } - -//private: - Handler handler_; - Arg1 arg1_; - Arg2 arg2_; - Arg3 arg3_; - Arg4 arg4_; - Arg5 arg5_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - binder5* this_handler) -{ - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - binder5* this_handler) -{ - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - binder5* this_handler) -{ - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); -} - -template -inline binder5 bind_handler( - const Handler& handler, const Arg1& arg1, const Arg2& arg2, - const Arg3& arg3, const Arg4& arg4, const Arg5& arg5) -{ - return binder5(handler, arg1, arg2, - arg3, arg4, arg5); -} - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_BIND_HANDLER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/buffer_resize_guard.hpp b/3rdParty/Boost/boost/asio/detail/buffer_resize_guard.hpp deleted file mode 100644 index 63d957c..0000000 --- a/3rdParty/Boost/boost/asio/detail/buffer_resize_guard.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// -// buffer_resize_guard.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_BUFFER_RESIZE_GUARD_HPP -#define BOOST_ASIO_DETAIL_BUFFER_RESIZE_GUARD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// Helper class to manage buffer resizing in an exception safe way. -template -class buffer_resize_guard -{ -public: - // Constructor. - buffer_resize_guard(Buffer& buffer) - : buffer_(buffer), - old_size_(buffer.size()) - { - } - - // Destructor rolls back the buffer resize unless commit was called. - ~buffer_resize_guard() - { - if (old_size_ - != std::numeric_limits::max BOOST_PREVENT_MACRO_SUBSTITUTION()) - { - buffer_.resize(old_size_); - } - } - - // Commit the resize transaction. - void commit() - { - old_size_ - = std::numeric_limits::max BOOST_PREVENT_MACRO_SUBSTITUTION(); - } - -private: - // The buffer being managed. - Buffer& buffer_; - - // The size of the buffer at the time the guard was constructed. - size_t old_size_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_BUFFER_RESIZE_GUARD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/buffered_stream_storage.hpp b/3rdParty/Boost/boost/asio/detail/buffered_stream_storage.hpp deleted file mode 100644 index f20bf27..0000000 --- a/3rdParty/Boost/boost/asio/detail/buffered_stream_storage.hpp +++ /dev/null @@ -1,129 +0,0 @@ -// -// buffered_stream_storage.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_BUFFERED_STREAM_STORAGE_HPP -#define BOOST_ASIO_DETAIL_BUFFERED_STREAM_STORAGE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class buffered_stream_storage -{ -public: - // The type of the bytes stored in the buffer. - typedef unsigned char byte_type; - - // The type used for offsets into the buffer. - typedef std::size_t size_type; - - // Constructor. - explicit buffered_stream_storage(std::size_t capacity) - : begin_offset_(0), - end_offset_(0), - buffer_(capacity) - { - } - - /// Clear the buffer. - void clear() - { - begin_offset_ = 0; - end_offset_ = 0; - } - - // Return a pointer to the beginning of the unread data. - byte_type* data() - { - return &buffer_[0] + begin_offset_; - } - - // Return a pointer to the beginning of the unread data. - const byte_type* data() const - { - return &buffer_[0] + begin_offset_; - } - - // Is there no unread data in the buffer. - bool empty() const - { - return begin_offset_ == end_offset_; - } - - // Return the amount of unread data the is in the buffer. - size_type size() const - { - return end_offset_ - begin_offset_; - } - - // Resize the buffer to the specified length. - void resize(size_type length) - { - assert(length <= capacity()); - if (begin_offset_ + length <= capacity()) - { - end_offset_ = begin_offset_ + length; - } - else - { - using namespace std; // For memmove. - memmove(&buffer_[0], &buffer_[0] + begin_offset_, size()); - end_offset_ = length; - begin_offset_ = 0; - } - } - - // Return the maximum size for data in the buffer. - size_type capacity() const - { - return buffer_.size(); - } - - // Consume multiple bytes from the beginning of the buffer. - void consume(size_type count) - { - assert(begin_offset_ + count <= end_offset_); - begin_offset_ += count; - if (empty()) - clear(); - } - -private: - // The offset to the beginning of the unread data. - size_type begin_offset_; - - // The offset to the end of the unread data. - size_type end_offset_; - - // The data in the buffer. - std::vector buffer_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_BUFFERED_STREAM_STORAGE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/call_stack.hpp b/3rdParty/Boost/boost/asio/detail/call_stack.hpp deleted file mode 100644 index 0096741..0000000 --- a/3rdParty/Boost/boost/asio/detail/call_stack.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// call_stack.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_CALL_STACK_HPP -#define BOOST_ASIO_DETAIL_CALL_STACK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// Helper class to determine whether or not the current thread is inside an -// invocation of io_service::run() for a specified io_service object. -template -class call_stack -{ -public: - // Context class automatically pushes an owner on to the stack. - class context - : private noncopyable - { - public: - // Push the owner on to the stack. - explicit context(Owner* d) - : owner_(d), - next_(call_stack::top_) - { - call_stack::top_ = this; - } - - // Pop the owner from the stack. - ~context() - { - call_stack::top_ = next_; - } - - private: - friend class call_stack; - - // The owner associated with the context. - Owner* owner_; - - // The next element in the stack. - context* next_; - }; - - friend class context; - - // Determine whether the specified owner is on the stack. - static bool contains(Owner* d) - { - context* elem = top_; - while (elem) - { - if (elem->owner_ == d) - return true; - elem = elem->next_; - } - return false; - } - -private: - // The top of the stack of calls for the current thread. - static tss_ptr top_; -}; - -template -tss_ptr::context> -call_stack::top_; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_CALL_STACK_HPP diff --git a/3rdParty/Boost/boost/asio/detail/consuming_buffers.hpp b/3rdParty/Boost/boost/asio/detail/consuming_buffers.hpp deleted file mode 100644 index 0ed811d..0000000 --- a/3rdParty/Boost/boost/asio/detail/consuming_buffers.hpp +++ /dev/null @@ -1,246 +0,0 @@ -// -// consuming_buffers.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_CONSUMING_BUFFERS_HPP -#define BOOST_ASIO_DETAIL_CONSUMING_BUFFERS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// A proxy iterator for a sub-range in a list of buffers. -template -class consuming_buffers_iterator - : public boost::iterator_facade< - consuming_buffers_iterator, - const Buffer, boost::forward_traversal_tag> -{ -public: - // Default constructor creates an end iterator. - consuming_buffers_iterator() - : at_end_(true) - { - } - - // Construct with a buffer for the first entry and an iterator - // range for the remaining entries. - consuming_buffers_iterator(bool at_end, const Buffer& first, - Buffer_Iterator begin_remainder, Buffer_Iterator end_remainder, - std::size_t max_size) - : at_end_(max_size > 0 ? at_end : true), - first_(buffer(first, max_size)), - begin_remainder_(begin_remainder), - end_remainder_(end_remainder), - offset_(0), - max_size_(max_size) - { - } - -private: - friend class boost::iterator_core_access; - - void increment() - { - if (!at_end_) - { - if (begin_remainder_ == end_remainder_ - || offset_ + buffer_size(first_) >= max_size_) - { - at_end_ = true; - } - else - { - offset_ += buffer_size(first_); - first_ = buffer(*begin_remainder_++, max_size_ - offset_); - } - } - } - - bool equal(const consuming_buffers_iterator& other) const - { - if (at_end_ && other.at_end_) - return true; - return !at_end_ && !other.at_end_ - && buffer_cast(first_) - == buffer_cast(other.first_) - && buffer_size(first_) == buffer_size(other.first_) - && begin_remainder_ == other.begin_remainder_ - && end_remainder_ == other.end_remainder_; - } - - const Buffer& dereference() const - { - return first_; - } - - bool at_end_; - Buffer first_; - Buffer_Iterator begin_remainder_; - Buffer_Iterator end_remainder_; - std::size_t offset_; - std::size_t max_size_; -}; - -// A proxy for a sub-range in a list of buffers. -template -class consuming_buffers -{ -public: - // The type for each element in the list of buffers. - typedef Buffer value_type; - - // A forward-only iterator type that may be used to read elements. - typedef consuming_buffers_iterator - const_iterator; - - // Construct to represent the entire list of buffers. - consuming_buffers(const Buffers& buffers) - : buffers_(buffers), - at_end_(buffers_.begin() == buffers_.end()), - first_(*buffers_.begin()), - begin_remainder_(buffers_.begin()), - max_size_((std::numeric_limits::max)()) - { - if (!at_end_) - ++begin_remainder_; - } - - // Copy constructor. - consuming_buffers(const consuming_buffers& other) - : buffers_(other.buffers_), - at_end_(other.at_end_), - first_(other.first_), - begin_remainder_(buffers_.begin()), - max_size_(other.max_size_) - { - typename Buffers::const_iterator first = other.buffers_.begin(); - typename Buffers::const_iterator second = other.begin_remainder_; - std::advance(begin_remainder_, std::distance(first, second)); - } - - // Assignment operator. - consuming_buffers& operator=(const consuming_buffers& other) - { - buffers_ = other.buffers_; - at_end_ = other.at_end_; - first_ = other.first_; - begin_remainder_ = buffers_.begin(); - typename Buffers::const_iterator first = other.buffers_.begin(); - typename Buffers::const_iterator second = other.begin_remainder_; - std::advance(begin_remainder_, std::distance(first, second)); - max_size_ = other.max_size_; - return *this; - } - - // Get a forward-only iterator to the first element. - const_iterator begin() const - { - return const_iterator(at_end_, first_, - begin_remainder_, buffers_.end(), max_size_); - } - - // Get a forward-only iterator for one past the last element. - const_iterator end() const - { - return const_iterator(); - } - - // Set the maximum size for a single transfer. - void set_max_size(std::size_t max_size) - { - max_size_ = max_size; - } - - // Consume the specified number of bytes from the buffers. - void consume(std::size_t size) - { - // Remove buffers from the start until the specified size is reached. - while (size > 0 && !at_end_) - { - if (buffer_size(first_) <= size) - { - size -= buffer_size(first_); - if (begin_remainder_ == buffers_.end()) - at_end_ = true; - else - first_ = *begin_remainder_++; - } - else - { - first_ = first_ + size; - size = 0; - } - } - - // Remove any more empty buffers at the start. - while (!at_end_ && buffer_size(first_) == 0) - { - if (begin_remainder_ == buffers_.end()) - at_end_ = true; - else - first_ = *begin_remainder_++; - } - } - -private: - Buffers buffers_; - bool at_end_; - Buffer first_; - typename Buffers::const_iterator begin_remainder_; - std::size_t max_size_; -}; - -// Specialisation for null_buffers to ensure that the null_buffers type is -// always passed through to the underlying read or write operation. -template -class consuming_buffers - : public boost::asio::null_buffers -{ -public: - consuming_buffers(const boost::asio::null_buffers&) - { - // No-op. - } - - void set_max_size(std::size_t) - { - // No-op. - } - - void consume(std::size_t) - { - // No-op. - } -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_CONSUMING_BUFFERS_HPP diff --git a/3rdParty/Boost/boost/asio/detail/deadline_timer_service.hpp b/3rdParty/Boost/boost/asio/detail/deadline_timer_service.hpp deleted file mode 100644 index 16206a7..0000000 --- a/3rdParty/Boost/boost/asio/detail/deadline_timer_service.hpp +++ /dev/null @@ -1,203 +0,0 @@ -// -// deadline_timer_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_DEADLINE_TIMER_SERVICE_HPP -#define BOOST_ASIO_DETAIL_DEADLINE_TIMER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class deadline_timer_service - : public boost::asio::detail::service_base< - deadline_timer_service > -{ -public: - // The time type. - typedef typename Time_Traits::time_type time_type; - - // The duration type. - typedef typename Time_Traits::duration_type duration_type; - - // The implementation type of the timer. This type is dependent on the - // underlying implementation of the timer service. - struct implementation_type - : private boost::asio::detail::noncopyable - { - time_type expiry; - bool might_have_pending_waits; - }; - - // Constructor. - deadline_timer_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - deadline_timer_service >(io_service), - scheduler_(boost::asio::use_service(io_service)) - { - scheduler_.init_task(); - scheduler_.add_timer_queue(timer_queue_); - } - - // Destructor. - ~deadline_timer_service() - { - scheduler_.remove_timer_queue(timer_queue_); - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - // Construct a new timer implementation. - void construct(implementation_type& impl) - { - impl.expiry = time_type(); - impl.might_have_pending_waits = false; - } - - // Destroy a timer implementation. - void destroy(implementation_type& impl) - { - boost::system::error_code ec; - cancel(impl, ec); - } - - // Cancel any asynchronous wait operations associated with the timer. - std::size_t cancel(implementation_type& impl, boost::system::error_code& ec) - { - if (!impl.might_have_pending_waits) - { - ec = boost::system::error_code(); - return 0; - } - std::size_t count = scheduler_.cancel_timer(timer_queue_, &impl); - impl.might_have_pending_waits = false; - ec = boost::system::error_code(); - return count; - } - - // Get the expiry time for the timer as an absolute time. - time_type expires_at(const implementation_type& impl) const - { - return impl.expiry; - } - - // Set the expiry time for the timer as an absolute time. - std::size_t expires_at(implementation_type& impl, - const time_type& expiry_time, boost::system::error_code& ec) - { - std::size_t count = cancel(impl, ec); - impl.expiry = expiry_time; - ec = boost::system::error_code(); - return count; - } - - // Get the expiry time for the timer relative to now. - duration_type expires_from_now(const implementation_type& impl) const - { - return Time_Traits::subtract(expires_at(impl), Time_Traits::now()); - } - - // Set the expiry time for the timer relative to now. - std::size_t expires_from_now(implementation_type& impl, - const duration_type& expiry_time, boost::system::error_code& ec) - { - return expires_at(impl, - Time_Traits::add(Time_Traits::now(), expiry_time), ec); - } - - // Perform a blocking wait on the timer. - void wait(implementation_type& impl, boost::system::error_code& ec) - { - time_type now = Time_Traits::now(); - while (Time_Traits::less_than(now, impl.expiry)) - { - boost::posix_time::time_duration timeout = - Time_Traits::to_posix_duration(Time_Traits::subtract(impl.expiry, now)); - ::timeval tv; - tv.tv_sec = timeout.total_seconds(); - tv.tv_usec = timeout.total_microseconds() % 1000000; - boost::system::error_code ec; - socket_ops::select(0, 0, 0, 0, &tv, ec); - now = Time_Traits::now(); - } - ec = boost::system::error_code(); - } - - template - class wait_handler : - public handler_base_from_member - { - public: - wait_handler(boost::asio::io_service& io_service, Handler handler) - : handler_base_from_member(handler), - io_service_(io_service), - work_(io_service) - { - } - - void operator()(const boost::system::error_code& result) - { - io_service_.post(detail::bind_handler(this->handler_, result)); - } - - private: - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - }; - - // Start an asynchronous wait on the timer. - template - void async_wait(implementation_type& impl, Handler handler) - { - impl.might_have_pending_waits = true; - scheduler_.schedule_timer(timer_queue_, impl.expiry, - wait_handler(this->get_io_service(), handler), &impl); - } - -private: - // The queue of timers. - timer_queue timer_queue_; - - // The object that schedules and executes timers. Usually a reactor. - Timer_Scheduler& scheduler_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_DEADLINE_TIMER_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/descriptor_ops.hpp b/3rdParty/Boost/boost/asio/detail/descriptor_ops.hpp deleted file mode 100644 index 2ee1988..0000000 --- a/3rdParty/Boost/boost/asio/detail/descriptor_ops.hpp +++ /dev/null @@ -1,178 +0,0 @@ -// -// descriptor_ops.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_DESCRIPTOR_OPS_HPP -#define BOOST_ASIO_DETAIL_DESCRIPTOR_OPS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include - -#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -namespace boost { -namespace asio { -namespace detail { -namespace descriptor_ops { - -inline void clear_error(boost::system::error_code& ec) -{ - errno = 0; - ec = boost::system::error_code(); -} - -template -inline ReturnType error_wrapper(ReturnType return_value, - boost::system::error_code& ec) -{ - ec = boost::system::error_code(errno, - boost::asio::error::get_system_category()); - return return_value; -} - -inline int open(const char* path, int flags, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(::open(path, flags), ec); - if (result >= 0) - clear_error(ec); - return result; -} - -inline int close(int d, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(::close(d), ec); - if (result == 0) - clear_error(ec); - return result; -} - -inline void init_buf_iov_base(void*& base, void* addr) -{ - base = addr; -} - -template -inline void init_buf_iov_base(T& base, void* addr) -{ - base = static_cast(addr); -} - -typedef iovec buf; - -inline void init_buf(buf& b, void* data, size_t size) -{ - init_buf_iov_base(b.iov_base, data); - b.iov_len = size; -} - -inline void init_buf(buf& b, const void* data, size_t size) -{ - init_buf_iov_base(b.iov_base, const_cast(data)); - b.iov_len = size; -} - -inline int scatter_read(int d, buf* bufs, size_t count, - boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(::readv(d, bufs, static_cast(count)), ec); - if (result >= 0) - clear_error(ec); - return result; -} - -inline int gather_write(int d, const buf* bufs, size_t count, - boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(::writev(d, bufs, static_cast(count)), ec); - if (result >= 0) - clear_error(ec); - return result; -} - -inline int ioctl(int d, long cmd, ioctl_arg_type* arg, - boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(::ioctl(d, cmd, arg), ec); - if (result >= 0) - clear_error(ec); - return result; -} - -inline int fcntl(int d, long cmd, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(::fcntl(d, cmd), ec); - if (result != -1) - clear_error(ec); - return result; -} - -inline int fcntl(int d, long cmd, long arg, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(::fcntl(d, cmd, arg), ec); - if (result != -1) - clear_error(ec); - return result; -} - -inline int poll_read(int d, boost::system::error_code& ec) -{ - clear_error(ec); - pollfd fds; - fds.fd = d; - fds.events = POLLIN; - fds.revents = 0; - clear_error(ec); - int result = error_wrapper(::poll(&fds, 1, -1), ec); - if (result >= 0) - clear_error(ec); - return result; -} - -inline int poll_write(int d, boost::system::error_code& ec) -{ - clear_error(ec); - pollfd fds; - fds.fd = d; - fds.events = POLLOUT; - fds.revents = 0; - clear_error(ec); - int result = error_wrapper(::poll(&fds, 1, -1), ec); - if (result >= 0) - clear_error(ec); - return result; -} - -} // namespace descriptor_ops -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -#include - -#endif // BOOST_ASIO_DETAIL_DESCRIPTOR_OPS_HPP diff --git a/3rdParty/Boost/boost/asio/detail/dev_poll_reactor.hpp b/3rdParty/Boost/boost/asio/detail/dev_poll_reactor.hpp deleted file mode 100644 index 8739085..0000000 --- a/3rdParty/Boost/boost/asio/detail/dev_poll_reactor.hpp +++ /dev/null @@ -1,678 +0,0 @@ -// -// dev_poll_reactor.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_DEV_POLL_REACTOR_HPP -#define BOOST_ASIO_DETAIL_DEV_POLL_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_DEV_POLL) - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class dev_poll_reactor - : public boost::asio::detail::service_base > -{ -public: - // Per-descriptor data. - struct per_descriptor_data - { - }; - - // Constructor. - dev_poll_reactor(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - dev_poll_reactor >(io_service), - mutex_(), - dev_poll_fd_(do_dev_poll_create()), - wait_in_progress_(false), - interrupter_(), - read_op_queue_(), - write_op_queue_(), - except_op_queue_(), - pending_cancellations_(), - stop_thread_(false), - thread_(0), - shutdown_(false) - { - // Start the reactor's internal thread only if needed. - if (Own_Thread) - { - boost::asio::detail::signal_blocker sb; - thread_ = new boost::asio::detail::thread( - bind_handler(&dev_poll_reactor::call_run_thread, this)); - } - - // Add the interrupter's descriptor to /dev/poll. - ::pollfd ev = { 0 }; - ev.fd = interrupter_.read_descriptor(); - ev.events = POLLIN | POLLERR; - ev.revents = 0; - ::write(dev_poll_fd_, &ev, sizeof(ev)); - } - - // Destructor. - ~dev_poll_reactor() - { - shutdown_service(); - ::close(dev_poll_fd_); - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; - stop_thread_ = true; - lock.unlock(); - - if (thread_) - { - interrupter_.interrupt(); - thread_->join(); - delete thread_; - thread_ = 0; - } - - read_op_queue_.destroy_operations(); - write_op_queue_.destroy_operations(); - except_op_queue_.destroy_operations(); - - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - timer_queues_[i]->destroy_timers(); - timer_queues_.clear(); - } - - // Initialise the task, but only if the reactor is not in its own thread. - void init_task() - { - if (!Own_Thread) - { - typedef task_io_service > - task_io_service_type; - use_service(this->get_io_service()).init_task(); - } - } - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - int register_descriptor(socket_type, per_descriptor_data&) - { - return 0; - } - - // Start a new read operation. The handler object will be invoked when the - // given descriptor is ready to be read, or an error has occurred. - template - void start_read_op(socket_type descriptor, per_descriptor_data&, - Handler handler, bool allow_speculative_read = true) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - if (allow_speculative_read) - { - if (!read_op_queue_.has_operation(descriptor)) - { - boost::system::error_code ec; - std::size_t bytes_transferred = 0; - if (handler.perform(ec, bytes_transferred)) - { - handler.complete(ec, bytes_transferred); - return; - } - } - } - - if (read_op_queue_.enqueue_operation(descriptor, handler)) - { - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLIN | POLLERR | POLLHUP; - if (write_op_queue_.has_operation(descriptor)) - ev.events |= POLLOUT; - if (except_op_queue_.has_operation(descriptor)) - ev.events |= POLLPRI; - interrupter_.interrupt(); - } - } - - // Start a new write operation. The handler object will be invoked when the - // given descriptor is ready to be written, or an error has occurred. - template - void start_write_op(socket_type descriptor, per_descriptor_data&, - Handler handler, bool allow_speculative_write = true) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - if (allow_speculative_write) - { - if (!write_op_queue_.has_operation(descriptor)) - { - boost::system::error_code ec; - std::size_t bytes_transferred = 0; - if (handler.perform(ec, bytes_transferred)) - { - handler.complete(ec, bytes_transferred); - return; - } - } - } - - if (write_op_queue_.enqueue_operation(descriptor, handler)) - { - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLOUT | POLLERR | POLLHUP; - if (read_op_queue_.has_operation(descriptor)) - ev.events |= POLLIN; - if (except_op_queue_.has_operation(descriptor)) - ev.events |= POLLPRI; - interrupter_.interrupt(); - } - } - - // Start a new exception operation. The handler object will be invoked when - // the given descriptor has exception information, or an error has occurred. - template - void start_except_op(socket_type descriptor, - per_descriptor_data&, Handler handler) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - if (except_op_queue_.enqueue_operation(descriptor, handler)) - { - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLPRI | POLLERR | POLLHUP; - if (read_op_queue_.has_operation(descriptor)) - ev.events |= POLLIN; - if (write_op_queue_.has_operation(descriptor)) - ev.events |= POLLOUT; - interrupter_.interrupt(); - } - } - - // Start a new write operation. The handler object will be invoked when the - // information available, or an error has occurred. - template - void start_connect_op(socket_type descriptor, - per_descriptor_data&, Handler handler) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - if (write_op_queue_.enqueue_operation(descriptor, handler)) - { - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLOUT | POLLERR | POLLHUP; - if (read_op_queue_.has_operation(descriptor)) - ev.events |= POLLIN; - if (except_op_queue_.has_operation(descriptor)) - ev.events |= POLLPRI; - interrupter_.interrupt(); - } - } - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - void cancel_ops(socket_type descriptor, per_descriptor_data&) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor); - } - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. - void close_descriptor(socket_type descriptor, per_descriptor_data&) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - // Remove the descriptor from /dev/poll. - ::pollfd& ev = add_pending_event_change(descriptor); - ev.events = POLLREMOVE; - interrupter_.interrupt(); - - // Cancel any outstanding operations associated with the descriptor. - cancel_ops_unlocked(descriptor); - } - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& timer_queue) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - timer_queues_.push_back(&timer_queue); - } - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& timer_queue) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - if (timer_queues_[i] == &timer_queue) - { - timer_queues_.erase(timer_queues_.begin() + i); - return; - } - } - } - - // Schedule a timer in the given timer queue to expire at the specified - // absolute time. The handler object will be invoked when the timer expires. - template - void schedule_timer(timer_queue& timer_queue, - const typename Time_Traits::time_type& time, Handler handler, void* token) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (!shutdown_) - if (timer_queue.enqueue_timer(time, handler, token)) - interrupter_.interrupt(); - } - - // Cancel the timer associated with the given token. Returns the number of - // handlers that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& timer_queue, void* token) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - std::size_t n = timer_queue.cancel_timer(token); - if (n > 0) - interrupter_.interrupt(); - return n; - } - -private: - friend class task_io_service >; - - // Run /dev/poll once until interrupted or events are ready to be dispatched. - void run(bool block) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - // Dispatch any operation cancellations that were made while the select - // loop was not running. - read_op_queue_.perform_cancellations(); - write_op_queue_.perform_cancellations(); - except_op_queue_.perform_cancellations(); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - timer_queues_[i]->dispatch_cancellations(); - - // Check if the thread is supposed to stop. - if (stop_thread_) - { - complete_operations_and_timers(lock); - return; - } - - // We can return immediately if there's no work to do and the reactor is - // not supposed to block. - if (!block && read_op_queue_.empty() && write_op_queue_.empty() - && except_op_queue_.empty() && all_timer_queues_are_empty()) - { - complete_operations_and_timers(lock); - return; - } - - // Write the pending event registration changes to the /dev/poll descriptor. - std::size_t events_size = sizeof(::pollfd) * pending_event_changes_.size(); - errno = 0; - int result = ::write(dev_poll_fd_, - &pending_event_changes_[0], events_size); - if (result != static_cast(events_size)) - { - for (std::size_t i = 0; i < pending_event_changes_.size(); ++i) - { - int descriptor = pending_event_changes_[i].fd; - boost::system::error_code ec = boost::system::error_code( - errno, boost::asio::error::get_system_category()); - read_op_queue_.perform_all_operations(descriptor, ec); - write_op_queue_.perform_all_operations(descriptor, ec); - except_op_queue_.perform_all_operations(descriptor, ec); - } - } - pending_event_changes_.clear(); - pending_event_change_index_.clear(); - - int timeout = block ? get_timeout() : 0; - wait_in_progress_ = true; - lock.unlock(); - - // Block on the /dev/poll descriptor. - ::pollfd events[128] = { { 0 } }; - ::dvpoll dp = { 0 }; - dp.dp_fds = events; - dp.dp_nfds = 128; - dp.dp_timeout = timeout; - int num_events = ::ioctl(dev_poll_fd_, DP_POLL, &dp); - - lock.lock(); - wait_in_progress_ = false; - - // Block signals while performing operations. - boost::asio::detail::signal_blocker sb; - - // Dispatch the waiting events. - for (int i = 0; i < num_events; ++i) - { - int descriptor = events[i].fd; - if (descriptor == interrupter_.read_descriptor()) - { - interrupter_.reset(); - } - else - { - bool more_reads = false; - bool more_writes = false; - bool more_except = false; - boost::system::error_code ec; - - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. - if (events[i].events & (POLLPRI | POLLERR | POLLHUP)) - more_except = except_op_queue_.perform_operation(descriptor, ec); - else - more_except = except_op_queue_.has_operation(descriptor); - - if (events[i].events & (POLLIN | POLLERR | POLLHUP)) - more_reads = read_op_queue_.perform_operation(descriptor, ec); - else - more_reads = read_op_queue_.has_operation(descriptor); - - if (events[i].events & (POLLOUT | POLLERR | POLLHUP)) - more_writes = write_op_queue_.perform_operation(descriptor, ec); - else - more_writes = write_op_queue_.has_operation(descriptor); - - if ((events[i].events & (POLLERR | POLLHUP)) != 0 - && (events[i].events & ~(POLLERR | POLLHUP)) == 0 - && !more_except && !more_reads && !more_writes) - { - // If we have an event and no operations associated with the - // descriptor then we need to delete the descriptor from /dev/poll. - // The poll operation can produce POLLHUP or POLLERR events when there - // is no operation pending, so if we do not remove the descriptor we - // can end up in a tight polling loop. - ::pollfd ev = { 0 }; - ev.fd = descriptor; - ev.events = POLLREMOVE; - ev.revents = 0; - ::write(dev_poll_fd_, &ev, sizeof(ev)); - } - else - { - ::pollfd ev = { 0 }; - ev.fd = descriptor; - ev.events = POLLERR | POLLHUP; - if (more_reads) - ev.events |= POLLIN; - if (more_writes) - ev.events |= POLLOUT; - if (more_except) - ev.events |= POLLPRI; - ev.revents = 0; - int result = ::write(dev_poll_fd_, &ev, sizeof(ev)); - if (result != sizeof(ev)) - { - ec = boost::system::error_code(errno, - boost::asio::error::get_system_category()); - read_op_queue_.perform_all_operations(descriptor, ec); - write_op_queue_.perform_all_operations(descriptor, ec); - except_op_queue_.perform_all_operations(descriptor, ec); - } - } - } - } - read_op_queue_.perform_cancellations(); - write_op_queue_.perform_cancellations(); - except_op_queue_.perform_cancellations(); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - timer_queues_[i]->dispatch_timers(); - timer_queues_[i]->dispatch_cancellations(); - } - - // Issue any pending cancellations. - for (size_t i = 0; i < pending_cancellations_.size(); ++i) - cancel_ops_unlocked(pending_cancellations_[i]); - pending_cancellations_.clear(); - - complete_operations_and_timers(lock); - } - - // Run the select loop in the thread. - void run_thread() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - while (!stop_thread_) - { - lock.unlock(); - run(true); - lock.lock(); - } - } - - // Entry point for the select loop thread. - static void call_run_thread(dev_poll_reactor* reactor) - { - reactor->run_thread(); - } - - // Interrupt the select loop. - void interrupt() - { - interrupter_.interrupt(); - } - - // Create the /dev/poll file descriptor. Throws an exception if the descriptor - // cannot be created. - static int do_dev_poll_create() - { - int fd = ::open("/dev/poll", O_RDWR); - if (fd == -1) - { - boost::throw_exception( - boost::system::system_error( - boost::system::error_code(errno, - boost::asio::error::get_system_category()), - "/dev/poll")); - } - return fd; - } - - // Check if all timer queues are empty. - bool all_timer_queues_are_empty() const - { - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - if (!timer_queues_[i]->empty()) - return false; - return true; - } - - // Get the timeout value for the /dev/poll DP_POLL operation. The timeout - // value is returned as a number of milliseconds. A return value of -1 - // indicates that the poll should block indefinitely. - int get_timeout() - { - if (all_timer_queues_are_empty()) - return -1; - - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - boost::posix_time::time_duration minimum_wait_duration - = boost::posix_time::minutes(5); - - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - boost::posix_time::time_duration wait_duration - = timer_queues_[i]->wait_duration(); - if (wait_duration < minimum_wait_duration) - minimum_wait_duration = wait_duration; - } - - if (minimum_wait_duration > boost::posix_time::time_duration()) - { - int milliseconds = minimum_wait_duration.total_milliseconds(); - return milliseconds > 0 ? milliseconds : 1; - } - else - { - return 0; - } - } - - // Cancel all operations associated with the given descriptor. The do_cancel - // function of the handler objects will be invoked. This function does not - // acquire the dev_poll_reactor's mutex. - void cancel_ops_unlocked(socket_type descriptor) - { - bool interrupt = read_op_queue_.cancel_operations(descriptor); - interrupt = write_op_queue_.cancel_operations(descriptor) || interrupt; - interrupt = except_op_queue_.cancel_operations(descriptor) || interrupt; - if (interrupt) - interrupter_.interrupt(); - } - - // Clean up operations and timers. We must not hold the lock since the - // destructors may make calls back into this reactor. We make a copy of the - // vector of timer queues since the original may be modified while the lock - // is not held. - void complete_operations_and_timers( - boost::asio::detail::mutex::scoped_lock& lock) - { - timer_queues_for_cleanup_ = timer_queues_; - lock.unlock(); - read_op_queue_.complete_operations(); - write_op_queue_.complete_operations(); - except_op_queue_.complete_operations(); - for (std::size_t i = 0; i < timer_queues_for_cleanup_.size(); ++i) - timer_queues_for_cleanup_[i]->complete_timers(); - } - - // Add a pending event entry for the given descriptor. - ::pollfd& add_pending_event_change(int descriptor) - { - hash_map::iterator iter - = pending_event_change_index_.find(descriptor); - if (iter == pending_event_change_index_.end()) - { - std::size_t index = pending_event_changes_.size(); - pending_event_changes_.reserve(pending_event_changes_.size() + 1); - pending_event_change_index_.insert(std::make_pair(descriptor, index)); - pending_event_changes_.push_back(::pollfd()); - pending_event_changes_[index].fd = descriptor; - pending_event_changes_[index].revents = 0; - return pending_event_changes_[index]; - } - else - { - return pending_event_changes_[iter->second]; - } - } - - // Mutex to protect access to internal data. - boost::asio::detail::mutex mutex_; - - // The /dev/poll file descriptor. - int dev_poll_fd_; - - // Vector of /dev/poll events waiting to be written to the descriptor. - std::vector< ::pollfd> pending_event_changes_; - - // Hash map to associate a descriptor with a pending event change index. - hash_map pending_event_change_index_; - - // Whether the DP_POLL operation is currently in progress - bool wait_in_progress_; - - // The interrupter is used to break a blocking DP_POLL operation. - select_interrupter interrupter_; - - // The queue of read operations. - reactor_op_queue read_op_queue_; - - // The queue of write operations. - reactor_op_queue write_op_queue_; - - // The queue of except operations. - reactor_op_queue except_op_queue_; - - // The timer queues. - std::vector timer_queues_; - - // A copy of the timer queues, used when cleaning up timers. The copy is - // stored as a class data member to avoid unnecessary memory allocation. - std::vector timer_queues_for_cleanup_; - - // The descriptors that are pending cancellation. - std::vector pending_cancellations_; - - // Does the reactor loop thread need to stop. - bool stop_thread_; - - // The thread that is running the reactor loop. - boost::asio::detail::thread* thread_; - - // Whether the service has been shut down. - bool shutdown_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_DEV_POLL) - -#include - -#endif // BOOST_ASIO_DETAIL_DEV_POLL_REACTOR_HPP diff --git a/3rdParty/Boost/boost/asio/detail/dev_poll_reactor_fwd.hpp b/3rdParty/Boost/boost/asio/detail/dev_poll_reactor_fwd.hpp deleted file mode 100644 index 3308575..0000000 --- a/3rdParty/Boost/boost/asio/detail/dev_poll_reactor_fwd.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// -// dev_poll_reactor_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_DEV_POLL_REACTOR_FWD_HPP -#define BOOST_ASIO_DETAIL_DEV_POLL_REACTOR_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#if !defined(BOOST_ASIO_DISABLE_DEV_POLL) -#if defined(__sun) // This service is only supported on Solaris. - -// Define this to indicate that /dev/poll is supported on the target platform. -#define BOOST_ASIO_HAS_DEV_POLL 1 - -namespace boost { -namespace asio { -namespace detail { - -template -class dev_poll_reactor; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(__sun) -#endif // !defined(BOOST_ASIO_DISABLE_DEV_POLL) - -#include - -#endif // BOOST_ASIO_DETAIL_DEV_POLL_REACTOR_FWD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/epoll_reactor.hpp b/3rdParty/Boost/boost/asio/detail/epoll_reactor.hpp deleted file mode 100644 index 2770c6a..0000000 --- a/3rdParty/Boost/boost/asio/detail/epoll_reactor.hpp +++ /dev/null @@ -1,733 +0,0 @@ -// -// epoll_reactor.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_EPOLL_REACTOR_HPP -#define BOOST_ASIO_DETAIL_EPOLL_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_EPOLL) - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class epoll_reactor - : public boost::asio::detail::service_base > -{ -public: - // Per-descriptor data. - struct per_descriptor_data - { - bool allow_speculative_read; - bool allow_speculative_write; - }; - - // Constructor. - epoll_reactor(boost::asio::io_service& io_service) - : boost::asio::detail::service_base >(io_service), - mutex_(), - epoll_fd_(do_epoll_create()), - wait_in_progress_(false), - interrupter_(), - read_op_queue_(), - write_op_queue_(), - except_op_queue_(), - pending_cancellations_(), - stop_thread_(false), - thread_(0), - shutdown_(false), - need_epoll_wait_(true) - { - // Start the reactor's internal thread only if needed. - if (Own_Thread) - { - boost::asio::detail::signal_blocker sb; - thread_ = new boost::asio::detail::thread( - bind_handler(&epoll_reactor::call_run_thread, this)); - } - - // Add the interrupter's descriptor to epoll. - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR; - ev.data.fd = interrupter_.read_descriptor(); - epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, interrupter_.read_descriptor(), &ev); - } - - // Destructor. - ~epoll_reactor() - { - shutdown_service(); - close(epoll_fd_); - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; - stop_thread_ = true; - lock.unlock(); - - if (thread_) - { - interrupter_.interrupt(); - thread_->join(); - delete thread_; - thread_ = 0; - } - - read_op_queue_.destroy_operations(); - write_op_queue_.destroy_operations(); - except_op_queue_.destroy_operations(); - - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - timer_queues_[i]->destroy_timers(); - timer_queues_.clear(); - } - - // Initialise the task, but only if the reactor is not in its own thread. - void init_task() - { - if (!Own_Thread) - { - typedef task_io_service > task_io_service_type; - use_service(this->get_io_service()).init_task(); - } - } - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - int register_descriptor(socket_type descriptor, - per_descriptor_data& descriptor_data) - { - // No need to lock according to epoll documentation. - - descriptor_data.allow_speculative_read = true; - descriptor_data.allow_speculative_write = true; - - epoll_event ev = { 0, { 0 } }; - ev.events = 0; - ev.data.fd = descriptor; - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev); - if (result != 0) - return errno; - return 0; - } - - // Start a new read operation. The handler object will be invoked when the - // given descriptor is ready to be read, or an error has occurred. - template - void start_read_op(socket_type descriptor, - per_descriptor_data& descriptor_data, - Handler handler, bool allow_speculative_read = true) - { - if (allow_speculative_read && descriptor_data.allow_speculative_read) - { - boost::system::error_code ec; - std::size_t bytes_transferred = 0; - if (handler.perform(ec, bytes_transferred)) - { - handler.complete(ec, bytes_transferred); - return; - } - - // We only get one shot at a speculative read in this function. - allow_speculative_read = false; - } - - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - if (!allow_speculative_read) - need_epoll_wait_ = true; - else if (!read_op_queue_.has_operation(descriptor)) - { - // Speculative reads are ok as there are no queued read operations. - descriptor_data.allow_speculative_read = true; - - boost::system::error_code ec; - std::size_t bytes_transferred = 0; - if (handler.perform(ec, bytes_transferred)) - { - handler.complete(ec, bytes_transferred); - return; - } - } - - // Speculative reads are not ok as there will be queued read operations. - descriptor_data.allow_speculative_read = false; - - if (read_op_queue_.enqueue_operation(descriptor, handler)) - { - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLIN | EPOLLERR | EPOLLHUP; - if (write_op_queue_.has_operation(descriptor)) - ev.events |= EPOLLOUT; - if (except_op_queue_.has_operation(descriptor)) - ev.events |= EPOLLPRI; - ev.data.fd = descriptor; - - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev); - if (result != 0 && errno == ENOENT) - result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev); - if (result != 0) - { - boost::system::error_code ec(errno, - boost::asio::error::get_system_category()); - read_op_queue_.perform_all_operations(descriptor, ec); - } - } - } - - // Start a new write operation. The handler object will be invoked when the - // given descriptor is ready to be written, or an error has occurred. - template - void start_write_op(socket_type descriptor, - per_descriptor_data& descriptor_data, - Handler handler, bool allow_speculative_write = true) - { - if (allow_speculative_write && descriptor_data.allow_speculative_write) - { - boost::system::error_code ec; - std::size_t bytes_transferred = 0; - if (handler.perform(ec, bytes_transferred)) - { - handler.complete(ec, bytes_transferred); - return; - } - - // We only get one shot at a speculative write in this function. - allow_speculative_write = false; - } - - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - if (!allow_speculative_write) - need_epoll_wait_ = true; - else if (!write_op_queue_.has_operation(descriptor)) - { - // Speculative writes are ok as there are no queued write operations. - descriptor_data.allow_speculative_write = true; - - boost::system::error_code ec; - std::size_t bytes_transferred = 0; - if (handler.perform(ec, bytes_transferred)) - { - handler.complete(ec, bytes_transferred); - return; - } - } - - // Speculative writes are not ok as there will be queued write operations. - descriptor_data.allow_speculative_write = false; - - if (write_op_queue_.enqueue_operation(descriptor, handler)) - { - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLOUT | EPOLLERR | EPOLLHUP; - if (read_op_queue_.has_operation(descriptor)) - ev.events |= EPOLLIN; - if (except_op_queue_.has_operation(descriptor)) - ev.events |= EPOLLPRI; - ev.data.fd = descriptor; - - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev); - if (result != 0 && errno == ENOENT) - result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev); - if (result != 0) - { - boost::system::error_code ec(errno, - boost::asio::error::get_system_category()); - write_op_queue_.perform_all_operations(descriptor, ec); - } - } - } - - // Start a new exception operation. The handler object will be invoked when - // the given descriptor has exception information, or an error has occurred. - template - void start_except_op(socket_type descriptor, - per_descriptor_data&, Handler handler) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - if (except_op_queue_.enqueue_operation(descriptor, handler)) - { - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLPRI | EPOLLERR | EPOLLHUP; - if (read_op_queue_.has_operation(descriptor)) - ev.events |= EPOLLIN; - if (write_op_queue_.has_operation(descriptor)) - ev.events |= EPOLLOUT; - ev.data.fd = descriptor; - - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev); - if (result != 0 && errno == ENOENT) - result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev); - if (result != 0) - { - boost::system::error_code ec(errno, - boost::asio::error::get_system_category()); - except_op_queue_.perform_all_operations(descriptor, ec); - } - } - } - - // Start a new write operation. The handler object will be invoked when the - // given descriptor is ready for writing or an error has occurred. Speculative - // writes are not allowed. - template - void start_connect_op(socket_type descriptor, - per_descriptor_data& descriptor_data, Handler handler) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - // Speculative writes are not ok as there will be queued write operations. - descriptor_data.allow_speculative_write = false; - - if (write_op_queue_.enqueue_operation(descriptor, handler)) - { - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLOUT | EPOLLERR | EPOLLHUP; - if (read_op_queue_.has_operation(descriptor)) - ev.events |= EPOLLIN; - if (except_op_queue_.has_operation(descriptor)) - ev.events |= EPOLLPRI; - ev.data.fd = descriptor; - - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev); - if (result != 0 && errno == ENOENT) - result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev); - if (result != 0) - { - boost::system::error_code ec(errno, - boost::asio::error::get_system_category()); - write_op_queue_.perform_all_operations(descriptor, ec); - } - } - } - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - void cancel_ops(socket_type descriptor, per_descriptor_data&) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor); - } - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. - void close_descriptor(socket_type descriptor, per_descriptor_data&) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - // Remove the descriptor from epoll. - epoll_event ev = { 0, { 0 } }; - epoll_ctl(epoll_fd_, EPOLL_CTL_DEL, descriptor, &ev); - - // Cancel any outstanding operations associated with the descriptor. - cancel_ops_unlocked(descriptor); - } - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& timer_queue) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - timer_queues_.push_back(&timer_queue); - } - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& timer_queue) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - if (timer_queues_[i] == &timer_queue) - { - timer_queues_.erase(timer_queues_.begin() + i); - return; - } - } - } - - // Schedule a timer in the given timer queue to expire at the specified - // absolute time. The handler object will be invoked when the timer expires. - template - void schedule_timer(timer_queue& timer_queue, - const typename Time_Traits::time_type& time, Handler handler, void* token) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (!shutdown_) - if (timer_queue.enqueue_timer(time, handler, token)) - interrupter_.interrupt(); - } - - // Cancel the timer associated with the given token. Returns the number of - // handlers that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& timer_queue, void* token) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - std::size_t n = timer_queue.cancel_timer(token); - if (n > 0) - interrupter_.interrupt(); - return n; - } - -private: - friend class task_io_service >; - - // Run epoll once until interrupted or events are ready to be dispatched. - void run(bool block) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - // Dispatch any operation cancellations that were made while the select - // loop was not running. - read_op_queue_.perform_cancellations(); - write_op_queue_.perform_cancellations(); - except_op_queue_.perform_cancellations(); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - timer_queues_[i]->dispatch_cancellations(); - - // Check if the thread is supposed to stop. - if (stop_thread_) - { - complete_operations_and_timers(lock); - return; - } - - // We can return immediately if there's no work to do and the reactor is - // not supposed to block. - if (!block && read_op_queue_.empty() && write_op_queue_.empty() - && except_op_queue_.empty() && all_timer_queues_are_empty()) - { - complete_operations_and_timers(lock); - return; - } - - int timeout = block ? get_timeout() : 0; - wait_in_progress_ = true; - lock.unlock(); - - // Block on the epoll descriptor. - epoll_event events[128]; - int num_events = (block || need_epoll_wait_) - ? epoll_wait(epoll_fd_, events, 128, timeout) - : 0; - - lock.lock(); - wait_in_progress_ = false; - - // Block signals while performing operations. - boost::asio::detail::signal_blocker sb; - - // Dispatch the waiting events. - for (int i = 0; i < num_events; ++i) - { - int descriptor = events[i].data.fd; - if (descriptor == interrupter_.read_descriptor()) - { - interrupter_.reset(); - } - else - { - bool more_reads = false; - bool more_writes = false; - bool more_except = false; - boost::system::error_code ec; - - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. - if (events[i].events & (EPOLLPRI | EPOLLERR | EPOLLHUP)) - more_except = except_op_queue_.perform_operation(descriptor, ec); - else - more_except = except_op_queue_.has_operation(descriptor); - - if (events[i].events & (EPOLLIN | EPOLLERR | EPOLLHUP)) - more_reads = read_op_queue_.perform_operation(descriptor, ec); - else - more_reads = read_op_queue_.has_operation(descriptor); - - if (events[i].events & (EPOLLOUT | EPOLLERR | EPOLLHUP)) - more_writes = write_op_queue_.perform_operation(descriptor, ec); - else - more_writes = write_op_queue_.has_operation(descriptor); - - if ((events[i].events & (EPOLLERR | EPOLLHUP)) != 0 - && (events[i].events & ~(EPOLLERR | EPOLLHUP)) == 0 - && !more_except && !more_reads && !more_writes) - { - // If we have an event and no operations associated with the - // descriptor then we need to delete the descriptor from epoll. The - // epoll_wait system call can produce EPOLLHUP or EPOLLERR events - // when there is no operation pending, so if we do not remove the - // descriptor we can end up in a tight loop of repeated - // calls to epoll_wait. - epoll_event ev = { 0, { 0 } }; - epoll_ctl(epoll_fd_, EPOLL_CTL_DEL, descriptor, &ev); - } - else - { - epoll_event ev = { 0, { 0 } }; - ev.events = EPOLLERR | EPOLLHUP; - if (more_reads) - ev.events |= EPOLLIN; - if (more_writes) - ev.events |= EPOLLOUT; - if (more_except) - ev.events |= EPOLLPRI; - ev.data.fd = descriptor; - int result = epoll_ctl(epoll_fd_, EPOLL_CTL_MOD, descriptor, &ev); - if (result != 0 && errno == ENOENT) - result = epoll_ctl(epoll_fd_, EPOLL_CTL_ADD, descriptor, &ev); - if (result != 0) - { - ec = boost::system::error_code(errno, - boost::asio::error::get_system_category()); - read_op_queue_.perform_all_operations(descriptor, ec); - write_op_queue_.perform_all_operations(descriptor, ec); - except_op_queue_.perform_all_operations(descriptor, ec); - } - } - } - } - read_op_queue_.perform_cancellations(); - write_op_queue_.perform_cancellations(); - except_op_queue_.perform_cancellations(); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - timer_queues_[i]->dispatch_timers(); - timer_queues_[i]->dispatch_cancellations(); - } - - // Issue any pending cancellations. - for (size_t i = 0; i < pending_cancellations_.size(); ++i) - cancel_ops_unlocked(pending_cancellations_[i]); - pending_cancellations_.clear(); - - // Determine whether epoll_wait should be called when the reactor next runs. - need_epoll_wait_ = !read_op_queue_.empty() - || !write_op_queue_.empty() || !except_op_queue_.empty(); - - complete_operations_and_timers(lock); - } - - // Run the select loop in the thread. - void run_thread() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - while (!stop_thread_) - { - lock.unlock(); - run(true); - lock.lock(); - } - } - - // Entry point for the select loop thread. - static void call_run_thread(epoll_reactor* reactor) - { - reactor->run_thread(); - } - - // Interrupt the select loop. - void interrupt() - { - interrupter_.interrupt(); - } - - // The hint to pass to epoll_create to size its data structures. - enum { epoll_size = 20000 }; - - // Create the epoll file descriptor. Throws an exception if the descriptor - // cannot be created. - static int do_epoll_create() - { - int fd = epoll_create(epoll_size); - if (fd == -1) - { - boost::throw_exception( - boost::system::system_error( - boost::system::error_code(errno, - boost::asio::error::get_system_category()), - "epoll")); - } - return fd; - } - - // Check if all timer queues are empty. - bool all_timer_queues_are_empty() const - { - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - if (!timer_queues_[i]->empty()) - return false; - return true; - } - - // Get the timeout value for the epoll_wait call. The timeout value is - // returned as a number of milliseconds. A return value of -1 indicates - // that epoll_wait should block indefinitely. - int get_timeout() - { - if (all_timer_queues_are_empty()) - return -1; - - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - boost::posix_time::time_duration minimum_wait_duration - = boost::posix_time::minutes(5); - - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - boost::posix_time::time_duration wait_duration - = timer_queues_[i]->wait_duration(); - if (wait_duration < minimum_wait_duration) - minimum_wait_duration = wait_duration; - } - - if (minimum_wait_duration > boost::posix_time::time_duration()) - { - int milliseconds = minimum_wait_duration.total_milliseconds(); - return milliseconds > 0 ? milliseconds : 1; - } - else - { - return 0; - } - } - - // Cancel all operations associated with the given descriptor. The do_cancel - // function of the handler objects will be invoked. This function does not - // acquire the epoll_reactor's mutex. - void cancel_ops_unlocked(socket_type descriptor) - { - bool interrupt = read_op_queue_.cancel_operations(descriptor); - interrupt = write_op_queue_.cancel_operations(descriptor) || interrupt; - interrupt = except_op_queue_.cancel_operations(descriptor) || interrupt; - if (interrupt) - interrupter_.interrupt(); - } - - // Clean up operations and timers. We must not hold the lock since the - // destructors may make calls back into this reactor. We make a copy of the - // vector of timer queues since the original may be modified while the lock - // is not held. - void complete_operations_and_timers( - boost::asio::detail::mutex::scoped_lock& lock) - { - timer_queues_for_cleanup_ = timer_queues_; - lock.unlock(); - read_op_queue_.complete_operations(); - write_op_queue_.complete_operations(); - except_op_queue_.complete_operations(); - for (std::size_t i = 0; i < timer_queues_for_cleanup_.size(); ++i) - timer_queues_for_cleanup_[i]->complete_timers(); - } - - // Mutex to protect access to internal data. - boost::asio::detail::mutex mutex_; - - // The epoll file descriptor. - int epoll_fd_; - - // Whether the epoll_wait call is currently in progress - bool wait_in_progress_; - - // The interrupter is used to break a blocking epoll_wait call. - select_interrupter interrupter_; - - // The queue of read operations. - reactor_op_queue read_op_queue_; - - // The queue of write operations. - reactor_op_queue write_op_queue_; - - // The queue of except operations. - reactor_op_queue except_op_queue_; - - // The timer queues. - std::vector timer_queues_; - - // A copy of the timer queues, used when cleaning up timers. The copy is - // stored as a class data member to avoid unnecessary memory allocation. - std::vector timer_queues_for_cleanup_; - - // The descriptors that are pending cancellation. - std::vector pending_cancellations_; - - // Does the reactor loop thread need to stop. - bool stop_thread_; - - // The thread that is running the reactor loop. - boost::asio::detail::thread* thread_; - - // Whether the service has been shut down. - bool shutdown_; - - // Whether we need to call epoll_wait the next time the reactor is run. - bool need_epoll_wait_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_EPOLL) - -#include - -#endif // BOOST_ASIO_DETAIL_EPOLL_REACTOR_HPP diff --git a/3rdParty/Boost/boost/asio/detail/epoll_reactor_fwd.hpp b/3rdParty/Boost/boost/asio/detail/epoll_reactor_fwd.hpp deleted file mode 100644 index 567a966..0000000 --- a/3rdParty/Boost/boost/asio/detail/epoll_reactor_fwd.hpp +++ /dev/null @@ -1,49 +0,0 @@ -// -// epoll_reactor_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_EPOLL_REACTOR_FWD_HPP -#define BOOST_ASIO_DETAIL_EPOLL_REACTOR_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#if !defined(BOOST_ASIO_DISABLE_EPOLL) -#if defined(__linux__) // This service is only supported on Linux. - -#include -#include -#include - -#if LINUX_VERSION_CODE >= KERNEL_VERSION (2,5,45) // Only kernels >= 2.5.45. - -// Define this to indicate that epoll is supported on the target platform. -#define BOOST_ASIO_HAS_EPOLL 1 - -namespace boost { -namespace asio { -namespace detail { - -template -class epoll_reactor; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // LINUX_VERSION_CODE >= KERNEL_VERSION (2,5,45) -#endif // defined(__linux__) -#endif // !defined(BOOST_ASIO_DISABLE_EPOLL) - -#include - -#endif // BOOST_ASIO_DETAIL_EPOLL_REACTOR_FWD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/event.hpp b/3rdParty/Boost/boost/asio/detail/event.hpp deleted file mode 100644 index 67a0118..0000000 --- a/3rdParty/Boost/boost/asio/detail/event.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// event.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_EVENT_HPP -#define BOOST_ASIO_DETAIL_EVENT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_HAS_THREADS) -# include -#elif defined(BOOST_WINDOWS) -# include -#elif defined(BOOST_HAS_PTHREADS) -# include -#else -# error Only Windows and POSIX are supported! -#endif - -namespace boost { -namespace asio { -namespace detail { - -#if !defined(BOOST_HAS_THREADS) -typedef null_event event; -#elif defined(BOOST_WINDOWS) -typedef win_event event; -#elif defined(BOOST_HAS_PTHREADS) -typedef posix_event event; -#endif - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_EVENT_HPP diff --git a/3rdParty/Boost/boost/asio/detail/eventfd_select_interrupter.hpp b/3rdParty/Boost/boost/asio/detail/eventfd_select_interrupter.hpp deleted file mode 100644 index cac8405..0000000 --- a/3rdParty/Boost/boost/asio/detail/eventfd_select_interrupter.hpp +++ /dev/null @@ -1,157 +0,0 @@ -// -// eventfd_select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_DETAIL_EVENTFD_SELECT_INTERRUPTER_HPP -#define BOOST_ASIO_DETAIL_EVENTFD_SELECT_INTERRUPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#if defined(linux) -# if !defined(BOOST_ASIO_DISABLE_EVENTFD) -# include -# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) -# define BOOST_ASIO_HAS_EVENTFD -# endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) -# endif // !defined(BOOST_ASIO_DISABLE_EVENTFD) -#endif // defined(linux) - -#if defined(BOOST_ASIO_HAS_EVENTFD) - -#include -#include -#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -# include -#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -# include -#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class eventfd_select_interrupter -{ -public: - // Constructor. - eventfd_select_interrupter() - { -#if __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 - write_descriptor_ = read_descriptor_ = syscall(__NR_eventfd, 0); -#else // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 - write_descriptor_ = read_descriptor_ = ::eventfd(0, 0); -#endif // __GLIBC__ == 2 && __GLIBC_MINOR__ < 8 - if (read_descriptor_ != -1) - { - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - } - else - { - int pipe_fds[2]; - if (pipe(pipe_fds) == 0) - { - read_descriptor_ = pipe_fds[0]; - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - write_descriptor_ = pipe_fds[1]; - ::fcntl(write_descriptor_, F_SETFL, O_NONBLOCK); - } - else - { - boost::system::error_code ec(errno, - boost::asio::error::get_system_category()); - boost::system::system_error e(ec, "eventfd_select_interrupter"); - boost::throw_exception(e); - } - } - } - - // Destructor. - ~eventfd_select_interrupter() - { - if (write_descriptor_ != -1 && write_descriptor_ != read_descriptor_) - ::close(write_descriptor_); - if (read_descriptor_ != -1) - ::close(read_descriptor_); - } - - // Interrupt the select call. - void interrupt() - { - uint64_t counter(1UL); - int result = ::write(write_descriptor_, &counter, sizeof(uint64_t)); - (void)result; - } - - // Reset the select interrupt. Returns true if the call was interrupted. - bool reset() - { - if (write_descriptor_ == read_descriptor_) - { - // Only perform one read. The kernel maintains an atomic counter. - uint64_t counter(0); - int bytes_read = ::read(read_descriptor_, &counter, sizeof(uint64_t)); - bool was_interrupted = (bytes_read > 0); - return was_interrupted; - } - else - { - // Clear all data from the pipe. - char data[1024]; - int bytes_read = ::read(read_descriptor_, data, sizeof(data)); - bool was_interrupted = (bytes_read > 0); - while (bytes_read == sizeof(data)) - bytes_read = ::read(read_descriptor_, data, sizeof(data)); - return was_interrupted; - } - } - - // Get the read descriptor to be passed to select. - int read_descriptor() const - { - return read_descriptor_; - } - -private: - // The read end of a connection used to interrupt the select call. This file - // descriptor is passed to select such that when it is time to stop, a single - // 64bit value will be written on the other end of the connection and this - // descriptor will become readable. - int read_descriptor_; - - // The write end of a connection used to interrupt the select call. A single - // 64bit non-zero value may be written to this to wake up the select which is - // waiting for the other end to become readable. This descriptor will only - // differ from the read descriptor when a pipe is used. - int write_descriptor_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_EVENTFD) - -#include - -#endif // BOOST_ASIO_DETAIL_EVENTFD_SELECT_INTERRUPTER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/fd_set_adapter.hpp b/3rdParty/Boost/boost/asio/detail/fd_set_adapter.hpp deleted file mode 100644 index 3fff01e..0000000 --- a/3rdParty/Boost/boost/asio/detail/fd_set_adapter.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// fd_set_adapter.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_FD_SET_ADAPTER_HPP -#define BOOST_ASIO_DETAIL_FD_SET_ADAPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -typedef win_fd_set_adapter fd_set_adapter; -#else -typedef posix_fd_set_adapter fd_set_adapter; -#endif - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_FD_SET_ADAPTER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/handler_alloc_helpers.hpp b/3rdParty/Boost/boost/asio/detail/handler_alloc_helpers.hpp deleted file mode 100644 index bfc918b..0000000 --- a/3rdParty/Boost/boost/asio/detail/handler_alloc_helpers.hpp +++ /dev/null @@ -1,258 +0,0 @@ -// -// handler_alloc_helpers.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_HANDLER_ALLOC_HELPERS_HPP -#define BOOST_ASIO_DETAIL_HANDLER_ALLOC_HELPERS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include - -// Calls to asio_handler_allocate and asio_handler_deallocate must be made from -// a namespace that does not contain any overloads of these functions. The -// boost_asio_handler_alloc_helpers namespace is defined here for that purpose. -namespace boost_asio_handler_alloc_helpers { - -template -inline void* allocate(std::size_t s, Handler* h) -{ -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - return ::operator new(s); -#else - using namespace boost::asio; - return asio_handler_allocate(s, h); -#endif -} - -template -inline void deallocate(void* p, std::size_t s, Handler* h) -{ -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - ::operator delete(p); -#else - using namespace boost::asio; - asio_handler_deallocate(p, s, h); -#endif -} - -} // namespace boost_asio_handler_alloc_helpers - -namespace boost { -namespace asio { -namespace detail { - -// Traits for handler allocation. -template -struct handler_alloc_traits -{ - typedef Handler handler_type; - typedef Object value_type; - typedef Object* pointer_type; - BOOST_STATIC_CONSTANT(std::size_t, value_size = sizeof(Object)); -}; - -template -class handler_ptr; - -// Helper class to provide RAII on uninitialised handler memory. -template -class raw_handler_ptr - : private noncopyable -{ -public: - typedef typename Alloc_Traits::handler_type handler_type; - typedef typename Alloc_Traits::value_type value_type; - typedef typename Alloc_Traits::pointer_type pointer_type; - BOOST_STATIC_CONSTANT(std::size_t, value_size = Alloc_Traits::value_size); - - // Constructor allocates the memory. - raw_handler_ptr(handler_type& handler) - : handler_(handler), - pointer_(static_cast( - boost_asio_handler_alloc_helpers::allocate(value_size, &handler_))) - { - } - - // Destructor automatically deallocates memory, unless it has been stolen by - // a handler_ptr object. - ~raw_handler_ptr() - { - if (pointer_) - boost_asio_handler_alloc_helpers::deallocate( - pointer_, value_size, &handler_); - } - -private: - friend class handler_ptr; - handler_type& handler_; - pointer_type pointer_; -}; - -// Helper class to provide RAII on uninitialised handler memory. -template -class handler_ptr - : private noncopyable -{ -public: - typedef typename Alloc_Traits::handler_type handler_type; - typedef typename Alloc_Traits::value_type value_type; - typedef typename Alloc_Traits::pointer_type pointer_type; - BOOST_STATIC_CONSTANT(std::size_t, value_size = Alloc_Traits::value_size); - typedef raw_handler_ptr raw_ptr_type; - - // Take ownership of existing memory. - handler_ptr(handler_type& handler, pointer_type pointer) - : handler_(handler), - pointer_(pointer) - { - } - - // Construct object in raw memory and take ownership if construction succeeds. - handler_ptr(raw_ptr_type& raw_ptr) - : handler_(raw_ptr.handler_), - pointer_(new (raw_ptr.pointer_) value_type) - { - raw_ptr.pointer_ = 0; - } - - // Construct object in raw memory and take ownership if construction succeeds. - template - handler_ptr(raw_ptr_type& raw_ptr, Arg1& a1) - : handler_(raw_ptr.handler_), - pointer_(new (raw_ptr.pointer_) value_type(a1)) - { - raw_ptr.pointer_ = 0; - } - - // Construct object in raw memory and take ownership if construction succeeds. - template - handler_ptr(raw_ptr_type& raw_ptr, Arg1& a1, Arg2& a2) - : handler_(raw_ptr.handler_), - pointer_(new (raw_ptr.pointer_) value_type(a1, a2)) - { - raw_ptr.pointer_ = 0; - } - - // Construct object in raw memory and take ownership if construction succeeds. - template - handler_ptr(raw_ptr_type& raw_ptr, Arg1& a1, Arg2& a2, Arg3& a3) - : handler_(raw_ptr.handler_), - pointer_(new (raw_ptr.pointer_) value_type(a1, a2, a3)) - { - raw_ptr.pointer_ = 0; - } - - // Construct object in raw memory and take ownership if construction succeeds. - template - handler_ptr(raw_ptr_type& raw_ptr, Arg1& a1, Arg2& a2, Arg3& a3, Arg4& a4) - : handler_(raw_ptr.handler_), - pointer_(new (raw_ptr.pointer_) value_type(a1, a2, a3, a4)) - { - raw_ptr.pointer_ = 0; - } - - // Construct object in raw memory and take ownership if construction succeeds. - template - handler_ptr(raw_ptr_type& raw_ptr, Arg1& a1, Arg2& a2, Arg3& a3, Arg4& a4, - Arg5& a5) - : handler_(raw_ptr.handler_), - pointer_(new (raw_ptr.pointer_) value_type(a1, a2, a3, a4, a5)) - { - raw_ptr.pointer_ = 0; - } - - // Construct object in raw memory and take ownership if construction succeeds. - template - handler_ptr(raw_ptr_type& raw_ptr, Arg1& a1, Arg2& a2, Arg3& a3, Arg4& a4, - Arg5& a5, Arg6& a6) - : handler_(raw_ptr.handler_), - pointer_(new (raw_ptr.pointer_) value_type(a1, a2, a3, a4, a5, a6)) - { - raw_ptr.pointer_ = 0; - } - - // Construct object in raw memory and take ownership if construction succeeds. - template - handler_ptr(raw_ptr_type& raw_ptr, Arg1& a1, Arg2& a2, Arg3& a3, Arg4& a4, - Arg5& a5, Arg6& a6, Arg7& a7) - : handler_(raw_ptr.handler_), - pointer_(new (raw_ptr.pointer_) value_type(a1, a2, a3, a4, a5, a6, a7)) - { - raw_ptr.pointer_ = 0; - } - - // Construct object in raw memory and take ownership if construction succeeds. - template - handler_ptr(raw_ptr_type& raw_ptr, Arg1& a1, Arg2& a2, Arg3& a3, Arg4& a4, - Arg5& a5, Arg6& a6, Arg7& a7, Arg8& a8) - : handler_(raw_ptr.handler_), - pointer_(new (raw_ptr.pointer_) value_type( - a1, a2, a3, a4, a5, a6, a7, a8)) - { - raw_ptr.pointer_ = 0; - } - - // Destructor automatically deallocates memory, unless it has been released. - ~handler_ptr() - { - reset(); - } - - // Get the memory. - pointer_type get() const - { - return pointer_; - } - - // Release ownership of the memory. - pointer_type release() - { - pointer_type tmp = pointer_; - pointer_ = 0; - return tmp; - } - - // Explicitly destroy and deallocate the memory. - void reset() - { - if (pointer_) - { - pointer_->value_type::~value_type(); - boost_asio_handler_alloc_helpers::deallocate( - pointer_, value_size, &handler_); - pointer_ = 0; - } - } - -private: - handler_type& handler_; - pointer_type pointer_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_HANDLER_ALLOC_HELPERS_HPP diff --git a/3rdParty/Boost/boost/asio/detail/handler_base_from_member.hpp b/3rdParty/Boost/boost/asio/detail/handler_base_from_member.hpp deleted file mode 100644 index 4bd95ed..0000000 --- a/3rdParty/Boost/boost/asio/detail/handler_base_from_member.hpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// handler_base_from_member.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_HANDLER_BASE_FROM_MEMBER_HPP -#define BOOST_ASIO_DETAIL_HANDLER_BASE_FROM_MEMBER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// Base class for classes that need a handler data member. Forwards the custom -// allocation and invocation hooks to the contained handler. -template -class handler_base_from_member -{ -public: - handler_base_from_member(Handler handler) - : handler_(handler) - { - } - -//protected: - Handler handler_; - -protected: - // Protected destructor to prevent deletion through this type. - ~handler_base_from_member() - { - } -}; - -template -inline void* asio_handler_allocate(std::size_t size, - handler_base_from_member* this_handler) -{ - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - handler_base_from_member* this_handler) -{ - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - handler_base_from_member* this_handler) -{ - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); -} - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_HANDLER_BASE_FROM_MEMBER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/handler_invoke_helpers.hpp b/3rdParty/Boost/boost/asio/detail/handler_invoke_helpers.hpp deleted file mode 100644 index 4da384a..0000000 --- a/3rdParty/Boost/boost/asio/detail/handler_invoke_helpers.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// -// handler_invoke_helpers.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_HANDLER_INVOKE_HELPERS_HPP -#define BOOST_ASIO_DETAIL_HANDLER_INVOKE_HELPERS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include - -// Calls to asio_handler_invoke must be made from a namespace that does not -// contain overloads of this function. The boost_asio_handler_invoke_helpers -// namespace is defined here for that purpose. -namespace boost_asio_handler_invoke_helpers { - -template -inline void invoke(const Function& function, Context* context) -{ -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - Function tmp(function); - tmp(); -#else - using namespace boost::asio; - asio_handler_invoke(function, context); -#endif -} - -} // namespace boost_asio_handler_invoke_helpers - -#include - -#endif // BOOST_ASIO_DETAIL_HANDLER_INVOKE_HELPERS_HPP diff --git a/3rdParty/Boost/boost/asio/detail/handler_queue.hpp b/3rdParty/Boost/boost/asio/detail/handler_queue.hpp deleted file mode 100644 index ccc1b0c..0000000 --- a/3rdParty/Boost/boost/asio/detail/handler_queue.hpp +++ /dev/null @@ -1,231 +0,0 @@ -// -// handler_queue.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_HANDLER_QUEUE_HPP -#define BOOST_ASIO_DETAIL_HANDLER_QUEUE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class handler_queue - : private noncopyable -{ -public: - // Base class for handlers in the queue. - class handler - : private noncopyable - { - public: - void invoke() - { - invoke_func_(this); - } - - void destroy() - { - destroy_func_(this); - } - - protected: - typedef void (*invoke_func_type)(handler*); - typedef void (*destroy_func_type)(handler*); - - handler(invoke_func_type invoke_func, - destroy_func_type destroy_func) - : next_(0), - invoke_func_(invoke_func), - destroy_func_(destroy_func) - { - } - - ~handler() - { - } - - private: - friend class handler_queue; - handler* next_; - invoke_func_type invoke_func_; - destroy_func_type destroy_func_; - }; - - // Smart point to manager handler lifetimes. - class scoped_ptr - : private noncopyable - { - public: - explicit scoped_ptr(handler* h) - : handler_(h) - { - } - - ~scoped_ptr() - { - if (handler_) - handler_->destroy(); - } - - handler* get() const - { - return handler_; - } - - handler* release() - { - handler* tmp = handler_; - handler_ = 0; - return tmp; - } - - private: - handler* handler_; - }; - - // Constructor. - handler_queue() - : front_(0), - back_(0) - { - } - - // Wrap a handler to be pushed into the queue. - template - static handler* wrap(Handler h) - { - // Allocate and construct an object to wrap the handler. - typedef handler_wrapper value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(h); - handler_ptr ptr(raw_ptr, h); - return ptr.release(); - } - - // Get the handler at the front of the queue. - handler* front() - { - return front_; - } - - // Pop a handler from the front of the queue. - void pop() - { - if (front_) - { - handler* tmp = front_; - front_ = front_->next_; - if (front_ == 0) - back_ = 0; - tmp->next_= 0; - } - } - - // Push a handler on to the back of the queue. - void push(handler* h) - { - h->next_ = 0; - if (back_) - { - back_->next_ = h; - back_ = h; - } - else - { - front_ = back_ = h; - } - } - - // Whether the queue is empty. - bool empty() const - { - return front_ == 0; - } - -private: - // Template wrapper for handlers. - template - class handler_wrapper - : public handler - { - public: - handler_wrapper(Handler h) - : handler( - &handler_wrapper::do_call, - &handler_wrapper::do_destroy), - handler_(h) - { - } - - static void do_call(handler* base) - { - // Take ownership of the handler object. - typedef handler_wrapper this_type; - this_type* h(static_cast(base)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(h->handler_, h); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(h->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Make the upcall. - boost_asio_handler_invoke_helpers::invoke(handler, &handler); - } - - static void do_destroy(handler* base) - { - // Take ownership of the handler object. - typedef handler_wrapper this_type; - this_type* h(static_cast(base)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(h->handler_, h); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(h->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - private: - Handler handler_; - }; - - // The front of the queue. - handler* front_; - - // The back of the queue. - handler* back_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_HANDLER_QUEUE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/hash_map.hpp b/3rdParty/Boost/boost/asio/detail/hash_map.hpp deleted file mode 100644 index 923ae57..0000000 --- a/3rdParty/Boost/boost/asio/detail/hash_map.hpp +++ /dev/null @@ -1,292 +0,0 @@ -// -// hash_map.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_HASH_MAP_HPP -#define BOOST_ASIO_DETAIL_HASH_MAP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -inline std::size_t calculate_hash_value(const T& t) -{ - return boost::hash_value(t); -} - -#if defined(_WIN64) -inline std::size_t calculate_hash_value(SOCKET s) -{ - return static_cast(s); -} -#endif // defined(_WIN64) - -// Note: assumes K and V are POD types. -template -class hash_map - : private noncopyable -{ -public: - // The type of a value in the map. - typedef std::pair value_type; - - // The type of a non-const iterator over the hash map. - typedef typename std::list::iterator iterator; - - // The type of a const iterator over the hash map. - typedef typename std::list::const_iterator const_iterator; - - // Constructor. - hash_map() - : size_(0) - { - rehash(hash_size(0)); - } - - // Get an iterator for the beginning of the map. - iterator begin() - { - return values_.begin(); - } - - // Get an iterator for the beginning of the map. - const_iterator begin() const - { - return values_.begin(); - } - - // Get an iterator for the end of the map. - iterator end() - { - return values_.end(); - } - - // Get an iterator for the end of the map. - const_iterator end() const - { - return values_.end(); - } - - // Check whether the map is empty. - bool empty() const - { - return values_.empty(); - } - - // Find an entry in the map. - iterator find(const K& k) - { - size_t bucket = calculate_hash_value(k) % buckets_.size(); - iterator it = buckets_[bucket].first; - if (it == values_.end()) - return values_.end(); - iterator end = buckets_[bucket].last; - ++end; - while (it != end) - { - if (it->first == k) - return it; - ++it; - } - return values_.end(); - } - - // Find an entry in the map. - const_iterator find(const K& k) const - { - size_t bucket = calculate_hash_value(k) % buckets_.size(); - const_iterator it = buckets_[bucket].first; - if (it == values_.end()) - return it; - const_iterator end = buckets_[bucket].last; - ++end; - while (it != end) - { - if (it->first == k) - return it; - ++it; - } - return values_.end(); - } - - // Insert a new entry into the map. - std::pair insert(const value_type& v) - { - if (size_ + 1 >= buckets_.size()) - rehash(hash_size(size_ + 1)); - size_t bucket = calculate_hash_value(v.first) % buckets_.size(); - iterator it = buckets_[bucket].first; - if (it == values_.end()) - { - buckets_[bucket].first = buckets_[bucket].last = - values_insert(values_.end(), v); - ++size_; - return std::pair(buckets_[bucket].last, true); - } - iterator end = buckets_[bucket].last; - ++end; - while (it != end) - { - if (it->first == v.first) - return std::pair(it, false); - ++it; - } - buckets_[bucket].last = values_insert(end, v); - ++size_; - return std::pair(buckets_[bucket].last, true); - } - - // Erase an entry from the map. - void erase(iterator it) - { - assert(it != values_.end()); - - size_t bucket = calculate_hash_value(it->first) % buckets_.size(); - bool is_first = (it == buckets_[bucket].first); - bool is_last = (it == buckets_[bucket].last); - if (is_first && is_last) - buckets_[bucket].first = buckets_[bucket].last = values_.end(); - else if (is_first) - ++buckets_[bucket].first; - else if (is_last) - --buckets_[bucket].last; - - values_erase(it); - --size_; - } - - // Remove all entries from the map. - void clear() - { - // Clear the values. - values_.clear(); - size_ = 0; - - // Initialise all buckets to empty. - for (size_t i = 0; i < buckets_.size(); ++i) - buckets_[i].first = buckets_[i].last = values_.end(); - } - -private: - // Calculate the hash size for the specified number of elements. - static std::size_t hash_size(std::size_t num_elems) - { - static std::size_t sizes[] = - { -#if defined(BOOST_ASIO_HASH_MAP_BUCKETS) - BOOST_ASIO_HASH_MAP_BUCKETS -#else // BOOST_ASIO_HASH_MAP_BUCKETS - 3, 13, 23, 53, 97, 193, 389, 769, 1543, 3079, 6151, 12289, 24593, - 49157, 98317, 196613, 393241, 786433, 1572869, 3145739, 6291469, - 12582917, 25165843 -#endif // BOOST_ASIO_HASH_MAP_BUCKETS - }; - const std::size_t nth_size = sizeof(sizes) / sizeof(std::size_t) - 1; - for (std::size_t i = 0; i < nth_size; ++i) - if (num_elems < sizes[i]) - return sizes[i]; - return sizes[nth_size]; - } - - // Re-initialise the hash from the values already contained in the list. - void rehash(std::size_t num_buckets) - { - iterator end = values_.end(); - - // Update number of buckets and initialise all buckets to empty. - buckets_.resize(num_buckets); - for (std::size_t i = 0; i < buckets_.size(); ++i) - buckets_[i].first = buckets_[i].last = end; - - // Put all values back into the hash. - iterator iter = values_.begin(); - while (iter != end) - { - std::size_t bucket = calculate_hash_value(iter->first) % buckets_.size(); - if (buckets_[bucket].last == end) - { - buckets_[bucket].first = buckets_[bucket].last = iter++; - } - else - { - values_.splice(++buckets_[bucket].last, values_, iter++); - --buckets_[bucket].last; - } - } - } - - // Insert an element into the values list by splicing from the spares list, - // if a spare is available, and otherwise by inserting a new element. - iterator values_insert(iterator it, const value_type& v) - { - if (spares_.empty()) - { - return values_.insert(it, v); - } - else - { - spares_.front() = v; - values_.splice(it, spares_, spares_.begin()); - return --it; - } - } - - // Erase an element from the values list by splicing it to the spares list. - void values_erase(iterator it) - { - *it = value_type(); - spares_.splice(spares_.begin(), values_, it); - } - - // The number of elements in the hash. - std::size_t size_; - - // The list of all values in the hash map. - std::list values_; - - // The list of spare nodes waiting to be recycled. Assumes that POD types only - // are stored in the hash map. - std::list spares_; - - // The type for a bucket in the hash table. - struct bucket_type - { - iterator first; - iterator last; - }; - - // The buckets in the hash. - std::vector buckets_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_HASH_MAP_HPP diff --git a/3rdParty/Boost/boost/asio/detail/indirect_handler_queue.hpp b/3rdParty/Boost/boost/asio/detail/indirect_handler_queue.hpp deleted file mode 100644 index 2775078..0000000 --- a/3rdParty/Boost/boost/asio/detail/indirect_handler_queue.hpp +++ /dev/null @@ -1,293 +0,0 @@ -// -// indirect_handler_queue.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_INDIRECT_HANDLER_QUEUE_HPP -#define BOOST_ASIO_DETAIL_INDIRECT_HANDLER_QUEUE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if defined(_MSC_VER) && (_MSC_VER >= 1310) -extern "C" void _ReadWriteBarrier(); -# pragma intrinsic(_ReadWriteBarrier) -#endif // defined(_MSC_VER) && (_MSC_VER >= 1310) - -namespace boost { -namespace asio { -namespace detail { - -class indirect_handler_queue - : private noncopyable -{ -public: - class handler; - - // Element for a node in the queue. - class node - { - public: - node() - : version_(0), - handler_(0), - next_(0) - { - } - - private: - friend class indirect_handler_queue; - unsigned long version_; - handler* handler_; - node* next_; - }; - - // Base class for handlers in the queue. - class handler - : private noncopyable - { - public: - void invoke() - { - invoke_func_(this); - } - - void destroy() - { - destroy_func_(this); - } - - protected: - typedef void (*invoke_func_type)(handler*); - typedef void (*destroy_func_type)(handler*); - - handler(invoke_func_type invoke_func, - destroy_func_type destroy_func) - : node_(new node), - invoke_func_(invoke_func), - destroy_func_(destroy_func) - { - } - - ~handler() - { - if (node_) - delete node_; - } - - private: - friend class indirect_handler_queue; - node* node_; - invoke_func_type invoke_func_; - destroy_func_type destroy_func_; - }; - - // Smart point to manager handler lifetimes. - class scoped_ptr - : private noncopyable - { - public: - explicit scoped_ptr(handler* h) - : handler_(h) - { - } - - ~scoped_ptr() - { - if (handler_) - handler_->destroy(); - } - - handler* get() const - { - return handler_; - } - - handler* release() - { - handler* tmp = handler_; - handler_ = 0; - return tmp; - } - - private: - handler* handler_; - }; - - // Constructor. - indirect_handler_queue() - : front_(new node), - back_(front_), - next_version_(1) - { - } - - // Destructor. - ~indirect_handler_queue() - { - while (front_) - { - node* tmp = front_; - front_ = front_->next_; - delete tmp; - } - } - - // Wrap a handler to be pushed into the queue. - template - static handler* wrap(Handler h) - { - // Allocate and construct an object to wrap the handler. - typedef handler_wrapper value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(h); - handler_ptr ptr(raw_ptr, h); - return ptr.release(); - } - - // Determine whether the queue has something ready to pop. - bool poppable() - { - return front_->next_ != 0; - } - - // The version number at the front of the queue. - unsigned long front_version() - { - return front_->version_; - } - - // The version number at the back of the queue. - unsigned long back_version() - { - return back_->version_; - } - - // Pop a handler from the front of the queue. - handler* pop() - { - node* n = front_; - node* new_front = n->next_; - if (new_front) - { - handler* h = new_front->handler_; - h->node_ = n; - new_front->handler_ = 0; - front_ = new_front; - return h; - } - return 0; - } - - // Push a handler on to the back of the queue. - void push(handler* h) - { - node* n = h->node_; - h->node_ = 0; - n->version_ = next_version_; - next_version_ += 2; - n->handler_ = h; - n->next_ = 0; - memory_barrier(); - back_->next_ = n; - back_ = n; - } - -private: - // Template wrapper for handlers. - template - class handler_wrapper - : public handler - { - public: - handler_wrapper(Handler h) - : handler( - &handler_wrapper::do_call, - &handler_wrapper::do_destroy), - handler_(h) - { - } - - static void do_call(handler* base) - { - // Take ownership of the handler object. - typedef handler_wrapper this_type; - this_type* h(static_cast(base)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(h->handler_, h); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(h->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Make the upcall. - boost_asio_handler_invoke_helpers::invoke(handler, &handler); - } - - static void do_destroy(handler* base) - { - // Take ownership of the handler object. - typedef handler_wrapper this_type; - this_type* h(static_cast(base)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(h->handler_, h); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(h->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - private: - Handler handler_; - }; - - // Helper function to create a memory barrier. - static void memory_barrier() - { -#if defined(_GLIBCXX_WRITE_MEM_BARRIER) - _GLIBCXX_WRITE_MEM_BARRIER; -#elif defined(_MSC_VER) && (_MSC_VER >= 1310) - _ReadWriteBarrier(); -#else -# error memory barrier required -#endif - } - - // The front of the queue. - node* front_; - - // The back of the queue. - node* back_; - - // The next version counter to be assigned to a node. - unsigned long next_version_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_INDIRECT_HANDLER_QUEUE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/io_control.hpp b/3rdParty/Boost/boost/asio/detail/io_control.hpp deleted file mode 100644 index 6730dc3..0000000 --- a/3rdParty/Boost/boost/asio/detail/io_control.hpp +++ /dev/null @@ -1,139 +0,0 @@ -// -// io_control.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_IO_CONTROL_HPP -#define BOOST_ASIO_DETAIL_IO_CONTROL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include - -namespace boost { -namespace asio { -namespace detail { -namespace io_control { - -// IO control command for non-blocking I/O. -class non_blocking_io -{ -public: - // Default constructor. - non_blocking_io() - : value_(0) - { - } - - // Construct with a specific command value. - non_blocking_io(bool value) - : value_(value ? 1 : 0) - { - } - - // Get the name of the IO control command. - int name() const - { - return FIONBIO; - } - - // Set the value of the I/O control command. - void set(bool value) - { - value_ = value ? 1 : 0; - } - - // Get the current value of the I/O control command. - bool get() const - { - return value_ != 0; - } - - // Get the address of the command data. - detail::ioctl_arg_type* data() - { - return &value_; - } - - // Get the address of the command data. - const detail::ioctl_arg_type* data() const - { - return &value_; - } - -private: - detail::ioctl_arg_type value_; -}; - -// I/O control command for getting number of bytes available. -class bytes_readable -{ -public: - // Default constructor. - bytes_readable() - : value_(0) - { - } - - // Construct with a specific command value. - bytes_readable(std::size_t value) - : value_(static_cast(value)) - { - } - - // Get the name of the IO control command. - int name() const - { - return FIONREAD; - } - - // Set the value of the I/O control command. - void set(std::size_t value) - { - value_ = static_cast(value); - } - - // Get the current value of the I/O control command. - std::size_t get() const - { - return static_cast(value_); - } - - // Get the address of the command data. - detail::ioctl_arg_type* data() - { - return &value_; - } - - // Get the address of the command data. - const detail::ioctl_arg_type* data() const - { - return &value_; - } - -private: - detail::ioctl_arg_type value_; -}; - -} // namespace io_control -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_IO_CONTROL_HPP diff --git a/3rdParty/Boost/boost/asio/detail/kqueue_reactor.hpp b/3rdParty/Boost/boost/asio/detail/kqueue_reactor.hpp deleted file mode 100644 index 179b7d4..0000000 --- a/3rdParty/Boost/boost/asio/detail/kqueue_reactor.hpp +++ /dev/null @@ -1,714 +0,0 @@ -// -// kqueue_reactor.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_DETAIL_KQUEUE_REACTOR_HPP -#define BOOST_ASIO_DETAIL_KQUEUE_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_KQUEUE) - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Older versions of Mac OS X may not define EV_OOBAND. -#if !defined(EV_OOBAND) -# define EV_OOBAND EV_FLAG1 -#endif // !defined(EV_OOBAND) - -namespace boost { -namespace asio { -namespace detail { - -template -class kqueue_reactor - : public boost::asio::detail::service_base > -{ -public: - // Per-descriptor data. - struct per_descriptor_data - { - bool allow_speculative_read; - bool allow_speculative_write; - }; - - // Constructor. - kqueue_reactor(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - kqueue_reactor >(io_service), - mutex_(), - kqueue_fd_(do_kqueue_create()), - wait_in_progress_(false), - interrupter_(), - read_op_queue_(), - write_op_queue_(), - except_op_queue_(), - pending_cancellations_(), - stop_thread_(false), - thread_(0), - shutdown_(false), - need_kqueue_wait_(true) - { - // Start the reactor's internal thread only if needed. - if (Own_Thread) - { - boost::asio::detail::signal_blocker sb; - thread_ = new boost::asio::detail::thread( - bind_handler(&kqueue_reactor::call_run_thread, this)); - } - - // Add the interrupter's descriptor to the kqueue. - struct kevent event; - EV_SET(&event, interrupter_.read_descriptor(), - EVFILT_READ, EV_ADD, 0, 0, 0); - ::kevent(kqueue_fd_, &event, 1, 0, 0, 0); - } - - // Destructor. - ~kqueue_reactor() - { - shutdown_service(); - close(kqueue_fd_); - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; - stop_thread_ = true; - lock.unlock(); - - if (thread_) - { - interrupter_.interrupt(); - thread_->join(); - delete thread_; - thread_ = 0; - } - - read_op_queue_.destroy_operations(); - write_op_queue_.destroy_operations(); - except_op_queue_.destroy_operations(); - - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - timer_queues_[i]->destroy_timers(); - timer_queues_.clear(); - } - - // Initialise the task, but only if the reactor is not in its own thread. - void init_task() - { - if (!Own_Thread) - { - typedef task_io_service > task_io_service_type; - use_service(this->get_io_service()).init_task(); - } - } - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - int register_descriptor(socket_type, per_descriptor_data& descriptor_data) - { - descriptor_data.allow_speculative_read = true; - descriptor_data.allow_speculative_write = true; - - return 0; - } - - // Start a new read operation. The handler object will be invoked when the - // given descriptor is ready to be read, or an error has occurred. - template - void start_read_op(socket_type descriptor, - per_descriptor_data& descriptor_data, Handler handler, - bool allow_speculative_read = true) - { - if (allow_speculative_read && descriptor_data.allow_speculative_read) - { - boost::system::error_code ec; - std::size_t bytes_transferred = 0; - if (handler.perform(ec, bytes_transferred)) - { - handler.complete(ec, bytes_transferred); - return; - } - - // We only get one shot at a speculative read in this function. - allow_speculative_read = false; - } - - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - if (!allow_speculative_read) - need_kqueue_wait_ = true; - else if (!read_op_queue_.has_operation(descriptor)) - { - // Speculative reads are ok as there are no queued read operations. - descriptor_data.allow_speculative_read = true; - - boost::system::error_code ec; - std::size_t bytes_transferred = 0; - if (handler.perform(ec, bytes_transferred)) - { - handler.complete(ec, bytes_transferred); - return; - } - } - - // Speculative reads are not ok as there will be queued read operations. - descriptor_data.allow_speculative_read = false; - - if (read_op_queue_.enqueue_operation(descriptor, handler)) - { - struct kevent event; - EV_SET(&event, descriptor, EVFILT_READ, EV_ADD, 0, 0, 0); - if (::kevent(kqueue_fd_, &event, 1, 0, 0, 0) == -1) - { - boost::system::error_code ec(errno, - boost::asio::error::get_system_category()); - read_op_queue_.perform_all_operations(descriptor, ec); - } - } - } - - // Start a new write operation. The handler object will be invoked when the - // given descriptor is ready to be written, or an error has occurred. - template - void start_write_op(socket_type descriptor, - per_descriptor_data& descriptor_data, Handler handler, - bool allow_speculative_write = true) - { - if (allow_speculative_write && descriptor_data.allow_speculative_write) - { - boost::system::error_code ec; - std::size_t bytes_transferred = 0; - if (handler.perform(ec, bytes_transferred)) - { - handler.complete(ec, bytes_transferred); - return; - } - - // We only get one shot at a speculative write in this function. - allow_speculative_write = false; - } - - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - if (!allow_speculative_write) - need_kqueue_wait_ = true; - else if (!write_op_queue_.has_operation(descriptor)) - { - // Speculative writes are ok as there are no queued write operations. - descriptor_data.allow_speculative_write = true; - - boost::system::error_code ec; - std::size_t bytes_transferred = 0; - if (handler.perform(ec, bytes_transferred)) - { - handler.complete(ec, bytes_transferred); - return; - } - } - - // Speculative writes are not ok as there will be queued write operations. - descriptor_data.allow_speculative_write = false; - - if (write_op_queue_.enqueue_operation(descriptor, handler)) - { - struct kevent event; - EV_SET(&event, descriptor, EVFILT_WRITE, EV_ADD, 0, 0, 0); - if (::kevent(kqueue_fd_, &event, 1, 0, 0, 0) == -1) - { - boost::system::error_code ec(errno, - boost::asio::error::get_system_category()); - write_op_queue_.perform_all_operations(descriptor, ec); - } - } - } - - // Start a new exception operation. The handler object will be invoked when - // the given descriptor has exception information, or an error has occurred. - template - void start_except_op(socket_type descriptor, - per_descriptor_data&, Handler handler) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - if (except_op_queue_.enqueue_operation(descriptor, handler)) - { - struct kevent event; - if (read_op_queue_.has_operation(descriptor)) - EV_SET(&event, descriptor, EVFILT_READ, EV_ADD, 0, 0, 0); - else - EV_SET(&event, descriptor, EVFILT_READ, EV_ADD, EV_OOBAND, 0, 0); - if (::kevent(kqueue_fd_, &event, 1, 0, 0, 0) == -1) - { - boost::system::error_code ec(errno, - boost::asio::error::get_system_category()); - except_op_queue_.perform_all_operations(descriptor, ec); - } - } - } - - // Start a new write operation. The handler object will be invoked when the - // given descriptor is ready to be written, or an error has occurred. - template - void start_connect_op(socket_type descriptor, - per_descriptor_data& descriptor_data, Handler handler) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - if (shutdown_) - return; - - // Speculative writes are not ok as there will be queued write operations. - descriptor_data.allow_speculative_write = false; - - if (write_op_queue_.enqueue_operation(descriptor, handler)) - { - struct kevent event; - EV_SET(&event, descriptor, EVFILT_WRITE, EV_ADD, 0, 0, 0); - if (::kevent(kqueue_fd_, &event, 1, 0, 0, 0) == -1) - { - boost::system::error_code ec(errno, - boost::asio::error::get_system_category()); - write_op_queue_.perform_all_operations(descriptor, ec); - } - } - } - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - void cancel_ops(socket_type descriptor, per_descriptor_data&) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor); - } - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. - void close_descriptor(socket_type descriptor, per_descriptor_data&) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - // Remove the descriptor from kqueue. - struct kevent event[2]; - EV_SET(&event[0], descriptor, EVFILT_READ, EV_DELETE, 0, 0, 0); - EV_SET(&event[1], descriptor, EVFILT_WRITE, EV_DELETE, 0, 0, 0); - ::kevent(kqueue_fd_, event, 2, 0, 0, 0); - - // Cancel any outstanding operations associated with the descriptor. - cancel_ops_unlocked(descriptor); - } - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& timer_queue) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - timer_queues_.push_back(&timer_queue); - } - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& timer_queue) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - if (timer_queues_[i] == &timer_queue) - { - timer_queues_.erase(timer_queues_.begin() + i); - return; - } - } - } - - // Schedule a timer in the given timer queue to expire at the specified - // absolute time. The handler object will be invoked when the timer expires. - template - void schedule_timer(timer_queue& timer_queue, - const typename Time_Traits::time_type& time, Handler handler, void* token) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (!shutdown_) - if (timer_queue.enqueue_timer(time, handler, token)) - interrupter_.interrupt(); - } - - // Cancel the timer associated with the given token. Returns the number of - // handlers that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& timer_queue, void* token) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - std::size_t n = timer_queue.cancel_timer(token); - if (n > 0) - interrupter_.interrupt(); - return n; - } - -private: - friend class task_io_service >; - - // Run the kqueue loop. - void run(bool block) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - // Dispatch any operation cancellations that were made while the select - // loop was not running. - read_op_queue_.perform_cancellations(); - write_op_queue_.perform_cancellations(); - except_op_queue_.perform_cancellations(); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - timer_queues_[i]->dispatch_cancellations(); - - // Check if the thread is supposed to stop. - if (stop_thread_) - { - complete_operations_and_timers(lock); - return; - } - - // We can return immediately if there's no work to do and the reactor is - // not supposed to block. - if (!block && read_op_queue_.empty() && write_op_queue_.empty() - && except_op_queue_.empty() && all_timer_queues_are_empty()) - { - complete_operations_and_timers(lock); - return; - } - - // Determine how long to block while waiting for events. - timespec timeout_buf = { 0, 0 }; - timespec* timeout = block ? get_timeout(timeout_buf) : &timeout_buf; - - wait_in_progress_ = true; - lock.unlock(); - - // Block on the kqueue descriptor. - struct kevent events[128]; - int num_events = (block || need_kqueue_wait_) - ? kevent(kqueue_fd_, 0, 0, events, 128, timeout) - : 0; - - lock.lock(); - wait_in_progress_ = false; - - // Block signals while performing operations. - boost::asio::detail::signal_blocker sb; - - // Dispatch the waiting events. - for (int i = 0; i < num_events; ++i) - { - int descriptor = events[i].ident; - if (descriptor == interrupter_.read_descriptor()) - { - interrupter_.reset(); - } - else if (events[i].filter == EVFILT_READ) - { - // Dispatch operations associated with the descriptor. - bool more_reads = false; - bool more_except = false; - if (events[i].flags & EV_ERROR) - { - boost::system::error_code error( - events[i].data, boost::asio::error::get_system_category()); - except_op_queue_.perform_all_operations(descriptor, error); - read_op_queue_.perform_all_operations(descriptor, error); - } - else if (events[i].flags & EV_OOBAND) - { - boost::system::error_code error; - more_except = except_op_queue_.perform_operation(descriptor, error); - if (events[i].data > 0) - more_reads = read_op_queue_.perform_operation(descriptor, error); - else - more_reads = read_op_queue_.has_operation(descriptor); - } - else - { - boost::system::error_code error; - more_reads = read_op_queue_.perform_operation(descriptor, error); - more_except = except_op_queue_.has_operation(descriptor); - } - - // Update the descriptor in the kqueue. - struct kevent event; - if (more_reads) - EV_SET(&event, descriptor, EVFILT_READ, EV_ADD, 0, 0, 0); - else if (more_except) - EV_SET(&event, descriptor, EVFILT_READ, EV_ADD, EV_OOBAND, 0, 0); - else - EV_SET(&event, descriptor, EVFILT_READ, EV_DELETE, 0, 0, 0); - if (::kevent(kqueue_fd_, &event, 1, 0, 0, 0) == -1) - { - boost::system::error_code error(errno, - boost::asio::error::get_system_category()); - except_op_queue_.perform_all_operations(descriptor, error); - read_op_queue_.perform_all_operations(descriptor, error); - } - } - else if (events[i].filter == EVFILT_WRITE) - { - // Dispatch operations associated with the descriptor. - bool more_writes = false; - if (events[i].flags & EV_ERROR) - { - boost::system::error_code error( - events[i].data, boost::asio::error::get_system_category()); - write_op_queue_.perform_all_operations(descriptor, error); - } - else - { - boost::system::error_code error; - more_writes = write_op_queue_.perform_operation(descriptor, error); - } - - // Update the descriptor in the kqueue. - struct kevent event; - if (more_writes) - EV_SET(&event, descriptor, EVFILT_WRITE, EV_ADD, 0, 0, 0); - else - EV_SET(&event, descriptor, EVFILT_WRITE, EV_DELETE, 0, 0, 0); - if (::kevent(kqueue_fd_, &event, 1, 0, 0, 0) == -1) - { - boost::system::error_code error(errno, - boost::asio::error::get_system_category()); - write_op_queue_.perform_all_operations(descriptor, error); - } - } - } - - read_op_queue_.perform_cancellations(); - write_op_queue_.perform_cancellations(); - except_op_queue_.perform_cancellations(); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - timer_queues_[i]->dispatch_timers(); - timer_queues_[i]->dispatch_cancellations(); - } - - // Issue any pending cancellations. - for (std::size_t i = 0; i < pending_cancellations_.size(); ++i) - cancel_ops_unlocked(pending_cancellations_[i]); - pending_cancellations_.clear(); - - // Determine whether kqueue needs to be called next time the reactor is run. - need_kqueue_wait_ = !read_op_queue_.empty() - || !write_op_queue_.empty() || !except_op_queue_.empty(); - - complete_operations_and_timers(lock); - } - - // Run the select loop in the thread. - void run_thread() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - while (!stop_thread_) - { - lock.unlock(); - run(true); - lock.lock(); - } - } - - // Entry point for the select loop thread. - static void call_run_thread(kqueue_reactor* reactor) - { - reactor->run_thread(); - } - - // Interrupt the select loop. - void interrupt() - { - interrupter_.interrupt(); - } - - // Create the kqueue file descriptor. Throws an exception if the descriptor - // cannot be created. - static int do_kqueue_create() - { - int fd = kqueue(); - if (fd == -1) - { - boost::throw_exception( - boost::system::system_error( - boost::system::error_code(errno, - boost::asio::error::get_system_category()), - "kqueue")); - } - return fd; - } - - // Check if all timer queues are empty. - bool all_timer_queues_are_empty() const - { - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - if (!timer_queues_[i]->empty()) - return false; - return true; - } - - // Get the timeout value for the kevent call. - timespec* get_timeout(timespec& ts) - { - if (all_timer_queues_are_empty()) - return 0; - - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - boost::posix_time::time_duration minimum_wait_duration - = boost::posix_time::minutes(5); - - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - boost::posix_time::time_duration wait_duration - = timer_queues_[i]->wait_duration(); - if (wait_duration < minimum_wait_duration) - minimum_wait_duration = wait_duration; - } - - if (minimum_wait_duration > boost::posix_time::time_duration()) - { - ts.tv_sec = minimum_wait_duration.total_seconds(); - ts.tv_nsec = minimum_wait_duration.total_nanoseconds() % 1000000000; - } - else - { - ts.tv_sec = 0; - ts.tv_nsec = 0; - } - - return &ts; - } - - // Cancel all operations associated with the given descriptor. The do_cancel - // function of the handler objects will be invoked. This function does not - // acquire the kqueue_reactor's mutex. - void cancel_ops_unlocked(socket_type descriptor) - { - bool interrupt = read_op_queue_.cancel_operations(descriptor); - interrupt = write_op_queue_.cancel_operations(descriptor) || interrupt; - interrupt = except_op_queue_.cancel_operations(descriptor) || interrupt; - if (interrupt) - interrupter_.interrupt(); - } - - // Clean up operations and timers. We must not hold the lock since the - // destructors may make calls back into this reactor. We make a copy of the - // vector of timer queues since the original may be modified while the lock - // is not held. - void complete_operations_and_timers( - boost::asio::detail::mutex::scoped_lock& lock) - { - timer_queues_for_cleanup_ = timer_queues_; - lock.unlock(); - read_op_queue_.complete_operations(); - write_op_queue_.complete_operations(); - except_op_queue_.complete_operations(); - for (std::size_t i = 0; i < timer_queues_for_cleanup_.size(); ++i) - timer_queues_for_cleanup_[i]->complete_timers(); - } - - // Mutex to protect access to internal data. - boost::asio::detail::mutex mutex_; - - // The kqueue file descriptor. - int kqueue_fd_; - - // Whether the kqueue wait call is currently in progress - bool wait_in_progress_; - - // The interrupter is used to break a blocking kevent call. - select_interrupter interrupter_; - - // The queue of read operations. - reactor_op_queue read_op_queue_; - - // The queue of write operations. - reactor_op_queue write_op_queue_; - - // The queue of except operations. - reactor_op_queue except_op_queue_; - - // The timer queues. - std::vector timer_queues_; - - // A copy of the timer queues, used when cleaning up timers. The copy is - // stored as a class data member to avoid unnecessary memory allocation. - std::vector timer_queues_for_cleanup_; - - // The descriptors that are pending cancellation. - std::vector pending_cancellations_; - - // Does the reactor loop thread need to stop. - bool stop_thread_; - - // The thread that is running the reactor loop. - boost::asio::detail::thread* thread_; - - // Whether the service has been shut down. - bool shutdown_; - - // Whether we need to call kqueue the next time the reactor is run. - bool need_kqueue_wait_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_KQUEUE) - -#include - -#endif // BOOST_ASIO_DETAIL_KQUEUE_REACTOR_HPP diff --git a/3rdParty/Boost/boost/asio/detail/kqueue_reactor_fwd.hpp b/3rdParty/Boost/boost/asio/detail/kqueue_reactor_fwd.hpp deleted file mode 100644 index e3df284..0000000 --- a/3rdParty/Boost/boost/asio/detail/kqueue_reactor_fwd.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// kqueue_reactor_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_DETAIL_KQUEUE_REACTOR_FWD_HPP -#define BOOST_ASIO_DETAIL_KQUEUE_REACTOR_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#if !defined(BOOST_ASIO_DISABLE_KQUEUE) -#if defined(__MACH__) && defined(__APPLE__) - -// Define this to indicate that epoll is supported on the target platform. -#define BOOST_ASIO_HAS_KQUEUE 1 - -namespace boost { -namespace asio { -namespace detail { - -template -class kqueue_reactor; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(__MACH__) && defined(__APPLE__) -#endif // !defined(BOOST_ASIO_DISABLE_KQUEUE) - -#include - -#endif // BOOST_ASIO_DETAIL_KQUEUE_REACTOR_FWD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/mutex.hpp b/3rdParty/Boost/boost/asio/detail/mutex.hpp deleted file mode 100644 index 4f64a28..0000000 --- a/3rdParty/Boost/boost/asio/detail/mutex.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// mutex.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_MUTEX_HPP -#define BOOST_ASIO_DETAIL_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_HAS_THREADS) -# include -#elif defined(BOOST_WINDOWS) -# include -#elif defined(BOOST_HAS_PTHREADS) -# include -#else -# error Only Windows and POSIX are supported! -#endif - -namespace boost { -namespace asio { -namespace detail { - -#if !defined(BOOST_HAS_THREADS) -typedef null_mutex mutex; -#elif defined(BOOST_WINDOWS) -typedef win_mutex mutex; -#elif defined(BOOST_HAS_PTHREADS) -typedef posix_mutex mutex; -#endif - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_MUTEX_HPP diff --git a/3rdParty/Boost/boost/asio/detail/noncopyable.hpp b/3rdParty/Boost/boost/asio/detail/noncopyable.hpp deleted file mode 100644 index 3a09538..0000000 --- a/3rdParty/Boost/boost/asio/detail/noncopyable.hpp +++ /dev/null @@ -1,57 +0,0 @@ -// -// noncopyable.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_NONCOPYABLE_HPP -#define BOOST_ASIO_DETAIL_NONCOPYABLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -// Redefine the noncopyable class for Borland C++ since that compiler does not -// apply the empty base optimisation unless the base class contains a dummy -// char data member. -class noncopyable -{ -protected: - noncopyable() {} - ~noncopyable() {} -private: - noncopyable(const noncopyable&); - const noncopyable& operator=(const noncopyable&); - char dummy_; -}; -#else -using boost::noncopyable; -#endif - -} // namespace detail - -using boost::asio::detail::noncopyable; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_NONCOPYABLE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/null_event.hpp b/3rdParty/Boost/boost/asio/detail/null_event.hpp deleted file mode 100644 index 4b667e7..0000000 --- a/3rdParty/Boost/boost/asio/detail/null_event.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// -// null_event.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_NULL_EVENT_HPP -#define BOOST_ASIO_DETAIL_NULL_EVENT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_HAS_THREADS) - -#include - -namespace boost { -namespace asio { -namespace detail { - -class null_event - : private noncopyable -{ -public: - // Constructor. - null_event() - { - } - - // Destructor. - ~null_event() - { - } - - // Signal the event. - template - void signal(Lock&) - { - } - - // Reset the event. - template - void clear(Lock&) - { - } - - // Wait for the event to become signalled. - template - void wait(Lock&) - { - } -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(BOOST_HAS_THREADS) - -#include - -#endif // BOOST_ASIO_DETAIL_NULL_EVENT_HPP diff --git a/3rdParty/Boost/boost/asio/detail/null_mutex.hpp b/3rdParty/Boost/boost/asio/detail/null_mutex.hpp deleted file mode 100644 index 64bf871..0000000 --- a/3rdParty/Boost/boost/asio/detail/null_mutex.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// null_mutex.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_NULL_MUTEX_HPP -#define BOOST_ASIO_DETAIL_NULL_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_HAS_THREADS) - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class null_mutex - : private noncopyable -{ -public: - typedef boost::asio::detail::scoped_lock scoped_lock; - - // Constructor. - null_mutex() - { - } - - // Destructor. - ~null_mutex() - { - } - - // Lock the mutex. - void lock() - { - } - - // Unlock the mutex. - void unlock() - { - } -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(BOOST_HAS_THREADS) - -#include - -#endif // BOOST_ASIO_DETAIL_NULL_MUTEX_HPP diff --git a/3rdParty/Boost/boost/asio/detail/null_signal_blocker.hpp b/3rdParty/Boost/boost/asio/detail/null_signal_blocker.hpp deleted file mode 100644 index 1fc65c8..0000000 --- a/3rdParty/Boost/boost/asio/detail/null_signal_blocker.hpp +++ /dev/null @@ -1,65 +0,0 @@ -// -// null_signal_blocker.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP -#define BOOST_ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_HAS_THREADS) - -#include - -namespace boost { -namespace asio { -namespace detail { - -class null_signal_blocker - : private noncopyable -{ -public: - // Constructor blocks all signals for the calling thread. - null_signal_blocker() - { - } - - // Destructor restores the previous signal mask. - ~null_signal_blocker() - { - } - - // Block all signals for the calling thread. - void block() - { - } - - // Restore the previous signal mask. - void unblock() - { - } -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(BOOST_HAS_THREADS) - -#include - -#endif // BOOST_ASIO_DETAIL_NULL_SIGNAL_BLOCKER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/null_thread.hpp b/3rdParty/Boost/boost/asio/detail/null_thread.hpp deleted file mode 100644 index 5aed211..0000000 --- a/3rdParty/Boost/boost/asio/detail/null_thread.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// null_thread.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_NULL_THREAD_HPP -#define BOOST_ASIO_DETAIL_NULL_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if !defined(BOOST_HAS_THREADS) - -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class null_thread - : private noncopyable -{ -public: - // Constructor. - template - null_thread(Function f) - { - boost::system::system_error e( - boost::asio::error::operation_not_supported, "thread"); - boost::throw_exception(e); - } - - // Destructor. - ~null_thread() - { - } - - // Wait for the thread to exit. - void join() - { - } -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(BOOST_HAS_THREADS) - -#include - -#endif // BOOST_ASIO_DETAIL_NULL_THREAD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/null_tss_ptr.hpp b/3rdParty/Boost/boost/asio/detail/null_tss_ptr.hpp deleted file mode 100644 index ba4b8f8..0000000 --- a/3rdParty/Boost/boost/asio/detail/null_tss_ptr.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// -// null_tss_ptr.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_NULL_TSS_PTR_HPP -#define BOOST_ASIO_DETAIL_NULL_TSS_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_HAS_THREADS) - -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class null_tss_ptr - : private noncopyable -{ -public: - // Constructor. - null_tss_ptr() - : value_(0) - { - } - - // Destructor. - ~null_tss_ptr() - { - } - - // Get the value. - operator T*() const - { - return value_; - } - - // Set the value. - void operator=(T* value) - { - value_ = value; - } - -private: - T* value_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(BOOST_HAS_THREADS) - -#include - -#endif // BOOST_ASIO_DETAIL_NULL_TSS_PTR_HPP diff --git a/3rdParty/Boost/boost/asio/detail/old_win_sdk_compat.hpp b/3rdParty/Boost/boost/asio/detail/old_win_sdk_compat.hpp deleted file mode 100644 index 5f0aba1..0000000 --- a/3rdParty/Boost/boost/asio/detail/old_win_sdk_compat.hpp +++ /dev/null @@ -1,342 +0,0 @@ -// -// old_win_sdk_compat.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_OLD_WIN_SDK_COMPAT_HPP -#define BOOST_ASIO_DETAIL_OLD_WIN_SDK_COMPAT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -// Guess whether we are building against on old Platform SDK. -#if !defined(IN6ADDR_ANY_INIT) -#define BOOST_ASIO_HAS_OLD_WIN_SDK 1 -#endif // !defined(IN6ADDR_ANY_INIT) - -#if defined(BOOST_ASIO_HAS_OLD_WIN_SDK) - -// Emulation of types that are missing from old Platform SDKs. -// -// N.B. this emulation is also used if building for a Windows 2000 target with -// a recent (i.e. Vista or later) SDK, as the SDK does not provide IPv6 support -// in that case. - -namespace boost { -namespace asio { -namespace detail { - -enum -{ - sockaddr_storage_maxsize = 128, // Maximum size. - sockaddr_storage_alignsize = (sizeof(__int64)), // Desired alignment. - sockaddr_storage_pad1size = (sockaddr_storage_alignsize - sizeof(short)), - sockaddr_storage_pad2size = (sockaddr_storage_maxsize - - (sizeof(short) + sockaddr_storage_pad1size + sockaddr_storage_alignsize)) -}; - -struct sockaddr_storage_emulation -{ - short ss_family; - char __ss_pad1[sockaddr_storage_pad1size]; - __int64 __ss_align; - char __ss_pad2[sockaddr_storage_pad2size]; -}; - -struct in6_addr_emulation -{ - union - { - u_char Byte[16]; - u_short Word[8]; - } u; -}; - -#if !defined(s6_addr) -# define _S6_un u -# define _S6_u8 Byte -# define s6_addr _S6_un._S6_u8 -#endif // !defined(s6_addr) - -struct sockaddr_in6_emulation -{ - short sin6_family; - u_short sin6_port; - u_long sin6_flowinfo; - in6_addr_emulation sin6_addr; - u_long sin6_scope_id; -}; - -struct ipv6_mreq_emulation -{ - in6_addr_emulation ipv6mr_multiaddr; - unsigned int ipv6mr_interface; -}; - -#if !defined(IN6ADDR_ANY_INIT) -# define IN6ADDR_ANY_INIT { 0 } -#endif - -#if !defined(IN6ADDR_LOOPBACK_INIT) -# define IN6ADDR_LOOPBACK_INIT { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } -#endif - -struct addrinfo_emulation -{ - int ai_flags; - int ai_family; - int ai_socktype; - int ai_protocol; - size_t ai_addrlen; - char* ai_canonname; - sockaddr* ai_addr; - addrinfo_emulation* ai_next; -}; - -#if !defined(AI_PASSIVE) -# define AI_PASSIVE 0x1 -#endif - -#if !defined(AI_CANONNAME) -# define AI_CANONNAME 0x2 -#endif - -#if !defined(AI_NUMERICHOST) -# define AI_NUMERICHOST 0x4 -#endif - -#if !defined(EAI_AGAIN) -# define EAI_AGAIN WSATRY_AGAIN -#endif - -#if !defined(EAI_BADFLAGS) -# define EAI_BADFLAGS WSAEINVAL -#endif - -#if !defined(EAI_FAIL) -# define EAI_FAIL WSANO_RECOVERY -#endif - -#if !defined(EAI_FAMILY) -# define EAI_FAMILY WSAEAFNOSUPPORT -#endif - -#if !defined(EAI_MEMORY) -# define EAI_MEMORY WSA_NOT_ENOUGH_MEMORY -#endif - -#if !defined(EAI_NODATA) -# define EAI_NODATA WSANO_DATA -#endif - -#if !defined(EAI_NONAME) -# define EAI_NONAME WSAHOST_NOT_FOUND -#endif - -#if !defined(EAI_SERVICE) -# define EAI_SERVICE WSATYPE_NOT_FOUND -#endif - -#if !defined(EAI_SOCKTYPE) -# define EAI_SOCKTYPE WSAESOCKTNOSUPPORT -#endif - -#if !defined(NI_NOFQDN) -# define NI_NOFQDN 0x01 -#endif - -#if !defined(NI_NUMERICHOST) -# define NI_NUMERICHOST 0x02 -#endif - -#if !defined(NI_NAMEREQD) -# define NI_NAMEREQD 0x04 -#endif - -#if !defined(NI_NUMERICSERV) -# define NI_NUMERICSERV 0x08 -#endif - -#if !defined(NI_DGRAM) -# define NI_DGRAM 0x10 -#endif - -#if !defined(IPPROTO_IPV6) -# define IPPROTO_IPV6 41 -#endif - -#if !defined(IPV6_UNICAST_HOPS) -# define IPV6_UNICAST_HOPS 4 -#endif - -#if !defined(IPV6_MULTICAST_IF) -# define IPV6_MULTICAST_IF 9 -#endif - -#if !defined(IPV6_MULTICAST_HOPS) -# define IPV6_MULTICAST_HOPS 10 -#endif - -#if !defined(IPV6_MULTICAST_LOOP) -# define IPV6_MULTICAST_LOOP 11 -#endif - -#if !defined(IPV6_JOIN_GROUP) -# define IPV6_JOIN_GROUP 12 -#endif - -#if !defined(IPV6_LEAVE_GROUP) -# define IPV6_LEAVE_GROUP 13 -#endif - -inline int IN6_IS_ADDR_UNSPECIFIED(const in6_addr_emulation* a) -{ - return ((a->s6_addr[0] == 0) - && (a->s6_addr[1] == 0) - && (a->s6_addr[2] == 0) - && (a->s6_addr[3] == 0) - && (a->s6_addr[4] == 0) - && (a->s6_addr[5] == 0) - && (a->s6_addr[6] == 0) - && (a->s6_addr[7] == 0) - && (a->s6_addr[8] == 0) - && (a->s6_addr[9] == 0) - && (a->s6_addr[10] == 0) - && (a->s6_addr[11] == 0) - && (a->s6_addr[12] == 0) - && (a->s6_addr[13] == 0) - && (a->s6_addr[14] == 0) - && (a->s6_addr[15] == 0)); -} - -inline int IN6_IS_ADDR_LOOPBACK(const in6_addr_emulation* a) -{ - return ((a->s6_addr[0] == 0) - && (a->s6_addr[1] == 0) - && (a->s6_addr[2] == 0) - && (a->s6_addr[3] == 0) - && (a->s6_addr[4] == 0) - && (a->s6_addr[5] == 0) - && (a->s6_addr[6] == 0) - && (a->s6_addr[7] == 0) - && (a->s6_addr[8] == 0) - && (a->s6_addr[9] == 0) - && (a->s6_addr[10] == 0) - && (a->s6_addr[11] == 0) - && (a->s6_addr[12] == 0) - && (a->s6_addr[13] == 0) - && (a->s6_addr[14] == 0) - && (a->s6_addr[15] == 1)); -} - -inline int IN6_IS_ADDR_MULTICAST(const in6_addr_emulation* a) -{ - return (a->s6_addr[0] == 0xff); -} - -inline int IN6_IS_ADDR_LINKLOCAL(const in6_addr_emulation* a) -{ - return ((a->s6_addr[0] == 0xfe) && ((a->s6_addr[1] & 0xc0) == 0x80)); -} - -inline int IN6_IS_ADDR_SITELOCAL(const in6_addr_emulation* a) -{ - return ((a->s6_addr[0] == 0xfe) && ((a->s6_addr[1] & 0xc0) == 0xc0)); -} - -inline int IN6_IS_ADDR_V4MAPPED(const in6_addr_emulation* a) -{ - return ((a->s6_addr[0] == 0) - && (a->s6_addr[1] == 0) - && (a->s6_addr[2] == 0) - && (a->s6_addr[3] == 0) - && (a->s6_addr[4] == 0) - && (a->s6_addr[5] == 0) - && (a->s6_addr[6] == 0) - && (a->s6_addr[7] == 0) - && (a->s6_addr[8] == 0) - && (a->s6_addr[9] == 0) - && (a->s6_addr[10] == 0xff) - && (a->s6_addr[11] == 0xff)); -} - -inline int IN6_IS_ADDR_V4COMPAT(const in6_addr_emulation* a) -{ - return ((a->s6_addr[0] == 0) - && (a->s6_addr[1] == 0) - && (a->s6_addr[2] == 0) - && (a->s6_addr[3] == 0) - && (a->s6_addr[4] == 0) - && (a->s6_addr[5] == 0) - && (a->s6_addr[6] == 0) - && (a->s6_addr[7] == 0) - && (a->s6_addr[8] == 0) - && (a->s6_addr[9] == 0) - && (a->s6_addr[10] == 0xff) - && (a->s6_addr[11] == 0xff) - && !((a->s6_addr[12] == 0) - && (a->s6_addr[13] == 0) - && (a->s6_addr[14] == 0) - && ((a->s6_addr[15] == 0) || (a->s6_addr[15] == 1)))); -} - -inline int IN6_IS_ADDR_MC_NODELOCAL(const in6_addr_emulation* a) -{ - return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_addr[1] & 0xf) == 1); -} - -inline int IN6_IS_ADDR_MC_LINKLOCAL(const in6_addr_emulation* a) -{ - return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_addr[1] & 0xf) == 2); -} - -inline int IN6_IS_ADDR_MC_SITELOCAL(const in6_addr_emulation* a) -{ - return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_addr[1] & 0xf) == 5); -} - -inline int IN6_IS_ADDR_MC_ORGLOCAL(const in6_addr_emulation* a) -{ - return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_addr[1] & 0xf) == 8); -} - -inline int IN6_IS_ADDR_MC_GLOBAL(const in6_addr_emulation* a) -{ - return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_addr[1] & 0xf) == 0xe); -} - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_OLD_WIN_SDK) - -// Even newer Platform SDKs that support IPv6 may not define IPV6_V6ONLY. -#if !defined(IPV6_V6ONLY) -# define IPV6_V6ONLY 27 -#endif - -// Some SDKs (e.g. Windows CE) don't define IPPROTO_ICMPV6. -#if !defined(IPPROTO_ICMPV6) -# define IPPROTO_ICMPV6 58 -#endif - -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -#include - -#endif // BOOST_ASIO_DETAIL_OLD_WIN_SDK_COMPAT_HPP diff --git a/3rdParty/Boost/boost/asio/detail/pipe_select_interrupter.hpp b/3rdParty/Boost/boost/asio/detail/pipe_select_interrupter.hpp deleted file mode 100644 index 51b8c02..0000000 --- a/3rdParty/Boost/boost/asio/detail/pipe_select_interrupter.hpp +++ /dev/null @@ -1,117 +0,0 @@ -// -// pipe_select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_PIPE_SELECT_INTERRUPTER_HPP -#define BOOST_ASIO_DETAIL_PIPE_SELECT_INTERRUPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class pipe_select_interrupter -{ -public: - // Constructor. - pipe_select_interrupter() - { - int pipe_fds[2]; - if (pipe(pipe_fds) == 0) - { - read_descriptor_ = pipe_fds[0]; - ::fcntl(read_descriptor_, F_SETFL, O_NONBLOCK); - write_descriptor_ = pipe_fds[1]; - ::fcntl(write_descriptor_, F_SETFL, O_NONBLOCK); - } - else - { - boost::system::error_code ec(errno, - boost::asio::error::get_system_category()); - boost::system::system_error e(ec, "pipe_select_interrupter"); - boost::throw_exception(e); - } - } - - // Destructor. - ~pipe_select_interrupter() - { - if (read_descriptor_ != -1) - ::close(read_descriptor_); - if (write_descriptor_ != -1) - ::close(write_descriptor_); - } - - // Interrupt the select call. - void interrupt() - { - char byte = 0; - int result = ::write(write_descriptor_, &byte, 1); - (void)result; - } - - // Reset the select interrupt. Returns true if the call was interrupted. - bool reset() - { - char data[1024]; - int bytes_read = ::read(read_descriptor_, data, sizeof(data)); - bool was_interrupted = (bytes_read > 0); - while (bytes_read == sizeof(data)) - bytes_read = ::read(read_descriptor_, data, sizeof(data)); - return was_interrupted; - } - - // Get the read descriptor to be passed to select. - int read_descriptor() const - { - return read_descriptor_; - } - -private: - // The read end of a connection used to interrupt the select call. This file - // descriptor is passed to select such that when it is time to stop, a single - // byte will be written on the other end of the connection and this - // descriptor will become readable. - int read_descriptor_; - - // The write end of a connection used to interrupt the select call. A single - // byte may be written to this to wake up the select which is waiting for the - // other end to become readable. - int write_descriptor_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -#include - -#endif // BOOST_ASIO_DETAIL_PIPE_SELECT_INTERRUPTER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/pop_options.hpp b/3rdParty/Boost/boost/asio/detail/pop_options.hpp deleted file mode 100644 index 7f56662..0000000 --- a/3rdParty/Boost/boost/asio/detail/pop_options.hpp +++ /dev/null @@ -1,88 +0,0 @@ -// -// pop_options.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -// No header guard - -#if defined(__COMO__) - -// Comeau C++ - -#elif defined(__DMC__) - -// Digital Mars C++ - -#elif defined(__INTEL_COMPILER) || defined(__ICL) \ - || defined(__ICC) || defined(__ECC) - -// Intel C++ - -#elif defined(__GNUC__) - -// GNU C++ - -# if defined(__MINGW32__) || defined(__CYGWIN__) -# pragma pack (pop) -# endif - -#elif defined(__KCC) - -// Kai C++ - -#elif defined(__sgi) - -// SGI MIPSpro C++ - -#elif defined(__DECCXX) - -// Compaq Tru64 Unix cxx - -#elif defined(__ghs) - -// Greenhills C++ - -#elif defined(__BORLANDC__) - -// Borland C++ - -# pragma option pop -# pragma nopushoptwarn -# pragma nopackwarning - -#elif defined(__MWERKS__) - -// Metrowerks CodeWarrior - -#elif defined(__SUNPRO_CC) - -// Sun Workshop Compiler C++ - -#elif defined(__HP_aCC) - -// HP aCC - -#elif defined(__MRC__) || defined(__SC__) - -// MPW MrCpp or SCpp - -#elif defined(__IBMCPP__) - -// IBM Visual Age - -#elif defined(_MSC_VER) - -// Microsoft Visual C++ -// -// Must remain the last #elif since some other vendors (Metrowerks, for example) -// also #define _MSC_VER - -# pragma warning (pop) -# pragma pack (pop) - -#endif diff --git a/3rdParty/Boost/boost/asio/detail/posix_event.hpp b/3rdParty/Boost/boost/asio/detail/posix_event.hpp deleted file mode 100644 index f838342..0000000 --- a/3rdParty/Boost/boost/asio/detail/posix_event.hpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// posix_event.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_POSIX_EVENT_HPP -#define BOOST_ASIO_DETAIL_POSIX_EVENT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if defined(BOOST_HAS_PTHREADS) - -#include -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class posix_event - : private noncopyable -{ -public: - // Constructor. - posix_event() - : signalled_(false) - { - int error = ::pthread_cond_init(&cond_, 0); - if (error != 0) - { - boost::system::system_error e( - boost::system::error_code(error, - boost::asio::error::get_system_category()), - "event"); - boost::throw_exception(e); - } - } - - // Destructor. - ~posix_event() - { - ::pthread_cond_destroy(&cond_); - } - - // Signal the event. - template - void signal(Lock& lock) - { - BOOST_ASSERT(lock.locked()); - (void)lock; - signalled_ = true; - ::pthread_cond_signal(&cond_); // Ignore EINVAL. - } - - // Reset the event. - template - void clear(Lock& lock) - { - BOOST_ASSERT(lock.locked()); - (void)lock; - signalled_ = false; - } - - // Wait for the event to become signalled. - template - void wait(Lock& lock) - { - BOOST_ASSERT(lock.locked()); - while (!signalled_) - ::pthread_cond_wait(&cond_, &lock.mutex().mutex_); // Ignore EINVAL. - } - -private: - ::pthread_cond_t cond_; - bool signalled_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_HAS_PTHREADS) - -#include - -#endif // BOOST_ASIO_DETAIL_POSIX_EVENT_HPP diff --git a/3rdParty/Boost/boost/asio/detail/posix_fd_set_adapter.hpp b/3rdParty/Boost/boost/asio/detail/posix_fd_set_adapter.hpp deleted file mode 100644 index 121b396..0000000 --- a/3rdParty/Boost/boost/asio/detail/posix_fd_set_adapter.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// posix_fd_set_adapter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_POSIX_FD_SET_ADAPTER_HPP -#define BOOST_ASIO_DETAIL_POSIX_FD_SET_ADAPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include - -#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -namespace boost { -namespace asio { -namespace detail { - -// Adapts the FD_SET type to meet the Descriptor_Set concept's requirements. -class posix_fd_set_adapter -{ -public: - posix_fd_set_adapter() - : max_descriptor_(invalid_socket) - { - using namespace std; // Needed for memset on Solaris. - FD_ZERO(&fd_set_); - } - - bool set(socket_type descriptor) - { - if (descriptor < (socket_type)FD_SETSIZE) - { - if (max_descriptor_ == invalid_socket || descriptor > max_descriptor_) - max_descriptor_ = descriptor; - FD_SET(descriptor, &fd_set_); - return true; - } - return false; - } - - bool is_set(socket_type descriptor) const - { - return FD_ISSET(descriptor, &fd_set_) != 0; - } - - operator fd_set*() - { - return &fd_set_; - } - - socket_type max_descriptor() const - { - return max_descriptor_; - } - -private: - mutable fd_set fd_set_; - socket_type max_descriptor_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -#include - -#endif // BOOST_ASIO_DETAIL_POSIX_FD_SET_ADAPTER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/posix_mutex.hpp b/3rdParty/Boost/boost/asio/detail/posix_mutex.hpp deleted file mode 100644 index 219d6d0..0000000 --- a/3rdParty/Boost/boost/asio/detail/posix_mutex.hpp +++ /dev/null @@ -1,109 +0,0 @@ -// -// posix_mutex.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_POSIX_MUTEX_HPP -#define BOOST_ASIO_DETAIL_POSIX_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if defined(BOOST_HAS_PTHREADS) - -#include -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class posix_event; - -class posix_mutex - : private noncopyable -{ -public: - typedef boost::asio::detail::scoped_lock scoped_lock; - - // Constructor. - posix_mutex() - { - int error = ::pthread_mutex_init(&mutex_, 0); - if (error != 0) - { - boost::system::system_error e( - boost::system::error_code(error, - boost::asio::error::get_system_category()), - "mutex"); - boost::throw_exception(e); - } - } - - // Destructor. - ~posix_mutex() - { - ::pthread_mutex_destroy(&mutex_); - } - - // Lock the mutex. - void lock() - { - int error = ::pthread_mutex_lock(&mutex_); - if (error != 0) - { - boost::system::system_error e( - boost::system::error_code(error, - boost::asio::error::get_system_category()), - "mutex"); - boost::throw_exception(e); - } - } - - // Unlock the mutex. - void unlock() - { - int error = ::pthread_mutex_unlock(&mutex_); - if (error != 0) - { - boost::system::system_error e( - boost::system::error_code(error, - boost::asio::error::get_system_category()), - "mutex"); - boost::throw_exception(e); - } - } - -private: - friend class posix_event; - ::pthread_mutex_t mutex_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_HAS_PTHREADS) - -#include - -#endif // BOOST_ASIO_DETAIL_POSIX_MUTEX_HPP diff --git a/3rdParty/Boost/boost/asio/detail/posix_signal_blocker.hpp b/3rdParty/Boost/boost/asio/detail/posix_signal_blocker.hpp deleted file mode 100644 index f8234fb..0000000 --- a/3rdParty/Boost/boost/asio/detail/posix_signal_blocker.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// -// posix_signal_blocker.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_POSIX_SIGNAL_BLOCKER_HPP -#define BOOST_ASIO_DETAIL_POSIX_SIGNAL_BLOCKER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if defined(BOOST_HAS_PTHREADS) - -#include -#include -#include -#include -#include - -#include - -namespace boost { -namespace asio { -namespace detail { - -class posix_signal_blocker - : private noncopyable -{ -public: - // Constructor blocks all signals for the calling thread. - posix_signal_blocker() - : blocked_(false) - { - sigset_t new_mask; - sigfillset(&new_mask); - blocked_ = (pthread_sigmask(SIG_BLOCK, &new_mask, &old_mask_) == 0); - } - - // Destructor restores the previous signal mask. - ~posix_signal_blocker() - { - if (blocked_) - pthread_sigmask(SIG_SETMASK, &old_mask_, 0); - } - - // Block all signals for the calling thread. - void block() - { - if (!blocked_) - { - sigset_t new_mask; - sigfillset(&new_mask); - blocked_ = (pthread_sigmask(SIG_BLOCK, &new_mask, &old_mask_) == 0); - } - } - - // Restore the previous signal mask. - void unblock() - { - if (blocked_) - blocked_ = (pthread_sigmask(SIG_SETMASK, &old_mask_, 0) != 0); - } - -private: - // Have signals been blocked. - bool blocked_; - - // The previous signal mask. - sigset_t old_mask_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_HAS_PTHREADS) - -#include - -#endif // BOOST_ASIO_DETAIL_POSIX_SIGNAL_BLOCKER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/posix_thread.hpp b/3rdParty/Boost/boost/asio/detail/posix_thread.hpp deleted file mode 100644 index 1e38618..0000000 --- a/3rdParty/Boost/boost/asio/detail/posix_thread.hpp +++ /dev/null @@ -1,131 +0,0 @@ -// -// posix_thread.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_POSIX_THREAD_HPP -#define BOOST_ASIO_DETAIL_POSIX_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if defined(BOOST_HAS_PTHREADS) - -#include -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -extern "C" void* asio_detail_posix_thread_function(void* arg); - -class posix_thread - : private noncopyable -{ -public: - // Constructor. - template - posix_thread(Function f) - : joined_(false) - { - std::auto_ptr arg(new func(f)); - int error = ::pthread_create(&thread_, 0, - asio_detail_posix_thread_function, arg.get()); - if (error != 0) - { - boost::system::system_error e( - boost::system::error_code(error, - boost::asio::error::get_system_category()), - "thread"); - boost::throw_exception(e); - } - arg.release(); - } - - // Destructor. - ~posix_thread() - { - if (!joined_) - ::pthread_detach(thread_); - } - - // Wait for the thread to exit. - void join() - { - if (!joined_) - { - ::pthread_join(thread_, 0); - joined_ = true; - } - } - -private: - friend void* asio_detail_posix_thread_function(void* arg); - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ::pthread_t thread_; - bool joined_; -}; - -inline void* asio_detail_posix_thread_function(void* arg) -{ - std::auto_ptr f( - static_cast(arg)); - f->run(); - return 0; -} - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_HAS_PTHREADS) - -#include - -#endif // BOOST_ASIO_DETAIL_POSIX_THREAD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/posix_tss_ptr.hpp b/3rdParty/Boost/boost/asio/detail/posix_tss_ptr.hpp deleted file mode 100644 index f53c2dc..0000000 --- a/3rdParty/Boost/boost/asio/detail/posix_tss_ptr.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// posix_tss_ptr.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_POSIX_TSS_PTR_HPP -#define BOOST_ASIO_DETAIL_POSIX_TSS_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if defined(BOOST_HAS_PTHREADS) - -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class posix_tss_ptr - : private noncopyable -{ -public: - // Constructor. - posix_tss_ptr() - { - int error = ::pthread_key_create(&tss_key_, 0); - if (error != 0) - { - boost::system::system_error e( - boost::system::error_code(error, - boost::asio::error::get_system_category()), - "tss"); - boost::throw_exception(e); - } - } - - // Destructor. - ~posix_tss_ptr() - { - ::pthread_key_delete(tss_key_); - } - - // Get the value. - operator T*() const - { - return static_cast(::pthread_getspecific(tss_key_)); - } - - // Set the value. - void operator=(T* value) - { - ::pthread_setspecific(tss_key_, value); - } - -private: - // Thread-specific storage to allow unlocked access to determine whether a - // thread is a member of the pool. - pthread_key_t tss_key_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_HAS_PTHREADS) - -#include - -#endif // BOOST_ASIO_DETAIL_POSIX_TSS_PTR_HPP diff --git a/3rdParty/Boost/boost/asio/detail/push_options.hpp b/3rdParty/Boost/boost/asio/detail/push_options.hpp deleted file mode 100644 index 47524b2..0000000 --- a/3rdParty/Boost/boost/asio/detail/push_options.hpp +++ /dev/null @@ -1,114 +0,0 @@ -// -// push_options.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -// No header guard - -#if defined(__COMO__) - -// Comeau C++ - -#elif defined(__DMC__) - -// Digital Mars C++ - -#elif defined(__INTEL_COMPILER) || defined(__ICL) \ - || defined(__ICC) || defined(__ECC) - -// Intel C++ - -#elif defined(__GNUC__) - -// GNU C++ - -# if defined(__MINGW32__) || defined(__CYGWIN__) -# pragma pack (push, 8) -# endif - -#elif defined(__KCC) - -// Kai C++ - -#elif defined(__sgi) - -// SGI MIPSpro C++ - -#elif defined(__DECCXX) - -// Compaq Tru64 Unix cxx - -#elif defined(__ghs) - -// Greenhills C++ - -#elif defined(__BORLANDC__) - -// Borland C++ - -# pragma option push -a8 -b -Ve- -Vx- -w-inl -vi- -# pragma nopushoptwarn -# pragma nopackwarning -# if !defined(__MT__) -# error Multithreaded RTL must be selected. -# endif // !defined(__MT__) - -#elif defined(__MWERKS__) - -// Metrowerks CodeWarrior - -#elif defined(__SUNPRO_CC) - -// Sun Workshop Compiler C++ - -#elif defined(__HP_aCC) - -// HP aCC - -#elif defined(__MRC__) || defined(__SC__) - -// MPW MrCpp or SCpp - -#elif defined(__IBMCPP__) - -// IBM Visual Age - -#elif defined(_MSC_VER) - -// Microsoft Visual C++ -// -// Must remain the last #elif since some other vendors (Metrowerks, for example) -// also #define _MSC_VER - -# pragma warning (disable:4103) -# pragma warning (push) -# pragma warning (disable:4127) -# pragma warning (disable:4244) -# pragma warning (disable:4355) -# pragma warning (disable:4512) -# pragma warning (disable:4675) -# if defined(_M_IX86) && defined(_Wp64) -// The /Wp64 option is broken. If you want to check 64 bit portability, use a -// 64 bit compiler! -# pragma warning (disable:4311) -# pragma warning (disable:4312) -# endif // defined(_M_IX86) && defined(_Wp64) -# pragma pack (push, 8) -// Note that if the /Og optimisation flag is enabled with MSVC6, the compiler -// has a tendency to incorrectly optimise away some calls to member template -// functions, even though those functions contain code that should not be -// optimised away! Therefore we will always disable this optimisation option -// for the MSVC6 compiler. -# if (_MSC_VER < 1300) -# pragma optimize ("g", off) -# endif -# if !defined(_MT) -# error Multithreaded RTL must be selected. -# endif // !defined(_MT) - -#endif diff --git a/3rdParty/Boost/boost/asio/detail/reactive_descriptor_service.hpp b/3rdParty/Boost/boost/asio/detail/reactive_descriptor_service.hpp deleted file mode 100644 index ad828aa..0000000 --- a/3rdParty/Boost/boost/asio/detail/reactive_descriptor_service.hpp +++ /dev/null @@ -1,712 +0,0 @@ -// -// reactive_descriptor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_REACTIVE_DESCRIPTOR_SERVICE_HPP -#define BOOST_ASIO_DETAIL_REACTIVE_DESCRIPTOR_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -namespace boost { -namespace asio { -namespace detail { - -template -class reactive_descriptor_service - : public boost::asio::detail::service_base< - reactive_descriptor_service > -{ -public: - // The native type of a descriptor. - typedef int native_type; - - // The implementation type of the descriptor. - class implementation_type - : private boost::asio::detail::noncopyable - { - public: - // Default constructor. - implementation_type() - : descriptor_(-1), - flags_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class reactive_descriptor_service; - - // The native descriptor representation. - int descriptor_; - - enum - { - user_set_non_blocking = 1, // The user wants a non-blocking descriptor. - internal_non_blocking = 2 // The descriptor has been set non-blocking. - }; - - // Flags indicating the current state of the descriptor. - unsigned char flags_; - - // Per-descriptor data used by the reactor. - typename Reactor::per_descriptor_data reactor_data_; - }; - - // The maximum number of buffers to support in a single operation. - enum { max_buffers = 64 < max_iov_len ? 64 : max_iov_len }; - - // Constructor. - reactive_descriptor_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - reactive_descriptor_service >(io_service), - reactor_(boost::asio::use_service(io_service)) - { - reactor_.init_task(); - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - // Construct a new descriptor implementation. - void construct(implementation_type& impl) - { - impl.descriptor_ = -1; - impl.flags_ = 0; - } - - // Destroy a descriptor implementation. - void destroy(implementation_type& impl) - { - if (impl.descriptor_ != -1) - { - reactor_.close_descriptor(impl.descriptor_, impl.reactor_data_); - - if (impl.flags_ & implementation_type::internal_non_blocking) - { - ioctl_arg_type non_blocking = 0; - boost::system::error_code ignored_ec; - descriptor_ops::ioctl(impl.descriptor_, - FIONBIO, &non_blocking, ignored_ec); - impl.flags_ &= ~implementation_type::internal_non_blocking; - } - - boost::system::error_code ignored_ec; - descriptor_ops::close(impl.descriptor_, ignored_ec); - - impl.descriptor_ = -1; - } - } - - // Assign a native descriptor to a descriptor implementation. - boost::system::error_code assign(implementation_type& impl, - const native_type& native_descriptor, boost::system::error_code& ec) - { - if (is_open(impl)) - { - ec = boost::asio::error::already_open; - return ec; - } - - if (int err = reactor_.register_descriptor( - native_descriptor, impl.reactor_data_)) - { - ec = boost::system::error_code(err, - boost::asio::error::get_system_category()); - return ec; - } - - impl.descriptor_ = native_descriptor; - impl.flags_ = 0; - ec = boost::system::error_code(); - return ec; - } - - // Determine whether the descriptor is open. - bool is_open(const implementation_type& impl) const - { - return impl.descriptor_ != -1; - } - - // Destroy a descriptor implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - if (is_open(impl)) - { - reactor_.close_descriptor(impl.descriptor_, impl.reactor_data_); - - if (impl.flags_ & implementation_type::internal_non_blocking) - { - ioctl_arg_type non_blocking = 0; - boost::system::error_code ignored_ec; - descriptor_ops::ioctl(impl.descriptor_, - FIONBIO, &non_blocking, ignored_ec); - impl.flags_ &= ~implementation_type::internal_non_blocking; - } - - if (descriptor_ops::close(impl.descriptor_, ec) == -1) - return ec; - - impl.descriptor_ = -1; - } - - ec = boost::system::error_code(); - return ec; - } - - // Get the native descriptor representation. - native_type native(const implementation_type& impl) const - { - return impl.descriptor_; - } - - // Cancel all operations associated with the descriptor. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - reactor_.cancel_ops(impl.descriptor_, impl.reactor_data_); - ec = boost::system::error_code(); - return ec; - } - - // Perform an IO control command on the descriptor. - template - boost::system::error_code io_control(implementation_type& impl, - IO_Control_Command& command, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - if (command.name() == static_cast(FIONBIO)) - { - if (command.get()) - impl.flags_ |= implementation_type::user_set_non_blocking; - else - impl.flags_ &= ~implementation_type::user_set_non_blocking; - ec = boost::system::error_code(); - } - else - { - descriptor_ops::ioctl(impl.descriptor_, command.name(), - static_cast(command.data()), ec); - } - return ec; - } - - // Write some data to the descriptor. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Copy buffers into array. - descriptor_ops::buf bufs[max_buffers]; - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - size_t i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - descriptor_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to read_some 0 bytes on a stream is a no-op. - if (total_buffer_size == 0) - { - ec = boost::system::error_code(); - return 0; - } - - // Make descriptor non-blocking if user wants non-blocking. - if (impl.flags_ & implementation_type::user_set_non_blocking) - { - if (!(impl.flags_ & implementation_type::internal_non_blocking)) - { - ioctl_arg_type non_blocking = 1; - if (descriptor_ops::ioctl(impl.descriptor_, - FIONBIO, &non_blocking, ec)) - return 0; - impl.flags_ |= implementation_type::internal_non_blocking; - } - } - - // Send the data. - for (;;) - { - // Try to complete the operation without blocking. - int bytes_sent = descriptor_ops::gather_write( - impl.descriptor_, bufs, i, ec); - - // Check if operation succeeded. - if (bytes_sent >= 0) - return bytes_sent; - - // Operation failed. - if ((impl.flags_ & implementation_type::user_set_non_blocking) - || (ec != boost::asio::error::would_block - && ec != boost::asio::error::try_again)) - return 0; - - // Wait for descriptor to become ready. - if (descriptor_ops::poll_write(impl.descriptor_, ec) < 0) - return 0; - } - } - - // Wait until data can be written without blocking. - size_t write_some(implementation_type& impl, - const null_buffers&, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Wait for descriptor to become ready. - descriptor_ops::poll_write(impl.descriptor_, ec); - - return 0; - } - - template - class write_operation : - public handler_base_from_member - { - public: - write_operation(int descriptor, boost::asio::io_service& io_service, - const ConstBufferSequence& buffers, Handler handler) - : handler_base_from_member(handler), - descriptor_(descriptor), - io_service_(io_service), - work_(io_service), - buffers_(buffers) - { - } - - bool perform(boost::system::error_code& ec, - std::size_t& bytes_transferred) - { - // Check whether the operation was successful. - if (ec) - { - bytes_transferred = 0; - return true; - } - - // Copy buffers into array. - descriptor_ops::buf bufs[max_buffers]; - typename ConstBufferSequence::const_iterator iter = buffers_.begin(); - typename ConstBufferSequence::const_iterator end = buffers_.end(); - size_t i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - descriptor_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - } - - // Write the data. - int bytes = descriptor_ops::gather_write(descriptor_, bufs, i, ec); - - // Check if we need to run the operation again. - if (ec == boost::asio::error::would_block - || ec == boost::asio::error::try_again) - return false; - - bytes_transferred = (bytes < 0 ? 0 : bytes); - return true; - } - - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - io_service_.post(bind_handler(this->handler_, ec, bytes_transferred)); - } - - private: - int descriptor_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - ConstBufferSequence buffers_; - }; - - // Start an asynchronous write. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - // Determine total size of buffers. - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - size_t i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to read_some 0 bytes on a stream is a no-op. - if (total_buffer_size == 0) - { - this->get_io_service().post(bind_handler(handler, - boost::system::error_code(), 0)); - return; - } - - // Make descriptor non-blocking. - if (!(impl.flags_ & implementation_type::internal_non_blocking)) - { - ioctl_arg_type non_blocking = 1; - boost::system::error_code ec; - if (descriptor_ops::ioctl(impl.descriptor_, FIONBIO, &non_blocking, ec)) - { - this->get_io_service().post(bind_handler(handler, ec, 0)); - return; - } - impl.flags_ |= implementation_type::internal_non_blocking; - } - - reactor_.start_write_op(impl.descriptor_, impl.reactor_data_, - write_operation( - impl.descriptor_, this->get_io_service(), buffers, handler)); - } - } - - template - class null_buffers_operation : - public handler_base_from_member - { - public: - null_buffers_operation(boost::asio::io_service& io_service, Handler handler) - : handler_base_from_member(handler), - work_(io_service) - { - } - - bool perform(boost::system::error_code&, - std::size_t& bytes_transferred) - { - bytes_transferred = 0; - return true; - } - - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - work_.get_io_service().post(bind_handler( - this->handler_, ec, bytes_transferred)); - } - - private: - boost::asio::io_service::work work_; - }; - - // Start an asynchronous wait until data can be written without blocking. - template - void async_write_some(implementation_type& impl, - const null_buffers&, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - reactor_.start_write_op(impl.descriptor_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler), - false); - } - } - - // Read some data from the stream. Returns the number of bytes read. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Copy buffers into array. - descriptor_ops::buf bufs[max_buffers]; - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - size_t i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - descriptor_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to read_some 0 bytes on a stream is a no-op. - if (total_buffer_size == 0) - { - ec = boost::system::error_code(); - return 0; - } - - // Make descriptor non-blocking if user wants non-blocking. - if (impl.flags_ & implementation_type::user_set_non_blocking) - { - if (!(impl.flags_ & implementation_type::internal_non_blocking)) - { - ioctl_arg_type non_blocking = 1; - if (descriptor_ops::ioctl(impl.descriptor_, FIONBIO, &non_blocking, ec)) - return 0; - impl.flags_ |= implementation_type::internal_non_blocking; - } - } - - // Read some data. - for (;;) - { - // Try to complete the operation without blocking. - int bytes_read = descriptor_ops::scatter_read( - impl.descriptor_, bufs, i, ec); - - // Check if operation succeeded. - if (bytes_read > 0) - return bytes_read; - - // Check for EOF. - if (bytes_read == 0) - { - ec = boost::asio::error::eof; - return 0; - } - - // Operation failed. - if ((impl.flags_ & implementation_type::user_set_non_blocking) - || (ec != boost::asio::error::would_block - && ec != boost::asio::error::try_again)) - return 0; - - // Wait for descriptor to become ready. - if (descriptor_ops::poll_read(impl.descriptor_, ec) < 0) - return 0; - } - } - - // Wait until data can be read without blocking. - size_t read_some(implementation_type& impl, - const null_buffers&, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Wait for descriptor to become ready. - descriptor_ops::poll_read(impl.descriptor_, ec); - - return 0; - } - - template - class read_operation : - public handler_base_from_member - { - public: - read_operation(int descriptor, boost::asio::io_service& io_service, - const MutableBufferSequence& buffers, Handler handler) - : handler_base_from_member(handler), - descriptor_(descriptor), - io_service_(io_service), - work_(io_service), - buffers_(buffers) - { - } - - bool perform(boost::system::error_code& ec, - std::size_t& bytes_transferred) - { - // Check whether the operation was successful. - if (ec) - { - bytes_transferred = 0; - return true; - } - - // Copy buffers into array. - descriptor_ops::buf bufs[max_buffers]; - typename MutableBufferSequence::const_iterator iter = buffers_.begin(); - typename MutableBufferSequence::const_iterator end = buffers_.end(); - size_t i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - descriptor_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - } - - // Read some data. - int bytes = descriptor_ops::scatter_read(descriptor_, bufs, i, ec); - if (bytes == 0) - ec = boost::asio::error::eof; - - // Check if we need to run the operation again. - if (ec == boost::asio::error::would_block - || ec == boost::asio::error::try_again) - return false; - - bytes_transferred = (bytes < 0 ? 0 : bytes); - return true; - } - - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - io_service_.post(bind_handler(this->handler_, ec, bytes_transferred)); - } - - private: - int descriptor_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - MutableBufferSequence buffers_; - }; - - // Start an asynchronous read. The buffer for the data being read must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - // Determine total size of buffers. - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - size_t i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to read_some 0 bytes on a stream is a no-op. - if (total_buffer_size == 0) - { - this->get_io_service().post(bind_handler(handler, - boost::system::error_code(), 0)); - return; - } - - // Make descriptor non-blocking. - if (!(impl.flags_ & implementation_type::internal_non_blocking)) - { - ioctl_arg_type non_blocking = 1; - boost::system::error_code ec; - if (descriptor_ops::ioctl(impl.descriptor_, FIONBIO, &non_blocking, ec)) - { - this->get_io_service().post(bind_handler(handler, ec, 0)); - return; - } - impl.flags_ |= implementation_type::internal_non_blocking; - } - - reactor_.start_read_op(impl.descriptor_, impl.reactor_data_, - read_operation( - impl.descriptor_, this->get_io_service(), buffers, handler)); - } - } - - // Wait until data can be read without blocking. - template - void async_read_some(implementation_type& impl, - const null_buffers&, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - reactor_.start_read_op(impl.descriptor_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler), - false); - } - } - -private: - // The selector that performs event demultiplexing for the service. - Reactor& reactor_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -#include - -#endif // BOOST_ASIO_DETAIL_REACTIVE_DESCRIPTOR_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/reactive_serial_port_service.hpp b/3rdParty/Boost/boost/asio/detail/reactive_serial_port_service.hpp deleted file mode 100644 index 0beff14..0000000 --- a/3rdParty/Boost/boost/asio/detail/reactive_serial_port_service.hpp +++ /dev/null @@ -1,270 +0,0 @@ -// -// reactive_serial_port_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_DETAIL_REACTIVE_SERIAL_PORT_SERVICE_HPP -#define BOOST_ASIO_DETAIL_REACTIVE_SERIAL_PORT_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include - -#if defined(BOOST_ASIO_HAS_SERIAL_PORT) \ - && !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// Extend reactive_descriptor_service to provide serial port support. -template -class reactive_serial_port_service - : public boost::asio::detail::service_base< - reactive_serial_port_service > -{ -public: - // The native type of a stream handle. - typedef typename reactive_descriptor_service::native_type - native_type; - - // The implementation type of the stream handle. - typedef typename reactive_descriptor_service::implementation_type - implementation_type; - - reactive_serial_port_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - reactive_serial_port_service>(io_service), - descriptor_service_(boost::asio::use_service< - reactive_descriptor_service >(io_service)) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - // Construct a new handle implementation. - void construct(implementation_type& impl) - { - descriptor_service_.construct(impl); - } - - // Destroy a handle implementation. - void destroy(implementation_type& impl) - { - descriptor_service_.destroy(impl); - } - - // Open the serial port using the specified device name. - boost::system::error_code open(implementation_type& impl, - const std::string& device, boost::system::error_code& ec) - { - if (is_open(impl)) - { - ec = boost::asio::error::already_open; - return ec; - } - - int fd = descriptor_ops::open(device.c_str(), - O_RDWR | O_NONBLOCK | O_NOCTTY, ec); - if (fd < 0) - return ec; - - int s = descriptor_ops::fcntl(fd, F_GETFL, ec); - if (s >= 0) - s = descriptor_ops::fcntl(fd, F_SETFL, s | O_NONBLOCK, ec); - if (s < 0) - { - boost::system::error_code ignored_ec; - descriptor_ops::close(fd, ignored_ec); - return ec; - } - - // Set up default serial port options. - termios ios; - descriptor_ops::clear_error(ec); - s = descriptor_ops::error_wrapper(::tcgetattr(fd, &ios), ec); - if (s >= 0) - { -#if defined(_BSD_SOURCE) - ::cfmakeraw(&ios); -#else - ios.c_iflag &= ~(IGNBRK | BRKINT | PARMRK - | ISTRIP | INLCR | IGNCR | ICRNL | IXON); - ios.c_oflag &= ~OPOST; - ios.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); - ios.c_cflag &= ~(CSIZE | PARENB); - ios.c_cflag |= CS8; -#endif - ios.c_iflag |= IGNPAR; - ios.c_cflag |= CREAD | CLOCAL; - descriptor_ops::clear_error(ec); - s = descriptor_ops::error_wrapper(::tcsetattr(fd, TCSANOW, &ios), ec); - } - if (s < 0) - { - boost::system::error_code ignored_ec; - descriptor_ops::close(fd, ignored_ec); - return ec; - } - - // We're done. Take ownership of the serial port descriptor. - if (descriptor_service_.assign(impl, fd, ec)) - { - boost::system::error_code ignored_ec; - descriptor_ops::close(fd, ignored_ec); - } - - return ec; - } - - // Assign a native handle to a handle implementation. - boost::system::error_code assign(implementation_type& impl, - const native_type& native_descriptor, boost::system::error_code& ec) - { - return descriptor_service_.assign(impl, native_descriptor, ec); - } - - // Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return descriptor_service_.is_open(impl); - } - - // Destroy a handle implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - return descriptor_service_.close(impl, ec); - } - - // Get the native handle representation. - native_type native(implementation_type& impl) - { - return descriptor_service_.native(impl); - } - - // Cancel all operations associated with the handle. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - return descriptor_service_.cancel(impl, ec); - } - - // Set an option on the serial port. - template - boost::system::error_code set_option(implementation_type& impl, - const SettableSerialPortOption& option, boost::system::error_code& ec) - { - termios ios; - descriptor_ops::clear_error(ec); - descriptor_ops::error_wrapper(::tcgetattr( - descriptor_service_.native(impl), &ios), ec); - if (ec) - return ec; - - if (option.store(ios, ec)) - return ec; - - descriptor_ops::clear_error(ec); - descriptor_ops::error_wrapper(::tcsetattr( - descriptor_service_.native(impl), TCSANOW, &ios), ec); - return ec; - } - - // Get an option from the serial port. - template - boost::system::error_code get_option(const implementation_type& impl, - GettableSerialPortOption& option, boost::system::error_code& ec) const - { - termios ios; - descriptor_ops::clear_error(ec); - descriptor_ops::error_wrapper(::tcgetattr( - descriptor_service_.native(impl), &ios), ec); - if (ec) - return ec; - - return option.load(ios, ec); - } - - // Send a break sequence to the serial port. - boost::system::error_code send_break(implementation_type& impl, - boost::system::error_code& ec) - { - descriptor_ops::clear_error(ec); - descriptor_ops::error_wrapper(::tcsendbreak( - descriptor_service_.native(impl), 0), ec); - return ec; - } - - // Write the given data. Returns the number of bytes sent. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, boost::system::error_code& ec) - { - return descriptor_service_.write_some(impl, buffers, ec); - } - - // Start an asynchronous write. The data being written must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler handler) - { - descriptor_service_.async_write_some(impl, buffers, handler); - } - - // Read some data. Returns the number of bytes received. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, boost::system::error_code& ec) - { - return descriptor_service_.read_some(impl, buffers, ec); - } - - // Start an asynchronous read. The buffer for the data being received must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler handler) - { - descriptor_service_.async_read_some(impl, buffers, handler); - } - -private: - // The handle service used for initiating asynchronous operations. - reactive_descriptor_service& descriptor_service_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_SERIAL_PORT) - // && !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -#include - -#endif // BOOST_ASIO_DETAIL_REACTIVE_SERIAL_PORT_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/reactive_socket_service.hpp b/3rdParty/Boost/boost/asio/detail/reactive_socket_service.hpp deleted file mode 100644 index 54b8cbd..0000000 --- a/3rdParty/Boost/boost/asio/detail/reactive_socket_service.hpp +++ /dev/null @@ -1,1788 +0,0 @@ -// -// reactive_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_HPP -#define BOOST_ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class reactive_socket_service - : public boost::asio::detail::service_base< - reactive_socket_service > -{ -public: - // The protocol type. - typedef Protocol protocol_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The native type of a socket. - typedef socket_type native_type; - - // The implementation type of the socket. - class implementation_type - : private boost::asio::detail::noncopyable - { - public: - // Default constructor. - implementation_type() - : socket_(invalid_socket), - flags_(0), - protocol_(endpoint_type().protocol()) - { - } - - private: - // Only this service will have access to the internal values. - friend class reactive_socket_service; - - // The native socket representation. - socket_type socket_; - - enum - { - // The user wants a non-blocking socket. - user_set_non_blocking = 1, - - // The implementation wants a non-blocking socket (in order to be able to - // perform asynchronous read and write operations). - internal_non_blocking = 2, - - // Helper "flag" used to determine whether the socket is non-blocking. - non_blocking = user_set_non_blocking | internal_non_blocking, - - // User wants connection_aborted errors, which are disabled by default. - enable_connection_aborted = 4, - - // The user set the linger option. Needs to be checked when closing. - user_set_linger = 8 - }; - - // Flags indicating the current state of the socket. - unsigned char flags_; - - // The protocol associated with the socket. - protocol_type protocol_; - - // Per-descriptor data used by the reactor. - typename Reactor::per_descriptor_data reactor_data_; - }; - - // The maximum number of buffers to support in a single operation. - enum { max_buffers = 64 < max_iov_len ? 64 : max_iov_len }; - - // Constructor. - reactive_socket_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - reactive_socket_service >(io_service), - reactor_(boost::asio::use_service(io_service)) - { - reactor_.init_task(); - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - // Construct a new socket implementation. - void construct(implementation_type& impl) - { - impl.socket_ = invalid_socket; - impl.flags_ = 0; - } - - // Destroy a socket implementation. - void destroy(implementation_type& impl) - { - if (impl.socket_ != invalid_socket) - { - reactor_.close_descriptor(impl.socket_, impl.reactor_data_); - - if (impl.flags_ & implementation_type::non_blocking) - { - ioctl_arg_type non_blocking = 0; - boost::system::error_code ignored_ec; - socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ignored_ec); - impl.flags_ &= ~implementation_type::non_blocking; - } - - if (impl.flags_ & implementation_type::user_set_linger) - { - ::linger opt; - opt.l_onoff = 0; - opt.l_linger = 0; - boost::system::error_code ignored_ec; - socket_ops::setsockopt(impl.socket_, - SOL_SOCKET, SO_LINGER, &opt, sizeof(opt), ignored_ec); - } - - boost::system::error_code ignored_ec; - socket_ops::close(impl.socket_, ignored_ec); - - impl.socket_ = invalid_socket; - } - } - - // Open a new socket implementation. - boost::system::error_code open(implementation_type& impl, - const protocol_type& protocol, boost::system::error_code& ec) - { - if (is_open(impl)) - { - ec = boost::asio::error::already_open; - return ec; - } - - socket_holder sock(socket_ops::socket(protocol.family(), - protocol.type(), protocol.protocol(), ec)); - if (sock.get() == invalid_socket) - return ec; - - if (int err = reactor_.register_descriptor(sock.get(), impl.reactor_data_)) - { - ec = boost::system::error_code(err, - boost::asio::error::get_system_category()); - return ec; - } - - impl.socket_ = sock.release(); - impl.flags_ = 0; - impl.protocol_ = protocol; - ec = boost::system::error_code(); - return ec; - } - - // Assign a native socket to a socket implementation. - boost::system::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_type& native_socket, - boost::system::error_code& ec) - { - if (is_open(impl)) - { - ec = boost::asio::error::already_open; - return ec; - } - - if (int err = reactor_.register_descriptor( - native_socket, impl.reactor_data_)) - { - ec = boost::system::error_code(err, - boost::asio::error::get_system_category()); - return ec; - } - - impl.socket_ = native_socket; - impl.flags_ = 0; - impl.protocol_ = protocol; - ec = boost::system::error_code(); - return ec; - } - - // Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return impl.socket_ != invalid_socket; - } - - // Destroy a socket implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - if (is_open(impl)) - { - reactor_.close_descriptor(impl.socket_, impl.reactor_data_); - - if (impl.flags_ & implementation_type::non_blocking) - { - ioctl_arg_type non_blocking = 0; - boost::system::error_code ignored_ec; - socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ignored_ec); - impl.flags_ &= ~implementation_type::non_blocking; - } - - if (socket_ops::close(impl.socket_, ec) == socket_error_retval) - return ec; - - impl.socket_ = invalid_socket; - } - - ec = boost::system::error_code(); - return ec; - } - - // Get the native socket representation. - native_type native(implementation_type& impl) - { - return impl.socket_; - } - - // Cancel all operations associated with the socket. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - reactor_.cancel_ops(impl.socket_, impl.reactor_data_); - ec = boost::system::error_code(); - return ec; - } - - // Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - boost::system::error_code& ec) const - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return false; - } - - boost::asio::detail::ioctl_arg_type value = 0; - socket_ops::ioctl(impl.socket_, SIOCATMARK, &value, ec); -#if defined(ENOTTY) - if (ec.value() == ENOTTY) - ec = boost::asio::error::not_socket; -#endif // defined(ENOTTY) - return ec ? false : value != 0; - } - - // Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - boost::system::error_code& ec) const - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - boost::asio::detail::ioctl_arg_type value = 0; - socket_ops::ioctl(impl.socket_, FIONREAD, &value, ec); -#if defined(ENOTTY) - if (ec.value() == ENOTTY) - ec = boost::asio::error::not_socket; -#endif // defined(ENOTTY) - return ec ? static_cast(0) : static_cast(value); - } - - // Bind the socket to the specified local endpoint. - boost::system::error_code bind(implementation_type& impl, - const endpoint_type& endpoint, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - socket_ops::bind(impl.socket_, endpoint.data(), endpoint.size(), ec); - return ec; - } - - // Place the socket into the state where it will listen for new connections. - boost::system::error_code listen(implementation_type& impl, int backlog, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - socket_ops::listen(impl.socket_, backlog, ec); - return ec; - } - - // Set a socket option. - template - boost::system::error_code set_option(implementation_type& impl, - const Option& option, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - if (option.level(impl.protocol_) == custom_socket_option_level - && option.name(impl.protocol_) == enable_connection_aborted_option) - { - if (option.size(impl.protocol_) != sizeof(int)) - { - ec = boost::asio::error::invalid_argument; - } - else - { - if (*reinterpret_cast(option.data(impl.protocol_))) - impl.flags_ |= implementation_type::enable_connection_aborted; - else - impl.flags_ &= ~implementation_type::enable_connection_aborted; - ec = boost::system::error_code(); - } - return ec; - } - else - { - if (option.level(impl.protocol_) == SOL_SOCKET - && option.name(impl.protocol_) == SO_LINGER) - { - impl.flags_ |= implementation_type::user_set_linger; - } - - socket_ops::setsockopt(impl.socket_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), option.size(impl.protocol_), ec); - -#if defined(__MACH__) && defined(__APPLE__) \ -|| defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) - // To implement portable behaviour for SO_REUSEADDR with UDP sockets we - // need to also set SO_REUSEPORT on BSD-based platforms. - if (!ec && impl.protocol_.type() == SOCK_DGRAM - && option.level(impl.protocol_) == SOL_SOCKET - && option.name(impl.protocol_) == SO_REUSEADDR) - { - boost::system::error_code ignored_ec; - socket_ops::setsockopt(impl.socket_, SOL_SOCKET, SO_REUSEPORT, - option.data(impl.protocol_), option.size(impl.protocol_), - ignored_ec); - } -#endif - - return ec; - } - } - - // Set a socket option. - template - boost::system::error_code get_option(const implementation_type& impl, - Option& option, boost::system::error_code& ec) const - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - if (option.level(impl.protocol_) == custom_socket_option_level - && option.name(impl.protocol_) == enable_connection_aborted_option) - { - if (option.size(impl.protocol_) != sizeof(int)) - { - ec = boost::asio::error::invalid_argument; - } - else - { - int* target = reinterpret_cast(option.data(impl.protocol_)); - if (impl.flags_ & implementation_type::enable_connection_aborted) - *target = 1; - else - *target = 0; - option.resize(impl.protocol_, sizeof(int)); - ec = boost::system::error_code(); - } - return ec; - } - else - { - size_t size = option.size(impl.protocol_); - socket_ops::getsockopt(impl.socket_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), &size, ec); - if (!ec) - option.resize(impl.protocol_, size); - return ec; - } - } - - // Perform an IO control command on the socket. - template - boost::system::error_code io_control(implementation_type& impl, - IO_Control_Command& command, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - if (command.name() == static_cast(FIONBIO)) - { - // Flags are manipulated in a temporary variable so that the socket - // implementation is not updated unless the ioctl operation succeeds. - unsigned char new_flags = impl.flags_; - if (*static_cast(command.data())) - new_flags |= implementation_type::user_set_non_blocking; - else - new_flags &= ~implementation_type::user_set_non_blocking; - - // Perform ioctl on socket if the non-blocking state has changed. - if (!(impl.flags_ & implementation_type::non_blocking) - && (new_flags & implementation_type::non_blocking)) - { - ioctl_arg_type non_blocking = 1; - socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec); - } - else if ((impl.flags_ & implementation_type::non_blocking) - && !(new_flags & implementation_type::non_blocking)) - { - ioctl_arg_type non_blocking = 0; - socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec); - } - else - { - ec = boost::system::error_code(); - } - - // Update socket implementation's flags only if successful. - if (!ec) - impl.flags_ = new_flags; - } - else - { - socket_ops::ioctl(impl.socket_, command.name(), - static_cast(command.data()), ec); - } - return ec; - } - - // Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return endpoint_type(); - } - - endpoint_type endpoint; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getsockname(impl.socket_, endpoint.data(), &addr_len, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - // Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return endpoint_type(); - } - - endpoint_type endpoint; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getpeername(impl.socket_, endpoint.data(), &addr_len, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - /// Disable sends or receives on the socket. - boost::system::error_code shutdown(implementation_type& impl, - socket_base::shutdown_type what, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - socket_ops::shutdown(impl.socket_, what, ec); - return ec; - } - - // Send the given data to the peer. - template - size_t send(implementation_type& impl, const ConstBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Copy buffers into array. - socket_ops::buf bufs[max_buffers]; - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - size_t i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - socket_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to receive 0 bytes on a stream socket is a no-op. - if (impl.protocol_.type() == SOCK_STREAM && total_buffer_size == 0) - { - ec = boost::system::error_code(); - return 0; - } - - // Send the data. - for (;;) - { - // Try to complete the operation without blocking. - int bytes_sent = socket_ops::send(impl.socket_, bufs, i, flags, ec); - - // Check if operation succeeded. - if (bytes_sent >= 0) - return bytes_sent; - - // Operation failed. - if ((impl.flags_ & implementation_type::user_set_non_blocking) - || (ec != boost::asio::error::would_block - && ec != boost::asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_write(impl.socket_, ec) < 0) - return 0; - } - } - - // Wait until data can be sent without blocking. - size_t send(implementation_type& impl, const null_buffers&, - socket_base::message_flags, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, ec); - - return 0; - } - - template - class send_operation : - public handler_base_from_member - { - public: - send_operation(socket_type socket, boost::asio::io_service& io_service, - const ConstBufferSequence& buffers, socket_base::message_flags flags, - Handler handler) - : handler_base_from_member(handler), - socket_(socket), - io_service_(io_service), - work_(io_service), - buffers_(buffers), - flags_(flags) - { - } - - bool perform(boost::system::error_code& ec, - std::size_t& bytes_transferred) - { - // Check whether the operation was successful. - if (ec) - { - bytes_transferred = 0; - return true; - } - - // Copy buffers into array. - socket_ops::buf bufs[max_buffers]; - typename ConstBufferSequence::const_iterator iter = buffers_.begin(); - typename ConstBufferSequence::const_iterator end = buffers_.end(); - size_t i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - socket_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - } - - // Send the data. - int bytes = socket_ops::send(socket_, bufs, i, flags_, ec); - - // Check if we need to run the operation again. - if (ec == boost::asio::error::would_block - || ec == boost::asio::error::try_again) - return false; - - bytes_transferred = (bytes < 0 ? 0 : bytes); - return true; - } - - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - io_service_.post(bind_handler(this->handler_, ec, bytes_transferred)); - } - - private: - socket_type socket_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - ConstBufferSequence buffers_; - socket_base::message_flags flags_; - }; - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send(implementation_type& impl, const ConstBufferSequence& buffers, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - if (impl.protocol_.type() == SOCK_STREAM) - { - // Determine total size of buffers. - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - size_t i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to receive 0 bytes on a stream socket is a no-op. - if (total_buffer_size == 0) - { - this->get_io_service().post(bind_handler(handler, - boost::system::error_code(), 0)); - return; - } - } - - // Make socket non-blocking. - if (!(impl.flags_ & implementation_type::internal_non_blocking)) - { - if (!(impl.flags_ & implementation_type::non_blocking)) - { - ioctl_arg_type non_blocking = 1; - boost::system::error_code ec; - if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec)) - { - this->get_io_service().post(bind_handler(handler, ec, 0)); - return; - } - } - impl.flags_ |= implementation_type::internal_non_blocking; - } - - reactor_.start_write_op(impl.socket_, impl.reactor_data_, - send_operation( - impl.socket_, this->get_io_service(), buffers, flags, handler)); - } - } - - template - class null_buffers_operation : - public handler_base_from_member - { - public: - null_buffers_operation(boost::asio::io_service& io_service, Handler handler) - : handler_base_from_member(handler), - work_(io_service) - { - } - - bool perform(boost::system::error_code&, - std::size_t& bytes_transferred) - { - bytes_transferred = 0; - return true; - } - - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - work_.get_io_service().post(bind_handler( - this->handler_, ec, bytes_transferred)); - } - - private: - boost::asio::io_service::work work_; - }; - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send(implementation_type& impl, const null_buffers&, - socket_base::message_flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - reactor_.start_write_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler), - false); - } - } - - // Send a datagram to the specified endpoint. Returns the number of bytes - // sent. - template - size_t send_to(implementation_type& impl, const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Copy buffers into array. - socket_ops::buf bufs[max_buffers]; - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - size_t i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - socket_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - } - - // Send the data. - for (;;) - { - // Try to complete the operation without blocking. - int bytes_sent = socket_ops::sendto(impl.socket_, bufs, i, flags, - destination.data(), destination.size(), ec); - - // Check if operation succeeded. - if (bytes_sent >= 0) - return bytes_sent; - - // Operation failed. - if ((impl.flags_ & implementation_type::user_set_non_blocking) - || (ec != boost::asio::error::would_block - && ec != boost::asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_write(impl.socket_, ec) < 0) - return 0; - } - } - - // Wait until data can be sent without blocking. - size_t send_to(implementation_type& impl, const null_buffers&, - socket_base::message_flags, const endpoint_type&, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, ec); - - return 0; - } - - template - class send_to_operation : - public handler_base_from_member - { - public: - send_to_operation(socket_type socket, boost::asio::io_service& io_service, - const ConstBufferSequence& buffers, const endpoint_type& endpoint, - socket_base::message_flags flags, Handler handler) - : handler_base_from_member(handler), - socket_(socket), - io_service_(io_service), - work_(io_service), - buffers_(buffers), - destination_(endpoint), - flags_(flags) - { - } - - bool perform(boost::system::error_code& ec, - std::size_t& bytes_transferred) - { - // Check whether the operation was successful. - if (ec) - { - bytes_transferred = 0; - return true; - } - - // Copy buffers into array. - socket_ops::buf bufs[max_buffers]; - typename ConstBufferSequence::const_iterator iter = buffers_.begin(); - typename ConstBufferSequence::const_iterator end = buffers_.end(); - size_t i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - socket_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - } - - // Send the data. - int bytes = socket_ops::sendto(socket_, bufs, i, flags_, - destination_.data(), destination_.size(), ec); - - // Check if we need to run the operation again. - if (ec == boost::asio::error::would_block - || ec == boost::asio::error::try_again) - return false; - - bytes_transferred = (bytes < 0 ? 0 : bytes); - return true; - } - - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - io_service_.post(bind_handler(this->handler_, ec, bytes_transferred)); - } - - private: - socket_type socket_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - ConstBufferSequence buffers_; - endpoint_type destination_; - socket_base::message_flags flags_; - }; - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - // Make socket non-blocking. - if (!(impl.flags_ & implementation_type::internal_non_blocking)) - { - if (!(impl.flags_ & implementation_type::non_blocking)) - { - ioctl_arg_type non_blocking = 1; - boost::system::error_code ec; - if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec)) - { - this->get_io_service().post(bind_handler(handler, ec, 0)); - return; - } - } - impl.flags_ |= implementation_type::internal_non_blocking; - } - - reactor_.start_write_op(impl.socket_, impl.reactor_data_, - send_to_operation( - impl.socket_, this->get_io_service(), buffers, - destination, flags, handler)); - } - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send_to(implementation_type& impl, const null_buffers&, - socket_base::message_flags, const endpoint_type&, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - reactor_.start_write_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler), - false); - } - } - - // Receive some data from the peer. Returns the number of bytes received. - template - size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Copy buffers into array. - socket_ops::buf bufs[max_buffers]; - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - size_t i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - socket_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to receive 0 bytes on a stream socket is a no-op. - if (impl.protocol_.type() == SOCK_STREAM && total_buffer_size == 0) - { - ec = boost::system::error_code(); - return 0; - } - - // Receive some data. - for (;;) - { - // Try to complete the operation without blocking. - int bytes_recvd = socket_ops::recv(impl.socket_, bufs, i, flags, ec); - - // Check if operation succeeded. - if (bytes_recvd > 0) - return bytes_recvd; - - // Check for EOF. - if (bytes_recvd == 0 && impl.protocol_.type() == SOCK_STREAM) - { - ec = boost::asio::error::eof; - return 0; - } - - // Operation failed. - if ((impl.flags_ & implementation_type::user_set_non_blocking) - || (ec != boost::asio::error::would_block - && ec != boost::asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_read(impl.socket_, ec) < 0) - return 0; - } - } - - // Wait until data can be received without blocking. - size_t receive(implementation_type& impl, const null_buffers&, - socket_base::message_flags, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, ec); - - return 0; - } - - template - class receive_operation : - public handler_base_from_member - { - public: - receive_operation(socket_type socket, int protocol_type, - boost::asio::io_service& io_service, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler handler) - : handler_base_from_member(handler), - socket_(socket), - protocol_type_(protocol_type), - io_service_(io_service), - work_(io_service), - buffers_(buffers), - flags_(flags) - { - } - - bool perform(boost::system::error_code& ec, - std::size_t& bytes_transferred) - { - // Check whether the operation was successful. - if (ec) - { - bytes_transferred = 0; - return true; - } - - // Copy buffers into array. - socket_ops::buf bufs[max_buffers]; - typename MutableBufferSequence::const_iterator iter = buffers_.begin(); - typename MutableBufferSequence::const_iterator end = buffers_.end(); - size_t i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - socket_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - } - - // Receive some data. - int bytes = socket_ops::recv(socket_, bufs, i, flags_, ec); - if (bytes == 0 && protocol_type_ == SOCK_STREAM) - ec = boost::asio::error::eof; - - // Check if we need to run the operation again. - if (ec == boost::asio::error::would_block - || ec == boost::asio::error::try_again) - return false; - - bytes_transferred = (bytes < 0 ? 0 : bytes); - return true; - } - - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - io_service_.post(bind_handler(this->handler_, ec, bytes_transferred)); - } - - private: - socket_type socket_; - int protocol_type_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - MutableBufferSequence buffers_; - socket_base::message_flags flags_; - }; - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - if (impl.protocol_.type() == SOCK_STREAM) - { - // Determine total size of buffers. - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - size_t i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to receive 0 bytes on a stream socket is a no-op. - if (total_buffer_size == 0) - { - this->get_io_service().post(bind_handler(handler, - boost::system::error_code(), 0)); - return; - } - } - - // Make socket non-blocking. - if (!(impl.flags_ & implementation_type::internal_non_blocking)) - { - if (!(impl.flags_ & implementation_type::non_blocking)) - { - ioctl_arg_type non_blocking = 1; - boost::system::error_code ec; - if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec)) - { - this->get_io_service().post(bind_handler(handler, ec, 0)); - return; - } - } - impl.flags_ |= implementation_type::internal_non_blocking; - } - - if (flags & socket_base::message_out_of_band) - { - reactor_.start_except_op(impl.socket_, impl.reactor_data_, - receive_operation( - impl.socket_, impl.protocol_.type(), - this->get_io_service(), buffers, flags, handler)); - } - else - { - reactor_.start_read_op(impl.socket_, impl.reactor_data_, - receive_operation( - impl.socket_, impl.protocol_.type(), - this->get_io_service(), buffers, flags, handler)); - } - } - } - - // Wait until data can be received without blocking. - template - void async_receive(implementation_type& impl, const null_buffers&, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else if (flags & socket_base::message_out_of_band) - { - reactor_.start_except_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler)); - } - else - { - reactor_.start_read_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler), - false); - } - } - - // Receive a datagram with the endpoint of the sender. Returns the number of - // bytes received. - template - size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Copy buffers into array. - socket_ops::buf bufs[max_buffers]; - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - size_t i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - socket_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - } - - // Receive some data. - for (;;) - { - // Try to complete the operation without blocking. - std::size_t addr_len = sender_endpoint.capacity(); - int bytes_recvd = socket_ops::recvfrom(impl.socket_, bufs, i, flags, - sender_endpoint.data(), &addr_len, ec); - - // Check if operation succeeded. - if (bytes_recvd > 0) - { - sender_endpoint.resize(addr_len); - return bytes_recvd; - } - - // Check for EOF. - if (bytes_recvd == 0 && impl.protocol_.type() == SOCK_STREAM) - { - ec = boost::asio::error::eof; - return 0; - } - - // Operation failed. - if ((impl.flags_ & implementation_type::user_set_non_blocking) - || (ec != boost::asio::error::would_block - && ec != boost::asio::error::try_again)) - return 0; - - // Wait for socket to become ready. - if (socket_ops::poll_read(impl.socket_, ec) < 0) - return 0; - } - } - - // Wait until data can be received without blocking. - size_t receive_from(implementation_type& impl, const null_buffers&, - endpoint_type& sender_endpoint, socket_base::message_flags, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, ec); - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - return 0; - } - - template - class receive_from_operation : - public handler_base_from_member - { - public: - receive_from_operation(socket_type socket, int protocol_type, - boost::asio::io_service& io_service, - const MutableBufferSequence& buffers, endpoint_type& endpoint, - socket_base::message_flags flags, Handler handler) - : handler_base_from_member(handler), - socket_(socket), - protocol_type_(protocol_type), - io_service_(io_service), - work_(io_service), - buffers_(buffers), - sender_endpoint_(endpoint), - flags_(flags) - { - } - - bool perform(boost::system::error_code& ec, - std::size_t& bytes_transferred) - { - // Check whether the operation was successful. - if (ec) - { - bytes_transferred = 0; - return true; - } - - // Copy buffers into array. - socket_ops::buf bufs[max_buffers]; - typename MutableBufferSequence::const_iterator iter = buffers_.begin(); - typename MutableBufferSequence::const_iterator end = buffers_.end(); - size_t i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - socket_ops::init_buf(bufs[i], - boost::asio::buffer_cast(buffer), - boost::asio::buffer_size(buffer)); - } - - // Receive some data. - std::size_t addr_len = sender_endpoint_.capacity(); - int bytes = socket_ops::recvfrom(socket_, bufs, i, flags_, - sender_endpoint_.data(), &addr_len, ec); - if (bytes == 0 && protocol_type_ == SOCK_STREAM) - ec = boost::asio::error::eof; - - // Check if we need to run the operation again. - if (ec == boost::asio::error::would_block - || ec == boost::asio::error::try_again) - return false; - - sender_endpoint_.resize(addr_len); - bytes_transferred = (bytes < 0 ? 0 : bytes); - return true; - } - - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - io_service_.post(bind_handler(this->handler_, ec, bytes_transferred)); - } - - private: - socket_type socket_; - int protocol_type_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - MutableBufferSequence buffers_; - endpoint_type& sender_endpoint_; - socket_base::message_flags flags_; - }; - - // Start an asynchronous receive. The buffer for the data being received and - // the sender_endpoint object must both be valid for the lifetime of the - // asynchronous operation. - template - void async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - // Make socket non-blocking. - if (!(impl.flags_ & implementation_type::internal_non_blocking)) - { - if (!(impl.flags_ & implementation_type::non_blocking)) - { - ioctl_arg_type non_blocking = 1; - boost::system::error_code ec; - if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec)) - { - this->get_io_service().post(bind_handler(handler, ec, 0)); - return; - } - } - impl.flags_ |= implementation_type::internal_non_blocking; - } - - reactor_.start_read_op(impl.socket_, impl.reactor_data_, - receive_from_operation( - impl.socket_, impl.protocol_.type(), this->get_io_service(), - buffers, sender_endpoint, flags, handler)); - } - } - - // Wait until data can be received without blocking. - template - void async_receive_from(implementation_type& impl, - const null_buffers&, endpoint_type& sender_endpoint, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - if (flags & socket_base::message_out_of_band) - { - reactor_.start_except_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler)); - } - else - { - reactor_.start_read_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler), - false); - } - } - } - - // Accept a new connection. - template - boost::system::error_code accept(implementation_type& impl, - Socket& peer, endpoint_type* peer_endpoint, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - // We cannot accept a socket that is already open. - if (peer.is_open()) - { - ec = boost::asio::error::already_open; - return ec; - } - - // Accept a socket. - for (;;) - { - // Try to complete the operation without blocking. - boost::system::error_code ec; - socket_holder new_socket; - std::size_t addr_len = 0; - if (peer_endpoint) - { - addr_len = peer_endpoint->capacity(); - new_socket.reset(socket_ops::accept(impl.socket_, - peer_endpoint->data(), &addr_len, ec)); - } - else - { - new_socket.reset(socket_ops::accept(impl.socket_, 0, 0, ec)); - } - - // Check if operation succeeded. - if (new_socket.get() >= 0) - { - if (peer_endpoint) - peer_endpoint->resize(addr_len); - peer.assign(impl.protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - return ec; - } - - // Operation failed. - if (ec == boost::asio::error::would_block - || ec == boost::asio::error::try_again) - { - if (impl.flags_ & implementation_type::user_set_non_blocking) - return ec; - // Fall through to retry operation. - } - else if (ec == boost::asio::error::connection_aborted) - { - if (impl.flags_ & implementation_type::enable_connection_aborted) - return ec; - // Fall through to retry operation. - } -#if defined(EPROTO) - else if (ec.value() == EPROTO) - { - if (impl.flags_ & implementation_type::enable_connection_aborted) - return ec; - // Fall through to retry operation. - } -#endif // defined(EPROTO) - else - return ec; - - // Wait for socket to become ready. - if (socket_ops::poll_read(impl.socket_, ec) < 0) - return ec; - } - } - - template - class accept_operation : - public handler_base_from_member - { - public: - accept_operation(socket_type socket, boost::asio::io_service& io_service, - Socket& peer, const protocol_type& protocol, - endpoint_type* peer_endpoint, bool enable_connection_aborted, - Handler handler) - : handler_base_from_member(handler), - socket_(socket), - io_service_(io_service), - work_(io_service), - peer_(peer), - protocol_(protocol), - peer_endpoint_(peer_endpoint), - enable_connection_aborted_(enable_connection_aborted) - { - } - - bool perform(boost::system::error_code& ec, std::size_t&) - { - // Check whether the operation was successful. - if (ec) - return true; - - // Accept the waiting connection. - socket_holder new_socket; - std::size_t addr_len = 0; - if (peer_endpoint_) - { - addr_len = peer_endpoint_->capacity(); - new_socket.reset(socket_ops::accept(socket_, - peer_endpoint_->data(), &addr_len, ec)); - } - else - { - new_socket.reset(socket_ops::accept(socket_, 0, 0, ec)); - } - - // Check if we need to run the operation again. - if (ec == boost::asio::error::would_block - || ec == boost::asio::error::try_again) - return false; - if (ec == boost::asio::error::connection_aborted - && !enable_connection_aborted_) - return false; -#if defined(EPROTO) - if (ec.value() == EPROTO && !enable_connection_aborted_) - return false; -#endif // defined(EPROTO) - - // Transfer ownership of the new socket to the peer object. - if (!ec) - { - if (peer_endpoint_) - peer_endpoint_->resize(addr_len); - peer_.assign(protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - } - - return true; - } - - void complete(const boost::system::error_code& ec, std::size_t) - { - io_service_.post(bind_handler(this->handler_, ec)); - } - - private: - socket_type socket_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - Socket& peer_; - protocol_type protocol_; - endpoint_type* peer_endpoint_; - bool enable_connection_aborted_; - }; - - // Start an asynchronous accept. The peer and peer_endpoint objects - // must be valid until the accept's handler is invoked. - template - void async_accept(implementation_type& impl, Socket& peer, - endpoint_type* peer_endpoint, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor)); - } - else if (peer.is_open()) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::already_open)); - } - else - { - // Make socket non-blocking. - if (!(impl.flags_ & implementation_type::internal_non_blocking)) - { - if (!(impl.flags_ & implementation_type::non_blocking)) - { - ioctl_arg_type non_blocking = 1; - boost::system::error_code ec; - if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec)) - { - this->get_io_service().post(bind_handler(handler, ec)); - return; - } - } - impl.flags_ |= implementation_type::internal_non_blocking; - } - - reactor_.start_read_op(impl.socket_, impl.reactor_data_, - accept_operation( - impl.socket_, this->get_io_service(), - peer, impl.protocol_, peer_endpoint, - (impl.flags_ & implementation_type::enable_connection_aborted) != 0, - handler)); - } - } - - // Connect the socket to the specified endpoint. - boost::system::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - // Perform the connect operation. - socket_ops::connect(impl.socket_, - peer_endpoint.data(), peer_endpoint.size(), ec); - if (ec != boost::asio::error::in_progress - && ec != boost::asio::error::would_block) - { - // The connect operation finished immediately. - return ec; - } - - // Wait for socket to become ready. - if (socket_ops::poll_connect(impl.socket_, ec) < 0) - return ec; - - // Get the error code from the connect operation. - int connect_error = 0; - size_t connect_error_len = sizeof(connect_error); - if (socket_ops::getsockopt(impl.socket_, SOL_SOCKET, SO_ERROR, - &connect_error, &connect_error_len, ec) == socket_error_retval) - return ec; - - // Return the result of the connect operation. - ec = boost::system::error_code(connect_error, - boost::asio::error::get_system_category()); - return ec; - } - - template - class connect_operation : - public handler_base_from_member - { - public: - connect_operation(socket_type socket, - boost::asio::io_service& io_service, Handler handler) - : handler_base_from_member(handler), - socket_(socket), - io_service_(io_service), - work_(io_service) - { - } - - bool perform(boost::system::error_code& ec, std::size_t&) - { - // Check whether the operation was successful. - if (ec) - return true; - - // Get the error code from the connect operation. - int connect_error = 0; - size_t connect_error_len = sizeof(connect_error); - if (socket_ops::getsockopt(socket_, SOL_SOCKET, SO_ERROR, - &connect_error, &connect_error_len, ec) == socket_error_retval) - return true; - - // The connection failed so the handler will be posted with an error code. - if (connect_error) - { - ec = boost::system::error_code(connect_error, - boost::asio::error::get_system_category()); - return true; - } - - return true; - } - - void complete(const boost::system::error_code& ec, std::size_t) - { - io_service_.post(bind_handler(this->handler_, ec)); - } - - private: - socket_type socket_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - }; - - // Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor)); - return; - } - - // Make socket non-blocking. - if (!(impl.flags_ & implementation_type::internal_non_blocking)) - { - if (!(impl.flags_ & implementation_type::non_blocking)) - { - ioctl_arg_type non_blocking = 1; - boost::system::error_code ec; - if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec)) - { - this->get_io_service().post(bind_handler(handler, ec)); - return; - } - } - impl.flags_ |= implementation_type::internal_non_blocking; - } - - // Start the connect operation. The socket is already marked as non-blocking - // so the connection will take place asynchronously. - boost::system::error_code ec; - if (socket_ops::connect(impl.socket_, peer_endpoint.data(), - peer_endpoint.size(), ec) == 0) - { - // The connect operation has finished successfully so we need to post the - // handler immediately. - this->get_io_service().post(bind_handler(handler, - boost::system::error_code())); - } - else if (ec == boost::asio::error::in_progress - || ec == boost::asio::error::would_block) - { - // The connection is happening in the background, and we need to wait - // until the socket becomes writeable. - reactor_.start_connect_op(impl.socket_, impl.reactor_data_, - connect_operation(impl.socket_, - this->get_io_service(), handler)); - } - else - { - // The connect operation has failed, so post the handler immediately. - this->get_io_service().post(bind_handler(handler, ec)); - } - } - -private: - // The selector that performs event demultiplexing for the service. - Reactor& reactor_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_REACTIVE_SOCKET_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/reactor_op_queue.hpp b/3rdParty/Boost/boost/asio/detail/reactor_op_queue.hpp deleted file mode 100644 index 0fbbf23..0000000 --- a/3rdParty/Boost/boost/asio/detail/reactor_op_queue.hpp +++ /dev/null @@ -1,456 +0,0 @@ -// -// reactor_op_queue.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_REACTOR_OP_QUEUE_HPP -#define BOOST_ASIO_DETAIL_REACTOR_OP_QUEUE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class reactor_op_queue - : private noncopyable -{ -public: - // Constructor. - reactor_op_queue() - : operations_(), - cancelled_operations_(0), - complete_operations_(0) - { - } - - // Add a new operation to the queue. Returns true if this is the only - // operation for the given descriptor, in which case the reactor's event - // demultiplexing function call may need to be interrupted and restarted. - template - bool enqueue_operation(Descriptor descriptor, Operation operation) - { - // Allocate and construct an object to wrap the handler. - typedef handler_alloc_traits > alloc_traits; - raw_handler_ptr raw_ptr(operation); - handler_ptr ptr(raw_ptr, descriptor, operation); - - typedef typename operation_map::iterator iterator; - typedef typename operation_map::value_type value_type; - std::pair entry = - operations_.insert(value_type(descriptor, ptr.get())); - if (entry.second) - { - ptr.release(); - return true; - } - - op_base* current_op = entry.first->second; - while (current_op->next_) - current_op = current_op->next_; - current_op->next_ = ptr.release(); - - return false; - } - - // Cancel all operations associated with the descriptor. Any operations - // pending for the descriptor will be notified that they have been cancelled - // next time perform_cancellations is called. Returns true if any operations - // were cancelled, in which case the reactor's event demultiplexing function - // may need to be interrupted and restarted. - bool cancel_operations(Descriptor descriptor) - { - typename operation_map::iterator i = operations_.find(descriptor); - if (i != operations_.end()) - { - op_base* last_op = i->second; - while (last_op->next_) - last_op = last_op->next_; - last_op->next_ = cancelled_operations_; - cancelled_operations_ = i->second; - operations_.erase(i); - return true; - } - - return false; - } - - // Whether there are no operations in the queue. - bool empty() const - { - return operations_.empty(); - } - - // Determine whether there are any operations associated with the descriptor. - bool has_operation(Descriptor descriptor) const - { - return operations_.find(descriptor) != operations_.end(); - } - - // Perform the first operation corresponding to the descriptor. Returns true - // if there are more operations queued for the descriptor. - bool perform_operation(Descriptor descriptor, - const boost::system::error_code& result) - { - typename operation_map::iterator i = operations_.find(descriptor); - if (i != operations_.end()) - { - op_base* this_op = i->second; - i->second = this_op->next_; - this_op->next_ = complete_operations_; - complete_operations_ = this_op; - bool done = this_op->perform(result); - if (done) - { - // Operation has finished. - if (i->second) - { - return true; - } - else - { - operations_.erase(i); - return false; - } - } - else - { - // Operation wants to be called again. Leave it at the front of the - // queue for this descriptor, and remove from the completed list. - complete_operations_ = this_op->next_; - this_op->next_ = i->second; - i->second = this_op; - return true; - } - } - return false; - } - - // Perform all operations corresponding to the descriptor. - void perform_all_operations(Descriptor descriptor, - const boost::system::error_code& result) - { - typename operation_map::iterator i = operations_.find(descriptor); - if (i != operations_.end()) - { - while (i->second) - { - op_base* this_op = i->second; - i->second = this_op->next_; - this_op->next_ = complete_operations_; - complete_operations_ = this_op; - bool done = this_op->perform(result); - if (!done) - { - // Operation has not finished yet, so leave at front of queue, and - // remove from the completed list. - complete_operations_ = this_op->next_; - this_op->next_ = i->second; - i->second = this_op; - return; - } - } - operations_.erase(i); - } - } - - // Fill a descriptor set with the descriptors corresponding to each active - // operation. - template - void get_descriptors(Descriptor_Set& descriptors) - { - typename operation_map::iterator i = operations_.begin(); - while (i != operations_.end()) - { - Descriptor descriptor = i->first; - ++i; - if (!descriptors.set(descriptor)) - { - boost::system::error_code ec(error::fd_set_failure); - perform_all_operations(descriptor, ec); - } - } - } - - // Perform the operations corresponding to the ready file descriptors - // contained in the given descriptor set. - template - void perform_operations_for_descriptors(const Descriptor_Set& descriptors, - const boost::system::error_code& result) - { - typename operation_map::iterator i = operations_.begin(); - while (i != operations_.end()) - { - typename operation_map::iterator op_iter = i++; - if (descriptors.is_set(op_iter->first)) - { - op_base* this_op = op_iter->second; - op_iter->second = this_op->next_; - this_op->next_ = complete_operations_; - complete_operations_ = this_op; - bool done = this_op->perform(result); - if (done) - { - if (!op_iter->second) - operations_.erase(op_iter); - } - else - { - // Operation has not finished yet, so leave at front of queue, and - // remove from the completed list. - complete_operations_ = this_op->next_; - this_op->next_ = op_iter->second; - op_iter->second = this_op; - } - } - } - } - - // Perform any pending cancels for operations. - void perform_cancellations() - { - while (cancelled_operations_) - { - op_base* this_op = cancelled_operations_; - cancelled_operations_ = this_op->next_; - this_op->next_ = complete_operations_; - complete_operations_ = this_op; - this_op->perform(boost::asio::error::operation_aborted); - } - } - - // Complete all operations that are waiting to be completed. - void complete_operations() - { - while (complete_operations_) - { - op_base* next_op = complete_operations_->next_; - complete_operations_->next_ = 0; - complete_operations_->complete(); - complete_operations_ = next_op; - } - } - - // Destroy all operations owned by the queue. - void destroy_operations() - { - while (cancelled_operations_) - { - op_base* next_op = cancelled_operations_->next_; - cancelled_operations_->next_ = 0; - cancelled_operations_->destroy(); - cancelled_operations_ = next_op; - } - - while (complete_operations_) - { - op_base* next_op = complete_operations_->next_; - complete_operations_->next_ = 0; - complete_operations_->destroy(); - complete_operations_ = next_op; - } - - typename operation_map::iterator i = operations_.begin(); - while (i != operations_.end()) - { - typename operation_map::iterator op_iter = i++; - op_base* curr_op = op_iter->second; - operations_.erase(op_iter); - while (curr_op) - { - op_base* next_op = curr_op->next_; - curr_op->next_ = 0; - curr_op->destroy(); - curr_op = next_op; - } - } - } - -private: - // Base class for reactor operations. A function pointer is used instead of - // virtual functions to avoid the associated overhead. - class op_base - { - public: - // Get the descriptor associated with the operation. - Descriptor descriptor() const - { - return descriptor_; - } - - // Perform the operation. - bool perform(const boost::system::error_code& result) - { - result_ = result; - return perform_func_(this, result_, bytes_transferred_); - } - - // Destroy the operation and post the handler. - void complete() - { - complete_func_(this, result_, bytes_transferred_); - } - - // Destroy the operation. - void destroy() - { - destroy_func_(this); - } - - protected: - typedef bool (*perform_func_type)(op_base*, - boost::system::error_code&, std::size_t&); - typedef void (*complete_func_type)(op_base*, - const boost::system::error_code&, std::size_t); - typedef void (*destroy_func_type)(op_base*); - - // Construct an operation for the given descriptor. - op_base(perform_func_type perform_func, complete_func_type complete_func, - destroy_func_type destroy_func, Descriptor descriptor) - : perform_func_(perform_func), - complete_func_(complete_func), - destroy_func_(destroy_func), - descriptor_(descriptor), - result_(), - bytes_transferred_(0), - next_(0) - { - } - - // Prevent deletion through this type. - ~op_base() - { - } - - private: - friend class reactor_op_queue; - - // The function to be called to perform the operation. - perform_func_type perform_func_; - - // The function to be called to delete the operation and post the handler. - complete_func_type complete_func_; - - // The function to be called to delete the operation. - destroy_func_type destroy_func_; - - // The descriptor associated with the operation. - Descriptor descriptor_; - - // The result of the operation. - boost::system::error_code result_; - - // The number of bytes transferred in the operation. - std::size_t bytes_transferred_; - - // The next operation for the same file descriptor. - op_base* next_; - }; - - // Adaptor class template for operations. - template - class op - : public op_base - { - public: - // Constructor. - op(Descriptor descriptor, Operation operation) - : op_base(&op::do_perform, &op::do_complete, - &op::do_destroy, descriptor), - operation_(operation) - { - } - - // Perform the operation. - static bool do_perform(op_base* base, - boost::system::error_code& result, std::size_t& bytes_transferred) - { - return static_cast*>(base)->operation_.perform( - result, bytes_transferred); - } - - // Destroy the operation and post the handler. - static void do_complete(op_base* base, - const boost::system::error_code& result, std::size_t bytes_transferred) - { - // Take ownership of the operation object. - typedef op this_type; - this_type* this_op(static_cast(base)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(this_op->operation_, this_op); - - // Make a copy of the error_code and the operation so that the memory can - // be deallocated before the upcall is made. - boost::system::error_code ec(result); - Operation operation(this_op->operation_); - - // Free the memory associated with the operation. - ptr.reset(); - - // Make the upcall. - operation.complete(ec, bytes_transferred); - } - - // Destroy the operation. - static void do_destroy(op_base* base) - { - // Take ownership of the operation object. - typedef op this_type; - this_type* this_op(static_cast(base)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(this_op->operation_, this_op); - - // A sub-object of the operation may be the true owner of the memory - // associated with the operation. Consequently, a local copy of the - // operation is required to ensure that any owning sub-object remains - // valid until after we have deallocated the memory here. - Operation operation(this_op->operation_); - (void)operation; - - // Free the memory associated with the operation. - ptr.reset(); - } - - private: - Operation operation_; - }; - - // The type for a map of operations. - typedef hash_map operation_map; - - // The operations that are currently executing asynchronously. - operation_map operations_; - - // The list of operations that have been cancelled. - op_base* cancelled_operations_; - - // The list of operations waiting to be completed. - op_base* complete_operations_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_REACTOR_OP_QUEUE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/resolver_service.hpp b/3rdParty/Boost/boost/asio/detail/resolver_service.hpp deleted file mode 100644 index 9b0aac9..0000000 --- a/3rdParty/Boost/boost/asio/detail/resolver_service.hpp +++ /dev/null @@ -1,359 +0,0 @@ -// -// resolver_service.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_RESOLVER_SERVICE_HPP -#define BOOST_ASIO_DETAIL_RESOLVER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class resolver_service - : public boost::asio::detail::service_base > -{ -private: - // Helper class to perform exception-safe cleanup of addrinfo objects. - class auto_addrinfo - : private boost::asio::detail::noncopyable - { - public: - explicit auto_addrinfo(boost::asio::detail::addrinfo_type* ai) - : ai_(ai) - { - } - - ~auto_addrinfo() - { - if (ai_) - socket_ops::freeaddrinfo(ai_); - } - - operator boost::asio::detail::addrinfo_type*() - { - return ai_; - } - - private: - boost::asio::detail::addrinfo_type* ai_; - }; - -public: - // The implementation type of the resolver. The shared pointer is used as a - // cancellation token to indicate to the background thread that the operation - // has been cancelled. - typedef boost::shared_ptr implementation_type; - struct noop_deleter { void operator()(void*) {} }; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // The query type. - typedef typename Protocol::resolver_query query_type; - - // The iterator type. - typedef typename Protocol::resolver_iterator iterator_type; - - // Constructor. - resolver_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - resolver_service >(io_service), - mutex_(), - work_io_service_(new boost::asio::io_service), - work_(new boost::asio::io_service::work(*work_io_service_)), - work_thread_(0) - { - } - - // Destructor. - ~resolver_service() - { - shutdown_service(); - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - work_.reset(); - if (work_io_service_) - { - work_io_service_->stop(); - if (work_thread_) - { - work_thread_->join(); - work_thread_.reset(); - } - work_io_service_.reset(); - } - } - - // Construct a new resolver implementation. - void construct(implementation_type& impl) - { - impl.reset(static_cast(0), noop_deleter()); - } - - // Destroy a resolver implementation. - void destroy(implementation_type&) - { - } - - // Cancel pending asynchronous operations. - void cancel(implementation_type& impl) - { - impl.reset(static_cast(0), noop_deleter()); - } - - // Resolve a query to a list of entries. - iterator_type resolve(implementation_type&, const query_type& query, - boost::system::error_code& ec) - { - boost::asio::detail::addrinfo_type* address_info = 0; - std::string host_name = query.host_name(); - std::string service_name = query.service_name(); - boost::asio::detail::addrinfo_type hints = query.hints(); - - socket_ops::getaddrinfo(host_name.length() ? host_name.c_str() : 0, - service_name.c_str(), &hints, &address_info, ec); - auto_addrinfo auto_address_info(address_info); - - if (ec) - return iterator_type(); - - return iterator_type::create(address_info, host_name, service_name); - } - - template - class resolve_query_handler - { - public: - resolve_query_handler(implementation_type impl, const query_type& query, - boost::asio::io_service& io_service, Handler handler) - : impl_(impl), - query_(query), - io_service_(io_service), - work_(io_service), - handler_(handler) - { - } - - void operator()() - { - // Check if the operation has been cancelled. - if (impl_.expired()) - { - iterator_type iterator; - io_service_.post(boost::asio::detail::bind_handler(handler_, - boost::asio::error::operation_aborted, iterator)); - return; - } - - // Perform the blocking host resolution operation. - boost::asio::detail::addrinfo_type* address_info = 0; - std::string host_name = query_.host_name(); - std::string service_name = query_.service_name(); - boost::asio::detail::addrinfo_type hints = query_.hints(); - boost::system::error_code ec; - socket_ops::getaddrinfo(host_name.length() ? host_name.c_str() : 0, - service_name.c_str(), &hints, &address_info, ec); - auto_addrinfo auto_address_info(address_info); - - // Invoke the handler and pass the result. - iterator_type iterator; - if (!ec) - iterator = iterator_type::create(address_info, host_name, service_name); - io_service_.post(boost::asio::detail::bind_handler( - handler_, ec, iterator)); - } - - private: - boost::weak_ptr impl_; - query_type query_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - Handler handler_; - }; - - // Asynchronously resolve a query to a list of entries. - template - void async_resolve(implementation_type& impl, const query_type& query, - Handler handler) - { - if (work_io_service_) - { - start_work_thread(); - work_io_service_->post( - resolve_query_handler( - impl, query, this->get_io_service(), handler)); - } - } - - // Resolve an endpoint to a list of entries. - iterator_type resolve(implementation_type&, - const endpoint_type& endpoint, boost::system::error_code& ec) - { - // First try resolving with the service name. If that fails try resolving - // but allow the service to be returned as a number. - char host_name[NI_MAXHOST]; - char service_name[NI_MAXSERV]; - int flags = endpoint.protocol().type() == SOCK_DGRAM ? NI_DGRAM : 0; - socket_ops::getnameinfo(endpoint.data(), endpoint.size(), - host_name, NI_MAXHOST, service_name, NI_MAXSERV, flags, ec); - if (ec) - { - flags |= NI_NUMERICSERV; - socket_ops::getnameinfo(endpoint.data(), endpoint.size(), - host_name, NI_MAXHOST, service_name, NI_MAXSERV, flags, ec); - } - - if (ec) - return iterator_type(); - - return iterator_type::create(endpoint, host_name, service_name); - } - - template - class resolve_endpoint_handler - { - public: - resolve_endpoint_handler(implementation_type impl, - const endpoint_type& endpoint, boost::asio::io_service& io_service, - Handler handler) - : impl_(impl), - endpoint_(endpoint), - io_service_(io_service), - work_(io_service), - handler_(handler) - { - } - - void operator()() - { - // Check if the operation has been cancelled. - if (impl_.expired()) - { - iterator_type iterator; - io_service_.post(boost::asio::detail::bind_handler(handler_, - boost::asio::error::operation_aborted, iterator)); - return; - } - - - // First try resolving with the service name. If that fails try resolving - // but allow the service to be returned as a number. - char host_name[NI_MAXHOST]; - char service_name[NI_MAXSERV]; - int flags = endpoint_.protocol().type() == SOCK_DGRAM ? NI_DGRAM : 0; - boost::system::error_code ec; - socket_ops::getnameinfo(endpoint_.data(), endpoint_.size(), - host_name, NI_MAXHOST, service_name, NI_MAXSERV, flags, ec); - if (ec) - { - flags |= NI_NUMERICSERV; - socket_ops::getnameinfo(endpoint_.data(), endpoint_.size(), - host_name, NI_MAXHOST, service_name, NI_MAXSERV, flags, ec); - } - - // Invoke the handler and pass the result. - iterator_type iterator; - if (!ec) - iterator = iterator_type::create(endpoint_, host_name, service_name); - io_service_.post(boost::asio::detail::bind_handler( - handler_, ec, iterator)); - } - - private: - boost::weak_ptr impl_; - endpoint_type endpoint_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - Handler handler_; - }; - - // Asynchronously resolve an endpoint to a list of entries. - template - void async_resolve(implementation_type& impl, const endpoint_type& endpoint, - Handler handler) - { - if (work_io_service_) - { - start_work_thread(); - work_io_service_->post( - resolve_endpoint_handler( - impl, endpoint, this->get_io_service(), handler)); - } - } - -private: - // Helper class to run the work io_service in a thread. - class work_io_service_runner - { - public: - work_io_service_runner(boost::asio::io_service& io_service) - : io_service_(io_service) {} - void operator()() { io_service_.run(); } - private: - boost::asio::io_service& io_service_; - }; - - // Start the work thread if it's not already running. - void start_work_thread() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (!work_thread_) - { - work_thread_.reset(new boost::asio::detail::thread( - work_io_service_runner(*work_io_service_))); - } - } - - // Mutex to protect access to internal data. - boost::asio::detail::mutex mutex_; - - // Private io_service used for performing asynchronous host resolution. - boost::scoped_ptr work_io_service_; - - // Work for the private io_service to perform. - boost::scoped_ptr work_; - - // Thread used for running the work io_service's run loop. - boost::scoped_ptr work_thread_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_RESOLVER_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/scoped_lock.hpp b/3rdParty/Boost/boost/asio/detail/scoped_lock.hpp deleted file mode 100644 index 1dd2842..0000000 --- a/3rdParty/Boost/boost/asio/detail/scoped_lock.hpp +++ /dev/null @@ -1,93 +0,0 @@ -// -// scoped_lock.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SCOPED_LOCK_HPP -#define BOOST_ASIO_DETAIL_SCOPED_LOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -namespace boost { -namespace asio { -namespace detail { - -// Helper class to lock and unlock a mutex automatically. -template -class scoped_lock - : private noncopyable -{ -public: - // Constructor acquires the lock. - scoped_lock(Mutex& m) - : mutex_(m) - { - mutex_.lock(); - locked_ = true; - } - - // Destructor releases the lock. - ~scoped_lock() - { - if (locked_) - mutex_.unlock(); - } - - // Explicitly acquire the lock. - void lock() - { - if (!locked_) - { - mutex_.lock(); - locked_ = true; - } - } - - // Explicitly release the lock. - void unlock() - { - if (locked_) - { - mutex_.unlock(); - locked_ = false; - } - } - - // Test whether the lock is held. - bool locked() const - { - return locked_; - } - - // Get the underlying mutex. - Mutex& mutex() - { - return mutex_; - } - -private: - // The underlying mutex. - Mutex& mutex_; - - // Whether the mutex is currently locked or unlocked. - bool locked_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SCOPED_LOCK_HPP diff --git a/3rdParty/Boost/boost/asio/detail/select_interrupter.hpp b/3rdParty/Boost/boost/asio/detail/select_interrupter.hpp deleted file mode 100644 index 8bb952c..0000000 --- a/3rdParty/Boost/boost/asio/detail/select_interrupter.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SELECT_INTERRUPTER_HPP -#define BOOST_ASIO_DETAIL_SELECT_INTERRUPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -typedef socket_select_interrupter select_interrupter; -#elif defined(BOOST_ASIO_HAS_EVENTFD) -typedef eventfd_select_interrupter select_interrupter; -#else -typedef pipe_select_interrupter select_interrupter; -#endif - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SELECT_INTERRUPTER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/select_reactor.hpp b/3rdParty/Boost/boost/asio/detail/select_reactor.hpp deleted file mode 100644 index 77caf54..0000000 --- a/3rdParty/Boost/boost/asio/detail/select_reactor.hpp +++ /dev/null @@ -1,546 +0,0 @@ -// -// select_reactor.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SELECT_REACTOR_HPP -#define BOOST_ASIO_DETAIL_SELECT_REACTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include // Must come before posix_time. - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class select_reactor - : public boost::asio::detail::service_base > -{ -public: - // Per-descriptor data. - struct per_descriptor_data - { - }; - - // Constructor. - select_reactor(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - select_reactor >(io_service), - mutex_(), - select_in_progress_(false), - interrupter_(), - read_op_queue_(), - write_op_queue_(), - except_op_queue_(), - pending_cancellations_(), - stop_thread_(false), - thread_(0), - shutdown_(false) - { - if (Own_Thread) - { - boost::asio::detail::signal_blocker sb; - thread_ = new boost::asio::detail::thread( - bind_handler(&select_reactor::call_run_thread, this)); - } - } - - // Destructor. - ~select_reactor() - { - shutdown_service(); - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; - stop_thread_ = true; - lock.unlock(); - - if (thread_) - { - interrupter_.interrupt(); - thread_->join(); - delete thread_; - thread_ = 0; - } - - read_op_queue_.destroy_operations(); - write_op_queue_.destroy_operations(); - except_op_queue_.destroy_operations(); - - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - timer_queues_[i]->destroy_timers(); - timer_queues_.clear(); - } - - // Initialise the task, but only if the reactor is not in its own thread. - void init_task() - { - if (!Own_Thread) - { - typedef task_io_service > task_io_service_type; - use_service(this->get_io_service()).init_task(); - } - } - - // Register a socket with the reactor. Returns 0 on success, system error - // code on failure. - int register_descriptor(socket_type, per_descriptor_data&) - { - return 0; - } - - // Start a new read operation. The handler object will be invoked when the - // given descriptor is ready to be read, or an error has occurred. - template - void start_read_op(socket_type descriptor, per_descriptor_data&, - Handler handler, bool /*allow_speculative_read*/ = true) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (!shutdown_) - if (read_op_queue_.enqueue_operation(descriptor, handler)) - interrupter_.interrupt(); - } - - // Start a new write operation. The handler object will be invoked when the - // given descriptor is ready to be written, or an error has occurred. - template - void start_write_op(socket_type descriptor, per_descriptor_data&, - Handler handler, bool /*allow_speculative_write*/ = true) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (!shutdown_) - if (write_op_queue_.enqueue_operation(descriptor, handler)) - interrupter_.interrupt(); - } - - // Start a new exception operation. The handler object will be invoked when - // the given descriptor has exception information, or an error has occurred. - template - void start_except_op(socket_type descriptor, - per_descriptor_data&, Handler handler) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (!shutdown_) - if (except_op_queue_.enqueue_operation(descriptor, handler)) - interrupter_.interrupt(); - } - - // Wrapper for connect handlers to enable the handler object to be placed - // in both the write and the except operation queues, but ensure that only - // one of the handlers is called. - template - class connect_handler_wrapper - { - public: - connect_handler_wrapper(socket_type descriptor, - boost::shared_ptr completed, - select_reactor& reactor, Handler handler) - : descriptor_(descriptor), - completed_(completed), - reactor_(reactor), - handler_(handler) - { - } - - bool perform(boost::system::error_code& ec, - std::size_t& bytes_transferred) - { - // Check whether one of the handlers has already been called. If it has, - // then we don't want to do anything in this handler. - if (*completed_) - { - completed_.reset(); // Indicate that this handler should not complete. - return true; - } - - // Cancel the other reactor operation for the connection. - *completed_ = true; - reactor_.enqueue_cancel_ops_unlocked(descriptor_); - - // Call the contained handler. - return handler_.perform(ec, bytes_transferred); - } - - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - if (completed_.get()) - handler_.complete(ec, bytes_transferred); - } - - private: - socket_type descriptor_; - boost::shared_ptr completed_; - select_reactor& reactor_; - Handler handler_; - }; - - // Start new write and exception operations. The handler object will be - // invoked when the given descriptor is ready for writing or has exception - // information available, or an error has occurred. The handler will be called - // only once. - template - void start_connect_op(socket_type descriptor, - per_descriptor_data&, Handler handler) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (!shutdown_) - { - boost::shared_ptr completed(new bool(false)); - connect_handler_wrapper wrapped_handler( - descriptor, completed, *this, handler); - bool interrupt = write_op_queue_.enqueue_operation( - descriptor, wrapped_handler); - interrupt = except_op_queue_.enqueue_operation( - descriptor, wrapped_handler) || interrupt; - if (interrupt) - interrupter_.interrupt(); - } - } - - // Cancel all operations associated with the given descriptor. The - // handlers associated with the descriptor will be invoked with the - // operation_aborted error. - void cancel_ops(socket_type descriptor, per_descriptor_data&) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor); - } - - // Enqueue cancellation of all operations associated with the given - // descriptor. The handlers associated with the descriptor will be invoked - // with the operation_aborted error. This function does not acquire the - // select_reactor's mutex, and so should only be used when the reactor lock is - // already held. - void enqueue_cancel_ops_unlocked(socket_type descriptor) - { - pending_cancellations_.push_back(descriptor); - } - - // Cancel any operations that are running against the descriptor and remove - // its registration from the reactor. - void close_descriptor(socket_type descriptor, per_descriptor_data&) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - cancel_ops_unlocked(descriptor); - } - - // Add a new timer queue to the reactor. - template - void add_timer_queue(timer_queue& timer_queue) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - timer_queues_.push_back(&timer_queue); - } - - // Remove a timer queue from the reactor. - template - void remove_timer_queue(timer_queue& timer_queue) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - if (timer_queues_[i] == &timer_queue) - { - timer_queues_.erase(timer_queues_.begin() + i); - return; - } - } - } - - // Schedule a timer in the given timer queue to expire at the specified - // absolute time. The handler object will be invoked when the timer expires. - template - void schedule_timer(timer_queue& timer_queue, - const typename Time_Traits::time_type& time, Handler handler, void* token) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (!shutdown_) - if (timer_queue.enqueue_timer(time, handler, token)) - interrupter_.interrupt(); - } - - // Cancel the timer associated with the given token. Returns the number of - // handlers that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& timer_queue, void* token) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - std::size_t n = timer_queue.cancel_timer(token); - if (n > 0) - interrupter_.interrupt(); - return n; - } - -private: - friend class task_io_service >; - - // Run select once until interrupted or events are ready to be dispatched. - void run(bool block) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - // Dispatch any operation cancellations that were made while the select - // loop was not running. - read_op_queue_.perform_cancellations(); - write_op_queue_.perform_cancellations(); - except_op_queue_.perform_cancellations(); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - timer_queues_[i]->dispatch_cancellations(); - - // Check if the thread is supposed to stop. - if (stop_thread_) - { - complete_operations_and_timers(lock); - return; - } - - // We can return immediately if there's no work to do and the reactor is - // not supposed to block. - if (!block && read_op_queue_.empty() && write_op_queue_.empty() - && except_op_queue_.empty() && all_timer_queues_are_empty()) - { - complete_operations_and_timers(lock); - return; - } - - // Set up the descriptor sets. - fd_set_adapter read_fds; - read_fds.set(interrupter_.read_descriptor()); - read_op_queue_.get_descriptors(read_fds); - fd_set_adapter write_fds; - write_op_queue_.get_descriptors(write_fds); - fd_set_adapter except_fds; - except_op_queue_.get_descriptors(except_fds); - socket_type max_fd = read_fds.max_descriptor(); - if (write_fds.max_descriptor() > max_fd) - max_fd = write_fds.max_descriptor(); - if (except_fds.max_descriptor() > max_fd) - max_fd = except_fds.max_descriptor(); - - // Block on the select call without holding the lock so that new - // operations can be started while the call is executing. - timeval tv_buf = { 0, 0 }; - timeval* tv = block ? get_timeout(tv_buf) : &tv_buf; - select_in_progress_ = true; - lock.unlock(); - boost::system::error_code ec; - int retval = socket_ops::select(static_cast(max_fd + 1), - read_fds, write_fds, except_fds, tv, ec); - lock.lock(); - select_in_progress_ = false; - - // Block signals while dispatching operations. - boost::asio::detail::signal_blocker sb; - - // Reset the interrupter. - if (retval > 0 && read_fds.is_set(interrupter_.read_descriptor())) - interrupter_.reset(); - - // Dispatch all ready operations. - if (retval > 0) - { - // Exception operations must be processed first to ensure that any - // out-of-band data is read before normal data. - except_op_queue_.perform_operations_for_descriptors( - except_fds, boost::system::error_code()); - read_op_queue_.perform_operations_for_descriptors( - read_fds, boost::system::error_code()); - write_op_queue_.perform_operations_for_descriptors( - write_fds, boost::system::error_code()); - except_op_queue_.perform_cancellations(); - read_op_queue_.perform_cancellations(); - write_op_queue_.perform_cancellations(); - } - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - timer_queues_[i]->dispatch_timers(); - timer_queues_[i]->dispatch_cancellations(); - } - - // Issue any pending cancellations. - for (size_t i = 0; i < pending_cancellations_.size(); ++i) - cancel_ops_unlocked(pending_cancellations_[i]); - pending_cancellations_.clear(); - - complete_operations_and_timers(lock); - } - - // Run the select loop in the thread. - void run_thread() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - while (!stop_thread_) - { - lock.unlock(); - run(true); - lock.lock(); - } - } - - // Entry point for the select loop thread. - static void call_run_thread(select_reactor* reactor) - { - reactor->run_thread(); - } - - // Interrupt the select loop. - void interrupt() - { - interrupter_.interrupt(); - } - - // Check if all timer queues are empty. - bool all_timer_queues_are_empty() const - { - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - if (!timer_queues_[i]->empty()) - return false; - return true; - } - - // Get the timeout value for the select call. - timeval* get_timeout(timeval& tv) - { - if (all_timer_queues_are_empty()) - return 0; - - // By default we will wait no longer than 5 minutes. This will ensure that - // any changes to the system clock are detected after no longer than this. - boost::posix_time::time_duration minimum_wait_duration - = boost::posix_time::minutes(5); - - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - boost::posix_time::time_duration wait_duration - = timer_queues_[i]->wait_duration(); - if (wait_duration < minimum_wait_duration) - minimum_wait_duration = wait_duration; - } - - if (minimum_wait_duration > boost::posix_time::time_duration()) - { - tv.tv_sec = minimum_wait_duration.total_seconds(); - tv.tv_usec = minimum_wait_duration.total_microseconds() % 1000000; - } - else - { - tv.tv_sec = 0; - tv.tv_usec = 0; - } - - return &tv; - } - - // Cancel all operations associated with the given descriptor. The do_cancel - // function of the handler objects will be invoked. This function does not - // acquire the select_reactor's mutex. - void cancel_ops_unlocked(socket_type descriptor) - { - bool interrupt = read_op_queue_.cancel_operations(descriptor); - interrupt = write_op_queue_.cancel_operations(descriptor) || interrupt; - interrupt = except_op_queue_.cancel_operations(descriptor) || interrupt; - if (interrupt) - interrupter_.interrupt(); - } - - // Clean up operations and timers. We must not hold the lock since the - // destructors may make calls back into this reactor. We make a copy of the - // vector of timer queues since the original may be modified while the lock - // is not held. - void complete_operations_and_timers( - boost::asio::detail::mutex::scoped_lock& lock) - { - timer_queues_for_cleanup_ = timer_queues_; - lock.unlock(); - read_op_queue_.complete_operations(); - write_op_queue_.complete_operations(); - except_op_queue_.complete_operations(); - for (std::size_t i = 0; i < timer_queues_for_cleanup_.size(); ++i) - timer_queues_for_cleanup_[i]->complete_timers(); - } - - // Mutex to protect access to internal data. - boost::asio::detail::mutex mutex_; - - // Whether the select loop is currently running or not. - bool select_in_progress_; - - // The interrupter is used to break a blocking select call. - select_interrupter interrupter_; - - // The queue of read operations. - reactor_op_queue read_op_queue_; - - // The queue of write operations. - reactor_op_queue write_op_queue_; - - // The queue of exception operations. - reactor_op_queue except_op_queue_; - - // The timer queues. - std::vector timer_queues_; - - // A copy of the timer queues, used when cleaning up timers. The copy is - // stored as a class data member to avoid unnecessary memory allocation. - std::vector timer_queues_for_cleanup_; - - // The descriptors that are pending cancellation. - std::vector pending_cancellations_; - - // Does the reactor loop thread need to stop. - bool stop_thread_; - - // The thread that is running the reactor loop. - boost::asio::detail::thread* thread_; - - // Whether the service has been shut down. - bool shutdown_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SELECT_REACTOR_HPP diff --git a/3rdParty/Boost/boost/asio/detail/select_reactor_fwd.hpp b/3rdParty/Boost/boost/asio/detail/select_reactor_fwd.hpp deleted file mode 100644 index 3bd5d86..0000000 --- a/3rdParty/Boost/boost/asio/detail/select_reactor_fwd.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// select_reactor_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SELECT_REACTOR_FWD_HPP -#define BOOST_ASIO_DETAIL_SELECT_REACTOR_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class select_reactor; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SELECT_REACTOR_FWD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/service_base.hpp b/3rdParty/Boost/boost/asio/detail/service_base.hpp deleted file mode 100644 index f01cdaf..0000000 --- a/3rdParty/Boost/boost/asio/detail/service_base.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// -// service_base.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SERVICE_BASE_HPP -#define BOOST_ASIO_DETAIL_SERVICE_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// Special service base class to keep classes header-file only. -template -class service_base - : public boost::asio::io_service::service -{ -public: - static boost::asio::detail::service_id id; - - // Constructor. - service_base(boost::asio::io_service& io_service) - : boost::asio::io_service::service(io_service) - { - } -}; - -template -boost::asio::detail::service_id service_base::id; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SERVICE_BASE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/service_id.hpp b/3rdParty/Boost/boost/asio/detail/service_id.hpp deleted file mode 100644 index f249ddf..0000000 --- a/3rdParty/Boost/boost/asio/detail/service_id.hpp +++ /dev/null @@ -1,39 +0,0 @@ -// -// service_id.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SERVICE_ID_HPP -#define BOOST_ASIO_DETAIL_SERVICE_ID_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -namespace boost { -namespace asio { -namespace detail { - -// Special derived service id type to keep classes header-file only. -template -class service_id - : public boost::asio::io_service::id -{ -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SERVICE_ID_HPP diff --git a/3rdParty/Boost/boost/asio/detail/service_registry.hpp b/3rdParty/Boost/boost/asio/detail/service_registry.hpp deleted file mode 100644 index 6b25663..0000000 --- a/3rdParty/Boost/boost/asio/detail/service_registry.hpp +++ /dev/null @@ -1,228 +0,0 @@ -// -// service_registry.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SERVICE_REGISTRY_HPP -#define BOOST_ASIO_DETAIL_SERVICE_REGISTRY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -#if defined(BOOST_NO_TYPEID) -# if !defined(BOOST_ASIO_NO_TYPEID) -# define BOOST_ASIO_NO_TYPEID -# endif // !defined(BOOST_ASIO_NO_TYPEID) -#endif // defined(BOOST_NO_TYPEID) - -namespace boost { -namespace asio { -namespace detail { - -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -#endif // defined(__GNUC__) - -template -class typeid_wrapper {}; - -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -#endif // defined(__GNUC__) - -class service_registry - : private noncopyable -{ -public: - // Constructor. - service_registry(boost::asio::io_service& o) - : owner_(o), - first_service_(0) - { - } - - // Destructor. - ~service_registry() - { - // Shutdown all services. This must be done in a separate loop before the - // services are destroyed since the destructors of user-defined handler - // objects may try to access other service objects. - boost::asio::io_service::service* service = first_service_; - while (service) - { - service->shutdown_service(); - service = service->next_; - } - - // Destroy all services. - while (first_service_) - { - boost::asio::io_service::service* next_service = first_service_->next_; - delete first_service_; - first_service_ = next_service; - } - } - - // Get the service object corresponding to the specified service type. Will - // create a new service object automatically if no such object already - // exists. Ownership of the service object is not transferred to the caller. - template - Service& use_service() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - // First see if there is an existing service object for the given type. - boost::asio::io_service::service* service = first_service_; - while (service) - { - if (service_id_matches(*service, Service::id)) - return *static_cast(service); - service = service->next_; - } - - // Create a new service object. The service registry's mutex is not locked - // at this time to allow for nested calls into this function from the new - // service's constructor. - lock.unlock(); - std::auto_ptr new_service(new Service(owner_)); - init_service_id(*new_service, Service::id); - Service& new_service_ref = *new_service; - lock.lock(); - - // Check that nobody else created another service object of the same type - // while the lock was released. - service = first_service_; - while (service) - { - if (service_id_matches(*service, Service::id)) - return *static_cast(service); - service = service->next_; - } - - // Service was successfully initialised, pass ownership to registry. - new_service->next_ = first_service_; - first_service_ = new_service.release(); - - return new_service_ref; - } - - // Add a service object. Returns false on error, in which case ownership of - // the object is retained by the caller. - template - bool add_service(Service* new_service) - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - // Check if there is an existing service object for the given type. - boost::asio::io_service::service* service = first_service_; - while (service) - { - if (service_id_matches(*service, Service::id)) - return false; - service = service->next_; - } - - // Take ownership of the service object. - init_service_id(*new_service, Service::id); - new_service->next_ = first_service_; - first_service_ = new_service; - - return true; - } - - // Check whether a service object of the specified type already exists. - template - bool has_service() const - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - boost::asio::io_service::service* service = first_service_; - while (service) - { - if (service_id_matches(*service, Service::id)) - return true; - service = service->next_; - } - - return false; - } - -private: - // Set a service's id. - void init_service_id(boost::asio::io_service::service& service, - const boost::asio::io_service::id& id) - { - service.type_info_ = 0; - service.id_ = &id; - } - -#if !defined(BOOST_ASIO_NO_TYPEID) - // Set a service's id. - template - void init_service_id(boost::asio::io_service::service& service, - const boost::asio::detail::service_id& /*id*/) - { - service.type_info_ = &typeid(typeid_wrapper); - service.id_ = 0; - } -#endif // !defined(BOOST_ASIO_NO_TYPEID) - - // Check if a service matches the given id. - static bool service_id_matches( - const boost::asio::io_service::service& service, - const boost::asio::io_service::id& id) - { - return service.id_ == &id; - } - -#if !defined(BOOST_ASIO_NO_TYPEID) - // Check if a service matches the given id. - template - static bool service_id_matches( - const boost::asio::io_service::service& service, - const boost::asio::detail::service_id& /*id*/) - { - return service.type_info_ != 0 - && *service.type_info_ == typeid(typeid_wrapper); - } -#endif // !defined(BOOST_ASIO_NO_TYPEID) - - // Mutex to protect access to internal data. - mutable boost::asio::detail::mutex mutex_; - - // The owner of this service registry and the services it contains. - boost::asio::io_service& owner_; - - // The first service in the list of contained services. - boost::asio::io_service::service* first_service_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SERVICE_REGISTRY_HPP diff --git a/3rdParty/Boost/boost/asio/detail/service_registry_fwd.hpp b/3rdParty/Boost/boost/asio/detail/service_registry_fwd.hpp deleted file mode 100644 index e32647b..0000000 --- a/3rdParty/Boost/boost/asio/detail/service_registry_fwd.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// service_registry_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SERVICE_REGISTRY_FWD_HPP -#define BOOST_ASIO_DETAIL_SERVICE_REGISTRY_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -namespace boost { -namespace asio { -namespace detail { - -class service_registry; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SERVICE_REGISTRY_FWD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/signal_blocker.hpp b/3rdParty/Boost/boost/asio/detail/signal_blocker.hpp deleted file mode 100644 index a770549..0000000 --- a/3rdParty/Boost/boost/asio/detail/signal_blocker.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// -// signal_blocker.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SIGNAL_BLOCKER_HPP -#define BOOST_ASIO_DETAIL_SIGNAL_BLOCKER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_HAS_THREADS) -# include -#elif defined(BOOST_WINDOWS) || defined(__CYGWIN__) -# include -#elif defined(BOOST_HAS_PTHREADS) -# include -#else -# error Only Windows and POSIX are supported! -#endif - -namespace boost { -namespace asio { -namespace detail { - -#if !defined(BOOST_HAS_THREADS) -typedef null_signal_blocker signal_blocker; -#elif defined(BOOST_WINDOWS) || defined(__CYGWIN__) -typedef win_signal_blocker signal_blocker; -#elif defined(BOOST_HAS_PTHREADS) -typedef posix_signal_blocker signal_blocker; -#endif - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SIGNAL_BLOCKER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/signal_init.hpp b/3rdParty/Boost/boost/asio/detail/signal_init.hpp deleted file mode 100644 index e5a3d37..0000000 --- a/3rdParty/Boost/boost/asio/detail/signal_init.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// signal_init.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SIGNAL_INIT_HPP -#define BOOST_ASIO_DETAIL_SIGNAL_INIT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class signal_init -{ -public: - // Constructor. - signal_init() - { - std::signal(Signal, SIG_IGN); - } -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -#include - -#endif // BOOST_ASIO_DETAIL_SIGNAL_INIT_HPP diff --git a/3rdParty/Boost/boost/asio/detail/socket_holder.hpp b/3rdParty/Boost/boost/asio/detail/socket_holder.hpp deleted file mode 100644 index be144a6..0000000 --- a/3rdParty/Boost/boost/asio/detail/socket_holder.hpp +++ /dev/null @@ -1,97 +0,0 @@ -// -// socket_holder.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SOCKET_HOLDER_HPP -#define BOOST_ASIO_DETAIL_SOCKET_HOLDER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// Implement the resource acquisition is initialisation idiom for sockets. -class socket_holder - : private noncopyable -{ -public: - // Construct as an uninitialised socket. - socket_holder() - : socket_(invalid_socket) - { - } - - // Construct to take ownership of the specified socket. - explicit socket_holder(socket_type s) - : socket_(s) - { - } - - // Destructor. - ~socket_holder() - { - if (socket_ != invalid_socket) - { - boost::system::error_code ec; - socket_ops::close(socket_, ec); - } - } - - // Get the underlying socket. - socket_type get() const - { - return socket_; - } - - // Reset to an uninitialised socket. - void reset() - { - if (socket_ != invalid_socket) - { - boost::system::error_code ec; - socket_ops::close(socket_, ec); - socket_ = invalid_socket; - } - } - - // Reset to take ownership of the specified socket. - void reset(socket_type s) - { - reset(); - socket_ = s; - } - - // Release ownership of the socket. - socket_type release() - { - socket_type tmp = socket_; - socket_ = invalid_socket; - return tmp; - } - -private: - // The underlying socket. - socket_type socket_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SOCKET_HOLDER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/socket_ops.hpp b/3rdParty/Boost/boost/asio/detail/socket_ops.hpp deleted file mode 100644 index 4969017..0000000 --- a/3rdParty/Boost/boost/asio/detail/socket_ops.hpp +++ /dev/null @@ -1,1913 +0,0 @@ -// -// socket_ops.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SOCKET_OPS_HPP -#define BOOST_ASIO_DETAIL_SOCKET_OPS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace detail { -namespace socket_ops { - -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -struct msghdr { int msg_namelen; }; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -#if defined(__hpux) -// HP-UX doesn't declare these functions extern "C", so they are declared again -// here to avoid linker errors about undefined symbols. -extern "C" char* if_indextoname(unsigned int, char*); -extern "C" unsigned int if_nametoindex(const char*); -#endif // defined(__hpux) - -inline void clear_error(boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - WSASetLastError(0); -#else - errno = 0; -#endif - ec = boost::system::error_code(); -} - -template -inline ReturnType error_wrapper(ReturnType return_value, - boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - ec = boost::system::error_code(WSAGetLastError(), - boost::asio::error::get_system_category()); -#else - ec = boost::system::error_code(errno, - boost::asio::error::get_system_category()); -#endif - return return_value; -} - -template -inline socket_type call_accept(SockLenType msghdr::*, - socket_type s, socket_addr_type* addr, std::size_t* addrlen) -{ - SockLenType tmp_addrlen = addrlen ? (SockLenType)*addrlen : 0; - socket_type result = ::accept(s, addr, addrlen ? &tmp_addrlen : 0); - if (addrlen) - *addrlen = (std::size_t)tmp_addrlen; - return result; -} - -inline socket_type accept(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, boost::system::error_code& ec) -{ - clear_error(ec); - - socket_type new_s = error_wrapper(call_accept( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (new_s == invalid_socket) - return new_s; - -#if defined(__MACH__) && defined(__APPLE__) || defined(__FreeBSD__) - int optval = 1; - int result = error_wrapper(::setsockopt(new_s, - SOL_SOCKET, SO_NOSIGPIPE, &optval, sizeof(optval)), ec); - if (result != 0) - { - ::close(new_s); - return invalid_socket; - } -#endif - - clear_error(ec); - return new_s; -} - -template -inline int call_bind(SockLenType msghdr::*, - socket_type s, const socket_addr_type* addr, std::size_t addrlen) -{ - return ::bind(s, addr, (SockLenType)addrlen); -} - -inline int bind(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(call_bind( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - clear_error(ec); - return result; -} - -inline int close(socket_type s, boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::closesocket(s), ec); -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::close(s), ec); -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - if (result == 0) - clear_error(ec); - return result; -} - -inline int shutdown(socket_type s, int what, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(::shutdown(s, what), ec); - if (result == 0) - clear_error(ec); - return result; -} - -template -inline int call_connect(SockLenType msghdr::*, - socket_type s, const socket_addr_type* addr, std::size_t addrlen) -{ - return ::connect(s, addr, (SockLenType)addrlen); -} - -inline int connect(socket_type s, const socket_addr_type* addr, - std::size_t addrlen, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(call_connect( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - clear_error(ec); - return result; -} - -inline int socketpair(int af, int type, int protocol, - socket_type sv[2], boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - (void)(af); - (void)(type); - (void)(protocol); - (void)(sv); - ec = boost::asio::error::operation_not_supported; - return -1; -#else - clear_error(ec); - int result = error_wrapper(::socketpair(af, type, protocol, sv), ec); - if (result == 0) - clear_error(ec); - return result; -#endif -} - -inline int listen(socket_type s, int backlog, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(::listen(s, backlog), ec); - if (result == 0) - clear_error(ec); - return result; -} - -inline void init_buf_iov_base(void*& base, void* addr) -{ - base = addr; -} - -template -inline void init_buf_iov_base(T& base, void* addr) -{ - base = static_cast(addr); -} - -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -typedef WSABUF buf; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -typedef iovec buf; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -inline void init_buf(buf& b, void* data, size_t size) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - b.buf = static_cast(data); - b.len = static_cast(size); -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - init_buf_iov_base(b.iov_base, data); - b.iov_len = size; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline void init_buf(buf& b, const void* data, size_t size) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - b.buf = static_cast(const_cast(data)); - b.len = static_cast(size); -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - init_buf_iov_base(b.iov_base, const_cast(data)); - b.iov_len = size; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline void init_msghdr_msg_name(void*& name, socket_addr_type* addr) -{ - name = addr; -} - -inline void init_msghdr_msg_name(void*& name, const socket_addr_type* addr) -{ - name = const_cast(addr); -} - -template -inline void init_msghdr_msg_name(T& name, socket_addr_type* addr) -{ - name = reinterpret_cast(addr); -} - -template -inline void init_msghdr_msg_name(T& name, const socket_addr_type* addr) -{ - name = reinterpret_cast(const_cast(addr)); -} - -inline int recv(socket_type s, buf* bufs, size_t count, int flags, - boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - // Receive some data. - DWORD recv_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = error_wrapper(::WSARecv(s, bufs, - recv_buf_count, &bytes_transferred, &recv_flags, 0, 0), ec); - if (result != 0) - return -1; - clear_error(ec); - return bytes_transferred; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - msg.msg_iov = bufs; - msg.msg_iovlen = count; - int result = error_wrapper(::recvmsg(s, &msg, flags), ec); - if (result >= 0) - clear_error(ec); - return result; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline int recvfrom(socket_type s, buf* bufs, size_t count, int flags, - socket_addr_type* addr, std::size_t* addrlen, - boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - // Receive some data. - DWORD recv_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int tmp_addrlen = (int)*addrlen; - int result = error_wrapper(::WSARecvFrom(s, bufs, recv_buf_count, - &bytes_transferred, &recv_flags, addr, &tmp_addrlen, 0, 0), ec); - *addrlen = (std::size_t)tmp_addrlen; - if (result != 0) - return -1; - clear_error(ec); - return bytes_transferred; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - init_msghdr_msg_name(msg.msg_name, addr); - msg.msg_namelen = *addrlen; - msg.msg_iov = bufs; - msg.msg_iovlen = count; - int result = error_wrapper(::recvmsg(s, &msg, flags), ec); - *addrlen = msg.msg_namelen; - if (result >= 0) - clear_error(ec); - return result; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline int send(socket_type s, const buf* bufs, size_t count, int flags, - boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - // Send the data. - DWORD send_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - DWORD send_flags = flags; - int result = error_wrapper(::WSASend(s, const_cast(bufs), - send_buf_count, &bytes_transferred, send_flags, 0, 0), ec); - if (result != 0) - return -1; - clear_error(ec); - return bytes_transferred; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - msg.msg_iov = const_cast(bufs); - msg.msg_iovlen = count; -#if defined(__linux__) - flags |= MSG_NOSIGNAL; -#endif // defined(__linux__) - int result = error_wrapper(::sendmsg(s, &msg, flags), ec); - if (result >= 0) - clear_error(ec); - return result; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline int sendto(socket_type s, const buf* bufs, size_t count, int flags, - const socket_addr_type* addr, std::size_t addrlen, - boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - // Send the data. - DWORD send_buf_count = static_cast(count); - DWORD bytes_transferred = 0; - int result = error_wrapper(::WSASendTo(s, const_cast(bufs), - send_buf_count, &bytes_transferred, flags, addr, - static_cast(addrlen), 0, 0), ec); - if (result != 0) - return -1; - clear_error(ec); - return bytes_transferred; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - msghdr msg = msghdr(); - init_msghdr_msg_name(msg.msg_name, addr); - msg.msg_namelen = addrlen; - msg.msg_iov = const_cast(bufs); - msg.msg_iovlen = count; -#if defined(__linux__) - flags |= MSG_NOSIGNAL; -#endif // defined(__linux__) - int result = error_wrapper(::sendmsg(s, &msg, flags), ec); - if (result >= 0) - clear_error(ec); - return result; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline socket_type socket(int af, int type, int protocol, - boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - socket_type s = error_wrapper(::WSASocket(af, type, protocol, 0, 0, - WSA_FLAG_OVERLAPPED), ec); - if (s == invalid_socket) - return s; - - if (af == AF_INET6) - { - // Try to enable the POSIX default behaviour of having IPV6_V6ONLY set to - // false. This will only succeed on Windows Vista and later versions of - // Windows, where a dual-stack IPv4/v6 implementation is available. - DWORD optval = 0; - ::setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, - reinterpret_cast(&optval), sizeof(optval)); - } - - clear_error(ec); - - return s; -#elif defined(__MACH__) && defined(__APPLE__) || defined(__FreeBSD__) - socket_type s = error_wrapper(::socket(af, type, protocol), ec); - if (s == invalid_socket) - return s; - - int optval = 1; - int result = error_wrapper(::setsockopt(s, - SOL_SOCKET, SO_NOSIGPIPE, &optval, sizeof(optval)), ec); - if (result != 0) - { - ::close(s); - return invalid_socket; - } - - return s; -#else - int s = error_wrapper(::socket(af, type, protocol), ec); - if (s >= 0) - clear_error(ec); - return s; -#endif -} - -template -inline int call_setsockopt(SockLenType msghdr::*, - socket_type s, int level, int optname, - const void* optval, std::size_t optlen) -{ - return ::setsockopt(s, level, optname, - (const char*)optval, (SockLenType)optlen); -} - -inline int setsockopt(socket_type s, int level, int optname, - const void* optval, std::size_t optlen, boost::system::error_code& ec) -{ - if (level == custom_socket_option_level && optname == always_fail_option) - { - ec = boost::asio::error::invalid_argument; - return -1; - } - -#if defined(__BORLANDC__) - // Mysteriously, using the getsockopt and setsockopt functions directly with - // Borland C++ results in incorrect values being set and read. The bug can be - // worked around by using function addresses resolved with GetProcAddress. - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - typedef int (WSAAPI *sso_t)(SOCKET, int, int, const char*, int); - if (sso_t sso = (sso_t)::GetProcAddress(winsock_module, "setsockopt")) - { - clear_error(ec); - return error_wrapper(sso(s, level, optname, - reinterpret_cast(optval), - static_cast(optlen)), ec); - } - } - ec = boost::asio::error::fault; - return -1; -#else // defined(__BORLANDC__) - clear_error(ec); - int result = error_wrapper(call_setsockopt(&msghdr::msg_namelen, - s, level, optname, optval, optlen), ec); - if (result == 0) - clear_error(ec); - return result; -#endif // defined(__BORLANDC__) -} - -template -inline int call_getsockopt(SockLenType msghdr::*, - socket_type s, int level, int optname, - void* optval, std::size_t* optlen) -{ - SockLenType tmp_optlen = (SockLenType)*optlen; - int result = ::getsockopt(s, level, optname, (char*)optval, &tmp_optlen); - *optlen = (std::size_t)tmp_optlen; - return result; -} - -inline int getsockopt(socket_type s, int level, int optname, void* optval, - size_t* optlen, boost::system::error_code& ec) -{ - if (level == custom_socket_option_level && optname == always_fail_option) - { - ec = boost::asio::error::invalid_argument; - return -1; - } - -#if defined(__BORLANDC__) - // Mysteriously, using the getsockopt and setsockopt functions directly with - // Borland C++ results in incorrect values being set and read. The bug can be - // worked around by using function addresses resolved with GetProcAddress. - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - typedef int (WSAAPI *gso_t)(SOCKET, int, int, char*, int*); - if (gso_t gso = (gso_t)::GetProcAddress(winsock_module, "getsockopt")) - { - clear_error(ec); - int tmp_optlen = static_cast(*optlen); - int result = error_wrapper(gso(s, level, optname, - reinterpret_cast(optval), &tmp_optlen), ec); - *optlen = static_cast(tmp_optlen); - if (result != 0 && level == IPPROTO_IPV6 && optname == IPV6_V6ONLY - && ec.value() == WSAENOPROTOOPT && *optlen == sizeof(DWORD)) - { - // Dual-stack IPv4/v6 sockets, and the IPV6_V6ONLY socket option, are - // only supported on Windows Vista and later. To simplify program logic - // we will fake success of getting this option and specify that the - // value is non-zero (i.e. true). This corresponds to the behavior of - // IPv6 sockets on Windows platforms pre-Vista. - *static_cast(optval) = 1; - clear_error(ec); - } - return result; - } - } - ec = boost::asio::error::fault; - return -1; -#elif defined(BOOST_WINDOWS) || defined(__CYGWIN__) - clear_error(ec); - int result = error_wrapper(call_getsockopt(&msghdr::msg_namelen, - s, level, optname, optval, optlen), ec); - if (result != 0 && level == IPPROTO_IPV6 && optname == IPV6_V6ONLY - && ec.value() == WSAENOPROTOOPT && *optlen == sizeof(DWORD)) - { - // Dual-stack IPv4/v6 sockets, and the IPV6_V6ONLY socket option, are only - // supported on Windows Vista and later. To simplify program logic we will - // fake success of getting this option and specify that the value is - // non-zero (i.e. true). This corresponds to the behavior of IPv6 sockets - // on Windows platforms pre-Vista. - *static_cast(optval) = 1; - clear_error(ec); - } - if (result == 0) - clear_error(ec); - return result; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - clear_error(ec); - int result = error_wrapper(call_getsockopt(&msghdr::msg_namelen, - s, level, optname, optval, optlen), ec); -#if defined(__linux__) - if (result == 0 && level == SOL_SOCKET && *optlen == sizeof(int) - && (optname == SO_SNDBUF || optname == SO_RCVBUF)) - { - // On Linux, setting SO_SNDBUF or SO_RCVBUF to N actually causes the kernel - // to set the buffer size to N*2. Linux puts additional stuff into the - // buffers so that only about half is actually available to the application. - // The retrieved value is divided by 2 here to make it appear as though the - // correct value has been set. - *static_cast(optval) /= 2; - } -#endif // defined(__linux__) - if (result == 0) - clear_error(ec); - return result; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -template -inline int call_getpeername(SockLenType msghdr::*, - socket_type s, socket_addr_type* addr, std::size_t* addrlen) -{ - SockLenType tmp_addrlen = (SockLenType)*addrlen; - int result = ::getpeername(s, addr, &tmp_addrlen); - *addrlen = (std::size_t)tmp_addrlen; - return result; -} - -inline int getpeername(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(call_getpeername( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - clear_error(ec); - return result; -} - -template -inline int call_getsockname(SockLenType msghdr::*, - socket_type s, socket_addr_type* addr, std::size_t* addrlen) -{ - SockLenType tmp_addrlen = (SockLenType)*addrlen; - int result = ::getsockname(s, addr, &tmp_addrlen); - *addrlen = (std::size_t)tmp_addrlen; - return result; -} - -inline int getsockname(socket_type s, socket_addr_type* addr, - std::size_t* addrlen, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(call_getsockname( - &msghdr::msg_namelen, s, addr, addrlen), ec); - if (result == 0) - clear_error(ec); - return result; -} - -inline int ioctl(socket_type s, long cmd, ioctl_arg_type* arg, - boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctlsocket(s, cmd, arg), ec); -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::ioctl(s, cmd, arg), ec); -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - if (result >= 0) - clear_error(ec); - return result; -} - -inline int select(int nfds, fd_set* readfds, fd_set* writefds, - fd_set* exceptfds, timeval* timeout, boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - if (!readfds && !writefds && !exceptfds && timeout) - { - DWORD milliseconds = timeout->tv_sec * 1000 + timeout->tv_usec / 1000; - if (milliseconds == 0) - milliseconds = 1; // Force context switch. - ::Sleep(milliseconds); - ec = boost::system::error_code(); - return 0; - } - - // The select() call allows timeout values measured in microseconds, but the - // system clock (as wrapped by boost::posix_time::microsec_clock) typically - // has a resolution of 10 milliseconds. This can lead to a spinning select - // reactor, meaning increased CPU usage, when waiting for the earliest - // scheduled timeout if it's less than 10 milliseconds away. To avoid a tight - // spin we'll use a minimum timeout of 1 millisecond. - if (timeout && timeout->tv_sec == 0 - && timeout->tv_usec > 0 && timeout->tv_usec < 1000) - timeout->tv_usec = 1000; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -#if defined(__hpux) && defined(__HP_aCC) - timespec ts; - ts.tv_sec = timeout ? timeout->tv_sec : 0; - ts.tv_nsec = timeout ? timeout->tv_usec * 1000 : 0; - return error_wrapper(::pselect(nfds, readfds, - writefds, exceptfds, timeout ? &ts : 0, 0), ec); -#else - int result = error_wrapper(::select(nfds, readfds, - writefds, exceptfds, timeout), ec); - if (result >= 0) - clear_error(ec); - return result; -#endif -} - -inline int poll_read(socket_type s, boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - FD_SET fds; - FD_ZERO(&fds); - FD_SET(s, &fds); - clear_error(ec); - int result = error_wrapper(::select(s, &fds, 0, 0, 0), ec); - if (result >= 0) - clear_error(ec); - return result; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - pollfd fds; - fds.fd = s; - fds.events = POLLIN; - fds.revents = 0; - clear_error(ec); - int result = error_wrapper(::poll(&fds, 1, -1), ec); - if (result >= 0) - clear_error(ec); - return result; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline int poll_write(socket_type s, boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - FD_SET fds; - FD_ZERO(&fds); - FD_SET(s, &fds); - clear_error(ec); - int result = error_wrapper(::select(s, 0, &fds, 0, 0), ec); - if (result >= 0) - clear_error(ec); - return result; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - pollfd fds; - fds.fd = s; - fds.events = POLLOUT; - fds.revents = 0; - clear_error(ec); - int result = error_wrapper(::poll(&fds, 1, -1), ec); - if (result >= 0) - clear_error(ec); - return result; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline int poll_connect(socket_type s, boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - FD_SET write_fds; - FD_ZERO(&write_fds); - FD_SET(s, &write_fds); - FD_SET except_fds; - FD_ZERO(&except_fds); - FD_SET(s, &except_fds); - clear_error(ec); - int result = error_wrapper(::select(s, 0, &write_fds, &except_fds, 0), ec); - if (result >= 0) - clear_error(ec); - return result; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - pollfd fds; - fds.fd = s; - fds.events = POLLOUT; - fds.revents = 0; - clear_error(ec); - int result = error_wrapper(::poll(&fds, 1, -1), ec); - if (result >= 0) - clear_error(ec); - return result; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline const char* inet_ntop(int af, const void* src, char* dest, size_t length, - unsigned long scope_id, boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - using namespace std; // For memcpy. - - if (af != AF_INET && af != AF_INET6) - { - ec = boost::asio::error::address_family_not_supported; - return 0; - } - - union - { - socket_addr_type base; - sockaddr_storage_type storage; - sockaddr_in4_type v4; - sockaddr_in6_type v6; - } address; - DWORD address_length; - if (af == AF_INET) - { - address_length = sizeof(sockaddr_in4_type); - address.v4.sin_family = AF_INET; - address.v4.sin_port = 0; - memcpy(&address.v4.sin_addr, src, sizeof(in4_addr_type)); - } - else // AF_INET6 - { - address_length = sizeof(sockaddr_in6_type); - address.v6.sin6_family = AF_INET6; - address.v6.sin6_port = 0; - address.v6.sin6_flowinfo = 0; - address.v6.sin6_scope_id = scope_id; - memcpy(&address.v6.sin6_addr, src, sizeof(in6_addr_type)); - } - - DWORD string_length = static_cast(length); -#if defined(BOOST_NO_ANSI_APIS) - LPWSTR string_buffer = (LPWSTR)_alloca(length * sizeof(WCHAR)); - int result = error_wrapper(::WSAAddressToStringW(&address.base, - address_length, 0, string_buffer, &string_length), ec); - ::WideCharToMultiByte(CP_ACP, 0, string_buffer, -1, dest, length, 0, 0); -#else - int result = error_wrapper(::WSAAddressToStringA( - &address.base, address_length, 0, dest, &string_length), ec); -#endif - - // Windows may set error code on success. - if (result != socket_error_retval) - clear_error(ec); - - // Windows may not set an error code on failure. - else if (result == socket_error_retval && !ec) - ec = boost::asio::error::invalid_argument; - - return result == socket_error_retval ? 0 : dest; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - const char* result = error_wrapper(::inet_ntop(af, src, dest, length), ec); - if (result == 0 && !ec) - ec = boost::asio::error::invalid_argument; - if (result != 0 && af == AF_INET6 && scope_id != 0) - { - using namespace std; // For strcat and sprintf. - char if_name[IF_NAMESIZE + 1] = "%"; - const in6_addr_type* ipv6_address = static_cast(src); - bool is_link_local = IN6_IS_ADDR_LINKLOCAL(ipv6_address); - if (!is_link_local || if_indextoname(scope_id, if_name + 1) == 0) - sprintf(if_name + 1, "%lu", scope_id); - strcat(dest, if_name); - } - return result; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline int inet_pton(int af, const char* src, void* dest, - unsigned long* scope_id, boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - using namespace std; // For memcpy and strcmp. - - if (af != AF_INET && af != AF_INET6) - { - ec = boost::asio::error::address_family_not_supported; - return -1; - } - - union - { - socket_addr_type base; - sockaddr_storage_type storage; - sockaddr_in4_type v4; - sockaddr_in6_type v6; - } address; - int address_length = sizeof(sockaddr_storage_type); -#if defined(BOOST_NO_ANSI_APIS) - int num_wide_chars = strlen(src) + 1; - LPWSTR wide_buffer = (LPWSTR)_alloca(num_wide_chars * sizeof(WCHAR)); - ::MultiByteToWideChar(CP_ACP, 0, src, -1, wide_buffer, num_wide_chars); - int result = error_wrapper(::WSAStringToAddressW( - wide_buffer, af, 0, &address.base, &address_length), ec); -#else - int result = error_wrapper(::WSAStringToAddressA( - const_cast(src), af, 0, &address.base, &address_length), ec); -#endif - - if (af == AF_INET) - { - if (result != socket_error_retval) - { - memcpy(dest, &address.v4.sin_addr, sizeof(in4_addr_type)); - clear_error(ec); - } - else if (strcmp(src, "255.255.255.255") == 0) - { - static_cast(dest)->s_addr = INADDR_NONE; - clear_error(ec); - } - } - else // AF_INET6 - { - if (result != socket_error_retval) - { - memcpy(dest, &address.v6.sin6_addr, sizeof(in6_addr_type)); - if (scope_id) - *scope_id = address.v6.sin6_scope_id; - clear_error(ec); - } - } - - // Windows may not set an error code on failure. - if (result == socket_error_retval && !ec) - ec = boost::asio::error::invalid_argument; - - if (result != socket_error_retval) - clear_error(ec); - - return result == socket_error_retval ? -1 : 1; -#else // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - int result = error_wrapper(::inet_pton(af, src, dest), ec); - if (result <= 0 && !ec) - ec = boost::asio::error::invalid_argument; - if (result > 0 && af == AF_INET6 && scope_id) - { - using namespace std; // For strchr and atoi. - *scope_id = 0; - if (const char* if_name = strchr(src, '%')) - { - in6_addr_type* ipv6_address = static_cast(dest); - bool is_link_local = IN6_IS_ADDR_LINKLOCAL(ipv6_address); - if (is_link_local) - *scope_id = if_nametoindex(if_name + 1); - if (*scope_id == 0) - *scope_id = atoi(if_name + 1); - } - } - return result; -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -} - -inline int gethostname(char* name, int namelen, boost::system::error_code& ec) -{ - clear_error(ec); - int result = error_wrapper(::gethostname(name, namelen), ec); -#if defined(BOOST_WINDOWS) - if (result == 0) - clear_error(ec); -#endif - return result; -} - -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) \ - || defined(__MACH__) && defined(__APPLE__) - -// The following functions are only needed for emulation of getaddrinfo and -// getnameinfo. - -inline boost::system::error_code translate_netdb_error(int error) -{ - switch (error) - { - case 0: - return boost::system::error_code(); - case HOST_NOT_FOUND: - return boost::asio::error::host_not_found; - case TRY_AGAIN: - return boost::asio::error::host_not_found_try_again; - case NO_RECOVERY: - return boost::asio::error::no_recovery; - case NO_DATA: - return boost::asio::error::no_data; - default: - BOOST_ASSERT(false); - return boost::asio::error::invalid_argument; - } -} - -inline hostent* gethostbyaddr(const char* addr, int length, int af, - hostent* result, char* buffer, int buflength, boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - (void)(buffer); - (void)(buflength); - hostent* retval = error_wrapper(::gethostbyaddr(addr, length, af), ec); - if (!retval) - return 0; - clear_error(ec); - *result = *retval; - return retval; -#elif defined(__sun) || defined(__QNX__) - int error = 0; - hostent* retval = error_wrapper(::gethostbyaddr_r(addr, length, af, result, - buffer, buflength, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#elif defined(__MACH__) && defined(__APPLE__) - (void)(buffer); - (void)(buflength); - int error = 0; - hostent* retval = error_wrapper(::getipnodebyaddr( - addr, length, af, &error), ec); - if (error) - ec = translate_netdb_error(error); - if (!retval) - return 0; - *result = *retval; - return retval; -#else - hostent* retval = 0; - int error = 0; - error_wrapper(::gethostbyaddr_r(addr, length, af, result, buffer, - buflength, &retval, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#endif -} - -inline hostent* gethostbyname(const char* name, int af, struct hostent* result, - char* buffer, int buflength, int ai_flags, boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - (void)(buffer); - (void)(buflength); - (void)(ai_flags); - if (af != AF_INET) - { - ec = boost::asio::error::address_family_not_supported; - return 0; - } - hostent* retval = error_wrapper(::gethostbyname(name), ec); - if (!retval) - return 0; - clear_error(ec); - *result = *retval; - return result; -#elif defined(__sun) || defined(__QNX__) - (void)(ai_flags); - if (af != AF_INET) - { - ec = boost::asio::error::address_family_not_supported; - return 0; - } - int error = 0; - hostent* retval = error_wrapper(::gethostbyname_r(name, result, buffer, - buflength, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#elif defined(__MACH__) && defined(__APPLE__) - (void)(buffer); - (void)(buflength); - int error = 0; - hostent* retval = error_wrapper(::getipnodebyname( - name, af, ai_flags, &error), ec); - if (error) - ec = translate_netdb_error(error); - if (!retval) - return 0; - *result = *retval; - return retval; -#else - (void)(ai_flags); - if (af != AF_INET) - { - ec = boost::asio::error::address_family_not_supported; - return 0; - } - hostent* retval = 0; - int error = 0; - error_wrapper(::gethostbyname_r(name, result, - buffer, buflength, &retval, &error), ec); - if (error) - ec = translate_netdb_error(error); - return retval; -#endif -} - -inline void freehostent(hostent* h) -{ -#if defined(__MACH__) && defined(__APPLE__) - if (h) - ::freehostent(h); -#else - (void)(h); -#endif -} - -// Emulation of getaddrinfo based on implementation in: -// Stevens, W. R., UNIX Network Programming Vol. 1, 2nd Ed., Prentice-Hall 1998. - -struct gai_search -{ - const char* host; - int family; -}; - -inline int gai_nsearch(const char* host, - const addrinfo_type* hints, gai_search (&search)[2]) -{ - int search_count = 0; - if (host == 0 || host[0] == '\0') - { - if (hints->ai_flags & AI_PASSIVE) - { - // No host and AI_PASSIVE implies wildcard bind. - switch (hints->ai_family) - { - case AF_INET: - search[search_count].host = "0.0.0.0"; - search[search_count].family = AF_INET; - ++search_count; - break; - case AF_INET6: - search[search_count].host = "0::0"; - search[search_count].family = AF_INET6; - ++search_count; - break; - case AF_UNSPEC: - search[search_count].host = "0::0"; - search[search_count].family = AF_INET6; - ++search_count; - search[search_count].host = "0.0.0.0"; - search[search_count].family = AF_INET; - ++search_count; - break; - default: - break; - } - } - else - { - // No host and not AI_PASSIVE means connect to local host. - switch (hints->ai_family) - { - case AF_INET: - search[search_count].host = "localhost"; - search[search_count].family = AF_INET; - ++search_count; - break; - case AF_INET6: - search[search_count].host = "localhost"; - search[search_count].family = AF_INET6; - ++search_count; - break; - case AF_UNSPEC: - search[search_count].host = "localhost"; - search[search_count].family = AF_INET6; - ++search_count; - search[search_count].host = "localhost"; - search[search_count].family = AF_INET; - ++search_count; - break; - default: - break; - } - } - } - else - { - // Host is specified. - switch (hints->ai_family) - { - case AF_INET: - search[search_count].host = host; - search[search_count].family = AF_INET; - ++search_count; - break; - case AF_INET6: - search[search_count].host = host; - search[search_count].family = AF_INET6; - ++search_count; - break; - case AF_UNSPEC: - search[search_count].host = host; - search[search_count].family = AF_INET6; - ++search_count; - search[search_count].host = host; - search[search_count].family = AF_INET; - ++search_count; - break; - default: - break; - } - } - return search_count; -} - -template -inline T* gai_alloc(std::size_t size = sizeof(T)) -{ - using namespace std; - T* p = static_cast(::operator new(size, std::nothrow)); - if (p) - memset(p, 0, size); - return p; -} - -inline void gai_free(void* p) -{ - ::operator delete(p); -} - -inline void gai_strcpy(char* target, const char* source, std::size_t max_size) -{ - using namespace std; -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(UNDER_CE) - strcpy_s(target, max_size, source); -#else - *target = 0; - strncat(target, source, max_size); -#endif -} - -enum { gai_clone_flag = 1 << 30 }; - -inline int gai_aistruct(addrinfo_type*** next, const addrinfo_type* hints, - const void* addr, int family) -{ - using namespace std; - - addrinfo_type* ai = gai_alloc(); - if (ai == 0) - return EAI_MEMORY; - - ai->ai_next = 0; - **next = ai; - *next = &ai->ai_next; - - ai->ai_canonname = 0; - ai->ai_socktype = hints->ai_socktype; - if (ai->ai_socktype == 0) - ai->ai_flags |= gai_clone_flag; - ai->ai_protocol = hints->ai_protocol; - ai->ai_family = family; - - switch (ai->ai_family) - { - case AF_INET: - { - sockaddr_in4_type* sinptr = gai_alloc(); - if (sinptr == 0) - return EAI_MEMORY; - sinptr->sin_family = AF_INET; - memcpy(&sinptr->sin_addr, addr, sizeof(in4_addr_type)); - ai->ai_addr = reinterpret_cast(sinptr); - ai->ai_addrlen = sizeof(sockaddr_in4_type); - break; - } - case AF_INET6: - { - sockaddr_in6_type* sin6ptr = gai_alloc(); - if (sin6ptr == 0) - return EAI_MEMORY; - sin6ptr->sin6_family = AF_INET6; - memcpy(&sin6ptr->sin6_addr, addr, sizeof(in6_addr_type)); - ai->ai_addr = reinterpret_cast(sin6ptr); - ai->ai_addrlen = sizeof(sockaddr_in6_type); - break; - } - default: - break; - } - - return 0; -} - -inline addrinfo_type* gai_clone(addrinfo_type* ai) -{ - using namespace std; - - addrinfo_type* new_ai = gai_alloc(); - if (new_ai == 0) - return new_ai; - - new_ai->ai_next = ai->ai_next; - ai->ai_next = new_ai; - - new_ai->ai_flags = 0; - new_ai->ai_family = ai->ai_family; - new_ai->ai_socktype = ai->ai_socktype; - new_ai->ai_protocol = ai->ai_protocol; - new_ai->ai_canonname = 0; - new_ai->ai_addrlen = ai->ai_addrlen; - new_ai->ai_addr = gai_alloc(ai->ai_addrlen); - memcpy(new_ai->ai_addr, ai->ai_addr, ai->ai_addrlen); - - return new_ai; -} - -inline int gai_port(addrinfo_type* aihead, int port, int socktype) -{ - int num_found = 0; - - for (addrinfo_type* ai = aihead; ai; ai = ai->ai_next) - { - if (ai->ai_flags & gai_clone_flag) - { - if (ai->ai_socktype != 0) - { - ai = gai_clone(ai); - if (ai == 0) - return -1; - // ai now points to newly cloned entry. - } - } - else if (ai->ai_socktype != socktype) - { - // Ignore if mismatch on socket type. - continue; - } - - ai->ai_socktype = socktype; - - switch (ai->ai_family) - { - case AF_INET: - { - sockaddr_in4_type* sinptr = - reinterpret_cast(ai->ai_addr); - sinptr->sin_port = port; - ++num_found; - break; - } - case AF_INET6: - { - sockaddr_in6_type* sin6ptr = - reinterpret_cast(ai->ai_addr); - sin6ptr->sin6_port = port; - ++num_found; - break; - } - default: - break; - } - } - - return num_found; -} - -inline int gai_serv(addrinfo_type* aihead, - const addrinfo_type* hints, const char* serv) -{ - using namespace std; - - int num_found = 0; - - if ( -#if defined(AI_NUMERICSERV) - (hints->ai_flags & AI_NUMERICSERV) || -#endif - isdigit(serv[0])) - { - int port = htons(atoi(serv)); - if (hints->ai_socktype) - { - // Caller specifies socket type. - int rc = gai_port(aihead, port, hints->ai_socktype); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - else - { - // Caller does not specify socket type. - int rc = gai_port(aihead, port, SOCK_STREAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - rc = gai_port(aihead, port, SOCK_DGRAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - } - else - { - // Try service name with TCP first, then UDP. - if (hints->ai_socktype == 0 || hints->ai_socktype == SOCK_STREAM) - { - servent* sptr = getservbyname(serv, "tcp"); - if (sptr != 0) - { - int rc = gai_port(aihead, sptr->s_port, SOCK_STREAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - } - if (hints->ai_socktype == 0 || hints->ai_socktype == SOCK_DGRAM) - { - servent* sptr = getservbyname(serv, "udp"); - if (sptr != 0) - { - int rc = gai_port(aihead, sptr->s_port, SOCK_DGRAM); - if (rc < 0) - return EAI_MEMORY; - num_found += rc; - } - } - } - - if (num_found == 0) - { - if (hints->ai_socktype == 0) - { - // All calls to getservbyname() failed. - return EAI_NONAME; - } - else - { - // Service not supported for socket type. - return EAI_SERVICE; - } - } - - return 0; -} - -inline int gai_echeck(const char* host, const char* service, - int flags, int family, int socktype, int protocol) -{ - (void)(flags); - (void)(protocol); - - // Host or service must be specified. - if (host == 0 || host[0] == '\0') - if (service == 0 || service[0] == '\0') - return EAI_NONAME; - - // Check combination of family and socket type. - switch (family) - { - case AF_UNSPEC: - break; - case AF_INET: - case AF_INET6: - if (socktype != 0 && socktype != SOCK_STREAM && socktype != SOCK_DGRAM) - return EAI_SOCKTYPE; - break; - default: - return EAI_FAMILY; - } - - return 0; -} - -inline void freeaddrinfo_emulation(addrinfo_type* aihead) -{ - addrinfo_type* ai = aihead; - while (ai) - { - gai_free(ai->ai_addr); - gai_free(ai->ai_canonname); - addrinfo_type* ainext = ai->ai_next; - gai_free(ai); - ai = ainext; - } -} - -inline int getaddrinfo_emulation(const char* host, const char* service, - const addrinfo_type* hintsp, addrinfo_type** result) -{ - // Set up linked list of addrinfo structures. - addrinfo_type* aihead = 0; - addrinfo_type** ainext = &aihead; - char* canon = 0; - - // Supply default hints if not specified by caller. - addrinfo_type hints = addrinfo_type(); - hints.ai_family = AF_UNSPEC; - if (hintsp) - hints = *hintsp; - - // If the resolution is not specifically for AF_INET6, remove the AI_V4MAPPED - // and AI_ALL flags. -#if defined(AI_V4MAPPED) - if (hints.ai_family != AF_INET6) - hints.ai_flags &= ~AI_V4MAPPED; -#endif -#if defined(AI_ALL) - if (hints.ai_family != AF_INET6) - hints.ai_flags &= ~AI_ALL; -#endif - - // Basic error checking. - int rc = gai_echeck(host, service, hints.ai_flags, hints.ai_family, - hints.ai_socktype, hints.ai_protocol); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - return rc; - } - - gai_search search[2]; - int search_count = gai_nsearch(host, &hints, search); - for (gai_search* sptr = search; sptr < search + search_count; ++sptr) - { - // Check for IPv4 dotted decimal string. - in4_addr_type inaddr; - boost::system::error_code ec; - if (socket_ops::inet_pton(AF_INET, sptr->host, &inaddr, 0, ec) == 1) - { - if (hints.ai_family != AF_UNSPEC && hints.ai_family != AF_INET) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return EAI_FAMILY; - } - if (sptr->family == AF_INET) - { - rc = gai_aistruct(&ainext, &hints, &inaddr, AF_INET); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return rc; - } - } - continue; - } - - // Check for IPv6 hex string. - in6_addr_type in6addr; - if (socket_ops::inet_pton(AF_INET6, sptr->host, &in6addr, 0, ec) == 1) - { - if (hints.ai_family != AF_UNSPEC && hints.ai_family != AF_INET6) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return EAI_FAMILY; - } - if (sptr->family == AF_INET6) - { - rc = gai_aistruct(&ainext, &hints, &in6addr, AF_INET6); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - return rc; - } - } - continue; - } - - // Look up hostname. - hostent hent; - char hbuf[8192] = ""; - hostent* hptr = socket_ops::gethostbyname(sptr->host, - sptr->family, &hent, hbuf, sizeof(hbuf), hints.ai_flags, ec); - if (hptr == 0) - { - if (search_count == 2) - { - // Failure is OK if there are multiple searches. - continue; - } - freeaddrinfo_emulation(aihead); - gai_free(canon); - if (ec == boost::asio::error::host_not_found) - return EAI_NONAME; - if (ec == boost::asio::error::host_not_found_try_again) - return EAI_AGAIN; - if (ec == boost::asio::error::no_recovery) - return EAI_FAIL; - if (ec == boost::asio::error::no_data) - return EAI_NONAME; - return EAI_NONAME; - } - - // Check for address family mismatch if one was specified. - if (hints.ai_family != AF_UNSPEC && hints.ai_family != hptr->h_addrtype) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - socket_ops::freehostent(hptr); - return EAI_FAMILY; - } - - // Save canonical name first time. - if (host != 0 && host[0] != '\0' && hptr->h_name && hptr->h_name[0] - && (hints.ai_flags & AI_CANONNAME) && canon == 0) - { - std::size_t canon_len = strlen(hptr->h_name) + 1; - canon = gai_alloc(canon_len); - if (canon == 0) - { - freeaddrinfo_emulation(aihead); - socket_ops::freehostent(hptr); - return EAI_MEMORY; - } - gai_strcpy(canon, hptr->h_name, canon_len); - } - - // Create an addrinfo structure for each returned address. - for (char** ap = hptr->h_addr_list; *ap; ++ap) - { - rc = gai_aistruct(&ainext, &hints, *ap, hptr->h_addrtype); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - gai_free(canon); - socket_ops::freehostent(hptr); - return EAI_FAMILY; - } - } - - socket_ops::freehostent(hptr); - } - - // Check if we found anything. - if (aihead == 0) - { - gai_free(canon); - return EAI_NONAME; - } - - // Return canonical name in first entry. - if (host != 0 && host[0] != '\0' && (hints.ai_flags & AI_CANONNAME)) - { - if (canon) - { - aihead->ai_canonname = canon; - canon = 0; - } - else - { - std::size_t canonname_len = strlen(search[0].host) + 1; - aihead->ai_canonname = gai_alloc(canonname_len); - if (aihead->ai_canonname == 0) - { - freeaddrinfo_emulation(aihead); - return EAI_MEMORY; - } - gai_strcpy(aihead->ai_canonname, search[0].host, canonname_len); - } - } - gai_free(canon); - - // Process the service name. - if (service != 0 && service[0] != '\0') - { - rc = gai_serv(aihead, &hints, service); - if (rc != 0) - { - freeaddrinfo_emulation(aihead); - return rc; - } - } - - // Return result to caller. - *result = aihead; - return 0; -} - -inline boost::system::error_code getnameinfo_emulation( - const socket_addr_type* sa, std::size_t salen, char* host, - std::size_t hostlen, char* serv, std::size_t servlen, int flags, - boost::system::error_code& ec) -{ - using namespace std; - - const char* addr; - size_t addr_len; - unsigned short port; - switch (sa->sa_family) - { - case AF_INET: - if (salen != sizeof(sockaddr_in4_type)) - { - return ec = boost::asio::error::invalid_argument; - } - addr = reinterpret_cast( - &reinterpret_cast(sa)->sin_addr); - addr_len = sizeof(in4_addr_type); - port = reinterpret_cast(sa)->sin_port; - break; - case AF_INET6: - if (salen != sizeof(sockaddr_in6_type)) - { - return ec = boost::asio::error::invalid_argument; - } - addr = reinterpret_cast( - &reinterpret_cast(sa)->sin6_addr); - addr_len = sizeof(in6_addr_type); - port = reinterpret_cast(sa)->sin6_port; - break; - default: - return ec = boost::asio::error::address_family_not_supported; - } - - if (host && hostlen > 0) - { - if (flags & NI_NUMERICHOST) - { - if (socket_ops::inet_ntop(sa->sa_family, addr, host, hostlen, 0, ec) == 0) - { - return ec; - } - } - else - { - hostent hent; - char hbuf[8192] = ""; - hostent* hptr = socket_ops::gethostbyaddr(addr, - static_cast(addr_len), sa->sa_family, - &hent, hbuf, sizeof(hbuf), ec); - if (hptr && hptr->h_name && hptr->h_name[0] != '\0') - { - if (flags & NI_NOFQDN) - { - char* dot = strchr(hptr->h_name, '.'); - if (dot) - { - *dot = 0; - } - } - gai_strcpy(host, hptr->h_name, hostlen); - socket_ops::freehostent(hptr); - } - else - { - socket_ops::freehostent(hptr); - if (flags & NI_NAMEREQD) - { - return ec = boost::asio::error::host_not_found; - } - if (socket_ops::inet_ntop(sa->sa_family, - addr, host, hostlen, 0, ec) == 0) - { - return ec; - } - } - } - } - - if (serv && servlen > 0) - { - if (flags & NI_NUMERICSERV) - { - if (servlen < 6) - { - return ec = boost::asio::error::no_buffer_space; - } -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(UNDER_CE) - sprintf_s(serv, servlen, "%u", ntohs(port)); -#else - sprintf(serv, "%u", ntohs(port)); -#endif - } - else - { -#if defined(BOOST_HAS_THREADS) && defined(BOOST_HAS_PTHREADS) - static ::pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; - ::pthread_mutex_lock(&mutex); -#endif // defined(BOOST_HAS_THREADS) && defined(BOOST_HAS_PTHREADS) - servent* sptr = ::getservbyport(port, (flags & NI_DGRAM) ? "udp" : 0); - if (sptr && sptr->s_name && sptr->s_name[0] != '\0') - { - gai_strcpy(serv, sptr->s_name, servlen); - } - else - { - if (servlen < 6) - { - return ec = boost::asio::error::no_buffer_space; - } -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) && !defined(UNDER_CE) - sprintf_s(serv, servlen, "%u", ntohs(port)); -#else - sprintf(serv, "%u", ntohs(port)); -#endif - } -#if defined(BOOST_HAS_THREADS) && defined(BOOST_HAS_PTHREADS) - ::pthread_mutex_unlock(&mutex); -#endif // defined(BOOST_HAS_THREADS) && defined(BOOST_HAS_PTHREADS) - } - } - - clear_error(ec); - return ec; -} - -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - // || defined(__MACH__) && defined(__APPLE__) - -inline boost::system::error_code translate_addrinfo_error(int error) -{ - switch (error) - { - case 0: - return boost::system::error_code(); - case EAI_AGAIN: - return boost::asio::error::host_not_found_try_again; - case EAI_BADFLAGS: - return boost::asio::error::invalid_argument; - case EAI_FAIL: - return boost::asio::error::no_recovery; - case EAI_FAMILY: - return boost::asio::error::address_family_not_supported; - case EAI_MEMORY: - return boost::asio::error::no_memory; - case EAI_NONAME: -#if defined(EAI_ADDRFAMILY) - case EAI_ADDRFAMILY: -#endif -#if defined(EAI_NODATA) && (EAI_NODATA != EAI_NONAME) - case EAI_NODATA: -#endif - return boost::asio::error::host_not_found; - case EAI_SERVICE: - return boost::asio::error::service_not_found; - case EAI_SOCKTYPE: - return boost::asio::error::socket_type_not_supported; - default: // Possibly the non-portable EAI_SYSTEM. -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - return boost::system::error_code( - WSAGetLastError(), boost::asio::error::get_system_category()); -#else - return boost::system::error_code( - errno, boost::asio::error::get_system_category()); -#endif - } -} - -inline boost::system::error_code getaddrinfo(const char* host, - const char* service, const addrinfo_type* hints, addrinfo_type** result, - boost::system::error_code& ec) -{ - clear_error(ec); -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501) || defined(UNDER_CE) - // Building for Windows XP, Windows Server 2003, or later. - int error = ::getaddrinfo(host, service, hints, result); - return ec = translate_addrinfo_error(error); -# else - // Building for Windows 2000 or earlier. - typedef int (WSAAPI *gai_t)(const char*, - const char*, const addrinfo_type*, addrinfo_type**); - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - if (gai_t gai = (gai_t)::GetProcAddress(winsock_module, "getaddrinfo")) - { - int error = gai(host, service, hints, result); - return ec = translate_addrinfo_error(error); - } - } - int error = getaddrinfo_emulation(host, service, hints, result); - return ec = translate_addrinfo_error(error); -# endif -#elif defined(__MACH__) && defined(__APPLE__) - int error = getaddrinfo_emulation(host, service, hints, result); - return ec = translate_addrinfo_error(error); -#else - int error = ::getaddrinfo(host, service, hints, result); - return ec = translate_addrinfo_error(error); -#endif -} - -inline void freeaddrinfo(addrinfo_type* ai) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501) || defined(UNDER_CE) - // Building for Windows XP, Windows Server 2003, or later. - ::freeaddrinfo(ai); -# else - // Building for Windows 2000 or earlier. - typedef int (WSAAPI *fai_t)(addrinfo_type*); - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - if (fai_t fai = (fai_t)::GetProcAddress(winsock_module, "freeaddrinfo")) - { - fai(ai); - return; - } - } - freeaddrinfo_emulation(ai); -# endif -#elif defined(__MACH__) && defined(__APPLE__) - freeaddrinfo_emulation(ai); -#else - ::freeaddrinfo(ai); -#endif -} - -inline boost::system::error_code getnameinfo(const socket_addr_type* addr, - std::size_t addrlen, char* host, std::size_t hostlen, - char* serv, std::size_t servlen, int flags, boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -# if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501) || defined(UNDER_CE) - // Building for Windows XP, Windows Server 2003, or later. - clear_error(ec); - int error = ::getnameinfo(addr, static_cast(addrlen), - host, static_cast(hostlen), - serv, static_cast(servlen), flags); - return ec = translate_addrinfo_error(error); -# else - // Building for Windows 2000 or earlier. - typedef int (WSAAPI *gni_t)(const socket_addr_type*, - int, char*, DWORD, char*, DWORD, int); - if (HMODULE winsock_module = ::GetModuleHandleA("ws2_32")) - { - if (gni_t gni = (gni_t)::GetProcAddress(winsock_module, "getnameinfo")) - { - clear_error(ec); - int error = gni(addr, static_cast(addrlen), - host, static_cast(hostlen), - serv, static_cast(servlen), flags); - return ec = translate_addrinfo_error(error); - } - } - clear_error(ec); - return getnameinfo_emulation(addr, addrlen, - host, hostlen, serv, servlen, flags, ec); -# endif -#elif defined(__MACH__) && defined(__APPLE__) - using namespace std; // For memcpy. - sockaddr_storage_type tmp_addr; - memcpy(&tmp_addr, addr, addrlen); - tmp_addr.ss_len = addrlen; - addr = reinterpret_cast(&tmp_addr); - clear_error(ec); - return getnameinfo_emulation(addr, addrlen, - host, hostlen, serv, servlen, flags, ec); -#else - clear_error(ec); - int error = ::getnameinfo(addr, addrlen, host, hostlen, serv, servlen, flags); - return ec = translate_addrinfo_error(error); -#endif -} - -inline u_long_type network_to_host_long(u_long_type value) -{ - return ntohl(value); -} - -inline u_long_type host_to_network_long(u_long_type value) -{ - return htonl(value); -} - -inline u_short_type network_to_host_short(u_short_type value) -{ - return ntohs(value); -} - -inline u_short_type host_to_network_short(u_short_type value) -{ - return htons(value); -} - -} // namespace socket_ops -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SOCKET_OPS_HPP diff --git a/3rdParty/Boost/boost/asio/detail/socket_option.hpp b/3rdParty/Boost/boost/asio/detail/socket_option.hpp deleted file mode 100644 index c0d7b74..0000000 --- a/3rdParty/Boost/boost/asio/detail/socket_option.hpp +++ /dev/null @@ -1,311 +0,0 @@ -// -// socket_option.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SOCKET_OPTION_HPP -#define BOOST_ASIO_DETAIL_SOCKET_OPTION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#include - -namespace boost { -namespace asio { -namespace detail { -namespace socket_option { - -// Helper template for implementing boolean-based options. -template -class boolean -{ -public: - // Default constructor. - boolean() - : value_(0) - { - } - - // Construct with a specific option value. - explicit boolean(bool v) - : value_(v ? 1 : 0) - { - } - - // Set the current value of the boolean. - boolean& operator=(bool v) - { - value_ = v ? 1 : 0; - return *this; - } - - // Get the current value of the boolean. - bool value() const - { - return !!value_; - } - - // Convert to bool. - operator bool() const - { - return !!value_; - } - - // Test for false. - bool operator!() const - { - return !value_; - } - - // Get the level of the socket option. - template - int level(const Protocol&) const - { - return Level; - } - - // Get the name of the socket option. - template - int name(const Protocol&) const - { - return Name; - } - - // Get the address of the boolean data. - template - int* data(const Protocol&) - { - return &value_; - } - - // Get the address of the boolean data. - template - const int* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the boolean data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the boolean data. - template - void resize(const Protocol&, std::size_t s) - { - // On some platforms (e.g. Windows Vista), the getsockopt function will - // return the size of a boolean socket option as one byte, even though a - // four byte integer was passed in. - switch (s) - { - case sizeof(char): - value_ = *reinterpret_cast(&value_) ? 1 : 0; - break; - case sizeof(value_): - break; - default: - throw std::length_error("boolean socket option resize"); - } - } - -private: - int value_; -}; - -// Helper template for implementing integer options. -template -class integer -{ -public: - // Default constructor. - integer() - : value_(0) - { - } - - // Construct with a specific option value. - explicit integer(int v) - : value_(v) - { - } - - // Set the value of the int option. - integer& operator=(int v) - { - value_ = v; - return *this; - } - - // Get the current value of the int option. - int value() const - { - return value_; - } - - // Get the level of the socket option. - template - int level(const Protocol&) const - { - return Level; - } - - // Get the name of the socket option. - template - int name(const Protocol&) const - { - return Name; - } - - // Get the address of the int data. - template - int* data(const Protocol&) - { - return &value_; - } - - // Get the address of the int data. - template - const int* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the int data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the int data. - template - void resize(const Protocol&, std::size_t s) - { - if (s != sizeof(value_)) - throw std::length_error("integer socket option resize"); - } - -private: - int value_; -}; - -// Helper template for implementing linger options. -template -class linger -{ -public: - // Default constructor. - linger() - { - value_.l_onoff = 0; - value_.l_linger = 0; - } - - // Construct with specific option values. - linger(bool e, int t) - { - enabled(e); - timeout BOOST_PREVENT_MACRO_SUBSTITUTION(t); - } - - // Set the value for whether linger is enabled. - void enabled(bool value) - { - value_.l_onoff = value ? 1 : 0; - } - - // Get the value for whether linger is enabled. - bool enabled() const - { - return value_.l_onoff != 0; - } - - // Set the value for the linger timeout. - void timeout BOOST_PREVENT_MACRO_SUBSTITUTION(int value) - { -#if defined(WIN32) - value_.l_linger = static_cast(value); -#else - value_.l_linger = value; -#endif - } - - // Get the value for the linger timeout. - int timeout BOOST_PREVENT_MACRO_SUBSTITUTION() const - { - return static_cast(value_.l_linger); - } - - // Get the level of the socket option. - template - int level(const Protocol&) const - { - return Level; - } - - // Get the name of the socket option. - template - int name(const Protocol&) const - { - return Name; - } - - // Get the address of the linger data. - template - ::linger* data(const Protocol&) - { - return &value_; - } - - // Get the address of the linger data. - template - const ::linger* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the linger data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the int data. - template - void resize(const Protocol&, std::size_t s) - { - if (s != sizeof(value_)) - throw std::length_error("linger socket option resize"); - } - -private: - ::linger value_; -}; - -} // namespace socket_option -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SOCKET_OPTION_HPP diff --git a/3rdParty/Boost/boost/asio/detail/socket_select_interrupter.hpp b/3rdParty/Boost/boost/asio/detail/socket_select_interrupter.hpp deleted file mode 100644 index a767ba0..0000000 --- a/3rdParty/Boost/boost/asio/detail/socket_select_interrupter.hpp +++ /dev/null @@ -1,189 +0,0 @@ -// -// socket_select_interrupter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SOCKET_SELECT_INTERRUPTER_HPP -#define BOOST_ASIO_DETAIL_SOCKET_SELECT_INTERRUPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class socket_select_interrupter -{ -public: - // Constructor. - socket_select_interrupter() - { - boost::system::error_code ec; - socket_holder acceptor(socket_ops::socket( - AF_INET, SOCK_STREAM, IPPROTO_TCP, ec)); - if (acceptor.get() == invalid_socket) - { - boost::system::system_error e(ec, "socket_select_interrupter"); - boost::throw_exception(e); - } - - int opt = 1; - socket_ops::setsockopt(acceptor.get(), - SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt), ec); - - using namespace std; // For memset. - sockaddr_in4_type addr; - std::size_t addr_len = sizeof(addr); - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - addr.sin_addr.s_addr = inet_addr("127.0.0.1"); - addr.sin_port = 0; - if (socket_ops::bind(acceptor.get(), (const socket_addr_type*)&addr, - addr_len, ec) == socket_error_retval) - { - boost::system::system_error e(ec, "socket_select_interrupter"); - boost::throw_exception(e); - } - - if (socket_ops::getsockname(acceptor.get(), (socket_addr_type*)&addr, - &addr_len, ec) == socket_error_retval) - { - boost::system::system_error e(ec, "socket_select_interrupter"); - boost::throw_exception(e); - } - - if (socket_ops::listen(acceptor.get(), - SOMAXCONN, ec) == socket_error_retval) - { - boost::system::system_error e(ec, "socket_select_interrupter"); - boost::throw_exception(e); - } - - socket_holder client(socket_ops::socket( - AF_INET, SOCK_STREAM, IPPROTO_TCP, ec)); - if (client.get() == invalid_socket) - { - boost::system::system_error e(ec, "socket_select_interrupter"); - boost::throw_exception(e); - } - - if (socket_ops::connect(client.get(), (const socket_addr_type*)&addr, - addr_len, ec) == socket_error_retval) - { - boost::system::system_error e(ec, "socket_select_interrupter"); - boost::throw_exception(e); - } - - socket_holder server(socket_ops::accept(acceptor.get(), 0, 0, ec)); - if (server.get() == invalid_socket) - { - boost::system::system_error e(ec, "socket_select_interrupter"); - boost::throw_exception(e); - } - - ioctl_arg_type non_blocking = 1; - if (socket_ops::ioctl(client.get(), FIONBIO, &non_blocking, ec)) - { - boost::system::system_error e(ec, "socket_select_interrupter"); - boost::throw_exception(e); - } - - opt = 1; - socket_ops::setsockopt(client.get(), - IPPROTO_TCP, TCP_NODELAY, &opt, sizeof(opt), ec); - - non_blocking = 1; - if (socket_ops::ioctl(server.get(), FIONBIO, &non_blocking, ec)) - { - boost::system::system_error e(ec, "socket_select_interrupter"); - boost::throw_exception(e); - } - - opt = 1; - socket_ops::setsockopt(server.get(), - IPPROTO_TCP, TCP_NODELAY, &opt, sizeof(opt), ec); - - read_descriptor_ = server.release(); - write_descriptor_ = client.release(); - } - - // Destructor. - ~socket_select_interrupter() - { - boost::system::error_code ec; - if (read_descriptor_ != invalid_socket) - socket_ops::close(read_descriptor_, ec); - if (write_descriptor_ != invalid_socket) - socket_ops::close(write_descriptor_, ec); - } - - // Interrupt the select call. - void interrupt() - { - char byte = 0; - socket_ops::buf b; - socket_ops::init_buf(b, &byte, 1); - boost::system::error_code ec; - socket_ops::send(write_descriptor_, &b, 1, 0, ec); - } - - // Reset the select interrupt. Returns true if the call was interrupted. - bool reset() - { - char data[1024]; - socket_ops::buf b; - socket_ops::init_buf(b, data, sizeof(data)); - boost::system::error_code ec; - int bytes_read = socket_ops::recv(read_descriptor_, &b, 1, 0, ec); - bool was_interrupted = (bytes_read > 0); - while (bytes_read == sizeof(data)) - bytes_read = socket_ops::recv(read_descriptor_, &b, 1, 0, ec); - return was_interrupted; - } - - // Get the read descriptor to be passed to select. - socket_type read_descriptor() const - { - return read_descriptor_; - } - -private: - // The read end of a connection used to interrupt the select call. This file - // descriptor is passed to select such that when it is time to stop, a single - // byte will be written on the other end of the connection and this - // descriptor will become readable. - socket_type read_descriptor_; - - // The write end of a connection used to interrupt the select call. A single - // byte may be written to this to wake up the select which is waiting for the - // other end to become readable. - socket_type write_descriptor_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SOCKET_SELECT_INTERRUPTER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/socket_types.hpp b/3rdParty/Boost/boost/asio/detail/socket_types.hpp deleted file mode 100644 index c7b6a75..0000000 --- a/3rdParty/Boost/boost/asio/detail/socket_types.hpp +++ /dev/null @@ -1,212 +0,0 @@ -// -// socket_types.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_SOCKET_TYPES_HPP -#define BOOST_ASIO_DETAIL_SOCKET_TYPES_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -# if defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_) -# error WinSock.h has already been included -# endif // defined(_WINSOCKAPI_) && !defined(_WINSOCK2API_) -# if !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS) -# if defined(_MSC_VER) || defined(__BORLANDC__) -# pragma message( \ - "Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. For example:\n"\ - "- add -D_WIN32_WINNT=0x0501 to the compiler command line; or\n"\ - "- add _WIN32_WINNT=0x0501 to your project's Preprocessor Definitions.\n"\ - "Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target).") -# else // defined(_MSC_VER) || defined(__BORLANDC__) -# warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. -# warning For example, add -D_WIN32_WINNT=0x0501 to the compiler command line. -# warning Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target). -# endif // defined(_MSC_VER) || defined(__BORLANDC__) -# define _WIN32_WINNT 0x0501 -# endif // !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS) -# if defined(_MSC_VER) -# if defined(_WIN32) && !defined(WIN32) -# if !defined(_WINSOCK2API_) -# define WIN32 // Needed for correct types in winsock2.h -# else // !defined(_WINSOCK2API_) -# error Please define the macro WIN32 in your compiler options -# endif // !defined(_WINSOCK2API_) -# endif // defined(_WIN32) && !defined(WIN32) -# endif // defined(_MSC_VER) -# if defined(__BORLANDC__) -# include // Needed for __errno -# if defined(__WIN32__) && !defined(WIN32) -# if !defined(_WINSOCK2API_) -# define WIN32 // Needed for correct types in winsock2.h -# else // !defined(_WINSOCK2API_) -# error Please define the macro WIN32 in your compiler options -# endif // !defined(_WINSOCK2API_) -# endif // defined(__WIN32__) && !defined(WIN32) -# if !defined(_WSPIAPI_H_) -# define _WSPIAPI_H_ -# define BOOST_ASIO_WSPIAPI_H_DEFINED -# endif // !defined(_WSPIAPI_H_) -# endif // defined(__BORLANDC__) -# if !defined(BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN) -# if !defined(WIN32_LEAN_AND_MEAN) -# define WIN32_LEAN_AND_MEAN -# endif // !defined(WIN32_LEAN_AND_MEAN) -# endif // !defined(BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN) -# if defined(__CYGWIN__) -# if !defined(__USE_W32_SOCKETS) -# error You must add -D__USE_W32_SOCKETS to your compiler options. -# endif // !defined(__USE_W32_SOCKETS) -# if !defined(NOMINMAX) -# define NOMINMAX 1 -# endif // !defined(NOMINMAX) -# endif // defined(__CYGWIN__) -# include -# include -# include -# if defined(BOOST_ASIO_WSPIAPI_H_DEFINED) -# undef _WSPIAPI_H_ -# undef BOOST_ASIO_WSPIAPI_H_DEFINED -# endif // defined(BOOST_ASIO_WSPIAPI_H_DEFINED) -# if !defined(BOOST_ASIO_NO_DEFAULT_LINKED_LIBS) -# if defined(UNDER_CE) -# pragma comment(lib, "ws2.lib") -# elif defined(_MSC_VER) || defined(__BORLANDC__) -# pragma comment(lib, "ws2_32.lib") -# pragma comment(lib, "mswsock.lib") -# endif // defined(_MSC_VER) || defined(__BORLANDC__) -# endif // !defined(BOOST_ASIO_NO_DEFAULT_LINKED_LIBS) -# include -#else -# include -# include -# include -# if defined(__hpux) && !defined(__HP_aCC) -# include -# else -# include -# endif -# include -# include -# include -# include -# include -# include -# include -# include -# include -# if defined(__sun) -# include -# include -# endif -#endif -#include - -namespace boost { -namespace asio { -namespace detail { - -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -typedef SOCKET socket_type; -const SOCKET invalid_socket = INVALID_SOCKET; -const int socket_error_retval = SOCKET_ERROR; -const int max_addr_v4_str_len = 256; -const int max_addr_v6_str_len = 256; -typedef sockaddr socket_addr_type; -typedef in_addr in4_addr_type; -typedef ip_mreq in4_mreq_type; -typedef sockaddr_in sockaddr_in4_type; -# if defined(BOOST_ASIO_HAS_OLD_WIN_SDK) -typedef in6_addr_emulation in6_addr_type; -typedef ipv6_mreq_emulation in6_mreq_type; -typedef sockaddr_in6_emulation sockaddr_in6_type; -typedef sockaddr_storage_emulation sockaddr_storage_type; -typedef addrinfo_emulation addrinfo_type; -# else -typedef in6_addr in6_addr_type; -typedef ipv6_mreq in6_mreq_type; -typedef sockaddr_in6 sockaddr_in6_type; -typedef sockaddr_storage sockaddr_storage_type; -typedef addrinfo addrinfo_type; -# endif -typedef unsigned long ioctl_arg_type; -typedef u_long u_long_type; -typedef u_short u_short_type; -const int shutdown_receive = SD_RECEIVE; -const int shutdown_send = SD_SEND; -const int shutdown_both = SD_BOTH; -const int message_peek = MSG_PEEK; -const int message_out_of_band = MSG_OOB; -const int message_do_not_route = MSG_DONTROUTE; -# if defined (_WIN32_WINNT) -const int max_iov_len = 64; -# else -const int max_iov_len = 16; -# endif -#else -typedef int socket_type; -const int invalid_socket = -1; -const int socket_error_retval = -1; -const int max_addr_v4_str_len = INET_ADDRSTRLEN; -const int max_addr_v6_str_len = INET6_ADDRSTRLEN + 1 + IF_NAMESIZE; -typedef sockaddr socket_addr_type; -typedef in_addr in4_addr_type; -# if defined(__hpux) -// HP-UX doesn't provide ip_mreq when _XOPEN_SOURCE_EXTENDED is defined. -struct in4_mreq_type -{ - struct in_addr imr_multiaddr; - struct in_addr imr_interface; -}; -# else -typedef ip_mreq in4_mreq_type; -# endif -typedef sockaddr_in sockaddr_in4_type; -typedef in6_addr in6_addr_type; -typedef ipv6_mreq in6_mreq_type; -typedef sockaddr_in6 sockaddr_in6_type; -typedef sockaddr_storage sockaddr_storage_type; -typedef sockaddr_un sockaddr_un_type; -typedef addrinfo addrinfo_type; -typedef int ioctl_arg_type; -typedef uint32_t u_long_type; -typedef uint16_t u_short_type; -const int shutdown_receive = SHUT_RD; -const int shutdown_send = SHUT_WR; -const int shutdown_both = SHUT_RDWR; -const int message_peek = MSG_PEEK; -const int message_out_of_band = MSG_OOB; -const int message_do_not_route = MSG_DONTROUTE; -# if defined(IOV_MAX) -const int max_iov_len = IOV_MAX; -# else -// POSIX platforms are not required to define IOV_MAX. -const int max_iov_len = 16; -# endif -#endif -const int custom_socket_option_level = 0xA5100000; -const int enable_connection_aborted_option = 1; -const int always_fail_option = 2; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_SOCKET_TYPES_HPP diff --git a/3rdParty/Boost/boost/asio/detail/strand_service.hpp b/3rdParty/Boost/boost/asio/detail/strand_service.hpp deleted file mode 100644 index 2c89a61..0000000 --- a/3rdParty/Boost/boost/asio/detail/strand_service.hpp +++ /dev/null @@ -1,532 +0,0 @@ -// -// strand_service.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_STRAND_SERVICE_HPP -#define BOOST_ASIO_DETAIL_STRAND_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// Default service implementation for a strand. -class strand_service - : public boost::asio::detail::service_base -{ -public: - class handler_base; - class invoke_current_handler; - class post_next_waiter_on_exit; - - // The underlying implementation of a strand. - class strand_impl - { -#if defined (__BORLANDC__) - public: -#else - private: -#endif - void add_ref() - { - ++ref_count_; - } - - void release() - { - if (--ref_count_ == 0) - delete this; - } - - private: - // Only this service will have access to the internal values. - friend class strand_service; - friend class post_next_waiter_on_exit; - friend class invoke_current_handler; - - strand_impl(strand_service& owner) - : owner_(owner), - current_handler_(0), - first_waiter_(0), - last_waiter_(0), - ref_count_(0) - { - // Insert implementation into linked list of all implementations. - boost::asio::detail::mutex::scoped_lock lock(owner_.mutex_); - next_ = owner_.impl_list_; - prev_ = 0; - if (owner_.impl_list_) - owner_.impl_list_->prev_ = this; - owner_.impl_list_ = this; - } - - ~strand_impl() - { - // Remove implementation from linked list of all implementations. - boost::asio::detail::mutex::scoped_lock lock(owner_.mutex_); - if (owner_.impl_list_ == this) - owner_.impl_list_ = next_; - if (prev_) - prev_->next_ = next_; - if (next_) - next_->prev_= prev_; - next_ = 0; - prev_ = 0; - lock.unlock(); - - if (current_handler_) - { - current_handler_->destroy(); - } - - while (first_waiter_) - { - handler_base* next = first_waiter_->next_; - first_waiter_->destroy(); - first_waiter_ = next; - } - } - - // Mutex to protect access to internal data. - boost::asio::detail::mutex mutex_; - - // The service that owns this implementation. - strand_service& owner_; - - // The handler that is ready to execute. If this pointer is non-null then it - // indicates that a handler holds the lock. - handler_base* current_handler_; - - // The start of the list of waiting handlers for the strand. - handler_base* first_waiter_; - - // The end of the list of waiting handlers for the strand. - handler_base* last_waiter_; - - // Storage for posted handlers. - typedef boost::aligned_storage<128> handler_storage_type; -#if defined(__BORLANDC__) - boost::aligned_storage<128> handler_storage_; -#else - handler_storage_type handler_storage_; -#endif - - // Pointers to adjacent socket implementations in linked list. - strand_impl* next_; - strand_impl* prev_; - - // The reference count on the strand implementation. - boost::detail::atomic_count ref_count_; - -#if !defined(__BORLANDC__) - friend void intrusive_ptr_add_ref(strand_impl* p) - { - p->add_ref(); - } - - friend void intrusive_ptr_release(strand_impl* p) - { - p->release(); - } -#endif - }; - - friend class strand_impl; - - typedef boost::intrusive_ptr implementation_type; - - // Base class for all handler types. - class handler_base - { - public: - typedef void (*invoke_func_type)(handler_base*, - strand_service&, implementation_type&); - typedef void (*destroy_func_type)(handler_base*); - - handler_base(invoke_func_type invoke_func, destroy_func_type destroy_func) - : next_(0), - invoke_func_(invoke_func), - destroy_func_(destroy_func) - { - } - - void invoke(strand_service& service_impl, implementation_type& impl) - { - invoke_func_(this, service_impl, impl); - } - - void destroy() - { - destroy_func_(this); - } - - protected: - ~handler_base() - { - } - - private: - friend class strand_service; - friend class strand_impl; - friend class post_next_waiter_on_exit; - handler_base* next_; - invoke_func_type invoke_func_; - destroy_func_type destroy_func_; - }; - - // Helper class to allow handlers to be dispatched. - class invoke_current_handler - { - public: - invoke_current_handler(strand_service& service_impl, - const implementation_type& impl) - : service_impl_(service_impl), - impl_(impl) - { - } - - void operator()() - { - impl_->current_handler_->invoke(service_impl_, impl_); - } - - friend void* asio_handler_allocate(std::size_t size, - invoke_current_handler* this_handler) - { - return this_handler->do_handler_allocate(size); - } - - friend void asio_handler_deallocate(void*, std::size_t, - invoke_current_handler*) - { - } - - void* do_handler_allocate(std::size_t size) - { -#if defined(__BORLANDC__) - BOOST_ASSERT(size <= boost::aligned_storage<128>::size); -#else - BOOST_ASSERT(size <= strand_impl::handler_storage_type::size); -#endif - (void)size; - return impl_->handler_storage_.address(); - } - - // The asio_handler_invoke hook is not defined here since the default one - // provides the correct behaviour, and including it here breaks MSVC 7.1 - // in some situations. - - private: - strand_service& service_impl_; - implementation_type impl_; - }; - - // Helper class to automatically enqueue next waiter on block exit. - class post_next_waiter_on_exit - { - public: - post_next_waiter_on_exit(strand_service& service_impl, - implementation_type& impl) - : service_impl_(service_impl), - impl_(impl), - cancelled_(false) - { - } - - ~post_next_waiter_on_exit() - { - if (!cancelled_) - { - boost::asio::detail::mutex::scoped_lock lock(impl_->mutex_); - impl_->current_handler_ = impl_->first_waiter_; - if (impl_->current_handler_) - { - impl_->first_waiter_ = impl_->first_waiter_->next_; - if (impl_->first_waiter_ == 0) - impl_->last_waiter_ = 0; - lock.unlock(); - service_impl_.get_io_service().post( - invoke_current_handler(service_impl_, impl_)); - } - } - } - - void cancel() - { - cancelled_ = true; - } - - private: - strand_service& service_impl_; - implementation_type& impl_; - bool cancelled_; - }; - - // Class template for a waiter. - template - class handler_wrapper - : public handler_base - { - public: - handler_wrapper(Handler handler) - : handler_base(&handler_wrapper::do_invoke, - &handler_wrapper::do_destroy), - handler_(handler) - { - } - - static void do_invoke(handler_base* base, - strand_service& service_impl, implementation_type& impl) - { - // Take ownership of the handler object. - typedef handler_wrapper this_type; - this_type* h(static_cast(base)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(h->handler_, h); - - post_next_waiter_on_exit p1(service_impl, impl); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(h->handler_); - - // A handler object must still be valid when the next waiter is posted - // since destroying the last handler might cause the strand object to be - // destroyed. Therefore we create a second post_next_waiter_on_exit object - // that will be destroyed before the handler object. - p1.cancel(); - post_next_waiter_on_exit p2(service_impl, impl); - - // Free the memory associated with the handler. - ptr.reset(); - - // Indicate that this strand is executing on the current thread. - call_stack::context ctx(impl.get()); - - // Make the upcall. - boost_asio_handler_invoke_helpers::invoke(handler, &handler); - } - - static void do_destroy(handler_base* base) - { - // Take ownership of the handler object. - typedef handler_wrapper this_type; - this_type* h(static_cast(base)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(h->handler_, h); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(h->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - private: - Handler handler_; - }; - - // Construct a new strand service for the specified io_service. - explicit strand_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base(io_service), - mutex_(), - impl_list_(0) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - // Construct a list of all handlers to be destroyed. - boost::asio::detail::mutex::scoped_lock lock(mutex_); - strand_impl* impl = impl_list_; - handler_base* first_handler = 0; - while (impl) - { - if (impl->current_handler_) - { - impl->current_handler_->next_ = first_handler; - first_handler = impl->current_handler_; - impl->current_handler_ = 0; - } - if (impl->first_waiter_) - { - impl->last_waiter_->next_ = first_handler; - first_handler = impl->first_waiter_; - impl->first_waiter_ = 0; - impl->last_waiter_ = 0; - } - impl = impl->next_; - } - - // Destroy all handlers without holding the lock. - lock.unlock(); - while (first_handler) - { - handler_base* next = first_handler->next_; - first_handler->destroy(); - first_handler = next; - } - } - - // Construct a new strand implementation. - void construct(implementation_type& impl) - { - impl = implementation_type(new strand_impl(*this)); - } - - // Destroy a strand implementation. - void destroy(implementation_type& impl) - { - implementation_type().swap(impl); - } - - // Request the io_service to invoke the given handler. - template - void dispatch(implementation_type& impl, Handler handler) - { - if (call_stack::contains(impl.get())) - { - boost_asio_handler_invoke_helpers::invoke(handler, &handler); - } - else - { - // Allocate and construct an object to wrap the handler. - typedef handler_wrapper value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - handler_ptr ptr(raw_ptr, handler); - - boost::asio::detail::mutex::scoped_lock lock(impl->mutex_); - - if (impl->current_handler_ == 0) - { - // This handler now has the lock, so can be dispatched immediately. - impl->current_handler_ = ptr.release(); - lock.unlock(); - this->get_io_service().dispatch(invoke_current_handler(*this, impl)); - } - else - { - // Another handler already holds the lock, so this handler must join - // the list of waiters. The handler will be posted automatically when - // its turn comes. - if (impl->last_waiter_) - { - impl->last_waiter_->next_ = ptr.get(); - impl->last_waiter_ = impl->last_waiter_->next_; - } - else - { - impl->first_waiter_ = ptr.get(); - impl->last_waiter_ = ptr.get(); - } - ptr.release(); - } - } - } - - // Request the io_service to invoke the given handler and return immediately. - template - void post(implementation_type& impl, Handler handler) - { - // Allocate and construct an object to wrap the handler. - typedef handler_wrapper value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - handler_ptr ptr(raw_ptr, handler); - - boost::asio::detail::mutex::scoped_lock lock(impl->mutex_); - - if (impl->current_handler_ == 0) - { - // This handler now has the lock, so can be dispatched immediately. - impl->current_handler_ = ptr.release(); - lock.unlock(); - this->get_io_service().post(invoke_current_handler(*this, impl)); - } - else - { - // Another handler already holds the lock, so this handler must join the - // list of waiters. The handler will be posted automatically when its turn - // comes. - if (impl->last_waiter_) - { - impl->last_waiter_->next_ = ptr.get(); - impl->last_waiter_ = impl->last_waiter_->next_; - } - else - { - impl->first_waiter_ = ptr.get(); - impl->last_waiter_ = ptr.get(); - } - ptr.release(); - } - } - -private: - // Mutex to protect access to the linked list of implementations. - boost::asio::detail::mutex mutex_; - - // The head of a linked list of all implementations. - strand_impl* impl_list_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#if defined(__BORLANDC__) - -namespace boost { - -inline void intrusive_ptr_add_ref( - boost::asio::detail::strand_service::strand_impl* p) -{ - p->add_ref(); -} - -inline void intrusive_ptr_release( - boost::asio::detail::strand_service::strand_impl* p) -{ - p->release(); -} - -} // namespace boost - -#endif // defined(__BORLANDC__) - -#include - -#endif // BOOST_ASIO_DETAIL_STRAND_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/task_io_service.hpp b/3rdParty/Boost/boost/asio/detail/task_io_service.hpp deleted file mode 100644 index eeae6b0..0000000 --- a/3rdParty/Boost/boost/asio/detail/task_io_service.hpp +++ /dev/null @@ -1,438 +0,0 @@ -// -// task_io_service.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_TASK_IO_SERVICE_HPP -#define BOOST_ASIO_DETAIL_TASK_IO_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#if defined(BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) -#include -#else // defined(BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class task_io_service - : public boost::asio::detail::service_base > -{ -public: - // Constructor. - task_io_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base >(io_service), - mutex_(), - task_(0), - task_interrupted_(true), - outstanding_work_(0), - stopped_(false), - shutdown_(false), - first_idle_thread_(0) - { - } - - void init(size_t /*concurrency_hint*/) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - shutdown_ = true; - lock.unlock(); - - // Destroy handler objects. - while (!handler_queue_.empty()) - { - handler_queue::handler* h = handler_queue_.front(); - handler_queue_.pop(); - if (h != &task_handler_) - h->destroy(); - } - - // Reset to initial state. - task_ = 0; - } - - // Initialise the task, if required. - void init_task() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (!shutdown_ && !task_) - { - task_ = &use_service(this->get_io_service()); - handler_queue_.push(&task_handler_); - interrupt_one_idle_thread(lock); - } - } - - // Run the event loop until interrupted or no more work. - size_t run(boost::system::error_code& ec) - { - typename call_stack::context ctx(this); - - idle_thread_info this_idle_thread; - this_idle_thread.next = 0; - - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - size_t n = 0; - while (do_one(lock, &this_idle_thread, ec)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; - } - - // Run until interrupted or one operation is performed. - size_t run_one(boost::system::error_code& ec) - { - typename call_stack::context ctx(this); - - idle_thread_info this_idle_thread; - this_idle_thread.next = 0; - - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - return do_one(lock, &this_idle_thread, ec); - } - - // Poll for operations without blocking. - size_t poll(boost::system::error_code& ec) - { - typename call_stack::context ctx(this); - - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - size_t n = 0; - while (do_one(lock, 0, ec)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; - } - - // Poll for one operation without blocking. - size_t poll_one(boost::system::error_code& ec) - { - typename call_stack::context ctx(this); - - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - return do_one(lock, 0, ec); - } - - // Interrupt the event processing loop. - void stop() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - stop_all_threads(lock); - } - - // Reset in preparation for a subsequent run invocation. - void reset() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - stopped_ = false; - } - - // Notify that some work has started. - void work_started() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - ++outstanding_work_; - } - - // Notify that some work has finished. - void work_finished() - { - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (--outstanding_work_ == 0) - stop_all_threads(lock); - } - - // Request invocation of the given handler. - template - void dispatch(Handler handler) - { - if (call_stack::contains(this)) - boost_asio_handler_invoke_helpers::invoke(handler, &handler); - else - post(handler); - } - - // Request invocation of the given handler and return immediately. - template - void post(Handler handler) - { - // Allocate and construct an operation to wrap the handler. - handler_queue::scoped_ptr ptr(handler_queue::wrap(handler)); - - boost::asio::detail::mutex::scoped_lock lock(mutex_); - - // If the service has been shut down we silently discard the handler. - if (shutdown_) - return; - - // Add the handler to the end of the queue. - handler_queue_.push(ptr.get()); - ptr.release(); - - // An undelivered handler is treated as unfinished work. - ++outstanding_work_; - - // Wake up a thread to execute the handler. - if (!interrupt_one_idle_thread(lock)) - { - if (!task_interrupted_ && task_) - { - task_interrupted_ = true; - task_->interrupt(); - } - } - } - -private: - struct idle_thread_info; - - size_t do_one(boost::asio::detail::mutex::scoped_lock& lock, - idle_thread_info* this_idle_thread, boost::system::error_code& ec) - { - if (outstanding_work_ == 0 && !stopped_) - { - stop_all_threads(lock); - ec = boost::system::error_code(); - return 0; - } - - bool polling = !this_idle_thread; - bool task_has_run = false; - while (!stopped_) - { - if (!handler_queue_.empty()) - { - // Prepare to execute first handler from queue. - handler_queue::handler* h = handler_queue_.front(); - handler_queue_.pop(); - - if (h == &task_handler_) - { - bool more_handlers = (!handler_queue_.empty()); - task_interrupted_ = more_handlers || polling; - - // If the task has already run and we're polling then we're done. - if (task_has_run && polling) - { - task_interrupted_ = true; - handler_queue_.push(&task_handler_); - ec = boost::system::error_code(); - return 0; - } - task_has_run = true; - - lock.unlock(); - task_cleanup c(lock, *this); - - // Run the task. May throw an exception. Only block if the handler - // queue is empty and we have an idle_thread_info object, otherwise - // we want to return as soon as possible. - task_->run(!more_handlers && !polling); - } - else - { - lock.unlock(); - handler_cleanup c(lock, *this); - - // Invoke the handler. May throw an exception. - h->invoke(); // invoke() deletes the handler object - - ec = boost::system::error_code(); - return 1; - } - } - else if (this_idle_thread) - { - // Nothing to run right now, so just wait for work to do. - this_idle_thread->next = first_idle_thread_; - first_idle_thread_ = this_idle_thread; - this_idle_thread->wakeup_event.clear(lock); - this_idle_thread->wakeup_event.wait(lock); - } - else - { - ec = boost::system::error_code(); - return 0; - } - } - - ec = boost::system::error_code(); - return 0; - } - - // Stop the task and all idle threads. - void stop_all_threads( - boost::asio::detail::mutex::scoped_lock& lock) - { - stopped_ = true; - interrupt_all_idle_threads(lock); - if (!task_interrupted_ && task_) - { - task_interrupted_ = true; - task_->interrupt(); - } - } - - // Interrupt a single idle thread. Returns true if a thread was interrupted, - // false if no running thread could be found to interrupt. - bool interrupt_one_idle_thread( - boost::asio::detail::mutex::scoped_lock& lock) - { - if (first_idle_thread_) - { - idle_thread_info* idle_thread = first_idle_thread_; - first_idle_thread_ = idle_thread->next; - idle_thread->next = 0; - idle_thread->wakeup_event.signal(lock); - return true; - } - return false; - } - - // Interrupt all idle threads. - void interrupt_all_idle_threads( - boost::asio::detail::mutex::scoped_lock& lock) - { - while (first_idle_thread_) - { - idle_thread_info* idle_thread = first_idle_thread_; - first_idle_thread_ = idle_thread->next; - idle_thread->next = 0; - idle_thread->wakeup_event.signal(lock); - } - } - - // Helper class to perform task-related operations on block exit. - class task_cleanup; - friend class task_cleanup; - class task_cleanup - { - public: - task_cleanup(boost::asio::detail::mutex::scoped_lock& lock, - task_io_service& task_io_svc) - : lock_(lock), - task_io_service_(task_io_svc) - { - } - - ~task_cleanup() - { - // Reinsert the task at the end of the handler queue. - lock_.lock(); - task_io_service_.task_interrupted_ = true; - task_io_service_.handler_queue_.push(&task_io_service_.task_handler_); - } - - private: - boost::asio::detail::mutex::scoped_lock& lock_; - task_io_service& task_io_service_; - }; - - // Helper class to perform handler-related operations on block exit. - class handler_cleanup; - friend class handler_cleanup; - class handler_cleanup - { - public: - handler_cleanup(boost::asio::detail::mutex::scoped_lock& lock, - task_io_service& task_io_svc) - : lock_(lock), - task_io_service_(task_io_svc) - { - } - - ~handler_cleanup() - { - lock_.lock(); - if (--task_io_service_.outstanding_work_ == 0) - task_io_service_.stop_all_threads(lock_); - } - - private: - boost::asio::detail::mutex::scoped_lock& lock_; - task_io_service& task_io_service_; - }; - - // Mutex to protect access to internal data. - boost::asio::detail::mutex mutex_; - - // The task to be run by this service. - Task* task_; - - // Handler object to represent the position of the task in the queue. - class task_handler - : public handler_queue::handler - { - public: - task_handler() - : handler_queue::handler(0, 0) - { - } - } task_handler_; - - // Whether the task has been interrupted. - bool task_interrupted_; - - // The count of unfinished work. - int outstanding_work_; - - // The queue of handlers that are ready to be delivered. - handler_queue handler_queue_; - - // Flag to indicate that the dispatcher has been stopped. - bool stopped_; - - // Flag to indicate that the dispatcher has been shut down. - bool shutdown_; - - // Structure containing information about an idle thread. - struct idle_thread_info - { - event wakeup_event; - idle_thread_info* next; - }; - - // The number of threads that are currently idle. - idle_thread_info* first_idle_thread_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include -#include - -#endif // defined(BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) - -#endif // BOOST_ASIO_DETAIL_TASK_IO_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/task_io_service_2lock.hpp b/3rdParty/Boost/boost/asio/detail/task_io_service_2lock.hpp deleted file mode 100644 index bd406cb..0000000 --- a/3rdParty/Boost/boost/asio/detail/task_io_service_2lock.hpp +++ /dev/null @@ -1,475 +0,0 @@ -// -// task_io_service_2lock.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_TASK_IO_SERVICE_2LOCK_HPP -#define BOOST_ASIO_DETAIL_TASK_IO_SERVICE_2LOCK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// An alternative task_io_service implementation based on a two-lock queue. - -template -class task_io_service - : public boost::asio::detail::service_base > -{ -public: - typedef indirect_handler_queue handler_queue; - - // Constructor. - task_io_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base >(io_service), - front_mutex_(), - back_mutex_(), - task_(&use_service(io_service)), - outstanding_work_(0), - front_stopped_(false), - back_stopped_(false), - back_shutdown_(false), - back_first_idle_thread_(0), - back_task_thread_(0) - { - } - - void init(size_t /*concurrency_hint*/) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - boost::asio::detail::mutex::scoped_lock back_lock(back_mutex_); - back_shutdown_ = true; - back_lock.unlock(); - - // Destroy handler objects. - while (handler_queue::handler* h = handler_queue_.pop()) - if (h != &task_handler_) - h->destroy(); - - // Reset to initial state. - task_ = 0; - } - - // Initialise the task, if required. - void init_task() - { - boost::asio::detail::mutex::scoped_lock back_lock(back_mutex_); - if (!back_shutdown_ && !task_) - { - task_ = &use_service(this->get_io_service()); - handler_queue_.push(&task_handler_); - interrupt_one_idle_thread(back_lock); - } - } - - // Run the event loop until interrupted or no more work. - size_t run(boost::system::error_code& ec) - { - if (outstanding_work_ == 0) - { - stop(); - ec = boost::system::error_code(); - return 0; - } - - typename call_stack::context ctx(this); - - idle_thread_info this_idle_thread; - this_idle_thread.next = 0; - - size_t n = 0; - while (do_one(&this_idle_thread, ec)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; - } - - // Run until interrupted or one operation is performed. - size_t run_one(boost::system::error_code& ec) - { - if (outstanding_work_ == 0) - { - stop(); - ec = boost::system::error_code(); - return 0; - } - - typename call_stack::context ctx(this); - - idle_thread_info this_idle_thread; - this_idle_thread.next = 0; - - return do_one(&this_idle_thread, ec); - } - - // Poll for operations without blocking. - size_t poll(boost::system::error_code& ec) - { - if (outstanding_work_ == 0) - { - stop(); - ec = boost::system::error_code(); - return 0; - } - - typename call_stack::context ctx(this); - - size_t n = 0; - while (do_one(0, ec)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; - } - - // Poll for one operation without blocking. - size_t poll_one(boost::system::error_code& ec) - { - if (outstanding_work_ == 0) - { - stop(); - ec = boost::system::error_code(); - return 0; - } - - typename call_stack::context ctx(this); - - return do_one(0, ec); - } - - // Interrupt the event processing loop. - void stop() - { - boost::asio::detail::mutex::scoped_lock front_lock(front_mutex_); - front_stopped_ = true; - front_lock.unlock(); - - boost::asio::detail::mutex::scoped_lock back_lock(back_mutex_); - back_stopped_ = true; - interrupt_all_idle_threads(back_lock); - } - - // Reset in preparation for a subsequent run invocation. - void reset() - { - boost::asio::detail::mutex::scoped_lock front_lock(front_mutex_); - front_stopped_ = false; - front_lock.unlock(); - - boost::asio::detail::mutex::scoped_lock back_lock(back_mutex_); - back_stopped_ = false; - } - - // Notify that some work has started. - void work_started() - { - ++outstanding_work_; - } - - // Notify that some work has finished. - void work_finished() - { - if (--outstanding_work_ == 0) - stop(); - } - - // Request invocation of the given handler. - template - void dispatch(Handler handler) - { - if (call_stack::contains(this)) - boost_asio_handler_invoke_helpers::invoke(handler, &handler); - else - post(handler); - } - - // Request invocation of the given handler and return immediately. - template - void post(Handler handler) - { - // Allocate and construct an operation to wrap the handler. - handler_queue::scoped_ptr ptr(handler_queue::wrap(handler)); - - boost::asio::detail::mutex::scoped_lock back_lock(back_mutex_); - - // If the service has been shut down we silently discard the handler. - if (back_shutdown_) - return; - - // Add the handler to the end of the queue. - handler_queue_.push(ptr.get()); - ptr.release(); - - // An undelivered handler is treated as unfinished work. - ++outstanding_work_; - - // Wake up a thread to execute the handler. - interrupt_one_idle_thread(back_lock); - } - -private: - struct idle_thread_info; - - size_t do_one(idle_thread_info* this_idle_thread, - boost::system::error_code& ec) - { - bool task_has_run = false; - for (;;) - { - // The front lock must be held before we can pop items from the queue. - boost::asio::detail::mutex::scoped_lock front_lock(front_mutex_); - if (front_stopped_) - { - ec = boost::system::error_code(); - return 0; - } - - if (handler_queue::handler* h = handler_queue_.pop()) - { - if (h == &task_handler_) - { - bool more_handlers = handler_queue_.poppable(); - unsigned long front_version = handler_queue_.front_version(); - front_lock.unlock(); - - // The task is always added to the back of the queue when we exit - // this block. - task_cleanup c(*this); - - // If we're polling and the task has already run then we're done. - bool polling = !this_idle_thread; - if (task_has_run && polling) - { - ec = boost::system::error_code(); - return 0; - } - - // If we're considering going idle we need to check whether the queue - // is still empty. If it is, add the thread to the list of idle - // threads. - if (!more_handlers && !polling) - { - boost::asio::detail::mutex::scoped_lock back_lock(back_mutex_); - if (back_stopped_) - { - ec = boost::system::error_code(); - return 0; - } - else if (front_version == handler_queue_.back_version()) - { - back_task_thread_ = this_idle_thread; - } - else - { - more_handlers = true; - } - } - - // Run the task. May throw an exception. Only block if the handler - // queue is empty and we're not polling, otherwise we want to return - // as soon as possible. - task_has_run = true; - task_->run(!more_handlers && !polling); - } - else - { - front_lock.unlock(); - handler_cleanup c(*this); - - // Invoke the handler. May throw an exception. - h->invoke(); // invoke() deletes the handler object - - ec = boost::system::error_code(); - return 1; - } - } - else if (this_idle_thread) - { - unsigned long front_version = handler_queue_.front_version(); - front_lock.unlock(); - - // If we're considering going idle we need to check whether the queue - // is still empty. If it is, add the thread to the list of idle - // threads. - boost::asio::detail::mutex::scoped_lock back_lock(back_mutex_); - if (back_stopped_) - { - ec = boost::system::error_code(); - return 0; - } - else if (front_version == handler_queue_.back_version()) - { - this_idle_thread->next = back_first_idle_thread_; - back_first_idle_thread_ = this_idle_thread; - this_idle_thread->wakeup_event.clear(back_lock); - this_idle_thread->wakeup_event.wait(back_lock); - } - } - else - { - ec = boost::system::error_code(); - return 0; - } - } - } - - // Interrupt a single idle thread. - void interrupt_one_idle_thread( - boost::asio::detail::mutex::scoped_lock& back_lock) - { - if (back_first_idle_thread_) - { - idle_thread_info* idle_thread = back_first_idle_thread_; - back_first_idle_thread_ = idle_thread->next; - idle_thread->next = 0; - idle_thread->wakeup_event.signal(back_lock); - } - else if (back_task_thread_ && task_) - { - back_task_thread_ = 0; - task_->interrupt(); - } - } - - // Interrupt all idle threads. - void interrupt_all_idle_threads( - boost::asio::detail::mutex::scoped_lock& back_lock) - { - while (back_first_idle_thread_) - { - idle_thread_info* idle_thread = back_first_idle_thread_; - back_first_idle_thread_ = idle_thread->next; - idle_thread->next = 0; - idle_thread->wakeup_event.signal(back_lock); - } - - if (back_task_thread_ && task_) - { - back_task_thread_ = 0; - task_->interrupt(); - } - } - - // Helper class to perform task-related operations on block exit. - class task_cleanup; - friend class task_cleanup; - class task_cleanup - { - public: - task_cleanup(task_io_service& task_io_svc) - : task_io_service_(task_io_svc) - { - } - - ~task_cleanup() - { - // Reinsert the task at the end of the handler queue. - boost::asio::detail::mutex::scoped_lock back_lock( - task_io_service_.back_mutex_); - task_io_service_.back_task_thread_ = 0; - task_io_service_.handler_queue_.push(&task_io_service_.task_handler_); - } - - private: - task_io_service& task_io_service_; - }; - - // Helper class to perform handler-related operations on block exit. - class handler_cleanup - { - public: - handler_cleanup(task_io_service& task_io_svc) - : task_io_service_(task_io_svc) - { - } - - ~handler_cleanup() - { - task_io_service_.work_finished(); - } - - private: - task_io_service& task_io_service_; - }; - - // Mutexes to protect access to internal data. - boost::asio::detail::mutex front_mutex_; - boost::asio::detail::mutex back_mutex_; - - // The task to be run by this service. - Task* task_; - - // Handler object to represent the position of the task in the queue. - class task_handler - : public handler_queue::handler - { - public: - task_handler() - : handler_queue::handler(0, 0) - { - } - } task_handler_; - - // The count of unfinished work. - boost::detail::atomic_count outstanding_work_; - - // The queue of handlers that are ready to be delivered. - handler_queue handler_queue_; - - // Flag to indicate that the dispatcher has been stopped. - bool front_stopped_; - bool back_stopped_; - - // Flag to indicate that the dispatcher has been shut down. - bool back_shutdown_; - - // Structure containing information about an idle thread. - struct idle_thread_info - { - event wakeup_event; - idle_thread_info* next; - }; - - // The number of threads that are currently idle. - idle_thread_info* back_first_idle_thread_; - - // The thread that is currently blocked on the task. - idle_thread_info* back_task_thread_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_TASK_IO_SERVICE_2LOCK_HPP diff --git a/3rdParty/Boost/boost/asio/detail/task_io_service_fwd.hpp b/3rdParty/Boost/boost/asio/detail/task_io_service_fwd.hpp deleted file mode 100644 index 6dc8955..0000000 --- a/3rdParty/Boost/boost/asio/detail/task_io_service_fwd.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// task_io_service_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_TASK_IO_SERVICE_FWD_HPP -#define BOOST_ASIO_DETAIL_TASK_IO_SERVICE_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class task_io_service; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_TASK_IO_SERVICE_FWD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/thread.hpp b/3rdParty/Boost/boost/asio/detail/thread.hpp deleted file mode 100644 index 3db5805..0000000 --- a/3rdParty/Boost/boost/asio/detail/thread.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// -// thread.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_THREAD_HPP -#define BOOST_ASIO_DETAIL_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_HAS_THREADS) -# include -#elif defined(BOOST_WINDOWS) -# if defined(UNDER_CE) -# include -# else -# include -# endif -#elif defined(BOOST_HAS_PTHREADS) -# include -#else -# error Only Windows and POSIX are supported! -#endif - -namespace boost { -namespace asio { -namespace detail { - -#if !defined(BOOST_HAS_THREADS) -typedef null_thread thread; -#elif defined(BOOST_WINDOWS) -# if defined(UNDER_CE) -typedef wince_thread thread; -# else -typedef win_thread thread; -# endif -#elif defined(BOOST_HAS_PTHREADS) -typedef posix_thread thread; -#endif - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_THREAD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/throw_error.hpp b/3rdParty/Boost/boost/asio/detail/throw_error.hpp deleted file mode 100644 index 0786c40..0000000 --- a/3rdParty/Boost/boost/asio/detail/throw_error.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// -// throw_error.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_THROW_ERROR_HPP -#define BOOST_ASIO_DETAIL_THROW_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - - -namespace boost { -namespace asio { -namespace detail { - -inline void throw_error(const boost::system::error_code& err) -{ - if (err) - { - boost::system::system_error e(err); - boost::throw_exception(e); - } -} - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_THROW_ERROR_HPP diff --git a/3rdParty/Boost/boost/asio/detail/timer_queue.hpp b/3rdParty/Boost/boost/asio/detail/timer_queue.hpp deleted file mode 100644 index f5370e5..0000000 --- a/3rdParty/Boost/boost/asio/detail/timer_queue.hpp +++ /dev/null @@ -1,438 +0,0 @@ -// -// timer_queue.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_TIMER_QUEUE_HPP -#define BOOST_ASIO_DETAIL_TIMER_QUEUE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class timer_queue - : public timer_queue_base -{ -public: - // The time type. - typedef typename Time_Traits::time_type time_type; - - // The duration type. - typedef typename Time_Traits::duration_type duration_type; - - // Constructor. - timer_queue() - : timers_(), - heap_(), - cancelled_timers_(0), - complete_timers_(0) - { - } - - // Add a new timer to the queue. Returns true if this is the timer that is - // earliest in the queue, in which case the reactor's event demultiplexing - // function call may need to be interrupted and restarted. - template - bool enqueue_timer(const time_type& time, Handler handler, void* token) - { - // Ensure that there is space for the timer in the heap. We reserve here so - // that the push_back below will not throw due to a reallocation failure. - heap_.reserve(heap_.size() + 1); - - // Create a new timer object. - std::auto_ptr > new_timer( - new timer(time, handler, token)); - - // Insert the new timer into the hash. - typedef typename hash_map::iterator iterator; - typedef typename hash_map::value_type value_type; - std::pair result = - timers_.insert(value_type(token, new_timer.get())); - if (!result.second) - { - result.first->second->prev_ = new_timer.get(); - new_timer->next_ = result.first->second; - result.first->second = new_timer.get(); - } - - // Put the timer at the correct position in the heap. - new_timer->heap_index_ = heap_.size(); - heap_.push_back(new_timer.get()); - up_heap(heap_.size() - 1); - bool is_first = (heap_[0] == new_timer.get()); - - // Ownership of the timer is transferred to the timer queue. - new_timer.release(); - - return is_first; - } - - // Whether there are no timers in the queue. - virtual bool empty() const - { - return heap_.empty(); - } - - // Get the time for the timer that is earliest in the queue. - virtual boost::posix_time::time_duration wait_duration() const - { - if (heap_.empty()) - return boost::posix_time::pos_infin; - return Time_Traits::to_posix_duration( - Time_Traits::subtract(heap_[0]->time_, Time_Traits::now())); - } - - // Dispatch the timers that are earlier than the specified time. - virtual void dispatch_timers() - { - const time_type now = Time_Traits::now(); - while (!heap_.empty() && !Time_Traits::less_than(now, heap_[0]->time_)) - { - timer_base* t = heap_[0]; - remove_timer(t); - t->result_ = boost::system::error_code(); - t->prev_ = 0; - t->next_ = complete_timers_; - complete_timers_ = t; - } - } - - // Cancel the timers with the given token. Any timers pending for the token - // will be notified that they have been cancelled next time - // dispatch_cancellations is called. Returns the number of timers that were - // cancelled. - std::size_t cancel_timer(void* timer_token) - { - std::size_t num_cancelled = 0; - typedef typename hash_map::iterator iterator; - iterator it = timers_.find(timer_token); - if (it != timers_.end()) - { - timer_base* t = it->second; - while (t) - { - timer_base* next = t->next_; - remove_timer(t); - t->prev_ = 0; - t->next_ = cancelled_timers_; - cancelled_timers_ = t; - t = next; - ++num_cancelled; - } - } - return num_cancelled; - } - - // Dispatch any pending cancels for timers. - virtual void dispatch_cancellations() - { - while (cancelled_timers_) - { - timer_base* this_timer = cancelled_timers_; - this_timer->result_ = boost::asio::error::operation_aborted; - cancelled_timers_ = this_timer->next_; - this_timer->next_ = complete_timers_; - complete_timers_ = this_timer; - } - } - - // Complete any timers that are waiting to be completed. - virtual void complete_timers() - { - while (complete_timers_) - { - timer_base* this_timer = complete_timers_; - complete_timers_ = this_timer->next_; - this_timer->next_ = 0; - this_timer->complete(); - } - } - - // Destroy all timers. - virtual void destroy_timers() - { - typename hash_map::iterator i = timers_.begin(); - typename hash_map::iterator end = timers_.end(); - while (i != end) - { - timer_base* t = i->second; - typename hash_map::iterator old_i = i++; - timers_.erase(old_i); - destroy_timer_list(t); - } - heap_.clear(); - timers_.clear(); - destroy_timer_list(cancelled_timers_); - destroy_timer_list(complete_timers_); - } - -private: - // Base class for timer operations. Function pointers are used instead of - // virtual functions to avoid the associated overhead. - class timer_base - { - public: - // Delete the timer and post the handler. - void complete() - { - complete_func_(this, result_); - } - - // Delete the timer. - void destroy() - { - destroy_func_(this); - } - - protected: - typedef void (*complete_func_type)(timer_base*, - const boost::system::error_code&); - typedef void (*destroy_func_type)(timer_base*); - - // Constructor. - timer_base(complete_func_type complete_func, destroy_func_type destroy_func, - const time_type& time, void* token) - : complete_func_(complete_func), - destroy_func_(destroy_func), - time_(time), - token_(token), - next_(0), - prev_(0), - heap_index_( - std::numeric_limits::max BOOST_PREVENT_MACRO_SUBSTITUTION()) - { - } - - // Prevent deletion through this type. - ~timer_base() - { - } - - private: - friend class timer_queue; - - // The function to be called to delete the timer and post the handler. - complete_func_type complete_func_; - - // The function to be called to delete the timer. - destroy_func_type destroy_func_; - - // The result of the timer operation. - boost::system::error_code result_; - - // The time when the timer should fire. - time_type time_; - - // The token associated with the timer. - void* token_; - - // The next timer known to the queue. - timer_base* next_; - - // The previous timer known to the queue. - timer_base* prev_; - - // The index of the timer in the heap. - size_t heap_index_; - }; - - // Adaptor class template for using handlers in timers. - template - class timer - : public timer_base - { - public: - // Constructor. - timer(const time_type& time, Handler handler, void* token) - : timer_base(&timer::complete_handler, - &timer::destroy_handler, time, token), - handler_(handler) - { - } - - // Delete the timer and post the handler. - static void complete_handler(timer_base* base, - const boost::system::error_code& result) - { - // Take ownership of the timer object. - typedef timer this_type; - this_type* this_timer(static_cast(base)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(this_timer->handler_, this_timer); - - // Make a copy of the error_code and the handler so that the memory can - // be deallocated before the upcall is made. - boost::system::error_code ec(result); - Handler handler(this_timer->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Make the upcall. - handler(ec); - } - - // Delete the timer. - static void destroy_handler(timer_base* base) - { - // Take ownership of the timer object. - typedef timer this_type; - this_type* this_timer(static_cast(base)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(this_timer->handler_, this_timer); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(this_timer->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - private: - Handler handler_; - }; - - // Move the item at the given index up the heap to its correct position. - void up_heap(size_t index) - { - size_t parent = (index - 1) / 2; - while (index > 0 - && Time_Traits::less_than(heap_[index]->time_, heap_[parent]->time_)) - { - swap_heap(index, parent); - index = parent; - parent = (index - 1) / 2; - } - } - - // Move the item at the given index down the heap to its correct position. - void down_heap(size_t index) - { - size_t child = index * 2 + 1; - while (child < heap_.size()) - { - size_t min_child = (child + 1 == heap_.size() - || Time_Traits::less_than( - heap_[child]->time_, heap_[child + 1]->time_)) - ? child : child + 1; - if (Time_Traits::less_than(heap_[index]->time_, heap_[min_child]->time_)) - break; - swap_heap(index, min_child); - index = min_child; - child = index * 2 + 1; - } - } - - // Swap two entries in the heap. - void swap_heap(size_t index1, size_t index2) - { - timer_base* tmp = heap_[index1]; - heap_[index1] = heap_[index2]; - heap_[index2] = tmp; - heap_[index1]->heap_index_ = index1; - heap_[index2]->heap_index_ = index2; - } - - // Remove a timer from the heap and list of timers. - void remove_timer(timer_base* t) - { - // Remove the timer from the heap. - size_t index = t->heap_index_; - if (!heap_.empty() && index < heap_.size()) - { - if (index == heap_.size() - 1) - { - heap_.pop_back(); - } - else - { - swap_heap(index, heap_.size() - 1); - heap_.pop_back(); - size_t parent = (index - 1) / 2; - if (index > 0 && Time_Traits::less_than( - heap_[index]->time_, heap_[parent]->time_)) - up_heap(index); - else - down_heap(index); - } - } - - // Remove the timer from the hash. - typedef typename hash_map::iterator iterator; - iterator it = timers_.find(t->token_); - if (it != timers_.end()) - { - if (it->second == t) - it->second = t->next_; - if (t->prev_) - t->prev_->next_ = t->next_; - if (t->next_) - t->next_->prev_ = t->prev_; - if (it->second == 0) - timers_.erase(it); - } - } - - // Destroy all timers in a linked list. - void destroy_timer_list(timer_base*& t) - { - while (t) - { - timer_base* next = t->next_; - t->next_ = 0; - t->destroy(); - t = next; - } - } - - // A hash of timer token to linked lists of timers. - hash_map timers_; - - // The heap of timers, with the earliest timer at the front. - std::vector heap_; - - // The list of timers to be cancelled. - timer_base* cancelled_timers_; - - // The list of timers waiting to be completed. - timer_base* complete_timers_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_TIMER_QUEUE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/timer_queue_base.hpp b/3rdParty/Boost/boost/asio/detail/timer_queue_base.hpp deleted file mode 100644 index 1d986c0..0000000 --- a/3rdParty/Boost/boost/asio/detail/timer_queue_base.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// timer_queue_base.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_TIMER_QUEUE_BASE_HPP -#define BOOST_ASIO_DETAIL_TIMER_QUEUE_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include // Must come before posix_time. - -#include -#include -#include - -#include - -namespace boost { -namespace asio { -namespace detail { - -class timer_queue_base - : private noncopyable -{ -public: - // Destructor. - virtual ~timer_queue_base() {} - - // Whether there are no timers in the queue. - virtual bool empty() const = 0; - - // Get the time to wait until the next timer. - virtual boost::posix_time::time_duration wait_duration() const = 0; - - // Dispatch all ready timers. - virtual void dispatch_timers() = 0; - - // Dispatch any pending cancels for timers. - virtual void dispatch_cancellations() = 0; - - // Complete all timers that are waiting to be completed. - virtual void complete_timers() = 0; - - // Destroy all timers. - virtual void destroy_timers() = 0; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_TIMER_QUEUE_BASE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/tss_ptr.hpp b/3rdParty/Boost/boost/asio/detail/tss_ptr.hpp deleted file mode 100644 index 2cfd641..0000000 --- a/3rdParty/Boost/boost/asio/detail/tss_ptr.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// tss_ptr.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_TSS_PTR_HPP -#define BOOST_ASIO_DETAIL_TSS_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_HAS_THREADS) -# include -#elif defined(BOOST_WINDOWS) -# include -#elif defined(BOOST_HAS_PTHREADS) -# include -#else -# error Only Windows and POSIX are supported! -#endif - -namespace boost { -namespace asio { -namespace detail { - -template -class tss_ptr -#if !defined(BOOST_HAS_THREADS) - : public null_tss_ptr -#elif defined(BOOST_WINDOWS) - : public win_tss_ptr -#elif defined(BOOST_HAS_PTHREADS) - : public posix_tss_ptr -#endif -{ -public: - void operator=(T* value) - { -#if !defined(BOOST_HAS_THREADS) - null_tss_ptr::operator=(value); -#elif defined(BOOST_WINDOWS) - win_tss_ptr::operator=(value); -#elif defined(BOOST_HAS_PTHREADS) - posix_tss_ptr::operator=(value); -#endif - } -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_TSS_PTR_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_event.hpp b/3rdParty/Boost/boost/asio/detail/win_event.hpp deleted file mode 100644 index d0a135e..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_event.hpp +++ /dev/null @@ -1,105 +0,0 @@ -// -// win_event.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_EVENT_HPP -#define BOOST_ASIO_DETAIL_WIN_EVENT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if defined(BOOST_WINDOWS) - -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class win_event - : private noncopyable -{ -public: - // Constructor. - win_event() - : event_(::CreateEvent(0, true, false, 0)) - { - if (!event_) - { - DWORD last_error = ::GetLastError(); - boost::system::system_error e( - boost::system::error_code(last_error, - boost::asio::error::get_system_category()), - "event"); - boost::throw_exception(e); - } - } - - // Destructor. - ~win_event() - { - ::CloseHandle(event_); - } - - // Signal the event. - template - void signal(Lock& lock) - { - BOOST_ASSERT(lock.locked()); - (void)lock; - ::SetEvent(event_); - } - - // Reset the event. - template - void clear(Lock& lock) - { - BOOST_ASSERT(lock.locked()); - (void)lock; - ::ResetEvent(event_); - } - - // Wait for the event to become signalled. - template - void wait(Lock& lock) - { - BOOST_ASSERT(lock.locked()); - lock.unlock(); - ::WaitForSingleObject(event_, INFINITE); - lock.lock(); - } - -private: - HANDLE event_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_WINDOWS) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_EVENT_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_fd_set_adapter.hpp b/3rdParty/Boost/boost/asio/detail/win_fd_set_adapter.hpp deleted file mode 100644 index 9127a41..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_fd_set_adapter.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// win_fd_set_adapter.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_FD_SET_ADAPTER_HPP -#define BOOST_ASIO_DETAIL_WIN_FD_SET_ADAPTER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -namespace boost { -namespace asio { -namespace detail { - -// Adapts the FD_SET type to meet the Descriptor_Set concept's requirements. -class win_fd_set_adapter -{ -public: - enum { win_fd_set_size = 1024 }; - - win_fd_set_adapter() - : max_descriptor_(invalid_socket) - { - fd_set_.fd_count = 0; - } - - bool set(socket_type descriptor) - { - for (u_int i = 0; i < fd_set_.fd_count; ++i) - if (fd_set_.fd_array[i] == descriptor) - return true; - if (fd_set_.fd_count < win_fd_set_size) - { - fd_set_.fd_array[fd_set_.fd_count++] = descriptor; - return true; - } - return false; - } - - bool is_set(socket_type descriptor) const - { - return !!__WSAFDIsSet(descriptor, - const_cast(reinterpret_cast(&fd_set_))); - } - - operator fd_set*() - { - return reinterpret_cast(&fd_set_); - } - - socket_type max_descriptor() const - { - return max_descriptor_; - } - -private: - // This structure is defined to be compatible with the Windows API fd_set - // structure, but without being dependent on the value of FD_SETSIZE. - struct win_fd_set - { - u_int fd_count; - SOCKET fd_array[win_fd_set_size]; - }; - - win_fd_set fd_set_; - socket_type max_descriptor_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_FD_SET_ADAPTER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_iocp_handle_service.hpp b/3rdParty/Boost/boost/asio/detail/win_iocp_handle_service.hpp deleted file mode 100644 index fd204de..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_iocp_handle_service.hpp +++ /dev/null @@ -1,834 +0,0 @@ -// -// win_iocp_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_IOCP_HANDLE_SERVICE_HPP -#define BOOST_ASIO_DETAIL_WIN_IOCP_HANDLE_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_IOCP) - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class win_iocp_handle_service - : public boost::asio::detail::service_base -{ -public: - // Base class for all operations. - typedef win_iocp_io_service::operation operation; - - // The native type of a stream handle. - typedef HANDLE native_type; - - // The implementation type of the stream handle. - class implementation_type - { - public: - // Default constructor. - implementation_type() - : handle_(INVALID_HANDLE_VALUE), - safe_cancellation_thread_id_(0), - next_(0), - prev_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class win_iocp_handle_service; - - // The native stream handle representation. - native_type handle_; - - // The ID of the thread from which it is safe to cancel asynchronous - // operations. 0 means no asynchronous operations have been started yet. - // ~0 means asynchronous operations have been started from more than one - // thread, and cancellation is not supported for the handle. - DWORD safe_cancellation_thread_id_; - - // Pointers to adjacent handle implementations in linked list. - implementation_type* next_; - implementation_type* prev_; - }; - - win_iocp_handle_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base(io_service), - iocp_service_(boost::asio::use_service(io_service)), - mutex_(), - impl_list_(0) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - // Close all implementations, causing all operations to complete. - boost::asio::detail::mutex::scoped_lock lock(mutex_); - implementation_type* impl = impl_list_; - while (impl) - { - close_for_destruction(*impl); - impl = impl->next_; - } - } - - // Construct a new handle implementation. - void construct(implementation_type& impl) - { - impl.handle_ = INVALID_HANDLE_VALUE; - impl.safe_cancellation_thread_id_ = 0; - - // Insert implementation into linked list of all implementations. - boost::asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; - } - - // Destroy a handle implementation. - void destroy(implementation_type& impl) - { - close_for_destruction(impl); - - // Remove implementation from linked list of all implementations. - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - } - - // Assign a native handle to a handle implementation. - boost::system::error_code assign(implementation_type& impl, - const native_type& native_handle, boost::system::error_code& ec) - { - if (is_open(impl)) - { - ec = boost::asio::error::already_open; - return ec; - } - - if (iocp_service_.register_handle(native_handle, ec)) - return ec; - - impl.handle_ = native_handle; - ec = boost::system::error_code(); - return ec; - } - - // Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return impl.handle_ != INVALID_HANDLE_VALUE; - } - - // Destroy a handle implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - if (is_open(impl)) - { - if (!::CloseHandle(impl.handle_)) - { - DWORD last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return ec; - } - - impl.handle_ = INVALID_HANDLE_VALUE; - impl.safe_cancellation_thread_id_ = 0; - } - - ec = boost::system::error_code(); - return ec; - } - - // Get the native handle representation. - native_type native(const implementation_type& impl) const - { - return impl.handle_; - } - - // Cancel all operations associated with the handle. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - } - else if (FARPROC cancel_io_ex_ptr = ::GetProcAddress( - ::GetModuleHandleA("KERNEL32"), "CancelIoEx")) - { - // The version of Windows supports cancellation from any thread. - typedef BOOL (WINAPI* cancel_io_ex_t)(HANDLE, LPOVERLAPPED); - cancel_io_ex_t cancel_io_ex = (cancel_io_ex_t)cancel_io_ex_ptr; - if (!cancel_io_ex(impl.handle_, 0)) - { - DWORD last_error = ::GetLastError(); - if (last_error == ERROR_NOT_FOUND) - { - // ERROR_NOT_FOUND means that there were no operations to be - // cancelled. We swallow this error to match the behaviour on other - // platforms. - ec = boost::system::error_code(); - } - else - { - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - } - } - else - { - ec = boost::system::error_code(); - } - } - else if (impl.safe_cancellation_thread_id_ == 0) - { - // No operations have been started, so there's nothing to cancel. - ec = boost::system::error_code(); - } - else if (impl.safe_cancellation_thread_id_ == ::GetCurrentThreadId()) - { - // Asynchronous operations have been started from the current thread only, - // so it is safe to try to cancel them using CancelIo. - if (!::CancelIo(impl.handle_)) - { - DWORD last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - } - else - { - ec = boost::system::error_code(); - } - } - else - { - // Asynchronous operations have been started from more than one thread, - // so cancellation is not safe. - ec = boost::asio::error::operation_not_supported; - } - - return ec; - } - - class overlapped_wrapper - : public OVERLAPPED - { - public: - explicit overlapped_wrapper(boost::system::error_code& ec) - { - Internal = 0; - InternalHigh = 0; - Offset = 0; - OffsetHigh = 0; - - // Create a non-signalled manual-reset event, for GetOverlappedResult. - hEvent = ::CreateEvent(0, TRUE, FALSE, 0); - if (hEvent) - { - // As documented in GetQueuedCompletionStatus, setting the low order - // bit of this event prevents our synchronous writes from being treated - // as completion port events. - *reinterpret_cast(&hEvent) |= 1; - } - else - { - DWORD last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - } - } - - ~overlapped_wrapper() - { - if (hEvent) - { - ::CloseHandle(hEvent); - } - } - }; - - // Write the given data. Returns the number of bytes written. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, boost::system::error_code& ec) - { - return write_some_at(impl, 0, buffers, ec); - } - - // Write the given data at the specified offset. Returns the number of bytes - // written. - template - size_t write_some_at(implementation_type& impl, boost::uint64_t offset, - const ConstBufferSequence& buffers, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Find first buffer of non-zero length. - boost::asio::const_buffer buffer; - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - for (DWORD i = 0; iter != end; ++iter, ++i) - { - buffer = boost::asio::const_buffer(*iter); - if (boost::asio::buffer_size(buffer) != 0) - break; - } - - // A request to write 0 bytes on a handle is a no-op. - if (boost::asio::buffer_size(buffer) == 0) - { - ec = boost::system::error_code(); - return 0; - } - - overlapped_wrapper overlapped(ec); - if (ec) - { - return 0; - } - - // Write the data. - overlapped.Offset = offset & 0xFFFFFFFF; - overlapped.OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::WriteFile(impl.handle_, - boost::asio::buffer_cast(buffer), - static_cast(boost::asio::buffer_size(buffer)), 0, &overlapped); - if (!ok) - { - DWORD last_error = ::GetLastError(); - if (last_error != ERROR_IO_PENDING) - { - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return 0; - } - } - - // Wait for the operation to complete. - DWORD bytes_transferred = 0; - ok = ::GetOverlappedResult(impl.handle_, - &overlapped, &bytes_transferred, TRUE); - if (!ok) - { - DWORD last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - } - - ec = boost::system::error_code(); - return bytes_transferred; - } - - template - class write_operation - : public operation - { - public: - write_operation(win_iocp_io_service& io_service, - const ConstBufferSequence& buffers, Handler handler) - : operation(io_service, - &write_operation::do_completion_impl, - &write_operation::destroy_impl), - work_(io_service.get_io_service()), - buffers_(buffers), - handler_(handler) - { - } - - private: - static void do_completion_impl(operation* op, - DWORD last_error, size_t bytes_transferred) - { - // Take ownership of the operation object. - typedef write_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - typename ConstBufferSequence::const_iterator iter - = handler_op->buffers_.begin(); - typename ConstBufferSequence::const_iterator end - = handler_op->buffers_.end(); - while (iter != end) - { - boost::asio::const_buffer buffer(*iter); - boost::asio::buffer_cast(buffer); - ++iter; - } -#endif // defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(handler_op->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Call the handler. - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - boost_asio_handler_invoke_helpers::invoke( - bind_handler(handler, ec, bytes_transferred), &handler); - } - - static void destroy_impl(operation* op) - { - // Take ownership of the operation object. - typedef write_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(handler_op->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - boost::asio::io_service::work work_; - ConstBufferSequence buffers_; - Handler handler_; - }; - - // Start an asynchronous write. The data being written must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler handler) - { - async_write_some_at(impl, 0, buffers, handler); - } - - // Start an asynchronous write at a specified offset. The data being written - // must be valid for the lifetime of the asynchronous operation. - template - void async_write_some_at(implementation_type& impl, boost::uint64_t offset, - const ConstBufferSequence& buffers, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - return; - } - - // Update the ID of the thread from which cancellation is safe. - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); - - // Allocate and construct an operation to wrap the handler. - typedef write_operation value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - handler_ptr ptr(raw_ptr, iocp_service_, buffers, handler); - - // Find first buffer of non-zero length. - boost::asio::const_buffer buffer; - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - for (DWORD i = 0; iter != end; ++iter, ++i) - { - buffer = boost::asio::const_buffer(*iter); - if (boost::asio::buffer_size(buffer) != 0) - break; - } - - // A request to write 0 bytes on a handle is a no-op. - if (boost::asio::buffer_size(buffer) == 0) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code error; - iocp_service_.post(bind_handler(handler, error, 0)); - return; - } - - // Write the data. - DWORD bytes_transferred = 0; - ptr.get()->Offset = offset & 0xFFFFFFFF; - ptr.get()->OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::WriteFile(impl.handle_, - boost::asio::buffer_cast(buffer), - static_cast(boost::asio::buffer_size(buffer)), - &bytes_transferred, ptr.get()); - DWORD last_error = ::GetLastError(); - - // Check if the operation completed immediately. - if (!ok && last_error != ERROR_IO_PENDING) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - iocp_service_.post(bind_handler(handler, ec, bytes_transferred)); - } - else - { - ptr.release(); - } - } - - // Read some data. Returns the number of bytes received. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, boost::system::error_code& ec) - { - return read_some_at(impl, 0, buffers, ec); - } - - // Read some data at a specified offset. Returns the number of bytes received. - template - size_t read_some_at(implementation_type& impl, boost::uint64_t offset, - const MutableBufferSequence& buffers, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Find first buffer of non-zero length. - boost::asio::mutable_buffer buffer; - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - for (DWORD i = 0; iter != end; ++iter, ++i) - { - buffer = boost::asio::mutable_buffer(*iter); - if (boost::asio::buffer_size(buffer) != 0) - break; - } - - // A request to read 0 bytes on a stream handle is a no-op. - if (boost::asio::buffer_size(buffer) == 0) - { - ec = boost::system::error_code(); - return 0; - } - - overlapped_wrapper overlapped(ec); - if (ec) - { - return 0; - } - - // Read some data. - overlapped.Offset = offset & 0xFFFFFFFF; - overlapped.OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::ReadFile(impl.handle_, - boost::asio::buffer_cast(buffer), - static_cast(boost::asio::buffer_size(buffer)), 0, &overlapped); - if (!ok) - { - DWORD last_error = ::GetLastError(); - if (last_error != ERROR_IO_PENDING && last_error != ERROR_MORE_DATA) - { - if (last_error == ERROR_HANDLE_EOF) - { - ec = boost::asio::error::eof; - } - else - { - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - } - return 0; - } - } - - // Wait for the operation to complete. - DWORD bytes_transferred = 0; - ok = ::GetOverlappedResult(impl.handle_, - &overlapped, &bytes_transferred, TRUE); - if (!ok) - { - DWORD last_error = ::GetLastError(); - if (last_error == ERROR_HANDLE_EOF) - { - ec = boost::asio::error::eof; - } - else - { - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - } - } - - ec = boost::system::error_code(); - return bytes_transferred; - } - - template - class read_operation - : public operation - { - public: - read_operation(win_iocp_io_service& io_service, - const MutableBufferSequence& buffers, Handler handler) - : operation(io_service, - &read_operation< - MutableBufferSequence, Handler>::do_completion_impl, - &read_operation< - MutableBufferSequence, Handler>::destroy_impl), - work_(io_service.get_io_service()), - buffers_(buffers), - handler_(handler) - { - } - - private: - static void do_completion_impl(operation* op, - DWORD last_error, size_t bytes_transferred) - { - // Take ownership of the operation object. - typedef read_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - typename MutableBufferSequence::const_iterator iter - = handler_op->buffers_.begin(); - typename MutableBufferSequence::const_iterator end - = handler_op->buffers_.end(); - while (iter != end) - { - boost::asio::mutable_buffer buffer(*iter); - boost::asio::buffer_cast(buffer); - ++iter; - } -#endif // defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - - // Check for the end-of-file condition. - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - if (!ec && bytes_transferred == 0 || last_error == ERROR_HANDLE_EOF) - { - ec = boost::asio::error::eof; - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(handler_op->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Call the handler. - boost_asio_handler_invoke_helpers::invoke( - bind_handler(handler, ec, bytes_transferred), &handler); - } - - static void destroy_impl(operation* op) - { - // Take ownership of the operation object. - typedef read_operation op_type; - op_type* handler_op(static_cast(op)); - typedef boost::asio::detail::handler_alloc_traits< - Handler, op_type> alloc_traits; - boost::asio::detail::handler_ptr ptr( - handler_op->handler_, handler_op); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(handler_op->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - boost::asio::io_service::work work_; - MutableBufferSequence buffers_; - Handler handler_; - }; - - // Start an asynchronous read. The buffer for the data being received must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler handler) - { - async_read_some_at(impl, 0, buffers, handler); - } - - // Start an asynchronous read at a specified offset. The buffer for the data - // being received must be valid for the lifetime of the asynchronous - // operation. - template - void async_read_some_at(implementation_type& impl, boost::uint64_t offset, - const MutableBufferSequence& buffers, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - return; - } - - // Update the ID of the thread from which cancellation is safe. - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); - - // Allocate and construct an operation to wrap the handler. - typedef read_operation value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - handler_ptr ptr(raw_ptr, iocp_service_, buffers, handler); - - // Find first buffer of non-zero length. - boost::asio::mutable_buffer buffer; - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - for (DWORD i = 0; iter != end; ++iter, ++i) - { - buffer = boost::asio::mutable_buffer(*iter); - if (boost::asio::buffer_size(buffer) != 0) - break; - } - - // A request to receive 0 bytes on a stream handle is a no-op. - if (boost::asio::buffer_size(buffer) == 0) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code error; - iocp_service_.post(bind_handler(handler, error, 0)); - return; - } - - // Read some data. - DWORD bytes_transferred = 0; - ptr.get()->Offset = offset & 0xFFFFFFFF; - ptr.get()->OffsetHigh = (offset >> 32) & 0xFFFFFFFF; - BOOL ok = ::ReadFile(impl.handle_, - boost::asio::buffer_cast(buffer), - static_cast(boost::asio::buffer_size(buffer)), - &bytes_transferred, ptr.get()); - DWORD last_error = ::GetLastError(); - if (!ok && last_error != ERROR_IO_PENDING && last_error != ERROR_MORE_DATA) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - iocp_service_.post(bind_handler(handler, ec, bytes_transferred)); - } - else - { - ptr.release(); - } - } - -private: - // Prevent the use of the null_buffers type with this service. - size_t write_some(implementation_type& impl, - const null_buffers& buffers, boost::system::error_code& ec); - size_t write_some_at(implementation_type& impl, boost::uint64_t offset, - const null_buffers& buffers, boost::system::error_code& ec); - template - void async_write_some(implementation_type& impl, - const null_buffers& buffers, Handler handler); - template - void async_write_some_at(implementation_type& impl, boost::uint64_t offset, - const null_buffers& buffers, Handler handler); - size_t read_some(implementation_type& impl, - const null_buffers& buffers, boost::system::error_code& ec); - size_t read_some_at(implementation_type& impl, boost::uint64_t offset, - const null_buffers& buffers, boost::system::error_code& ec); - template - void async_read_some(implementation_type& impl, - const null_buffers& buffers, Handler handler); - template - void async_read_some_at(implementation_type& impl, boost::uint64_t offset, - const null_buffers& buffers, Handler handler); - - // Helper function to close a handle when the associated object is being - // destroyed. - void close_for_destruction(implementation_type& impl) - { - if (is_open(impl)) - { - ::CloseHandle(impl.handle_); - impl.handle_ = INVALID_HANDLE_VALUE; - impl.safe_cancellation_thread_id_ = 0; - } - } - - // The IOCP service used for running asynchronous operations and dispatching - // handlers. - win_iocp_io_service& iocp_service_; - - // Mutex to protect access to the linked list of implementations. - boost::asio::detail::mutex mutex_; - - // The head of a linked list of all implementations. - implementation_type* impl_list_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_IOCP) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_IOCP_HANDLE_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_iocp_io_service.hpp b/3rdParty/Boost/boost/asio/detail/win_iocp_io_service.hpp deleted file mode 100644 index 5818542..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_iocp_io_service.hpp +++ /dev/null @@ -1,738 +0,0 @@ -// -// win_iocp_io_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_IOCP_IO_SERVICE_HPP -#define BOOST_ASIO_DETAIL_WIN_IOCP_IO_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_IOCP) - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class win_iocp_io_service - : public boost::asio::detail::service_base -{ -public: - // Base class for all operations. A function pointer is used instead of - // virtual functions to avoid the associated overhead. - // - // This class inherits from OVERLAPPED so that we can downcast to get back to - // the operation pointer from the LPOVERLAPPED out parameter of - // GetQueuedCompletionStatus. - class operation - : public OVERLAPPED - { - public: - typedef void (*invoke_func_type)(operation*, DWORD, size_t); - typedef void (*destroy_func_type)(operation*); - - operation(win_iocp_io_service& iocp_service, - invoke_func_type invoke_func, destroy_func_type destroy_func) - : outstanding_operations_(&iocp_service.outstanding_operations_), - invoke_func_(invoke_func), - destroy_func_(destroy_func) - { - Internal = 0; - InternalHigh = 0; - Offset = 0; - OffsetHigh = 0; - hEvent = 0; - - ::InterlockedIncrement(outstanding_operations_); - } - - void do_completion(DWORD last_error, size_t bytes_transferred) - { - invoke_func_(this, last_error, bytes_transferred); - } - - void destroy() - { - destroy_func_(this); - } - - protected: - // Prevent deletion through this type. - ~operation() - { - ::InterlockedDecrement(outstanding_operations_); - } - - private: - long* outstanding_operations_; - invoke_func_type invoke_func_; - destroy_func_type destroy_func_; - }; - - - // Constructor. - win_iocp_io_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base(io_service), - iocp_(), - outstanding_work_(0), - outstanding_operations_(0), - stopped_(0), - shutdown_(0), - timer_thread_(0), - timer_interrupt_issued_(false) - { - } - - void init(size_t concurrency_hint) - { - iocp_.handle = ::CreateIoCompletionPort(INVALID_HANDLE_VALUE, 0, 0, - static_cast((std::min)(concurrency_hint, DWORD(~0)))); - if (!iocp_.handle) - { - DWORD last_error = ::GetLastError(); - boost::system::system_error e( - boost::system::error_code(last_error, - boost::asio::error::get_system_category()), - "iocp"); - boost::throw_exception(e); - } - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - ::InterlockedExchange(&shutdown_, 1); - - while (::InterlockedExchangeAdd(&outstanding_operations_, 0) > 0) - { - DWORD bytes_transferred = 0; -#if (WINVER < 0x0500) - DWORD completion_key = 0; -#else - DWORD_PTR completion_key = 0; -#endif - LPOVERLAPPED overlapped = 0; - ::GetQueuedCompletionStatus(iocp_.handle, &bytes_transferred, - &completion_key, &overlapped, INFINITE); - if (overlapped) - static_cast(overlapped)->destroy(); - } - - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - timer_queues_[i]->destroy_timers(); - timer_queues_.clear(); - } - - // Initialise the task. Nothing to do here. - void init_task() - { - } - - // Register a handle with the IO completion port. - boost::system::error_code register_handle( - HANDLE handle, boost::system::error_code& ec) - { - if (::CreateIoCompletionPort(handle, iocp_.handle, 0, 0) == 0) - { - DWORD last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - } - else - { - ec = boost::system::error_code(); - } - return ec; - } - - // Run the event loop until stopped or no more work. - size_t run(boost::system::error_code& ec) - { - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - ec = boost::system::error_code(); - return 0; - } - - call_stack::context ctx(this); - - size_t n = 0; - while (do_one(true, ec)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; - } - - // Run until stopped or one operation is performed. - size_t run_one(boost::system::error_code& ec) - { - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - ec = boost::system::error_code(); - return 0; - } - - call_stack::context ctx(this); - - return do_one(true, ec); - } - - // Poll for operations without blocking. - size_t poll(boost::system::error_code& ec) - { - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - ec = boost::system::error_code(); - return 0; - } - - call_stack::context ctx(this); - - size_t n = 0; - while (do_one(false, ec)) - if (n != (std::numeric_limits::max)()) - ++n; - return n; - } - - // Poll for one operation without blocking. - size_t poll_one(boost::system::error_code& ec) - { - if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0) - { - ec = boost::system::error_code(); - return 0; - } - - call_stack::context ctx(this); - - return do_one(false, ec); - } - - // Stop the event processing loop. - void stop() - { - if (::InterlockedExchange(&stopped_, 1) == 0) - { - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, 0)) - { - DWORD last_error = ::GetLastError(); - boost::system::system_error e( - boost::system::error_code(last_error, - boost::asio::error::get_system_category()), - "pqcs"); - boost::throw_exception(e); - } - } - } - - // Reset in preparation for a subsequent run invocation. - void reset() - { - ::InterlockedExchange(&stopped_, 0); - } - - // Notify that some work has started. - void work_started() - { - ::InterlockedIncrement(&outstanding_work_); - } - - // Notify that some work has finished. - void work_finished() - { - if (::InterlockedDecrement(&outstanding_work_) == 0) - stop(); - } - - // Request invocation of the given handler. - template - void dispatch(Handler handler) - { - if (call_stack::contains(this)) - boost_asio_handler_invoke_helpers::invoke(handler, &handler); - else - post(handler); - } - - // Request invocation of the given handler and return immediately. - template - void post(Handler handler) - { - // If the service has been shut down we silently discard the handler. - if (::InterlockedExchangeAdd(&shutdown_, 0) != 0) - return; - - // Allocate and construct an operation to wrap the handler. - typedef handler_operation value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - handler_ptr ptr(raw_ptr, *this, handler); - - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, ptr.get())) - { - DWORD last_error = ::GetLastError(); - boost::system::system_error e( - boost::system::error_code(last_error, - boost::asio::error::get_system_category()), - "pqcs"); - boost::throw_exception(e); - } - - // Operation has been successfully posted. - ptr.release(); - } - - // Request invocation of the given OVERLAPPED-derived operation. - void post_completion(operation* op, DWORD op_last_error, - DWORD bytes_transferred) - { - // Enqueue the operation on the I/O completion port. - if (!::PostQueuedCompletionStatus(iocp_.handle, - bytes_transferred, op_last_error, op)) - { - DWORD last_error = ::GetLastError(); - boost::system::system_error e( - boost::system::error_code(last_error, - boost::asio::error::get_system_category()), - "pqcs"); - boost::throw_exception(e); - } - } - - // Add a new timer queue to the service. - template - void add_timer_queue(timer_queue& timer_queue) - { - boost::asio::detail::mutex::scoped_lock lock(timer_mutex_); - timer_queues_.push_back(&timer_queue); - } - - // Remove a timer queue from the service. - template - void remove_timer_queue(timer_queue& timer_queue) - { - boost::asio::detail::mutex::scoped_lock lock(timer_mutex_); - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - if (timer_queues_[i] == &timer_queue) - { - timer_queues_.erase(timer_queues_.begin() + i); - return; - } - } - } - - // Schedule a timer in the given timer queue to expire at the specified - // absolute time. The handler object will be invoked when the timer expires. - template - void schedule_timer(timer_queue& timer_queue, - const typename Time_Traits::time_type& time, Handler handler, void* token) - { - // If the service has been shut down we silently discard the timer. - if (::InterlockedExchangeAdd(&shutdown_, 0) != 0) - return; - - boost::asio::detail::mutex::scoped_lock lock(timer_mutex_); - if (timer_queue.enqueue_timer(time, handler, token)) - { - if (!timer_interrupt_issued_) - { - timer_interrupt_issued_ = true; - lock.unlock(); - ::PostQueuedCompletionStatus(iocp_.handle, - 0, steal_timer_dispatching, 0); - } - } - } - - // Cancel the timer associated with the given token. Returns the number of - // handlers that have been posted or dispatched. - template - std::size_t cancel_timer(timer_queue& timer_queue, void* token) - { - // If the service has been shut down we silently ignore the cancellation. - if (::InterlockedExchangeAdd(&shutdown_, 0) != 0) - return 0; - - boost::asio::detail::mutex::scoped_lock lock(timer_mutex_); - std::size_t n = timer_queue.cancel_timer(token); - if (n > 0 && !timer_interrupt_issued_) - { - timer_interrupt_issued_ = true; - lock.unlock(); - ::PostQueuedCompletionStatus(iocp_.handle, - 0, steal_timer_dispatching, 0); - } - return n; - } - -private: - // Dequeues at most one operation from the I/O completion port, and then - // executes it. Returns the number of operations that were dequeued (i.e. - // either 0 or 1). - size_t do_one(bool block, boost::system::error_code& ec) - { - long this_thread_id = static_cast(::GetCurrentThreadId()); - - for (;;) - { - // Try to acquire responsibility for dispatching timers. - bool dispatching_timers = (::InterlockedCompareExchange( - &timer_thread_, this_thread_id, 0) == 0); - - // Calculate timeout for GetQueuedCompletionStatus call. - DWORD timeout = max_timeout; - if (dispatching_timers) - { - boost::asio::detail::mutex::scoped_lock lock(timer_mutex_); - timer_interrupt_issued_ = false; - timeout = get_timeout(); - } - - // Get the next operation from the queue. - DWORD bytes_transferred = 0; -#if (WINVER < 0x0500) - DWORD completion_key = 0; -#else - DWORD_PTR completion_key = 0; -#endif - LPOVERLAPPED overlapped = 0; - ::SetLastError(0); - BOOL ok = ::GetQueuedCompletionStatus(iocp_.handle, &bytes_transferred, - &completion_key, &overlapped, block ? timeout : 0); - DWORD last_error = ::GetLastError(); - - // Dispatch any pending timers. - if (dispatching_timers) - { - try - { - boost::asio::detail::mutex::scoped_lock lock(timer_mutex_); - if (!timer_queues_.empty()) - { - timer_queues_copy_ = timer_queues_; - for (std::size_t i = 0; i < timer_queues_copy_.size(); ++i) - { - timer_queues_copy_[i]->dispatch_timers(); - timer_queues_copy_[i]->dispatch_cancellations(); - timer_queues_copy_[i]->complete_timers(); - } - } - } - catch (...) - { - // Transfer responsibility for dispatching timers to another thread. - if (::InterlockedCompareExchange(&timer_thread_, - 0, this_thread_id) == this_thread_id) - { - ::PostQueuedCompletionStatus(iocp_.handle, - 0, transfer_timer_dispatching, 0); - } - - throw; - } - } - - if (!ok && overlapped == 0) - { - if (block && last_error == WAIT_TIMEOUT) - { - // Relinquish responsibility for dispatching timers. - if (dispatching_timers) - { - ::InterlockedCompareExchange(&timer_thread_, 0, this_thread_id); - } - - continue; - } - - // Transfer responsibility for dispatching timers to another thread. - if (dispatching_timers && ::InterlockedCompareExchange( - &timer_thread_, 0, this_thread_id) == this_thread_id) - { - ::PostQueuedCompletionStatus(iocp_.handle, - 0, transfer_timer_dispatching, 0); - } - - ec = boost::system::error_code(); - return 0; - } - else if (overlapped) - { - // We may have been passed a last_error value in the completion_key. - if (last_error == 0) - { - last_error = completion_key; - } - - // Transfer responsibility for dispatching timers to another thread. - if (dispatching_timers && ::InterlockedCompareExchange( - &timer_thread_, 0, this_thread_id) == this_thread_id) - { - ::PostQueuedCompletionStatus(iocp_.handle, - 0, transfer_timer_dispatching, 0); - } - - // Ensure that the io_service does not exit due to running out of work - // while we make the upcall. - auto_work work(*this); - - // Dispatch the operation. - operation* op = static_cast(overlapped); - op->do_completion(last_error, bytes_transferred); - - ec = boost::system::error_code(); - return 1; - } - else if (completion_key == transfer_timer_dispatching) - { - // Woken up to try to acquire responsibility for dispatching timers. - ::InterlockedCompareExchange(&timer_thread_, 0, this_thread_id); - } - else if (completion_key == steal_timer_dispatching) - { - // Woken up to steal responsibility for dispatching timers. - ::InterlockedExchange(&timer_thread_, 0); - } - else - { - // Relinquish responsibility for dispatching timers. If the io_service - // is not being stopped then the thread will get an opportunity to - // reacquire timer responsibility on the next loop iteration. - if (dispatching_timers) - { - ::InterlockedCompareExchange(&timer_thread_, 0, this_thread_id); - } - - // The stopped_ flag is always checked to ensure that any leftover - // interrupts from a previous run invocation are ignored. - if (::InterlockedExchangeAdd(&stopped_, 0) != 0) - { - // Wake up next thread that is blocked on GetQueuedCompletionStatus. - if (!::PostQueuedCompletionStatus(iocp_.handle, 0, 0, 0)) - { - last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return 0; - } - - ec = boost::system::error_code(); - return 0; - } - } - } - } - - // Check if all timer queues are empty. - bool all_timer_queues_are_empty() const - { - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - if (!timer_queues_[i]->empty()) - return false; - return true; - } - - // Get the timeout value for the GetQueuedCompletionStatus call. The timeout - // value is returned as a number of milliseconds. We will wait no longer than - // 1000 milliseconds. - DWORD get_timeout() - { - if (all_timer_queues_are_empty()) - return max_timeout; - - boost::posix_time::time_duration minimum_wait_duration - = boost::posix_time::milliseconds(max_timeout); - - for (std::size_t i = 0; i < timer_queues_.size(); ++i) - { - boost::posix_time::time_duration wait_duration - = timer_queues_[i]->wait_duration(); - if (wait_duration < minimum_wait_duration) - minimum_wait_duration = wait_duration; - } - - if (minimum_wait_duration > boost::posix_time::time_duration()) - { - int milliseconds = minimum_wait_duration.total_milliseconds(); - return static_cast(milliseconds > 0 ? milliseconds : 1); - } - else - { - return 0; - } - } - - struct auto_work - { - auto_work(win_iocp_io_service& io_service) - : io_service_(io_service) - { - io_service_.work_started(); - } - - ~auto_work() - { - io_service_.work_finished(); - } - - private: - win_iocp_io_service& io_service_; - }; - - template - struct handler_operation - : public operation - { - handler_operation(win_iocp_io_service& io_service, - Handler handler) - : operation(io_service, &handler_operation::do_completion_impl, - &handler_operation::destroy_impl), - io_service_(io_service), - handler_(handler) - { - io_service_.work_started(); - } - - ~handler_operation() - { - io_service_.work_finished(); - } - - private: - // Prevent copying and assignment. - handler_operation(const handler_operation&); - void operator=(const handler_operation&); - - static void do_completion_impl(operation* op, DWORD, size_t) - { - // Take ownership of the operation object. - typedef handler_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(handler_op->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Make the upcall. - boost_asio_handler_invoke_helpers::invoke(handler, &handler); - } - - static void destroy_impl(operation* op) - { - // Take ownership of the operation object. - typedef handler_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(handler_op->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - win_iocp_io_service& io_service_; - Handler handler_; - }; - - // The IO completion port used for queueing operations. - struct iocp_holder - { - HANDLE handle; - iocp_holder() : handle(0) {} - ~iocp_holder() { if (handle) ::CloseHandle(handle); } - } iocp_; - - // The count of unfinished work. - long outstanding_work_; - - // The count of unfinished operations. - long outstanding_operations_; - friend class operation; - - // Flag to indicate whether the event loop has been stopped. - long stopped_; - - // Flag to indicate whether the service has been shut down. - long shutdown_; - - enum - { - // Maximum GetQueuedCompletionStatus timeout, in milliseconds. - max_timeout = 500, - - // Completion key value to indicate that responsibility for dispatching - // timers is being cooperatively transferred from one thread to another. - transfer_timer_dispatching = 1, - - // Completion key value to indicate that responsibility for dispatching - // timers should be stolen from another thread. - steal_timer_dispatching = 2 - }; - - // The thread that's currently in charge of dispatching timers. - long timer_thread_; - - // Mutex for protecting access to the timer queues. - mutex timer_mutex_; - - // Whether a thread has been interrupted to process a new timeout. - bool timer_interrupt_issued_; - - // The timer queues. - std::vector timer_queues_; - - // A copy of the timer queues, used when dispatching, cancelling and cleaning - // up timers. The copy is stored as a class data member to avoid unnecessary - // memory allocation. - std::vector timer_queues_copy_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_IOCP) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_IOCP_IO_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_iocp_io_service_fwd.hpp b/3rdParty/Boost/boost/asio/detail/win_iocp_io_service_fwd.hpp deleted file mode 100644 index c9e6060..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_iocp_io_service_fwd.hpp +++ /dev/null @@ -1,53 +0,0 @@ -// -// win_iocp_io_service_fwd.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_IOCP_IO_SERVICE_FWD_HPP -#define BOOST_ASIO_DETAIL_WIN_IOCP_IO_SERVICE_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include - -// This service is only supported on Win32 (NT4 and later). -#if !defined(BOOST_ASIO_DISABLE_IOCP) -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) -#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400) -#if !defined(UNDER_CE) - -// Define this to indicate that IOCP is supported on the target platform. -#define BOOST_ASIO_HAS_IOCP 1 - -namespace boost { -namespace asio { -namespace detail { - -class win_iocp_io_service; -class win_iocp_overlapped_ptr; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // !defined(UNDER_CE) -#endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400) -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) -#endif // !defined(BOOST_ASIO_DISABLE_IOCP) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_IOCP_IO_SERVICE_FWD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_iocp_overlapped_ptr.hpp b/3rdParty/Boost/boost/asio/detail/win_iocp_overlapped_ptr.hpp deleted file mode 100644 index e8ab6b0..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_iocp_overlapped_ptr.hpp +++ /dev/null @@ -1,210 +0,0 @@ -// -// win_iocp_overlapped_ptr.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_IOCP_OVERLAPPED_PTR_HPP -#define BOOST_ASIO_DETAIL_WIN_IOCP_OVERLAPPED_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_IOCP) - -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// Wraps a handler to create an OVERLAPPED object for use with overlapped I/O. -class win_iocp_overlapped_ptr - : private noncopyable -{ -public: - // Construct an empty win_iocp_overlapped_ptr. - win_iocp_overlapped_ptr() - : ptr_(0) - { - } - - // Construct an win_iocp_overlapped_ptr to contain the specified handler. - template - explicit win_iocp_overlapped_ptr( - boost::asio::io_service& io_service, Handler handler) - : ptr_(0) - { - this->reset(io_service, handler); - } - - // Destructor automatically frees the OVERLAPPED object unless released. - ~win_iocp_overlapped_ptr() - { - reset(); - } - - // Reset to empty. - void reset() - { - if (ptr_) - { - ptr_->destroy(); - ptr_ = 0; - } - } - - // Reset to contain the specified handler, freeing any current OVERLAPPED - // object. - template - void reset(boost::asio::io_service& io_service, Handler handler) - { - typedef overlapped_operation value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - handler_ptr ptr(raw_ptr, io_service.impl_, handler); - reset(); - ptr_ = ptr.release(); - } - - // Get the contained OVERLAPPED object. - OVERLAPPED* get() - { - return ptr_; - } - - // Get the contained OVERLAPPED object. - const OVERLAPPED* get() const - { - return ptr_; - } - - // Release ownership of the OVERLAPPED object. - OVERLAPPED* release() - { - OVERLAPPED* tmp = ptr_; - ptr_ = 0; - return tmp; - } - - // Post completion notification for overlapped operation. Releases ownership. - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - if (ptr_) - { - ptr_->ec_ = ec; - ptr_->io_service_.post_completion(ptr_, 0, - static_cast(bytes_transferred)); - ptr_ = 0; - } - } - -private: - struct overlapped_operation_base - : public win_iocp_io_service::operation - { - overlapped_operation_base(win_iocp_io_service& io_service, - invoke_func_type invoke_func, destroy_func_type destroy_func) - : win_iocp_io_service::operation(io_service, invoke_func, destroy_func), - io_service_(io_service) - { - io_service_.work_started(); - } - - ~overlapped_operation_base() - { - io_service_.work_finished(); - } - - win_iocp_io_service& io_service_; - boost::system::error_code ec_; - }; - - template - struct overlapped_operation - : public overlapped_operation_base - { - overlapped_operation(win_iocp_io_service& io_service, - Handler handler) - : overlapped_operation_base(io_service, - &overlapped_operation::do_completion_impl, - &overlapped_operation::destroy_impl), - handler_(handler) - { - } - - private: - // Prevent copying and assignment. - overlapped_operation(const overlapped_operation&); - void operator=(const overlapped_operation&); - - static void do_completion_impl(win_iocp_io_service::operation* op, - DWORD last_error, size_t bytes_transferred) - { - // Take ownership of the operation object. - typedef overlapped_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // Make a copy of the handler and error_code so that the memory can be - // deallocated before the upcall is made. - Handler handler(handler_op->handler_); - boost::system::error_code ec(handler_op->ec_); - if (last_error) - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - - // Free the memory associated with the handler. - ptr.reset(); - - // Make the upcall. - boost_asio_handler_invoke_helpers::invoke( - bind_handler(handler, ec, bytes_transferred), &handler); - } - - static void destroy_impl(win_iocp_io_service::operation* op) - { - // Take ownership of the operation object. - typedef overlapped_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(handler_op->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - Handler handler_; - }; - - overlapped_operation_base* ptr_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_IOCP) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_IOCP_OVERLAPPED_PTR_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_iocp_serial_port_service.hpp b/3rdParty/Boost/boost/asio/detail/win_iocp_serial_port_service.hpp deleted file mode 100644 index 57d56cf..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_iocp_serial_port_service.hpp +++ /dev/null @@ -1,294 +0,0 @@ -// -// win_iocp_serial_port_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_IOCP_SERIAL_PORT_SERVICE_HPP -#define BOOST_ASIO_DETAIL_WIN_IOCP_SERIAL_PORT_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include - -#if defined(BOOST_ASIO_HAS_IOCP) - -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -// Extend win_iocp_handle_service to provide serial port support. -class win_iocp_serial_port_service - : public boost::asio::detail::service_base -{ -public: - // The native type of a stream handle. - typedef win_iocp_handle_service::native_type native_type; - - // The implementation type of the stream handle. - typedef win_iocp_handle_service::implementation_type implementation_type; - - win_iocp_serial_port_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - win_iocp_serial_port_service>(io_service), - handle_service_( - boost::asio::use_service(io_service)) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - // Construct a new handle implementation. - void construct(implementation_type& impl) - { - handle_service_.construct(impl); - } - - // Destroy a handle implementation. - void destroy(implementation_type& impl) - { - handle_service_.destroy(impl); - } - - // Open the serial port using the specified device name. - boost::system::error_code open(implementation_type& impl, - const std::string& device, boost::system::error_code& ec) - { - if (is_open(impl)) - { - ec = boost::asio::error::already_open; - return ec; - } - - // For convenience, add a leading \\.\ sequence if not already present. - std::string name = (device[0] == '\\') ? device : "\\\\.\\" + device; - - // Open a handle to the serial port. - ::HANDLE handle = ::CreateFileA(name.c_str(), - GENERIC_READ | GENERIC_WRITE, 0, 0, - OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); - if (handle == INVALID_HANDLE_VALUE) - { - DWORD last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return ec; - } - - // Determine the initial serial port parameters. - using namespace std; // For memcpy. - ::DCB dcb; - memset(&dcb, 0, sizeof(DCB)); - dcb.DCBlength = sizeof(DCB); - if (!::GetCommState(handle, &dcb)) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(handle); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return ec; - } - - // Set some default serial port parameters. This implementation does not - // support changing these, so they might as well be in a known state. - dcb.fBinary = TRUE; // Win32 only supports binary mode. - dcb.fDsrSensitivity = FALSE; - dcb.fNull = FALSE; // Do not ignore NULL characters. - dcb.fAbortOnError = FALSE; // Ignore serial framing errors. - if (!::SetCommState(handle, &dcb)) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(handle); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return ec; - } - - // Set up timeouts so that the serial port will behave similarly to a - // network socket. Reads wait for at least one byte, then return with - // whatever they have. Writes return once everything is out the door. - ::COMMTIMEOUTS timeouts; - timeouts.ReadIntervalTimeout = 1; - timeouts.ReadTotalTimeoutMultiplier = 0; - timeouts.ReadTotalTimeoutConstant = 0; - timeouts.WriteTotalTimeoutMultiplier = 0; - timeouts.WriteTotalTimeoutConstant = 0; - if (!::SetCommTimeouts(handle, &timeouts)) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(handle); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return ec; - } - - // We're done. Take ownership of the serial port handle. - if (handle_service_.assign(impl, handle, ec)) - ::CloseHandle(handle); - return ec; - } - - // Assign a native handle to a handle implementation. - boost::system::error_code assign(implementation_type& impl, - const native_type& native_handle, boost::system::error_code& ec) - { - return handle_service_.assign(impl, native_handle, ec); - } - - // Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return handle_service_.is_open(impl); - } - - // Destroy a handle implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - return handle_service_.close(impl, ec); - } - - // Get the native handle representation. - native_type native(implementation_type& impl) - { - return handle_service_.native(impl); - } - - // Cancel all operations associated with the handle. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - return handle_service_.cancel(impl, ec); - } - - // Set an option on the serial port. - template - boost::system::error_code set_option(implementation_type& impl, - const SettableSerialPortOption& option, boost::system::error_code& ec) - { - using namespace std; // For memcpy. - - ::DCB dcb; - memset(&dcb, 0, sizeof(DCB)); - dcb.DCBlength = sizeof(DCB); - if (!::GetCommState(handle_service_.native(impl), &dcb)) - { - DWORD last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return ec; - } - - if (option.store(dcb, ec)) - return ec; - - if (!::SetCommState(handle_service_.native(impl), &dcb)) - { - DWORD last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return ec; - } - - ec = boost::system::error_code(); - return ec; - } - - // Get an option from the serial port. - template - boost::system::error_code get_option(const implementation_type& impl, - GettableSerialPortOption& option, boost::system::error_code& ec) const - { - using namespace std; // For memcpy. - - ::DCB dcb; - memset(&dcb, 0, sizeof(DCB)); - dcb.DCBlength = sizeof(DCB); - if (!::GetCommState(handle_service_.native(impl), &dcb)) - { - DWORD last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return ec; - } - - return option.load(dcb, ec); - } - - // Send a break sequence to the serial port. - boost::system::error_code send_break(implementation_type&, - boost::system::error_code& ec) - { - ec = boost::asio::error::operation_not_supported; - return ec; - } - - // Write the given data. Returns the number of bytes sent. - template - size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, boost::system::error_code& ec) - { - return handle_service_.write_some(impl, buffers, ec); - } - - // Start an asynchronous write. The data being written must be valid for the - // lifetime of the asynchronous operation. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, Handler handler) - { - handle_service_.async_write_some(impl, buffers, handler); - } - - // Read some data. Returns the number of bytes received. - template - size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, boost::system::error_code& ec) - { - return handle_service_.read_some(impl, buffers, ec); - } - - // Start an asynchronous read. The buffer for the data being received must be - // valid for the lifetime of the asynchronous operation. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, Handler handler) - { - handle_service_.async_read_some(impl, buffers, handler); - } - -private: - // The handle service used for initiating asynchronous operations. - win_iocp_handle_service& handle_service_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_IOCP) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_IOCP_SERIAL_PORT_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_iocp_socket_service.hpp b/3rdParty/Boost/boost/asio/detail/win_iocp_socket_service.hpp deleted file mode 100644 index 5192612..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_iocp_socket_service.hpp +++ /dev/null @@ -1,2417 +0,0 @@ -// -// win_iocp_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_HPP -#define BOOST_ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_IOCP) - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class win_iocp_socket_service - : public boost::asio::detail::service_base > -{ -public: - // The protocol type. - typedef Protocol protocol_type; - - // The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - - // Base class for all operations. - typedef win_iocp_io_service::operation operation; - - struct noop_deleter { void operator()(void*) {} }; - typedef boost::shared_ptr shared_cancel_token_type; - typedef boost::weak_ptr weak_cancel_token_type; - - // The native type of a socket. - class native_type - { - public: - native_type(socket_type s) - : socket_(s), - have_remote_endpoint_(false) - { - } - - native_type(socket_type s, const endpoint_type& ep) - : socket_(s), - have_remote_endpoint_(true), - remote_endpoint_(ep) - { - } - - void operator=(socket_type s) - { - socket_ = s; - have_remote_endpoint_ = false; - remote_endpoint_ = endpoint_type(); - } - - operator socket_type() const - { - return socket_; - } - - HANDLE as_handle() const - { - return reinterpret_cast(socket_); - } - - bool have_remote_endpoint() const - { - return have_remote_endpoint_; - } - - endpoint_type remote_endpoint() const - { - return remote_endpoint_; - } - - private: - socket_type socket_; - bool have_remote_endpoint_; - endpoint_type remote_endpoint_; - }; - - // The type of the reactor used for connect operations. - typedef detail::select_reactor reactor_type; - - // The implementation type of the socket. - class implementation_type - { - public: - // Default constructor. - implementation_type() - : socket_(invalid_socket), - flags_(0), - cancel_token_(), - protocol_(endpoint_type().protocol()), - next_(0), - prev_(0) - { - } - - private: - // Only this service will have access to the internal values. - friend class win_iocp_socket_service; - - // The native socket representation. - native_type socket_; - - enum - { - enable_connection_aborted = 1, // User wants connection_aborted errors. - close_might_block = 2, // User set linger option for blocking close. - user_set_non_blocking = 4 // The user wants a non-blocking socket. - }; - - // Flags indicating the current state of the socket. - unsigned char flags_; - - // We use a shared pointer as a cancellation token here to work around the - // broken Windows support for cancellation. MSDN says that when you call - // closesocket any outstanding WSARecv or WSASend operations will complete - // with the error ERROR_OPERATION_ABORTED. In practice they complete with - // ERROR_NETNAME_DELETED, which means you can't tell the difference between - // a local cancellation and the socket being hard-closed by the peer. - shared_cancel_token_type cancel_token_; - - // The protocol associated with the socket. - protocol_type protocol_; - - // Per-descriptor data used by the reactor. - reactor_type::per_descriptor_data reactor_data_; - -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - // The ID of the thread from which it is safe to cancel asynchronous - // operations. 0 means no asynchronous operations have been started yet. - // ~0 means asynchronous operations have been started from more than one - // thread, and cancellation is not supported for the socket. - DWORD safe_cancellation_thread_id_; -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - - // Pointers to adjacent socket implementations in linked list. - implementation_type* next_; - implementation_type* prev_; - }; - - // The maximum number of buffers to support in a single operation. - enum { max_buffers = 64 < max_iov_len ? 64 : max_iov_len }; - - // Constructor. - win_iocp_socket_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - win_iocp_socket_service >(io_service), - iocp_service_(boost::asio::use_service(io_service)), - reactor_(0), - mutex_(), - impl_list_(0) - { - } - - // Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - // Close all implementations, causing all operations to complete. - boost::asio::detail::mutex::scoped_lock lock(mutex_); - implementation_type* impl = impl_list_; - while (impl) - { - boost::system::error_code ignored_ec; - close_for_destruction(*impl); - impl = impl->next_; - } - } - - // Construct a new socket implementation. - void construct(implementation_type& impl) - { - impl.socket_ = invalid_socket; - impl.flags_ = 0; - impl.cancel_token_.reset(); -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = 0; -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - - // Insert implementation into linked list of all implementations. - boost::asio::detail::mutex::scoped_lock lock(mutex_); - impl.next_ = impl_list_; - impl.prev_ = 0; - if (impl_list_) - impl_list_->prev_ = &impl; - impl_list_ = &impl; - } - - // Destroy a socket implementation. - void destroy(implementation_type& impl) - { - close_for_destruction(impl); - - // Remove implementation from linked list of all implementations. - boost::asio::detail::mutex::scoped_lock lock(mutex_); - if (impl_list_ == &impl) - impl_list_ = impl.next_; - if (impl.prev_) - impl.prev_->next_ = impl.next_; - if (impl.next_) - impl.next_->prev_= impl.prev_; - impl.next_ = 0; - impl.prev_ = 0; - } - - // Open a new socket implementation. - boost::system::error_code open(implementation_type& impl, - const protocol_type& protocol, boost::system::error_code& ec) - { - if (is_open(impl)) - { - ec = boost::asio::error::already_open; - return ec; - } - - socket_holder sock(socket_ops::socket(protocol.family(), protocol.type(), - protocol.protocol(), ec)); - if (sock.get() == invalid_socket) - return ec; - - HANDLE sock_as_handle = reinterpret_cast(sock.get()); - if (iocp_service_.register_handle(sock_as_handle, ec)) - return ec; - - impl.socket_ = sock.release(); - impl.flags_ = 0; - impl.cancel_token_.reset(static_cast(0), noop_deleter()); - impl.protocol_ = protocol; - ec = boost::system::error_code(); - return ec; - } - - // Assign a native socket to a socket implementation. - boost::system::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_type& native_socket, - boost::system::error_code& ec) - { - if (is_open(impl)) - { - ec = boost::asio::error::already_open; - return ec; - } - - if (iocp_service_.register_handle(native_socket.as_handle(), ec)) - return ec; - - impl.socket_ = native_socket; - impl.flags_ = 0; - impl.cancel_token_.reset(static_cast(0), noop_deleter()); - impl.protocol_ = protocol; - ec = boost::system::error_code(); - return ec; - } - - // Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return impl.socket_ != invalid_socket; - } - - // Destroy a socket implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - if (is_open(impl)) - { - // Check if the reactor was created, in which case we need to close the - // socket on the reactor as well to cancel any operations that might be - // running there. - reactor_type* reactor = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (reactor) - reactor->close_descriptor(impl.socket_, impl.reactor_data_); - - if (socket_ops::close(impl.socket_, ec) == socket_error_retval) - return ec; - - impl.socket_ = invalid_socket; - impl.flags_ = 0; - impl.cancel_token_.reset(); -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = 0; -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - } - - ec = boost::system::error_code(); - return ec; - } - - // Get the native socket representation. - native_type native(implementation_type& impl) - { - return impl.socket_; - } - - // Cancel all operations associated with the socket. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - else if (FARPROC cancel_io_ex_ptr = ::GetProcAddress( - ::GetModuleHandleA("KERNEL32"), "CancelIoEx")) - { - // The version of Windows supports cancellation from any thread. - typedef BOOL (WINAPI* cancel_io_ex_t)(HANDLE, LPOVERLAPPED); - cancel_io_ex_t cancel_io_ex = (cancel_io_ex_t)cancel_io_ex_ptr; - socket_type sock = impl.socket_; - HANDLE sock_as_handle = reinterpret_cast(sock); - if (!cancel_io_ex(sock_as_handle, 0)) - { - DWORD last_error = ::GetLastError(); - if (last_error == ERROR_NOT_FOUND) - { - // ERROR_NOT_FOUND means that there were no operations to be - // cancelled. We swallow this error to match the behaviour on other - // platforms. - ec = boost::system::error_code(); - } - else - { - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - } - } - else - { - ec = boost::system::error_code(); - } - } -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - else if (impl.safe_cancellation_thread_id_ == 0) - { - // No operations have been started, so there's nothing to cancel. - ec = boost::system::error_code(); - } - else if (impl.safe_cancellation_thread_id_ == ::GetCurrentThreadId()) - { - // Asynchronous operations have been started from the current thread only, - // so it is safe to try to cancel them using CancelIo. - socket_type sock = impl.socket_; - HANDLE sock_as_handle = reinterpret_cast(sock); - if (!::CancelIo(sock_as_handle)) - { - DWORD last_error = ::GetLastError(); - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - } - else - { - ec = boost::system::error_code(); - } - } - else - { - // Asynchronous operations have been started from more than one thread, - // so cancellation is not safe. - ec = boost::asio::error::operation_not_supported; - } -#else // defined(BOOST_ASIO_ENABLE_CANCELIO) - else - { - // Cancellation is not supported as CancelIo may not be used. - ec = boost::asio::error::operation_not_supported; - } -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - - return ec; - } - - // Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - boost::system::error_code& ec) const - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return false; - } - - boost::asio::detail::ioctl_arg_type value = 0; - socket_ops::ioctl(impl.socket_, SIOCATMARK, &value, ec); - return ec ? false : value != 0; - } - - // Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - boost::system::error_code& ec) const - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - boost::asio::detail::ioctl_arg_type value = 0; - socket_ops::ioctl(impl.socket_, FIONREAD, &value, ec); - return ec ? static_cast(0) : static_cast(value); - } - - // Bind the socket to the specified local endpoint. - boost::system::error_code bind(implementation_type& impl, - const endpoint_type& endpoint, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - socket_ops::bind(impl.socket_, endpoint.data(), endpoint.size(), ec); - return ec; - } - - // Place the socket into the state where it will listen for new connections. - boost::system::error_code listen(implementation_type& impl, int backlog, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - socket_ops::listen(impl.socket_, backlog, ec); - return ec; - } - - // Set a socket option. - template - boost::system::error_code set_option(implementation_type& impl, - const Option& option, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - if (option.level(impl.protocol_) == custom_socket_option_level - && option.name(impl.protocol_) == enable_connection_aborted_option) - { - if (option.size(impl.protocol_) != sizeof(int)) - { - ec = boost::asio::error::invalid_argument; - } - else - { - if (*reinterpret_cast(option.data(impl.protocol_))) - impl.flags_ |= implementation_type::enable_connection_aborted; - else - impl.flags_ &= ~implementation_type::enable_connection_aborted; - ec = boost::system::error_code(); - } - return ec; - } - else - { - if (option.level(impl.protocol_) == SOL_SOCKET - && option.name(impl.protocol_) == SO_LINGER) - { - const ::linger* linger_option = - reinterpret_cast(option.data(impl.protocol_)); - if (linger_option->l_onoff != 0 && linger_option->l_linger != 0) - impl.flags_ |= implementation_type::close_might_block; - else - impl.flags_ &= ~implementation_type::close_might_block; - } - - socket_ops::setsockopt(impl.socket_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), option.size(impl.protocol_), ec); - return ec; - } - } - - // Set a socket option. - template - boost::system::error_code get_option(const implementation_type& impl, - Option& option, boost::system::error_code& ec) const - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - if (option.level(impl.protocol_) == custom_socket_option_level - && option.name(impl.protocol_) == enable_connection_aborted_option) - { - if (option.size(impl.protocol_) != sizeof(int)) - { - ec = boost::asio::error::invalid_argument; - } - else - { - int* target = reinterpret_cast(option.data(impl.protocol_)); - if (impl.flags_ & implementation_type::enable_connection_aborted) - *target = 1; - else - *target = 0; - option.resize(impl.protocol_, sizeof(int)); - ec = boost::system::error_code(); - } - return ec; - } - else - { - size_t size = option.size(impl.protocol_); - socket_ops::getsockopt(impl.socket_, - option.level(impl.protocol_), option.name(impl.protocol_), - option.data(impl.protocol_), &size, ec); - if (!ec) - option.resize(impl.protocol_, size); - return ec; - } - } - - // Perform an IO control command on the socket. - template - boost::system::error_code io_control(implementation_type& impl, - IO_Control_Command& command, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - socket_ops::ioctl(impl.socket_, command.name(), - static_cast(command.data()), ec); - - if (!ec && command.name() == static_cast(FIONBIO)) - { - if (*static_cast(command.data())) - impl.flags_ |= implementation_type::user_set_non_blocking; - else - impl.flags_ &= ~implementation_type::user_set_non_blocking; - } - - return ec; - } - - // Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return endpoint_type(); - } - - endpoint_type endpoint; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getsockname(impl.socket_, endpoint.data(), &addr_len, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - - // Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return endpoint_type(); - } - - if (impl.socket_.have_remote_endpoint()) - { - // Check if socket is still connected. - DWORD connect_time = 0; - size_t connect_time_len = sizeof(connect_time); - if (socket_ops::getsockopt(impl.socket_, SOL_SOCKET, SO_CONNECT_TIME, - &connect_time, &connect_time_len, ec) == socket_error_retval) - { - return endpoint_type(); - } - if (connect_time == 0xFFFFFFFF) - { - ec = boost::asio::error::not_connected; - return endpoint_type(); - } - - ec = boost::system::error_code(); - return impl.socket_.remote_endpoint(); - } - else - { - endpoint_type endpoint; - std::size_t addr_len = endpoint.capacity(); - if (socket_ops::getpeername(impl.socket_, endpoint.data(), &addr_len, ec)) - return endpoint_type(); - endpoint.resize(addr_len); - return endpoint; - } - } - - /// Disable sends or receives on the socket. - boost::system::error_code shutdown(implementation_type& impl, - socket_base::shutdown_type what, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - socket_ops::shutdown(impl.socket_, what, ec); - return ec; - } - - // Send the given data to the peer. Returns the number of bytes sent. - template - size_t send(implementation_type& impl, const ConstBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Copy buffers into WSABUF array. - ::WSABUF bufs[max_buffers]; - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - DWORD i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - bufs[i].len = static_cast(boost::asio::buffer_size(buffer)); - bufs[i].buf = const_cast( - boost::asio::buffer_cast(buffer)); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to receive 0 bytes on a stream socket is a no-op. - if (impl.protocol_.type() == SOCK_STREAM && total_buffer_size == 0) - { - ec = boost::system::error_code(); - return 0; - } - - // Send the data. - DWORD bytes_transferred = 0; - int result = ::WSASend(impl.socket_, bufs, - i, &bytes_transferred, flags, 0, 0); - if (result != 0) - { - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_NETNAME_DELETED) - last_error = WSAECONNRESET; - else if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return 0; - } - - ec = boost::system::error_code(); - return bytes_transferred; - } - - // Wait until data can be sent without blocking. - size_t send(implementation_type& impl, const null_buffers&, - socket_base::message_flags, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, ec); - - return 0; - } - - template - class send_operation - : public operation - { - public: - send_operation(win_iocp_io_service& io_service, - weak_cancel_token_type cancel_token, - const ConstBufferSequence& buffers, Handler handler) - : operation(io_service, - &send_operation::do_completion_impl, - &send_operation::destroy_impl), - work_(io_service.get_io_service()), - cancel_token_(cancel_token), - buffers_(buffers), - handler_(handler) - { - } - - private: - static void do_completion_impl(operation* op, - DWORD last_error, size_t bytes_transferred) - { - // Take ownership of the operation object. - typedef send_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - typename ConstBufferSequence::const_iterator iter - = handler_op->buffers_.begin(); - typename ConstBufferSequence::const_iterator end - = handler_op->buffers_.end(); - while (iter != end) - { - boost::asio::const_buffer buffer(*iter); - boost::asio::buffer_cast(buffer); - ++iter; - } -#endif // defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - - // Map non-portable errors to their portable counterparts. - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (handler_op->cancel_token_.expired()) - ec = boost::asio::error::operation_aborted; - else - ec = boost::asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = boost::asio::error::connection_refused; - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(handler_op->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Call the handler. - boost_asio_handler_invoke_helpers::invoke( - detail::bind_handler(handler, ec, bytes_transferred), &handler); - } - - static void destroy_impl(operation* op) - { - // Take ownership of the operation object. - typedef send_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(handler_op->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - boost::asio::io_service::work work_; - weak_cancel_token_type cancel_token_; - ConstBufferSequence buffers_; - Handler handler_; - }; - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send(implementation_type& impl, const ConstBufferSequence& buffers, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - return; - } - -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - // Update the ID of the thread from which cancellation is safe. - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - - // Allocate and construct an operation to wrap the handler. - typedef send_operation value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - handler_ptr ptr(raw_ptr, iocp_service_, - impl.cancel_token_, buffers, handler); - - // Copy buffers into WSABUF array. - ::WSABUF bufs[max_buffers]; - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - DWORD i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - bufs[i].len = static_cast(boost::asio::buffer_size(buffer)); - bufs[i].buf = const_cast( - boost::asio::buffer_cast(buffer)); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to receive 0 bytes on a stream socket is a no-op. - if (impl.protocol_.type() == SOCK_STREAM && total_buffer_size == 0) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code error; - iocp_service_.post(bind_handler(handler, error, 0)); - return; - } - - // Send the data. - DWORD bytes_transferred = 0; - int result = ::WSASend(impl.socket_, bufs, i, - &bytes_transferred, flags, ptr.get(), 0); - DWORD last_error = ::WSAGetLastError(); - - // Check if the operation completed immediately. - if (result != 0 && last_error != WSA_IO_PENDING) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - iocp_service_.post(bind_handler(handler, ec, bytes_transferred)); - } - else - { - ptr.release(); - } - } - - template - class null_buffers_operation - { - public: - null_buffers_operation(boost::asio::io_service& io_service, Handler handler) - : work_(io_service), - handler_(handler) - { - } - - bool perform(boost::system::error_code&, - std::size_t& bytes_transferred) - { - bytes_transferred = 0; - return true; - } - - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - work_.get_io_service().post(bind_handler( - handler_, ec, bytes_transferred)); - } - - private: - boost::asio::io_service::work work_; - Handler handler_; - }; - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send(implementation_type& impl, const null_buffers&, - socket_base::message_flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - // Check if the reactor was already obtained from the io_service. - reactor_type* reactor = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (!reactor) - { - reactor = &(boost::asio::use_service( - this->get_io_service())); - interlocked_exchange_pointer( - reinterpret_cast(&reactor_), reactor); - } - - reactor->start_write_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler), - false); - } - } - - // Send a datagram to the specified endpoint. Returns the number of bytes - // sent. - template - size_t send_to(implementation_type& impl, const ConstBufferSequence& buffers, - const endpoint_type& destination, socket_base::message_flags flags, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Copy buffers into WSABUF array. - ::WSABUF bufs[max_buffers]; - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - DWORD i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - bufs[i].len = static_cast(boost::asio::buffer_size(buffer)); - bufs[i].buf = const_cast( - boost::asio::buffer_cast(buffer)); - } - - // Send the data. - DWORD bytes_transferred = 0; - int result = ::WSASendTo(impl.socket_, bufs, i, &bytes_transferred, - flags, destination.data(), static_cast(destination.size()), 0, 0); - if (result != 0) - { - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return 0; - } - - ec = boost::system::error_code(); - return bytes_transferred; - } - - // Wait until data can be sent without blocking. - size_t send_to(implementation_type& impl, const null_buffers&, - socket_base::message_flags, const endpoint_type&, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Wait for socket to become ready. - socket_ops::poll_write(impl.socket_, ec); - - return 0; - } - - template - class send_to_operation - : public operation - { - public: - send_to_operation(win_iocp_io_service& io_service, - const ConstBufferSequence& buffers, Handler handler) - : operation(io_service, - &send_to_operation::do_completion_impl, - &send_to_operation::destroy_impl), - work_(io_service.get_io_service()), - buffers_(buffers), - handler_(handler) - { - } - - private: - static void do_completion_impl(operation* op, - DWORD last_error, size_t bytes_transferred) - { - // Take ownership of the operation object. - typedef send_to_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - typename ConstBufferSequence::const_iterator iter - = handler_op->buffers_.begin(); - typename ConstBufferSequence::const_iterator end - = handler_op->buffers_.end(); - while (iter != end) - { - boost::asio::const_buffer buffer(*iter); - boost::asio::buffer_cast(buffer); - ++iter; - } -#endif // defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - - // Map non-portable errors to their portable counterparts. - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = boost::asio::error::connection_refused; - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(handler_op->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Call the handler. - boost_asio_handler_invoke_helpers::invoke( - detail::bind_handler(handler, ec, bytes_transferred), &handler); - } - - static void destroy_impl(operation* op) - { - // Take ownership of the operation object. - typedef send_to_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(handler_op->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - boost::asio::io_service::work work_; - ConstBufferSequence buffers_; - Handler handler_; - }; - - // Start an asynchronous send. The data being sent must be valid for the - // lifetime of the asynchronous operation. - template - void async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - return; - } - -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - // Update the ID of the thread from which cancellation is safe. - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - - // Allocate and construct an operation to wrap the handler. - typedef send_to_operation value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - handler_ptr ptr(raw_ptr, iocp_service_, buffers, handler); - - // Copy buffers into WSABUF array. - ::WSABUF bufs[max_buffers]; - typename ConstBufferSequence::const_iterator iter = buffers.begin(); - typename ConstBufferSequence::const_iterator end = buffers.end(); - DWORD i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::const_buffer buffer(*iter); - bufs[i].len = static_cast(boost::asio::buffer_size(buffer)); - bufs[i].buf = const_cast( - boost::asio::buffer_cast(buffer)); - } - - // Send the data. - DWORD bytes_transferred = 0; - int result = ::WSASendTo(impl.socket_, bufs, i, &bytes_transferred, flags, - destination.data(), static_cast(destination.size()), ptr.get(), 0); - DWORD last_error = ::WSAGetLastError(); - - // Check if the operation completed immediately. - if (result != 0 && last_error != WSA_IO_PENDING) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - iocp_service_.post(bind_handler(handler, ec, bytes_transferred)); - } - else - { - ptr.release(); - } - } - - // Start an asynchronous wait until data can be sent without blocking. - template - void async_send_to(implementation_type& impl, const null_buffers&, - socket_base::message_flags, const endpoint_type&, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - // Check if the reactor was already obtained from the io_service. - reactor_type* reactor = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (!reactor) - { - reactor = &(boost::asio::use_service( - this->get_io_service())); - interlocked_exchange_pointer( - reinterpret_cast(&reactor_), reactor); - } - - reactor->start_write_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler), - false); - } - } - - // Receive some data from the peer. Returns the number of bytes received. - template - size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Copy buffers into WSABUF array. - ::WSABUF bufs[max_buffers]; - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - DWORD i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - bufs[i].len = static_cast(boost::asio::buffer_size(buffer)); - bufs[i].buf = boost::asio::buffer_cast(buffer); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to receive 0 bytes on a stream socket is a no-op. - if (impl.protocol_.type() == SOCK_STREAM && total_buffer_size == 0) - { - ec = boost::system::error_code(); - return 0; - } - - // Receive some data. - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = ::WSARecv(impl.socket_, bufs, i, - &bytes_transferred, &recv_flags, 0, 0); - if (result != 0) - { - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_NETNAME_DELETED) - last_error = WSAECONNRESET; - else if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return 0; - } - if (bytes_transferred == 0 && impl.protocol_.type() == SOCK_STREAM) - { - ec = boost::asio::error::eof; - return 0; - } - - ec = boost::system::error_code(); - return bytes_transferred; - } - - // Wait until data can be received without blocking. - size_t receive(implementation_type& impl, const null_buffers&, - socket_base::message_flags, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, ec); - - return 0; - } - - template - class receive_operation - : public operation - { - public: - receive_operation(int protocol_type, win_iocp_io_service& io_service, - weak_cancel_token_type cancel_token, - const MutableBufferSequence& buffers, Handler handler) - : operation(io_service, - &receive_operation< - MutableBufferSequence, Handler>::do_completion_impl, - &receive_operation< - MutableBufferSequence, Handler>::destroy_impl), - protocol_type_(protocol_type), - work_(io_service.get_io_service()), - cancel_token_(cancel_token), - buffers_(buffers), - handler_(handler) - { - } - - private: - static void do_completion_impl(operation* op, - DWORD last_error, size_t bytes_transferred) - { - // Take ownership of the operation object. - typedef receive_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - typename MutableBufferSequence::const_iterator iter - = handler_op->buffers_.begin(); - typename MutableBufferSequence::const_iterator end - = handler_op->buffers_.end(); - while (iter != end) - { - boost::asio::mutable_buffer buffer(*iter); - boost::asio::buffer_cast(buffer); - ++iter; - } -#endif // defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - - // Map non-portable errors to their portable counterparts. - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - if (ec.value() == ERROR_NETNAME_DELETED) - { - if (handler_op->cancel_token_.expired()) - ec = boost::asio::error::operation_aborted; - else - ec = boost::asio::error::connection_reset; - } - else if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = boost::asio::error::connection_refused; - } - - // Check for connection closed. - else if (!ec && bytes_transferred == 0 - && handler_op->protocol_type_ == SOCK_STREAM - && !boost::is_same::value) - { - ec = boost::asio::error::eof; - } - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(handler_op->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Call the handler. - boost_asio_handler_invoke_helpers::invoke( - detail::bind_handler(handler, ec, bytes_transferred), &handler); - } - - static void destroy_impl(operation* op) - { - // Take ownership of the operation object. - typedef receive_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(handler_op->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - int protocol_type_; - boost::asio::io_service::work work_; - weak_cancel_token_type cancel_token_; - MutableBufferSequence buffers_; - Handler handler_; - }; - - // Start an asynchronous receive. The buffer for the data being received - // must be valid for the lifetime of the asynchronous operation. - template - void async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - return; - } - -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - // Update the ID of the thread from which cancellation is safe. - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - - // Allocate and construct an operation to wrap the handler. - typedef receive_operation value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - int protocol_type = impl.protocol_.type(); - handler_ptr ptr(raw_ptr, protocol_type, - iocp_service_, impl.cancel_token_, buffers, handler); - - // Copy buffers into WSABUF array. - ::WSABUF bufs[max_buffers]; - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - DWORD i = 0; - size_t total_buffer_size = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - bufs[i].len = static_cast(boost::asio::buffer_size(buffer)); - bufs[i].buf = boost::asio::buffer_cast(buffer); - total_buffer_size += boost::asio::buffer_size(buffer); - } - - // A request to receive 0 bytes on a stream socket is a no-op. - if (impl.protocol_.type() == SOCK_STREAM && total_buffer_size == 0) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code error; - iocp_service_.post(bind_handler(handler, error, 0)); - return; - } - - // Receive some data. - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = ::WSARecv(impl.socket_, bufs, i, - &bytes_transferred, &recv_flags, ptr.get(), 0); - DWORD last_error = ::WSAGetLastError(); - if (result != 0 && last_error != WSA_IO_PENDING) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - iocp_service_.post(bind_handler(handler, ec, bytes_transferred)); - } - else - { - ptr.release(); - } - } - - // Wait until data can be received without blocking. - template - void async_receive(implementation_type& impl, const null_buffers& buffers, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else if (impl.protocol_.type() == SOCK_STREAM) - { - // For stream sockets on Windows, we may issue a 0-byte overlapped - // WSARecv to wait until there is data available on the socket. - -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - // Update the ID of the thread from which cancellation is safe. - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - - // Allocate and construct an operation to wrap the handler. - typedef receive_operation value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - int protocol_type = impl.protocol_.type(); - handler_ptr ptr(raw_ptr, protocol_type, - iocp_service_, impl.cancel_token_, buffers, handler); - - // Issue a receive operation with an empty buffer. - ::WSABUF buf = { 0, 0 }; - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = ::WSARecv(impl.socket_, &buf, 1, - &bytes_transferred, &recv_flags, ptr.get(), 0); - DWORD last_error = ::WSAGetLastError(); - if (result != 0 && last_error != WSA_IO_PENDING) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - iocp_service_.post(bind_handler(handler, ec, bytes_transferred)); - } - else - { - ptr.release(); - } - } - else - { - // Check if the reactor was already obtained from the io_service. - reactor_type* reactor = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (!reactor) - { - reactor = &(boost::asio::use_service( - this->get_io_service())); - interlocked_exchange_pointer( - reinterpret_cast(&reactor_), reactor); - } - - if (flags & socket_base::message_out_of_band) - { - reactor->start_except_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler)); - } - else - { - reactor->start_read_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler), - false); - } - } - } - - // Receive a datagram with the endpoint of the sender. Returns the number of - // bytes received. - template - size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, - endpoint_type& sender_endpoint, socket_base::message_flags flags, - boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Copy buffers into WSABUF array. - ::WSABUF bufs[max_buffers]; - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - DWORD i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - bufs[i].len = static_cast(boost::asio::buffer_size(buffer)); - bufs[i].buf = boost::asio::buffer_cast(buffer); - } - - // Receive some data. - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int endpoint_size = static_cast(sender_endpoint.capacity()); - int result = ::WSARecvFrom(impl.socket_, bufs, i, &bytes_transferred, - &recv_flags, sender_endpoint.data(), &endpoint_size, 0, 0); - if (result != 0) - { - DWORD last_error = ::WSAGetLastError(); - if (last_error == ERROR_PORT_UNREACHABLE) - last_error = WSAECONNREFUSED; - ec = boost::system::error_code(last_error, - boost::asio::error::get_system_category()); - return 0; - } - if (bytes_transferred == 0 && impl.protocol_.type() == SOCK_STREAM) - { - ec = boost::asio::error::eof; - return 0; - } - - sender_endpoint.resize(static_cast(endpoint_size)); - - ec = boost::system::error_code(); - return bytes_transferred; - } - - // Wait until data can be received without blocking. - size_t receive_from(implementation_type& impl, - const null_buffers&, endpoint_type& sender_endpoint, - socket_base::message_flags, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return 0; - } - - // Wait for socket to become ready. - socket_ops::poll_read(impl.socket_, ec); - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - return 0; - } - - template - class receive_from_operation - : public operation - { - public: - receive_from_operation(int protocol_type, win_iocp_io_service& io_service, - endpoint_type& endpoint, const MutableBufferSequence& buffers, - Handler handler) - : operation(io_service, - &receive_from_operation< - MutableBufferSequence, Handler>::do_completion_impl, - &receive_from_operation< - MutableBufferSequence, Handler>::destroy_impl), - protocol_type_(protocol_type), - endpoint_(endpoint), - endpoint_size_(static_cast(endpoint.capacity())), - work_(io_service.get_io_service()), - buffers_(buffers), - handler_(handler) - { - } - - int& endpoint_size() - { - return endpoint_size_; - } - - private: - static void do_completion_impl(operation* op, - DWORD last_error, size_t bytes_transferred) - { - // Take ownership of the operation object. - typedef receive_from_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - -#if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - // Check whether buffers are still valid. - typename MutableBufferSequence::const_iterator iter - = handler_op->buffers_.begin(); - typename MutableBufferSequence::const_iterator end - = handler_op->buffers_.end(); - while (iter != end) - { - boost::asio::mutable_buffer buffer(*iter); - boost::asio::buffer_cast(buffer); - ++iter; - } -#endif // defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING) - - // Map non-portable errors to their portable counterparts. - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - if (ec.value() == ERROR_PORT_UNREACHABLE) - { - ec = boost::asio::error::connection_refused; - } - - // Check for connection closed. - if (!ec && bytes_transferred == 0 - && handler_op->protocol_type_ == SOCK_STREAM) - { - ec = boost::asio::error::eof; - } - - // Record the size of the endpoint returned by the operation. - handler_op->endpoint_.resize(handler_op->endpoint_size_); - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(handler_op->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Call the handler. - boost_asio_handler_invoke_helpers::invoke( - detail::bind_handler(handler, ec, bytes_transferred), &handler); - } - - static void destroy_impl(operation* op) - { - // Take ownership of the operation object. - typedef receive_from_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(handler_op->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - int protocol_type_; - endpoint_type& endpoint_; - int endpoint_size_; - boost::asio::io_service::work work_; - MutableBufferSequence buffers_; - Handler handler_; - }; - - // Start an asynchronous receive. The buffer for the data being received and - // the sender_endpoint object must both be valid for the lifetime of the - // asynchronous operation. - template - void async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endp, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - return; - } - -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - // Update the ID of the thread from which cancellation is safe. - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - - // Allocate and construct an operation to wrap the handler. - typedef receive_from_operation value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - int protocol_type = impl.protocol_.type(); - handler_ptr ptr(raw_ptr, protocol_type, - iocp_service_, sender_endp, buffers, handler); - - // Copy buffers into WSABUF array. - ::WSABUF bufs[max_buffers]; - typename MutableBufferSequence::const_iterator iter = buffers.begin(); - typename MutableBufferSequence::const_iterator end = buffers.end(); - DWORD i = 0; - for (; iter != end && i < max_buffers; ++iter, ++i) - { - boost::asio::mutable_buffer buffer(*iter); - bufs[i].len = static_cast(boost::asio::buffer_size(buffer)); - bufs[i].buf = boost::asio::buffer_cast(buffer); - } - - // Receive some data. - DWORD bytes_transferred = 0; - DWORD recv_flags = flags; - int result = ::WSARecvFrom(impl.socket_, bufs, i, &bytes_transferred, - &recv_flags, sender_endp.data(), &ptr.get()->endpoint_size(), - ptr.get(), 0); - DWORD last_error = ::WSAGetLastError(); - if (result != 0 && last_error != WSA_IO_PENDING) - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - iocp_service_.post(bind_handler(handler, ec, bytes_transferred)); - } - else - { - ptr.release(); - } - } - - // Wait until data can be received without blocking. - template - void async_receive_from(implementation_type& impl, - const null_buffers&, endpoint_type& sender_endpoint, - socket_base::message_flags flags, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor, 0)); - } - else - { - // Check if the reactor was already obtained from the io_service. - reactor_type* reactor = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (!reactor) - { - reactor = &(boost::asio::use_service( - this->get_io_service())); - interlocked_exchange_pointer( - reinterpret_cast(&reactor_), reactor); - } - - // Reset endpoint since it can be given no sensible value at this time. - sender_endpoint = endpoint_type(); - - if (flags & socket_base::message_out_of_band) - { - reactor->start_except_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler)); - } - else - { - reactor->start_read_op(impl.socket_, impl.reactor_data_, - null_buffers_operation(this->get_io_service(), handler), - false); - } - } - } - - // Accept a new connection. - template - boost::system::error_code accept(implementation_type& impl, Socket& peer, - endpoint_type* peer_endpoint, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - // We cannot accept a socket that is already open. - if (peer.is_open()) - { - ec = boost::asio::error::already_open; - return ec; - } - - for (;;) - { - socket_holder new_socket; - std::size_t addr_len = 0; - if (peer_endpoint) - { - addr_len = peer_endpoint->capacity(); - new_socket.reset(socket_ops::accept(impl.socket_, - peer_endpoint->data(), &addr_len, ec)); - } - else - { - new_socket.reset(socket_ops::accept(impl.socket_, 0, 0, ec)); - } - - if (ec) - { - if (ec == boost::asio::error::connection_aborted - && !(impl.flags_ & implementation_type::enable_connection_aborted)) - { - // Retry accept operation. - continue; - } - else - { - return ec; - } - } - - if (peer_endpoint) - peer_endpoint->resize(addr_len); - - peer.assign(impl.protocol_, new_socket.get(), ec); - if (!ec) - new_socket.release(); - return ec; - } - } - - template - class accept_operation - : public operation - { - public: - accept_operation(win_iocp_io_service& io_service, - socket_type socket, socket_type new_socket, Socket& peer, - const protocol_type& protocol, endpoint_type* peer_endpoint, - bool enable_connection_aborted, Handler handler) - : operation(io_service, - &accept_operation::do_completion_impl, - &accept_operation::destroy_impl), - io_service_(io_service), - socket_(socket), - new_socket_(new_socket), - peer_(peer), - protocol_(protocol), - peer_endpoint_(peer_endpoint), - work_(io_service.get_io_service()), - enable_connection_aborted_(enable_connection_aborted), - handler_(handler) - { - } - - socket_type new_socket() - { - return new_socket_.get(); - } - - void* output_buffer() - { - return output_buffer_; - } - - DWORD address_length() - { - return sizeof(sockaddr_storage_type) + 16; - } - - private: - static void do_completion_impl(operation* op, DWORD last_error, size_t) - { - // Take ownership of the operation object. - typedef accept_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // Map Windows error ERROR_NETNAME_DELETED to connection_aborted. - if (last_error == ERROR_NETNAME_DELETED) - { - last_error = WSAECONNABORTED; - } - - // Restart the accept operation if we got the connection_aborted error - // and the enable_connection_aborted socket option is not set. - if (last_error == WSAECONNABORTED - && !ptr.get()->enable_connection_aborted_) - { - // Reset OVERLAPPED structure. - ptr.get()->Internal = 0; - ptr.get()->InternalHigh = 0; - ptr.get()->Offset = 0; - ptr.get()->OffsetHigh = 0; - ptr.get()->hEvent = 0; - - // Create a new socket for the next connection, since the AcceptEx call - // fails with WSAEINVAL if we try to reuse the same socket. - boost::system::error_code ec; - ptr.get()->new_socket_.reset(); - ptr.get()->new_socket_.reset(socket_ops::socket( - ptr.get()->protocol_.family(), ptr.get()->protocol_.type(), - ptr.get()->protocol_.protocol(), ec)); - if (ptr.get()->new_socket() != invalid_socket) - { - // Accept a connection. - DWORD bytes_read = 0; - BOOL result = ::AcceptEx(ptr.get()->socket_, ptr.get()->new_socket(), - ptr.get()->output_buffer(), 0, ptr.get()->address_length(), - ptr.get()->address_length(), &bytes_read, ptr.get()); - last_error = ::WSAGetLastError(); - - // Check if the operation completed immediately. - if (!result && last_error != WSA_IO_PENDING) - { - if (last_error == ERROR_NETNAME_DELETED - || last_error == WSAECONNABORTED) - { - // Post this handler so that operation will be restarted again. - ptr.get()->io_service_.post_completion(ptr.get(), last_error, 0); - ptr.release(); - return; - } - else - { - // Operation already complete. Continue with rest of this handler. - } - } - else - { - // Asynchronous operation has been successfully restarted. - ptr.release(); - return; - } - } - } - - // Get the address of the peer. - endpoint_type peer_endpoint; - if (last_error == 0) - { - LPSOCKADDR local_addr = 0; - int local_addr_length = 0; - LPSOCKADDR remote_addr = 0; - int remote_addr_length = 0; - GetAcceptExSockaddrs(handler_op->output_buffer(), 0, - handler_op->address_length(), handler_op->address_length(), - &local_addr, &local_addr_length, &remote_addr, &remote_addr_length); - if (static_cast(remote_addr_length) - > peer_endpoint.capacity()) - { - last_error = WSAEINVAL; - } - else - { - using namespace std; // For memcpy. - memcpy(peer_endpoint.data(), remote_addr, remote_addr_length); - peer_endpoint.resize(static_cast(remote_addr_length)); - } - } - - // Need to set the SO_UPDATE_ACCEPT_CONTEXT option so that getsockname - // and getpeername will work on the accepted socket. - if (last_error == 0) - { - SOCKET update_ctx_param = handler_op->socket_; - boost::system::error_code ec; - if (socket_ops::setsockopt(handler_op->new_socket_.get(), - SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, - &update_ctx_param, sizeof(SOCKET), ec) != 0) - { - last_error = ec.value(); - } - } - - // If the socket was successfully accepted, transfer ownership of the - // socket to the peer object. - if (last_error == 0) - { - boost::system::error_code ec; - handler_op->peer_.assign(handler_op->protocol_, - native_type(handler_op->new_socket_.get(), peer_endpoint), ec); - if (ec) - last_error = ec.value(); - else - handler_op->new_socket_.release(); - } - - // Pass endpoint back to caller. - if (handler_op->peer_endpoint_) - *handler_op->peer_endpoint_ = peer_endpoint; - - // Make a copy of the handler so that the memory can be deallocated before - // the upcall is made. - Handler handler(handler_op->handler_); - - // Free the memory associated with the handler. - ptr.reset(); - - // Call the handler. - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - boost_asio_handler_invoke_helpers::invoke( - detail::bind_handler(handler, ec), &handler); - } - - static void destroy_impl(operation* op) - { - // Take ownership of the operation object. - typedef accept_operation op_type; - op_type* handler_op(static_cast(op)); - typedef handler_alloc_traits alloc_traits; - handler_ptr ptr(handler_op->handler_, handler_op); - - // A sub-object of the handler may be the true owner of the memory - // associated with the handler. Consequently, a local copy of the handler - // is required to ensure that any owning sub-object remains valid until - // after we have deallocated the memory here. - Handler handler(handler_op->handler_); - (void)handler; - - // Free the memory associated with the handler. - ptr.reset(); - } - - win_iocp_io_service& io_service_; - socket_type socket_; - socket_holder new_socket_; - Socket& peer_; - protocol_type protocol_; - endpoint_type* peer_endpoint_; - boost::asio::io_service::work work_; - unsigned char output_buffer_[(sizeof(sockaddr_storage_type) + 16) * 2]; - bool enable_connection_aborted_; - Handler handler_; - }; - - // Start an asynchronous accept. The peer and peer_endpoint objects - // must be valid until the accept's handler is invoked. - template - void async_accept(implementation_type& impl, Socket& peer, - endpoint_type* peer_endpoint, Handler handler) - { - // Check whether acceptor has been initialised. - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor)); - return; - } - - // Check that peer socket has not already been opened. - if (peer.is_open()) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::already_open)); - return; - } - -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - // Update the ID of the thread from which cancellation is safe. - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - - // Create a new socket for the connection. - boost::system::error_code ec; - socket_holder sock(socket_ops::socket(impl.protocol_.family(), - impl.protocol_.type(), impl.protocol_.protocol(), ec)); - if (sock.get() == invalid_socket) - { - this->get_io_service().post(bind_handler(handler, ec)); - return; - } - - // Allocate and construct an operation to wrap the handler. - typedef accept_operation value_type; - typedef handler_alloc_traits alloc_traits; - raw_handler_ptr raw_ptr(handler); - socket_type new_socket = sock.get(); - bool enable_connection_aborted = - (impl.flags_ & implementation_type::enable_connection_aborted); - handler_ptr ptr(raw_ptr, - iocp_service_, impl.socket_, new_socket, peer, impl.protocol_, - peer_endpoint, enable_connection_aborted, handler); - sock.release(); - - // Accept a connection. - DWORD bytes_read = 0; - BOOL result = ::AcceptEx(impl.socket_, ptr.get()->new_socket(), - ptr.get()->output_buffer(), 0, ptr.get()->address_length(), - ptr.get()->address_length(), &bytes_read, ptr.get()); - DWORD last_error = ::WSAGetLastError(); - - // Check if the operation completed immediately. - if (!result && last_error != WSA_IO_PENDING) - { - if (!enable_connection_aborted - && (last_error == ERROR_NETNAME_DELETED - || last_error == WSAECONNABORTED)) - { - // Post handler so that operation will be restarted again. We do not - // perform the AcceptEx again here to avoid the possibility of starving - // other handlers. - iocp_service_.post_completion(ptr.get(), last_error, 0); - ptr.release(); - } - else - { - boost::asio::io_service::work work(this->get_io_service()); - ptr.reset(); - boost::system::error_code ec(last_error, - boost::asio::error::get_system_category()); - iocp_service_.post(bind_handler(handler, ec)); - } - } - else - { - ptr.release(); - } - } - - // Connect the socket to the specified endpoint. - boost::system::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, boost::system::error_code& ec) - { - if (!is_open(impl)) - { - ec = boost::asio::error::bad_descriptor; - return ec; - } - - // Perform the connect operation. - socket_ops::connect(impl.socket_, - peer_endpoint.data(), peer_endpoint.size(), ec); - return ec; - } - - template - class connect_operation - { - public: - connect_operation(socket_type socket, bool user_set_non_blocking, - boost::asio::io_service& io_service, Handler handler) - : socket_(socket), - user_set_non_blocking_(user_set_non_blocking), - io_service_(io_service), - work_(io_service), - handler_(handler) - { - } - - bool perform(boost::system::error_code& ec, - std::size_t& bytes_transferred) - { - bytes_transferred = 0; - - // Check whether the operation was successful. - if (ec) - return true; - - // Get the error code from the connect operation. - int connect_error = 0; - size_t connect_error_len = sizeof(connect_error); - if (socket_ops::getsockopt(socket_, SOL_SOCKET, SO_ERROR, - &connect_error, &connect_error_len, ec) == socket_error_retval) - return true; - - // If connection failed then post the handler with the error code. - if (connect_error) - { - ec = boost::system::error_code(connect_error, - boost::asio::error::get_system_category()); - return true; - } - - // Revert socket to blocking mode unless the user requested otherwise. - if (!user_set_non_blocking_) - { - ioctl_arg_type non_blocking = 0; - if (socket_ops::ioctl(socket_, FIONBIO, &non_blocking, ec)) - return true; - } - - // Post the result of the successful connection operation. - ec = boost::system::error_code(); - return true; - } - - void complete(const boost::system::error_code& ec, std::size_t) - { - io_service_.post(bind_handler(handler_, ec)); - } - - private: - socket_type socket_; - bool user_set_non_blocking_; - boost::asio::io_service& io_service_; - boost::asio::io_service::work work_; - Handler handler_; - }; - - // Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, Handler handler) - { - if (!is_open(impl)) - { - this->get_io_service().post(bind_handler(handler, - boost::asio::error::bad_descriptor)); - return; - } - -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - // Update the ID of the thread from which cancellation is safe. - if (impl.safe_cancellation_thread_id_ == 0) - impl.safe_cancellation_thread_id_ = ::GetCurrentThreadId(); - else if (impl.safe_cancellation_thread_id_ != ::GetCurrentThreadId()) - impl.safe_cancellation_thread_id_ = ~DWORD(0); -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - - // Check if the reactor was already obtained from the io_service. - reactor_type* reactor = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (!reactor) - { - reactor = &(boost::asio::use_service( - this->get_io_service())); - interlocked_exchange_pointer( - reinterpret_cast(&reactor_), reactor); - } - - // Mark the socket as non-blocking so that the connection will take place - // asynchronously. - ioctl_arg_type non_blocking = 1; - boost::system::error_code ec; - if (socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec)) - { - this->get_io_service().post(bind_handler(handler, ec)); - return; - } - - // Start the connect operation. - if (socket_ops::connect(impl.socket_, peer_endpoint.data(), - peer_endpoint.size(), ec) == 0) - { - // Revert socket to blocking mode unless the user requested otherwise. - if (!(impl.flags_ & implementation_type::user_set_non_blocking)) - { - non_blocking = 0; - socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ec); - } - - // The connect operation has finished successfully so we need to post the - // handler immediately. - this->get_io_service().post(bind_handler(handler, ec)); - } - else if (ec == boost::asio::error::in_progress - || ec == boost::asio::error::would_block) - { - // The connection is happening in the background, and we need to wait - // until the socket becomes writeable. - boost::shared_ptr completed(new bool(false)); - reactor->start_connect_op(impl.socket_, impl.reactor_data_, - connect_operation( - impl.socket_, - (impl.flags_ & implementation_type::user_set_non_blocking) != 0, - this->get_io_service(), handler)); - } - else - { - // Revert socket to blocking mode unless the user requested otherwise. - if (!(impl.flags_ & implementation_type::user_set_non_blocking)) - { - non_blocking = 0; - boost::system::error_code ignored_ec; - socket_ops::ioctl(impl.socket_, FIONBIO, &non_blocking, ignored_ec); - } - - // The connect operation has failed, so post the handler immediately. - this->get_io_service().post(bind_handler(handler, ec)); - } - } - -private: - // Helper function to close a socket when the associated object is being - // destroyed. - void close_for_destruction(implementation_type& impl) - { - if (is_open(impl)) - { - // Check if the reactor was created, in which case we need to close the - // socket on the reactor as well to cancel any operations that might be - // running there. - reactor_type* reactor = static_cast( - interlocked_compare_exchange_pointer( - reinterpret_cast(&reactor_), 0, 0)); - if (reactor) - reactor->close_descriptor(impl.socket_, impl.reactor_data_); - - // The socket destructor must not block. If the user has changed the - // linger option to block in the foreground, we will change it back to the - // default so that the closure is performed in the background. - if (impl.flags_ & implementation_type::close_might_block) - { - ::linger opt; - opt.l_onoff = 0; - opt.l_linger = 0; - boost::system::error_code ignored_ec; - socket_ops::setsockopt(impl.socket_, - SOL_SOCKET, SO_LINGER, &opt, sizeof(opt), ignored_ec); - } - - boost::system::error_code ignored_ec; - socket_ops::close(impl.socket_, ignored_ec); - impl.socket_ = invalid_socket; - impl.flags_ = 0; - impl.cancel_token_.reset(); -#if defined(BOOST_ASIO_ENABLE_CANCELIO) - impl.safe_cancellation_thread_id_ = 0; -#endif // defined(BOOST_ASIO_ENABLE_CANCELIO) - } - } - - // Helper function to emulate InterlockedCompareExchangePointer functionality - // for: - // - very old Platform SDKs; and - // - platform SDKs where MSVC's /Wp64 option causes spurious warnings. - void* interlocked_compare_exchange_pointer(void** dest, void* exch, void* cmp) - { -#if defined(_M_IX86) - return reinterpret_cast(InterlockedCompareExchange( - reinterpret_cast(dest), reinterpret_cast(exch), - reinterpret_cast(cmp))); -#else - return InterlockedCompareExchangePointer(dest, exch, cmp); -#endif - } - - // Helper function to emulate InterlockedExchangePointer functionality for: - // - very old Platform SDKs; and - // - platform SDKs where MSVC's /Wp64 option causes spurious warnings. - void* interlocked_exchange_pointer(void** dest, void* val) - { -#if defined(_M_IX86) - return reinterpret_cast(InterlockedExchange( - reinterpret_cast(dest), reinterpret_cast(val))); -#else - return InterlockedExchangePointer(dest, val); -#endif - } - - // The IOCP service used for running asynchronous operations and dispatching - // handlers. - win_iocp_io_service& iocp_service_; - - // The reactor used for performing connect operations. This object is created - // only if needed. - reactor_type* reactor_; - - // Mutex to protect access to the linked list of implementations. - boost::asio::detail::mutex mutex_; - - // The head of a linked list of all implementations. - implementation_type* impl_list_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_IOCP) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_IOCP_SOCKET_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_mutex.hpp b/3rdParty/Boost/boost/asio/detail/win_mutex.hpp deleted file mode 100644 index f5470c4..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_mutex.hpp +++ /dev/null @@ -1,151 +0,0 @@ -// -// win_mutex.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_MUTEX_HPP -#define BOOST_ASIO_DETAIL_WIN_MUTEX_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if defined(BOOST_WINDOWS) - -#include -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -class win_mutex - : private noncopyable -{ -public: - typedef boost::asio::detail::scoped_lock scoped_lock; - - // Constructor. - win_mutex() - { - int error = do_init(); - if (error != 0) - { - boost::system::system_error e( - boost::system::error_code(error, - boost::asio::error::get_system_category()), - "mutex"); - boost::throw_exception(e); - } - } - - // Destructor. - ~win_mutex() - { - ::DeleteCriticalSection(&crit_section_); - } - - // Lock the mutex. - void lock() - { - int error = do_lock(); - if (error != 0) - { - boost::system::system_error e( - boost::system::error_code(error, - boost::asio::error::get_system_category()), - "mutex"); - boost::throw_exception(e); - } - } - - // Unlock the mutex. - void unlock() - { - ::LeaveCriticalSection(&crit_section_); - } - -private: - // Initialisation must be performed in a separate function to the constructor - // since the compiler does not support the use of structured exceptions and - // C++ exceptions in the same function. - int do_init() - { -#if defined(__MINGW32__) - // Not sure if MinGW supports structured exception handling, so for now - // we'll just call the Windows API and hope. - ::InitializeCriticalSection(&crit_section_); - return 0; -#else - __try - { - ::InitializeCriticalSection(&crit_section_); - } - __except(GetExceptionCode() == STATUS_NO_MEMORY - ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) - { - return ERROR_OUTOFMEMORY; - } - - return 0; -#endif - } - - // Locking must be performed in a separate function to lock() since the - // compiler does not support the use of structured exceptions and C++ - // exceptions in the same function. - int do_lock() - { -#if defined(__MINGW32__) - // Not sure if MinGW supports structured exception handling, so for now - // we'll just call the Windows API and hope. - ::EnterCriticalSection(&crit_section_); - return 0; -#else - __try - { - ::EnterCriticalSection(&crit_section_); - } - __except(GetExceptionCode() == STATUS_INVALID_HANDLE - || GetExceptionCode() == STATUS_NO_MEMORY - ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) - { - if (GetExceptionCode() == STATUS_NO_MEMORY) - return ERROR_OUTOFMEMORY; - return ERROR_INVALID_HANDLE; - } - - return 0; -#endif - } - - ::CRITICAL_SECTION crit_section_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_WINDOWS) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_MUTEX_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_signal_blocker.hpp b/3rdParty/Boost/boost/asio/detail/win_signal_blocker.hpp deleted file mode 100644 index e9b4d37..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_signal_blocker.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// -// win_signal_blocker.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_SIGNAL_BLOCKER_HPP -#define BOOST_ASIO_DETAIL_WIN_SIGNAL_BLOCKER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -#include - -namespace boost { -namespace asio { -namespace detail { - -class win_signal_blocker - : private noncopyable -{ -public: - // Constructor blocks all signals for the calling thread. - win_signal_blocker() - { - // No-op. - } - - // Destructor restores the previous signal mask. - ~win_signal_blocker() - { - // No-op. - } - - // Block all signals for the calling thread. - void block() - { - // No-op. - } - - // Restore the previous signal mask. - void unblock() - { - // No-op. - } -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_SIGNAL_BLOCKER_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_thread.hpp b/3rdParty/Boost/boost/asio/detail/win_thread.hpp deleted file mode 100644 index c8058d8..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_thread.hpp +++ /dev/null @@ -1,234 +0,0 @@ -// -// win_thread.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_THREAD_HPP -#define BOOST_ASIO_DETAIL_WIN_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if defined(BOOST_WINDOWS) && !defined(UNDER_CE) - -#include -#include -#include - -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -unsigned int __stdcall win_thread_function(void* arg); - -#if (WINVER < 0x0500) -void __stdcall apc_function(ULONG data); -#else -void __stdcall apc_function(ULONG_PTR data); -#endif - -template -class win_thread_base -{ -public: - static bool terminate_threads() - { - return ::InterlockedExchangeAdd(&terminate_threads_, 0) != 0; - } - - static void set_terminate_threads(bool b) - { - ::InterlockedExchange(&terminate_threads_, b ? 1 : 0); - } - -private: - static long terminate_threads_; -}; - -template -long win_thread_base::terminate_threads_ = 0; - -class win_thread - : private noncopyable, - public win_thread_base -{ -public: - // Constructor. - template - win_thread(Function f) - : exit_event_(0) - { - std::auto_ptr arg(new func(f)); - - ::HANDLE entry_event = 0; - arg->entry_event_ = entry_event = ::CreateEvent(0, true, false, 0); - if (!entry_event) - { - DWORD last_error = ::GetLastError(); - boost::system::system_error e( - boost::system::error_code(last_error, - boost::asio::error::get_system_category()), - "thread.entry_event"); - boost::throw_exception(e); - } - - arg->exit_event_ = exit_event_ = ::CreateEvent(0, true, false, 0); - if (!exit_event_) - { - DWORD last_error = ::GetLastError(); - ::CloseHandle(entry_event); - boost::system::system_error e( - boost::system::error_code(last_error, - boost::asio::error::get_system_category()), - "thread.exit_event"); - boost::throw_exception(e); - } - - unsigned int thread_id = 0; - thread_ = reinterpret_cast(::_beginthreadex(0, 0, - win_thread_function, arg.get(), 0, &thread_id)); - if (!thread_) - { - DWORD last_error = ::GetLastError(); - if (entry_event) - ::CloseHandle(entry_event); - if (exit_event_) - ::CloseHandle(exit_event_); - boost::system::system_error e( - boost::system::error_code(last_error, - boost::asio::error::get_system_category()), - "thread"); - boost::throw_exception(e); - } - arg.release(); - - if (entry_event) - { - ::WaitForSingleObject(entry_event, INFINITE); - ::CloseHandle(entry_event); - } - } - - // Destructor. - ~win_thread() - { - ::CloseHandle(thread_); - - // The exit_event_ handle is deliberately allowed to leak here since it - // is an error for the owner of an internal thread not to join() it. - } - - // Wait for the thread to exit. - void join() - { - ::WaitForSingleObject(exit_event_, INFINITE); - ::CloseHandle(exit_event_); - if (terminate_threads()) - { - ::TerminateThread(thread_, 0); - } - else - { - ::QueueUserAPC(apc_function, thread_, 0); - ::WaitForSingleObject(thread_, INFINITE); - } - } - -private: - friend unsigned int __stdcall win_thread_function(void* arg); - -#if (WINVER < 0x0500) - friend void __stdcall apc_function(ULONG); -#else - friend void __stdcall apc_function(ULONG_PTR); -#endif - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - ::HANDLE entry_event_; - ::HANDLE exit_event_; - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ::HANDLE thread_; - ::HANDLE exit_event_; -}; - -inline unsigned int __stdcall win_thread_function(void* arg) -{ - std::auto_ptr func( - static_cast(arg)); - - ::SetEvent(func->entry_event_); - - func->run(); - - // Signal that the thread has finished its work, but rather than returning go - // to sleep to put the thread into a well known state. If the thread is being - // joined during global object destruction then it may be killed using - // TerminateThread (to avoid a deadlock in DllMain). Otherwise, the SleepEx - // call will be interrupted using QueueUserAPC and the thread will shut down - // cleanly. - HANDLE exit_event = func->exit_event_; - func.reset(); - ::SetEvent(exit_event); - ::SleepEx(INFINITE, TRUE); - - return 0; -} - -#if (WINVER < 0x0500) -inline void __stdcall apc_function(ULONG) {} -#else -inline void __stdcall apc_function(ULONG_PTR) {} -#endif - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_WINDOWS) && !defined(UNDER_CE) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_THREAD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/win_tss_ptr.hpp b/3rdParty/Boost/boost/asio/detail/win_tss_ptr.hpp deleted file mode 100644 index 5c56454..0000000 --- a/3rdParty/Boost/boost/asio/detail/win_tss_ptr.hpp +++ /dev/null @@ -1,97 +0,0 @@ -// -// win_tss_ptr.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WIN_TSS_PTR_HPP -#define BOOST_ASIO_DETAIL_WIN_TSS_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if defined(BOOST_WINDOWS) - -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class win_tss_ptr - : private noncopyable -{ -public: -#if defined(UNDER_CE) - enum { out_of_indexes = 0xFFFFFFFF }; -#else - enum { out_of_indexes = TLS_OUT_OF_INDEXES }; -#endif - - // Constructor. - win_tss_ptr() - { - tss_key_ = ::TlsAlloc(); - if (tss_key_ == out_of_indexes) - { - DWORD last_error = ::GetLastError(); - boost::system::system_error e( - boost::system::error_code(last_error, - boost::asio::error::get_system_category()), - "tss"); - boost::throw_exception(e); - } - } - - // Destructor. - ~win_tss_ptr() - { - ::TlsFree(tss_key_); - } - - // Get the value. - operator T*() const - { - return static_cast(::TlsGetValue(tss_key_)); - } - - // Set the value. - void operator=(T* value) - { - ::TlsSetValue(tss_key_, value); - } - -private: - // Thread-specific storage to allow unlocked access to determine whether a - // thread is a member of the pool. - DWORD tss_key_; -}; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_WINDOWS) - -#include - -#endif // BOOST_ASIO_DETAIL_WIN_TSS_PTR_HPP diff --git a/3rdParty/Boost/boost/asio/detail/wince_thread.hpp b/3rdParty/Boost/boost/asio/detail/wince_thread.hpp deleted file mode 100644 index 7b24ec2..0000000 --- a/3rdParty/Boost/boost/asio/detail/wince_thread.hpp +++ /dev/null @@ -1,126 +0,0 @@ -// -// wince_thread.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WINCE_THREAD_HPP -#define BOOST_ASIO_DETAIL_WINCE_THREAD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if defined(BOOST_WINDOWS) && defined(UNDER_CE) - -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -DWORD WINAPI wince_thread_function(LPVOID arg); - -class wince_thread - : private noncopyable -{ -public: - // Constructor. - template - wince_thread(Function f) - { - std::auto_ptr arg(new func(f)); - DWORD thread_id = 0; - thread_ = ::CreateThread(0, 0, wince_thread_function, - arg.get(), 0, &thread_id); - if (!thread_) - { - DWORD last_error = ::GetLastError(); - boost::system::system_error e( - boost::system::error_code(last_error, - boost::asio::error::get_system_category()), - "thread"); - boost::throw_exception(e); - } - arg.release(); - } - - // Destructor. - ~wince_thread() - { - ::CloseHandle(thread_); - } - - // Wait for the thread to exit. - void join() - { - ::WaitForSingleObject(thread_, INFINITE); - } - -private: - friend DWORD WINAPI wince_thread_function(LPVOID arg); - - class func_base - { - public: - virtual ~func_base() {} - virtual void run() = 0; - }; - - template - class func - : public func_base - { - public: - func(Function f) - : f_(f) - { - } - - virtual void run() - { - f_(); - } - - private: - Function f_; - }; - - ::HANDLE thread_; -}; - -inline DWORD WINAPI wince_thread_function(LPVOID arg) -{ - std::auto_ptr func( - static_cast(arg)); - func->run(); - return 0; -} - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_WINDOWS) && defined(UNDER_CE) - -#include - -#endif // BOOST_ASIO_DETAIL_WINCE_THREAD_HPP diff --git a/3rdParty/Boost/boost/asio/detail/winsock_init.hpp b/3rdParty/Boost/boost/asio/detail/winsock_init.hpp deleted file mode 100644 index 827cf58..0000000 --- a/3rdParty/Boost/boost/asio/detail/winsock_init.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// winsock_init.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WINSOCK_INIT_HPP -#define BOOST_ASIO_DETAIL_WINSOCK_INIT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -#include -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class winsock_init - : private noncopyable -{ -private: - // Structure to perform the actual initialisation. - struct do_init - { - do_init() - { - WSADATA wsa_data; - result_ = ::WSAStartup(MAKEWORD(Major, Minor), &wsa_data); - } - - ~do_init() - { - ::WSACleanup(); - } - - int result() const - { - return result_; - } - - // Helper function to manage a do_init singleton. The static instance of the - // winsock_init object ensures that this function is always called before - // main, and therefore before any other threads can get started. The do_init - // instance must be static in this function to ensure that it gets - // initialised before any other global objects try to use it. - static boost::shared_ptr instance() - { - static boost::shared_ptr init(new do_init); - return init; - } - - private: - int result_; - }; - -public: - // Constructor. - winsock_init() - : ref_(do_init::instance()) - { - // Check whether winsock was successfully initialised. This check is not - // performed for the global instance since there will be nobody around to - // catch the exception. - if (this != &instance_ && ref_->result() != 0) - { - boost::system::system_error e( - boost::system::error_code(ref_->result(), - boost::asio::error::get_system_category()), - "winsock"); - boost::throw_exception(e); - } - } - - // Destructor. - ~winsock_init() - { - } - -private: - // Instance to force initialisation of winsock at global scope. - static winsock_init instance_; - - // Reference to singleton do_init object to ensure that winsock does not get - // cleaned up until the last user has finished with it. - boost::shared_ptr ref_; -}; - -template -winsock_init winsock_init::instance_; - -} // namespace detail -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) - -#include - -#endif // BOOST_ASIO_DETAIL_WINSOCK_INIT_HPP diff --git a/3rdParty/Boost/boost/asio/detail/wrapped_handler.hpp b/3rdParty/Boost/boost/asio/detail/wrapped_handler.hpp deleted file mode 100644 index 64fc729..0000000 --- a/3rdParty/Boost/boost/asio/detail/wrapped_handler.hpp +++ /dev/null @@ -1,211 +0,0 @@ -// -// wrapped_handler.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_DETAIL_WRAPPED_HANDLER_HPP -#define BOOST_ASIO_DETAIL_WRAPPED_HANDLER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace detail { - -template -class wrapped_handler -{ -public: - typedef void result_type; - - wrapped_handler( - typename boost::add_reference::type dispatcher, - Handler handler) - : dispatcher_(dispatcher), - handler_(handler) - { - } - - void operator()() - { - dispatcher_.dispatch(handler_); - } - - void operator()() const - { - dispatcher_.dispatch(handler_); - } - - template - void operator()(const Arg1& arg1) - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1)); - } - - template - void operator()(const Arg1& arg1) const - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2) - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2) const - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3) - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2, arg3)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3) const - { - dispatcher_.dispatch(detail::bind_handler(handler_, arg1, arg2, arg3)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4) - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4) const - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4, const Arg5& arg5) - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4, arg5)); - } - - template - void operator()(const Arg1& arg1, const Arg2& arg2, const Arg3& arg3, - const Arg4& arg4, const Arg5& arg5) const - { - dispatcher_.dispatch( - detail::bind_handler(handler_, arg1, arg2, arg3, arg4, arg5)); - } - -//private: - Dispatcher dispatcher_; - Handler handler_; -}; - -template -class rewrapped_handler -{ -public: - explicit rewrapped_handler(const Handler& handler, const Context& context) - : handler_(handler), - context_(context) - { - } - - void operator()() - { - handler_(); - } - - void operator()() const - { - handler_(); - } - -//private: - Handler handler_; - Context context_; -}; - -template -inline void* asio_handler_allocate(std::size_t size, - wrapped_handler* this_handler) -{ - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - wrapped_handler* this_handler) -{ - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); -} - -template -inline void asio_handler_invoke(const Function& function, - wrapped_handler* this_handler) -{ - this_handler->dispatcher_.dispatch( - rewrapped_handler( - function, this_handler->handler_)); -} - -template -inline void* asio_handler_allocate(std::size_t size, - rewrapped_handler* this_handler) -{ - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->context_); -} - -template -inline void asio_handler_deallocate(void* pointer, std::size_t size, - rewrapped_handler* this_handler) -{ - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->context_); -} - -template -inline void asio_handler_invoke(const Function& function, - rewrapped_handler* this_handler) -{ - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->context_); -} - -} // namespace detail -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_DETAIL_WRAPPED_HANDLER_HPP diff --git a/3rdParty/Boost/boost/asio/error.hpp b/3rdParty/Boost/boost/asio/error.hpp deleted file mode 100644 index 0101945..0000000 --- a/3rdParty/Boost/boost/asio/error.hpp +++ /dev/null @@ -1,442 +0,0 @@ -// -// error.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_ERROR_HPP -#define BOOST_ASIO_ERROR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#include - -#if defined(GENERATING_DOCUMENTATION) -/// INTERNAL ONLY. -# define BOOST_ASIO_NATIVE_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define BOOST_ASIO_SOCKET_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define BOOST_ASIO_NETDB_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define BOOST_ASIO_GETADDRINFO_ERROR(e) implementation_defined -/// INTERNAL ONLY. -# define BOOST_ASIO_WIN_OR_POSIX(e_win, e_posix) implementation_defined -#elif defined(BOOST_WINDOWS) || defined(__CYGWIN__) -# define BOOST_ASIO_NATIVE_ERROR(e) e -# define BOOST_ASIO_SOCKET_ERROR(e) WSA ## e -# define BOOST_ASIO_NETDB_ERROR(e) WSA ## e -# define BOOST_ASIO_GETADDRINFO_ERROR(e) WSA ## e -# define BOOST_ASIO_WIN_OR_POSIX(e_win, e_posix) e_win -#else -# define BOOST_ASIO_NATIVE_ERROR(e) e -# define BOOST_ASIO_SOCKET_ERROR(e) e -# define BOOST_ASIO_NETDB_ERROR(e) e -# define BOOST_ASIO_GETADDRINFO_ERROR(e) e -# define BOOST_ASIO_WIN_OR_POSIX(e_win, e_posix) e_posix -#endif - -namespace boost { -namespace asio { -namespace error { - -enum basic_errors -{ - /// Permission denied. - access_denied = BOOST_ASIO_SOCKET_ERROR(EACCES), - - /// Address family not supported by protocol. - address_family_not_supported = BOOST_ASIO_SOCKET_ERROR(EAFNOSUPPORT), - - /// Address already in use. - address_in_use = BOOST_ASIO_SOCKET_ERROR(EADDRINUSE), - - /// Transport endpoint is already connected. - already_connected = BOOST_ASIO_SOCKET_ERROR(EISCONN), - - /// Operation already in progress. - already_started = BOOST_ASIO_SOCKET_ERROR(EALREADY), - - /// Broken pipe. - broken_pipe = BOOST_ASIO_WIN_OR_POSIX( - BOOST_ASIO_NATIVE_ERROR(ERROR_BROKEN_PIPE), - BOOST_ASIO_NATIVE_ERROR(EPIPE)), - - /// A connection has been aborted. - connection_aborted = BOOST_ASIO_SOCKET_ERROR(ECONNABORTED), - - /// Connection refused. - connection_refused = BOOST_ASIO_SOCKET_ERROR(ECONNREFUSED), - - /// Connection reset by peer. - connection_reset = BOOST_ASIO_SOCKET_ERROR(ECONNRESET), - - /// Bad file descriptor. - bad_descriptor = BOOST_ASIO_SOCKET_ERROR(EBADF), - - /// Bad address. - fault = BOOST_ASIO_SOCKET_ERROR(EFAULT), - - /// No route to host. - host_unreachable = BOOST_ASIO_SOCKET_ERROR(EHOSTUNREACH), - - /// Operation now in progress. - in_progress = BOOST_ASIO_SOCKET_ERROR(EINPROGRESS), - - /// Interrupted system call. - interrupted = BOOST_ASIO_SOCKET_ERROR(EINTR), - - /// Invalid argument. - invalid_argument = BOOST_ASIO_SOCKET_ERROR(EINVAL), - - /// Message too long. - message_size = BOOST_ASIO_SOCKET_ERROR(EMSGSIZE), - - /// The name was too long. - name_too_long = BOOST_ASIO_SOCKET_ERROR(ENAMETOOLONG), - - /// Network is down. - network_down = BOOST_ASIO_SOCKET_ERROR(ENETDOWN), - - /// Network dropped connection on reset. - network_reset = BOOST_ASIO_SOCKET_ERROR(ENETRESET), - - /// Network is unreachable. - network_unreachable = BOOST_ASIO_SOCKET_ERROR(ENETUNREACH), - - /// Too many open files. - no_descriptors = BOOST_ASIO_SOCKET_ERROR(EMFILE), - - /// No buffer space available. - no_buffer_space = BOOST_ASIO_SOCKET_ERROR(ENOBUFS), - - /// Cannot allocate memory. - no_memory = BOOST_ASIO_WIN_OR_POSIX( - BOOST_ASIO_NATIVE_ERROR(ERROR_OUTOFMEMORY), - BOOST_ASIO_NATIVE_ERROR(ENOMEM)), - - /// Operation not permitted. - no_permission = BOOST_ASIO_WIN_OR_POSIX( - BOOST_ASIO_NATIVE_ERROR(ERROR_ACCESS_DENIED), - BOOST_ASIO_NATIVE_ERROR(EPERM)), - - /// Protocol not available. - no_protocol_option = BOOST_ASIO_SOCKET_ERROR(ENOPROTOOPT), - - /// Transport endpoint is not connected. - not_connected = BOOST_ASIO_SOCKET_ERROR(ENOTCONN), - - /// Socket operation on non-socket. - not_socket = BOOST_ASIO_SOCKET_ERROR(ENOTSOCK), - - /// Operation cancelled. - operation_aborted = BOOST_ASIO_WIN_OR_POSIX( - BOOST_ASIO_NATIVE_ERROR(ERROR_OPERATION_ABORTED), - BOOST_ASIO_NATIVE_ERROR(ECANCELED)), - - /// Operation not supported. - operation_not_supported = BOOST_ASIO_SOCKET_ERROR(EOPNOTSUPP), - - /// Cannot send after transport endpoint shutdown. - shut_down = BOOST_ASIO_SOCKET_ERROR(ESHUTDOWN), - - /// Connection timed out. - timed_out = BOOST_ASIO_SOCKET_ERROR(ETIMEDOUT), - - /// Resource temporarily unavailable. - try_again = BOOST_ASIO_WIN_OR_POSIX( - BOOST_ASIO_NATIVE_ERROR(ERROR_RETRY), - BOOST_ASIO_NATIVE_ERROR(EAGAIN)), - - /// The socket is marked non-blocking and the requested operation would block. - would_block = BOOST_ASIO_SOCKET_ERROR(EWOULDBLOCK) -}; - -enum netdb_errors -{ - /// Host not found (authoritative). - host_not_found = BOOST_ASIO_NETDB_ERROR(HOST_NOT_FOUND), - - /// Host not found (non-authoritative). - host_not_found_try_again = BOOST_ASIO_NETDB_ERROR(TRY_AGAIN), - - /// The query is valid but does not have associated address data. - no_data = BOOST_ASIO_NETDB_ERROR(NO_DATA), - - /// A non-recoverable error occurred. - no_recovery = BOOST_ASIO_NETDB_ERROR(NO_RECOVERY) -}; - -enum addrinfo_errors -{ - /// The service is not supported for the given socket type. - service_not_found = BOOST_ASIO_WIN_OR_POSIX( - BOOST_ASIO_NATIVE_ERROR(WSATYPE_NOT_FOUND), - BOOST_ASIO_GETADDRINFO_ERROR(EAI_SERVICE)), - - /// The socket type is not supported. - socket_type_not_supported = BOOST_ASIO_WIN_OR_POSIX( - BOOST_ASIO_NATIVE_ERROR(WSAESOCKTNOSUPPORT), - BOOST_ASIO_GETADDRINFO_ERROR(EAI_SOCKTYPE)) -}; - -enum misc_errors -{ - /// Already open. - already_open = 1, - - /// End of file or stream. - eof, - - /// Element not found. - not_found, - - /// The descriptor cannot fit into the select system call's fd_set. - fd_set_failure -}; - -enum ssl_errors -{ -}; - -inline const boost::system::error_category& get_system_category() -{ - return boost::system::get_system_category(); -} - -#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -namespace detail { - -class netdb_category : public boost::system::error_category -{ -public: - const char* name() const - { - return "asio.netdb"; - } - - std::string message(int value) const - { - if (value == error::host_not_found) - return "Host not found (authoritative)"; - if (value == error::host_not_found_try_again) - return "Host not found (non-authoritative), try again later"; - if (value == error::no_data) - return "The query is valid, but it does not have associated data"; - if (value == error::no_recovery) - return "A non-recoverable error occurred during database lookup"; - return "asio.netdb error"; - } -}; - -} // namespace detail - -inline const boost::system::error_category& get_netdb_category() -{ - static detail::netdb_category instance; - return instance; -} - -namespace detail { - -class addrinfo_category : public boost::system::error_category -{ -public: - const char* name() const - { - return "asio.addrinfo"; - } - - std::string message(int value) const - { - if (value == error::service_not_found) - return "Service not found"; - if (value == error::socket_type_not_supported) - return "Socket type not supported"; - return "asio.addrinfo error"; - } -}; - -} // namespace detail - -inline const boost::system::error_category& get_addrinfo_category() -{ - static detail::addrinfo_category instance; - return instance; -} - -#else // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -inline const boost::system::error_category& get_netdb_category() -{ - return get_system_category(); -} - -inline const boost::system::error_category& get_addrinfo_category() -{ - return get_system_category(); -} - -#endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -namespace detail { - -class misc_category : public boost::system::error_category -{ -public: - const char* name() const - { - return "asio.misc"; - } - - std::string message(int value) const - { - if (value == error::already_open) - return "Already open"; - if (value == error::eof) - return "End of file"; - if (value == error::not_found) - return "Element not found"; - if (value == error::fd_set_failure) - return "The descriptor does not fit into the select call's fd_set"; - return "asio.misc error"; - } -}; - -} // namespace detail - -inline const boost::system::error_category& get_misc_category() -{ - static detail::misc_category instance; - return instance; -} - -namespace detail { - -class ssl_category : public boost::system::error_category -{ -public: - const char* name() const - { - return "asio.ssl"; - } - - std::string message(int) const - { - return "asio.ssl error"; - } -}; - -} // namespace detail - -inline const boost::system::error_category& get_ssl_category() -{ - static detail::ssl_category instance; - return instance; -} - -static const boost::system::error_category& system_category - = boost::asio::error::get_system_category(); -static const boost::system::error_category& netdb_category - = boost::asio::error::get_netdb_category(); -static const boost::system::error_category& addrinfo_category - = boost::asio::error::get_addrinfo_category(); -static const boost::system::error_category& misc_category - = boost::asio::error::get_misc_category(); -static const boost::system::error_category& ssl_category - = boost::asio::error::get_ssl_category(); - -} // namespace error -} // namespace asio - -namespace system { - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -template<> struct is_error_code_enum -{ - static const bool value = true; -}; - -} // namespace system - -namespace asio { -namespace error { - -inline boost::system::error_code make_error_code(basic_errors e) -{ - return boost::system::error_code( - static_cast(e), get_system_category()); -} - -inline boost::system::error_code make_error_code(netdb_errors e) -{ - return boost::system::error_code( - static_cast(e), get_netdb_category()); -} - -inline boost::system::error_code make_error_code(addrinfo_errors e) -{ - return boost::system::error_code( - static_cast(e), get_addrinfo_category()); -} - -inline boost::system::error_code make_error_code(misc_errors e) -{ - return boost::system::error_code( - static_cast(e), get_misc_category()); -} - -inline boost::system::error_code make_error_code(ssl_errors e) -{ - return boost::system::error_code( - static_cast(e), get_ssl_category()); -} - -} // namespace error -} // namespace asio -} // namespace boost - -#undef BOOST_ASIO_NATIVE_ERROR -#undef BOOST_ASIO_SOCKET_ERROR -#undef BOOST_ASIO_NETDB_ERROR -#undef BOOST_ASIO_GETADDRINFO_ERROR -#undef BOOST_ASIO_WIN_OR_POSIX - - -#include - -#endif // BOOST_ASIO_ERROR_HPP diff --git a/3rdParty/Boost/boost/asio/handler_alloc_hook.hpp b/3rdParty/Boost/boost/asio/handler_alloc_hook.hpp deleted file mode 100644 index e949529..0000000 --- a/3rdParty/Boost/boost/asio/handler_alloc_hook.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// -// handler_alloc_hook.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_HANDLER_ALLOC_HOOK_HPP -#define BOOST_ASIO_HANDLER_ALLOC_HOOK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Default allocation function for handlers. -/** - * Asynchronous operations may need to allocate temporary objects. Since - * asynchronous operations have a handler function object, these temporary - * objects can be said to be associated with the handler. - * - * Implement asio_handler_allocate and asio_handler_deallocate for your own - * handlers to provide custom allocation for these temporary objects. - * - * This default implementation is simply: - * @code - * return ::operator new(size); - * @endcode - * - * @note All temporary objects associated with a handler will be deallocated - * before the upcall to the handler is performed. This allows the same memory to - * be reused for a subsequent asynchronous operation initiated by the handler. - * - * @par Example - * @code - * class my_handler; - * - * void* asio_handler_allocate(std::size_t size, my_handler* context) - * { - * return ::operator new(size); - * } - * - * void asio_handler_deallocate(void* pointer, std::size_t size, - * my_handler* context) - * { - * ::operator delete(pointer); - * } - * @endcode - */ -inline void* asio_handler_allocate(std::size_t size, ...) -{ - return ::operator new(size); -} - -/// Default deallocation function for handlers. -/** - * Implement asio_handler_allocate and asio_handler_deallocate for your own - * handlers to provide custom allocation for the associated temporary objects. - * - * This default implementation is simply: - * @code - * ::operator delete(pointer); - * @endcode - * - * @sa asio_handler_allocate. - */ -inline void asio_handler_deallocate(void* pointer, std::size_t size, ...) -{ - (void)(size); - ::operator delete(pointer); -} - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_HANDLER_ALLOC_HOOK_HPP diff --git a/3rdParty/Boost/boost/asio/handler_invoke_hook.hpp b/3rdParty/Boost/boost/asio/handler_invoke_hook.hpp deleted file mode 100644 index d70a717..0000000 --- a/3rdParty/Boost/boost/asio/handler_invoke_hook.hpp +++ /dev/null @@ -1,71 +0,0 @@ -// -// handler_invoke_hook.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_HANDLER_INVOKE_HOOK_HPP -#define BOOST_ASIO_HANDLER_INVOKE_HOOK_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -namespace boost { -namespace asio { - -/// Default invoke function for handlers. -/** - * Completion handlers for asynchronous operations are invoked by the - * io_service associated with the corresponding object (e.g. a socket or - * deadline_timer). Certain guarantees are made on when the handler may be - * invoked, in particular that a handler can only be invoked from a thread that - * is currently calling boost::asio::io_service::run() on the corresponding - * io_service object. Handlers may subsequently be invoked through other - * objects (such as boost::asio::strand objects) that provide additional - * guarantees. - * - * When asynchronous operations are composed from other asynchronous - * operations, all intermediate handlers should be invoked using the same - * method as the final handler. This is required to ensure that user-defined - * objects are not accessed in a way that may violate the guarantees. This - * hooking function ensures that the invoked method used for the final handler - * is accessible at each intermediate step. - * - * Implement asio_handler_invoke for your own handlers to specify a custom - * invocation strategy. - * - * This default implementation is simply: - * @code - * function(); - * @endcode - * - * @par Example - * @code - * class my_handler; - * - * template - * void asio_handler_invoke(Function function, my_handler* context) - * { - * context->strand_.dispatch(function); - * } - * @endcode - */ -template -inline void asio_handler_invoke(Function function, ...) -{ - function(); -} - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_HANDLER_INVOKE_HOOK_HPP diff --git a/3rdParty/Boost/boost/asio/impl/io_service.ipp b/3rdParty/Boost/boost/asio/impl/io_service.ipp deleted file mode 100644 index e936f36..0000000 --- a/3rdParty/Boost/boost/asio/impl/io_service.ipp +++ /dev/null @@ -1,226 +0,0 @@ -// -// io_service.ipp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IO_SERVICE_IPP -#define BOOST_ASIO_IO_SERVICE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -inline io_service::io_service() - : service_registry_(new boost::asio::detail::service_registry(*this)), - impl_(service_registry_->use_service()) -{ - impl_.init((std::numeric_limits::max)()); -} - -inline io_service::io_service(std::size_t concurrency_hint) - : service_registry_(new boost::asio::detail::service_registry(*this)), - impl_(service_registry_->use_service()) -{ - impl_.init(concurrency_hint); -} - -inline io_service::~io_service() -{ - delete service_registry_; -} - -inline std::size_t io_service::run() -{ - boost::system::error_code ec; - std::size_t s = impl_.run(ec); - boost::asio::detail::throw_error(ec); - return s; -} - -inline std::size_t io_service::run(boost::system::error_code& ec) -{ - return impl_.run(ec); -} - -inline std::size_t io_service::run_one() -{ - boost::system::error_code ec; - std::size_t s = impl_.run_one(ec); - boost::asio::detail::throw_error(ec); - return s; -} - -inline std::size_t io_service::run_one(boost::system::error_code& ec) -{ - return impl_.run_one(ec); -} - -inline std::size_t io_service::poll() -{ - boost::system::error_code ec; - std::size_t s = impl_.poll(ec); - boost::asio::detail::throw_error(ec); - return s; -} - -inline std::size_t io_service::poll(boost::system::error_code& ec) -{ - return impl_.poll(ec); -} - -inline std::size_t io_service::poll_one() -{ - boost::system::error_code ec; - std::size_t s = impl_.poll_one(ec); - boost::asio::detail::throw_error(ec); - return s; -} - -inline std::size_t io_service::poll_one(boost::system::error_code& ec) -{ - return impl_.poll_one(ec); -} - -inline void io_service::stop() -{ - impl_.stop(); -} - -inline void io_service::reset() -{ - impl_.reset(); -} - -template -inline void io_service::dispatch(Handler handler) -{ - impl_.dispatch(handler); -} - -template -inline void io_service::post(Handler handler) -{ - impl_.post(handler); -} - -template -#if defined(GENERATING_DOCUMENTATION) -unspecified -#else -inline detail::wrapped_handler -#endif -io_service::wrap(Handler handler) -{ - return detail::wrapped_handler(*this, handler); -} - -inline io_service::work::work(boost::asio::io_service& io_service) - : io_service_(io_service) -{ - io_service_.impl_.work_started(); -} - -inline io_service::work::work(const work& other) - : io_service_(other.io_service_) -{ - io_service_.impl_.work_started(); -} - -inline io_service::work::~work() -{ - io_service_.impl_.work_finished(); -} - -inline boost::asio::io_service& io_service::work::io_service() -{ - return io_service_; -} - -inline boost::asio::io_service& io_service::work::get_io_service() -{ - return io_service_; -} - -inline io_service::service::service(boost::asio::io_service& owner) - : owner_(owner), - type_info_(0), - next_(0) -{ -} - -inline io_service::service::~service() -{ -} - -inline boost::asio::io_service& io_service::service::io_service() -{ - return owner_; -} - -inline boost::asio::io_service& io_service::service::get_io_service() -{ - return owner_; -} - -template -inline Service& use_service(io_service& ios) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - (void)static_cast(&Service::id); - - return ios.service_registry_->template use_service(); -} - -template -void add_service(io_service& ios, Service* svc) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - (void)static_cast(&Service::id); - - if (&ios != &svc->io_service()) - boost::throw_exception(invalid_service_owner()); - if (!ios.service_registry_->template add_service(svc)) - boost::throw_exception(service_already_exists()); -} - -template -bool has_service(io_service& ios) -{ - // Check that Service meets the necessary type requirements. - (void)static_cast(static_cast(0)); - (void)static_cast(&Service::id); - - return ios.service_registry_->template has_service(); -} - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IO_SERVICE_IPP diff --git a/3rdParty/Boost/boost/asio/impl/read.ipp b/3rdParty/Boost/boost/asio/impl/read.ipp deleted file mode 100644 index 453f697..0000000 --- a/3rdParty/Boost/boost/asio/impl/read.ipp +++ /dev/null @@ -1,349 +0,0 @@ -// -// read.ipp -// ~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_READ_IPP -#define BOOST_ASIO_READ_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, boost::system::error_code& ec) -{ - ec = boost::system::error_code(); - boost::asio::detail::consuming_buffers< - mutable_buffer, MutableBufferSequence> tmp(buffers); - std::size_t total_transferred = 0; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - while (tmp.begin() != tmp.end()) - { - std::size_t bytes_transferred = s.read_some(tmp, ec); - tmp.consume(bytes_transferred); - total_transferred += bytes_transferred; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - } - return total_transferred; -} - -template -inline std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read(s, buffers, transfer_all(), ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -inline std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read(s, buffers, completion_condition, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -std::size_t read(SyncReadStream& s, - boost::asio::basic_streambuf& b, - CompletionCondition completion_condition, boost::system::error_code& ec) -{ - ec = boost::system::error_code(); - std::size_t total_transferred = 0; - std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - std::size_t bytes_available = std::min(512, - std::min(max_size, b.max_size() - b.size())); - while (bytes_available > 0) - { - std::size_t bytes_transferred = s.read_some(b.prepare(bytes_available), ec); - b.commit(bytes_transferred); - total_transferred += bytes_transferred; - max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - bytes_available = std::min(512, - std::min(max_size, b.max_size() - b.size())); - } - return total_transferred; -} - -template -inline std::size_t read(SyncReadStream& s, - boost::asio::basic_streambuf& b) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read(s, b, transfer_all(), ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -inline std::size_t read(SyncReadStream& s, - boost::asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read(s, b, completion_condition, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -namespace detail -{ - template - class read_handler - { - public: - typedef boost::asio::detail::consuming_buffers< - mutable_buffer, MutableBufferSequence> buffers_type; - - read_handler(AsyncReadStream& stream, const buffers_type& buffers, - CompletionCondition completion_condition, ReadHandler handler) - : stream_(stream), - buffers_(buffers), - total_transferred_(0), - completion_condition_(completion_condition), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - total_transferred_ += bytes_transferred; - buffers_.consume(bytes_transferred); - buffers_.set_max_size(detail::adapt_completion_condition_result( - completion_condition_(ec, total_transferred_))); - if (buffers_.begin() == buffers_.end()) - { - handler_(ec, total_transferred_); - } - else - { - stream_.async_read_some(buffers_, *this); - } - } - - //private: - AsyncReadStream& stream_; - buffers_type buffers_; - std::size_t total_transferred_; - CompletionCondition completion_condition_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -inline void async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, ReadHandler handler) -{ - boost::asio::detail::consuming_buffers< - mutable_buffer, MutableBufferSequence> tmp(buffers); - - boost::system::error_code ec; - std::size_t total_transferred = 0; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - if (tmp.begin() == tmp.end()) - { - s.get_io_service().post(detail::bind_handler( - handler, ec, total_transferred)); - return; - } - - s.async_read_some(tmp, - detail::read_handler( - s, tmp, completion_condition, handler)); -} - -template -inline void async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - ReadHandler handler) -{ - async_read(s, buffers, transfer_all(), handler); -} - -namespace detail -{ - template - class read_streambuf_handler - { - public: - read_streambuf_handler(AsyncReadStream& stream, - basic_streambuf& streambuf, - CompletionCondition completion_condition, ReadHandler handler) - : stream_(stream), - streambuf_(streambuf), - total_transferred_(0), - completion_condition_(completion_condition), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - total_transferred_ += bytes_transferred; - streambuf_.commit(bytes_transferred); - std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition_(ec, total_transferred_)); - std::size_t bytes_available = std::min(512, - std::min(max_size, - streambuf_.max_size() - streambuf_.size())); - if (bytes_available == 0) - { - handler_(ec, total_transferred_); - } - else - { - stream_.async_read_some(streambuf_.prepare(bytes_available), *this); - } - } - - //private: - AsyncReadStream& stream_; - boost::asio::basic_streambuf& streambuf_; - std::size_t total_transferred_; - CompletionCondition completion_condition_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_streambuf_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_streambuf_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_streambuf_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -inline void async_read(AsyncReadStream& s, - boost::asio::basic_streambuf& b, - CompletionCondition completion_condition, ReadHandler handler) -{ - boost::system::error_code ec; - std::size_t total_transferred = 0; - std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - std::size_t bytes_available = std::min(512, - std::min(max_size, b.max_size() - b.size())); - if (bytes_available == 0) - { - s.get_io_service().post(detail::bind_handler( - handler, ec, total_transferred)); - return; - } - - s.async_read_some(b.prepare(bytes_available), - detail::read_streambuf_handler( - s, b, completion_condition, handler)); -} - -template -inline void async_read(AsyncReadStream& s, - boost::asio::basic_streambuf& b, ReadHandler handler) -{ - async_read(s, b, transfer_all(), handler); -} - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_READ_IPP diff --git a/3rdParty/Boost/boost/asio/impl/read_at.ipp b/3rdParty/Boost/boost/asio/impl/read_at.ipp deleted file mode 100644 index bf8a36d..0000000 --- a/3rdParty/Boost/boost/asio/impl/read_at.ipp +++ /dev/null @@ -1,367 +0,0 @@ -// -// read_at.ipp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_READ_AT_IPP -#define BOOST_ASIO_READ_AT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, boost::system::error_code& ec) -{ - ec = boost::system::error_code(); - boost::asio::detail::consuming_buffers< - mutable_buffer, MutableBufferSequence> tmp(buffers); - std::size_t total_transferred = 0; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - while (tmp.begin() != tmp.end()) - { - std::size_t bytes_transferred = d.read_some_at( - offset + total_transferred, tmp, ec); - tmp.consume(bytes_transferred); - total_transferred += bytes_transferred; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - } - return total_transferred; -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, const MutableBufferSequence& buffers) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, buffers, transfer_all(), ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, buffers, completion_condition, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, boost::asio::basic_streambuf& b, - CompletionCondition completion_condition, boost::system::error_code& ec) -{ - std::size_t total_transferred = 0; - for (;;) - { - std::size_t bytes_available = - std::min(512, b.max_size() - b.size()); - std::size_t bytes_transferred = d.read_some_at( - offset + total_transferred, b.prepare(bytes_available), ec); - b.commit(bytes_transferred); - total_transferred += bytes_transferred; - if (b.size() == b.max_size() - || completion_condition(ec, total_transferred)) - return total_transferred; - } -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, boost::asio::basic_streambuf& b) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, b, transfer_all(), ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -inline std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, boost::asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read_at( - d, offset, b, completion_condition, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -namespace detail -{ - template - class read_at_handler - { - public: - typedef boost::asio::detail::consuming_buffers< - mutable_buffer, MutableBufferSequence> buffers_type; - - read_at_handler(AsyncRandomAccessReadDevice& stream, - boost::uint64_t offset, const buffers_type& buffers, - CompletionCondition completion_condition, ReadHandler handler) - : stream_(stream), - offset_(offset), - buffers_(buffers), - total_transferred_(0), - completion_condition_(completion_condition), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - total_transferred_ += bytes_transferred; - buffers_.consume(bytes_transferred); - buffers_.set_max_size(detail::adapt_completion_condition_result( - completion_condition_(ec, total_transferred_))); - if (buffers_.begin() == buffers_.end()) - { - handler_(ec, total_transferred_); - } - else - { - stream_.async_read_some_at( - offset_ + total_transferred_, buffers_, *this); - } - } - - //private: - AsyncRandomAccessReadDevice& stream_; - boost::uint64_t offset_; - buffers_type buffers_; - std::size_t total_transferred_; - CompletionCondition completion_condition_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_at_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_at_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_at_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -inline void async_read_at(AsyncRandomAccessReadDevice& d, - boost::uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, ReadHandler handler) -{ - boost::asio::detail::consuming_buffers< - mutable_buffer, MutableBufferSequence> tmp(buffers); - - boost::system::error_code ec; - std::size_t total_transferred = 0; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - if (tmp.begin() == tmp.end()) - { - d.get_io_service().post(detail::bind_handler( - handler, ec, total_transferred)); - return; - } - - d.async_read_some_at(offset, tmp, - detail::read_at_handler( - d, offset, tmp, completion_condition, handler)); -} - -template -inline void async_read_at(AsyncRandomAccessReadDevice& d, - boost::uint64_t offset, const MutableBufferSequence& buffers, - ReadHandler handler) -{ - async_read_at(d, offset, buffers, transfer_all(), handler); -} - -namespace detail -{ - template - class read_at_streambuf_handler - { - public: - read_at_streambuf_handler(AsyncRandomAccessReadDevice& stream, - boost::uint64_t offset, basic_streambuf& streambuf, - CompletionCondition completion_condition, ReadHandler handler) - : stream_(stream), - offset_(offset), - streambuf_(streambuf), - total_transferred_(0), - completion_condition_(completion_condition), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - total_transferred_ += bytes_transferred; - streambuf_.commit(bytes_transferred); - std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition_(ec, total_transferred_)); - std::size_t bytes_available = std::min(512, - std::min(max_size, - streambuf_.max_size() - streambuf_.size())); - if (bytes_available == 0) - { - handler_(ec, total_transferred_); - } - else - { - stream_.async_read_some_at(offset_ + total_transferred_, - streambuf_.prepare(bytes_available), *this); - } - } - - //private: - AsyncRandomAccessReadDevice& stream_; - boost::uint64_t offset_; - boost::asio::basic_streambuf& streambuf_; - std::size_t total_transferred_; - CompletionCondition completion_condition_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_at_streambuf_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_at_streambuf_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_at_streambuf_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -inline void async_read_at(AsyncRandomAccessReadDevice& d, - boost::uint64_t offset, boost::asio::basic_streambuf& b, - CompletionCondition completion_condition, ReadHandler handler) -{ - boost::system::error_code ec; - std::size_t total_transferred = 0; - std::size_t max_size = detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred)); - std::size_t bytes_available = std::min(512, - std::min(max_size, b.max_size() - b.size())); - if (bytes_available == 0) - { - d.get_io_service().post(detail::bind_handler( - handler, ec, total_transferred)); - return; - } - - d.async_read_some_at(offset, b.prepare(bytes_available), - detail::read_at_streambuf_handler( - d, offset, b, completion_condition, handler)); -} - -template -inline void async_read_at(AsyncRandomAccessReadDevice& d, - boost::uint64_t offset, boost::asio::basic_streambuf& b, - ReadHandler handler) -{ - async_read_at(d, offset, b, transfer_all(), handler); -} - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_READ_AT_IPP diff --git a/3rdParty/Boost/boost/asio/impl/read_until.ipp b/3rdParty/Boost/boost/asio/impl/read_until.ipp deleted file mode 100644 index df4a568..0000000 --- a/3rdParty/Boost/boost/asio/impl/read_until.ipp +++ /dev/null @@ -1,989 +0,0 @@ -// -// read_until.ipp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_READ_UNTIL_IPP -#define BOOST_ASIO_READ_UNTIL_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -template -inline std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, char delim) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read_until(s, b, delim, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, char delim, - boost::system::error_code& ec) -{ - std::size_t next_search_start = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = b.data(); - iterator begin = iterator::begin(buffers); - iterator start = begin + next_search_start; - iterator end = iterator::end(buffers); - - // Look for a match. - iterator iter = std::find(start, end, delim); - if (iter != end) - { - // Found a match. We're done. - ec = boost::system::error_code(); - return iter - begin + 1; - } - else - { - // No match. Next search can start with the new data. - next_search_start = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_available = - std::min(512, b.max_size() - b.size()); - b.commit(s.read_some(b.prepare(bytes_available), ec)); - if (ec) - return 0; - } -} - -template -inline std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, const std::string& delim) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read_until(s, b, delim, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -namespace detail -{ - // Algorithm that finds a subsequence of equal values in a sequence. Returns - // (iterator,true) if a full match was found, in which case the iterator - // points to the beginning of the match. Returns (iterator,false) if a - // partial match was found at the end of the first sequence, in which case - // the iterator points to the beginning of the partial match. Returns - // (last1,false) if no full or partial match was found. - template - std::pair partial_search( - Iterator1 first1, Iterator1 last1, Iterator2 first2, Iterator2 last2) - { - for (Iterator1 iter1 = first1; iter1 != last1; ++iter1) - { - Iterator1 test_iter1 = iter1; - Iterator2 test_iter2 = first2; - for (;; ++test_iter1, ++test_iter2) - { - if (test_iter2 == last2) - return std::make_pair(iter1, true); - if (test_iter1 == last1) - { - if (test_iter2 != first2) - return std::make_pair(iter1, false); - else - break; - } - if (*test_iter1 != *test_iter2) - break; - } - } - return std::make_pair(last1, false); - } -} // namespace detail - -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, const std::string& delim, - boost::system::error_code& ec) -{ - std::size_t next_search_start = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = b.data(); - iterator begin = iterator::begin(buffers); - iterator start = begin + next_search_start; - iterator end = iterator::end(buffers); - - // Look for a match. - std::pair result = boost::asio::detail::partial_search( - start, end, delim.begin(), delim.end()); - if (result.first != end) - { - if (result.second) - { - // Full match. We're done. - ec = boost::system::error_code(); - return result.first - begin + delim.length(); - } - else - { - // Partial match. Next search needs to start from beginning of match. - next_search_start = result.first - begin; - } - } - else - { - // No match. Next search can start with the new data. - next_search_start = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_available = - std::min(512, b.max_size() - b.size()); - b.commit(s.read_some(b.prepare(bytes_available), ec)); - if (ec) - return 0; - } -} - -template -inline std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, const boost::regex& expr) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read_until(s, b, expr, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, const boost::regex& expr, - boost::system::error_code& ec) -{ - std::size_t next_search_start = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = b.data(); - iterator begin = iterator::begin(buffers); - iterator start = begin + next_search_start; - iterator end = iterator::end(buffers); - - // Look for a match. - boost::match_results match_results; - if (boost::regex_search(start, end, match_results, expr, - boost::match_default | boost::match_partial)) - { - if (match_results[0].matched) - { - // Full match. We're done. - ec = boost::system::error_code(); - return match_results[0].second - begin; - } - else - { - // Partial match. Next search needs to start from beginning of match. - next_search_start = match_results[0].first - begin; - } - } - else - { - // No match. Next search can start with the new data. - next_search_start = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_available = - std::min(512, b.max_size() - b.size()); - b.commit(s.read_some(b.prepare(bytes_available), ec)); - if (ec) - return 0; - } -} - -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, - MatchCondition match_condition, boost::system::error_code& ec, - typename boost::enable_if >::type*) -{ - std::size_t next_search_start = 0; - for (;;) - { - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = b.data(); - iterator begin = iterator::begin(buffers); - iterator start = begin + next_search_start; - iterator end = iterator::end(buffers); - - // Look for a match. - std::pair result = match_condition(start, end); - if (result.second) - { - // Full match. We're done. - ec = boost::system::error_code(); - return result.first - begin; - } - else if (result.first != end) - { - // Partial match. Next search needs to start from beginning of match. - next_search_start = result.first - begin; - } - else - { - // No match. Next search can start with the new data. - next_search_start = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - ec = error::not_found; - return 0; - } - - // Need more data. - std::size_t bytes_available = - std::min(512, b.max_size() - b.size()); - b.commit(s.read_some(b.prepare(bytes_available), ec)); - if (ec) - return 0; - } -} - -template -inline std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, MatchCondition match_condition, - typename boost::enable_if >::type*) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = read_until(s, b, match_condition, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -namespace detail -{ - template - class read_until_delim_handler - { - public: - read_until_delim_handler(AsyncReadStream& stream, - boost::asio::basic_streambuf& streambuf, char delim, - std::size_t next_search_start, ReadHandler handler) - : stream_(stream), - streambuf_(streambuf), - delim_(delim), - next_search_start_(next_search_start), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - // Check for errors. - if (ec) - { - std::size_t bytes = 0; - handler_(ec, bytes); - return; - } - - // Commit received data to streambuf's get area. - streambuf_.commit(bytes_transferred); - - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = streambuf_.data(); - iterator begin = iterator::begin(buffers); - iterator start = begin + next_search_start_; - iterator end = iterator::end(buffers); - - // Look for a match. - iterator iter = std::find(start, end, delim_); - if (iter != end) - { - // Found a match. We're done. - std::size_t bytes = iter - begin + 1; - handler_(ec, bytes); - return; - } - - // No match. Check if buffer is full. - if (streambuf_.size() == streambuf_.max_size()) - { - std::size_t bytes = 0; - boost::system::error_code ec(error::not_found); - handler_(ec, bytes); - return; - } - - // Next search can start with the new data. - next_search_start_ = end - begin; - - // Start a new asynchronous read operation to obtain more data. - std::size_t bytes_available = - std::min(512, streambuf_.max_size() - streambuf_.size()); - stream_.async_read_some(streambuf_.prepare(bytes_available), *this); - } - - //private: - AsyncReadStream& stream_; - boost::asio::basic_streambuf& streambuf_; - char delim_; - std::size_t next_search_start_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_delim_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_delim_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_delim_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -void async_read_until(AsyncReadStream& s, - boost::asio::basic_streambuf& b, char delim, ReadHandler handler) -{ - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = b.data(); - iterator begin = iterator::begin(buffers); - iterator end = iterator::end(buffers); - - // Look for a match. - iterator iter = std::find(begin, end, delim); - if (iter != end) - { - // Found a match. We're done. - boost::system::error_code ec; - std::size_t bytes = iter - begin + 1; - s.get_io_service().post(detail::bind_handler(handler, ec, bytes)); - return; - } - - // No match. Check if buffer is full. - if (b.size() == b.max_size()) - { - boost::system::error_code ec(error::not_found); - s.get_io_service().post(detail::bind_handler(handler, ec, 0)); - return; - } - - // Start a new asynchronous read operation to obtain more data. - std::size_t bytes_available = - std::min(512, b.max_size() - b.size()); - s.async_read_some(b.prepare(bytes_available), - detail::read_until_delim_handler( - s, b, delim, end - begin, handler)); -} - -namespace detail -{ - template - class read_until_delim_string_handler - { - public: - read_until_delim_string_handler(AsyncReadStream& stream, - boost::asio::basic_streambuf& streambuf, - const std::string& delim, std::size_t next_search_start, - ReadHandler handler) - : stream_(stream), - streambuf_(streambuf), - delim_(delim), - next_search_start_(next_search_start), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - // Check for errors. - if (ec) - { - std::size_t bytes = 0; - handler_(ec, bytes); - return; - } - - // Commit received data to streambuf's get area. - streambuf_.commit(bytes_transferred); - - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = streambuf_.data(); - iterator begin = iterator::begin(buffers); - iterator start = begin + next_search_start_; - iterator end = iterator::end(buffers); - - // Look for a match. - std::pair result = boost::asio::detail::partial_search( - start, end, delim_.begin(), delim_.end()); - if (result.first != end) - { - if (result.second) - { - // Full match. We're done. - std::size_t bytes = result.first - begin + delim_.length(); - handler_(ec, bytes); - return; - } - else - { - // Partial match. Next search needs to start from beginning of match. - next_search_start_ = result.first - begin; - } - } - else - { - // No match. Next search can start with the new data. - next_search_start_ = end - begin; - } - - // Check if buffer is full. - if (streambuf_.size() == streambuf_.max_size()) - { - std::size_t bytes = 0; - boost::system::error_code ec2(error::not_found); - handler_(ec2, bytes); - return; - } - - // Start a new asynchronous read operation to obtain more data. - std::size_t bytes_available = - std::min(512, streambuf_.max_size() - streambuf_.size()); - stream_.async_read_some(streambuf_.prepare(bytes_available), *this); - } - - //private: - AsyncReadStream& stream_; - boost::asio::basic_streambuf& streambuf_; - std::string delim_; - std::size_t next_search_start_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_delim_string_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_delim_string_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_delim_string_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -void async_read_until(AsyncReadStream& s, - boost::asio::basic_streambuf& b, const std::string& delim, - ReadHandler handler) -{ - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = b.data(); - iterator begin = iterator::begin(buffers); - iterator end = iterator::end(buffers); - - // Look for a match. - std::size_t next_search_start; - std::pair result = boost::asio::detail::partial_search( - begin, end, delim.begin(), delim.end()); - if (result.first != end) - { - if (result.second) - { - // Full match. We're done. - boost::system::error_code ec; - std::size_t bytes = result.first - begin + delim.length(); - s.get_io_service().post(detail::bind_handler(handler, ec, bytes)); - return; - } - else - { - // Partial match. Next search needs to start from beginning of match. - next_search_start = result.first - begin; - } - } - else - { - // No match. Next search can start with the new data. - next_search_start = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - boost::system::error_code ec(error::not_found); - s.get_io_service().post(detail::bind_handler(handler, ec, 0)); - return; - } - - // Start a new asynchronous read operation to obtain more data. - std::size_t bytes_available = - std::min(512, b.max_size() - b.size()); - s.async_read_some(b.prepare(bytes_available), - detail::read_until_delim_string_handler< - AsyncReadStream, Allocator, ReadHandler>( - s, b, delim, next_search_start, handler)); -} - -namespace detail -{ - template - class read_until_expr_handler - { - public: - read_until_expr_handler(AsyncReadStream& stream, - boost::asio::basic_streambuf& streambuf, - const boost::regex& expr, std::size_t next_search_start, - ReadHandler handler) - : stream_(stream), - streambuf_(streambuf), - expr_(expr), - next_search_start_(next_search_start), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - // Check for errors. - if (ec) - { - std::size_t bytes = 0; - handler_(ec, bytes); - return; - } - - // Commit received data to streambuf's get area. - streambuf_.commit(bytes_transferred); - - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = streambuf_.data(); - iterator begin = iterator::begin(buffers); - iterator start = begin + next_search_start_; - iterator end = iterator::end(buffers); - - // Look for a match. - boost::match_results match_results; - if (boost::regex_search(start, end, match_results, expr_, - boost::match_default | boost::match_partial)) - { - if (match_results[0].matched) - { - // Full match. We're done. - std::size_t bytes = match_results[0].second - begin; - handler_(ec, bytes); - return; - } - else - { - // Partial match. Next search needs to start from beginning of match. - next_search_start_ = match_results[0].first - begin; - } - } - else - { - // No match. Next search can start with the new data. - next_search_start_ = end - begin; - } - - // Check if buffer is full. - if (streambuf_.size() == streambuf_.max_size()) - { - std::size_t bytes = 0; - boost::system::error_code ec(error::not_found); - handler_(ec, bytes); - return; - } - - // Start a new asynchronous read operation to obtain more data. - std::size_t bytes_available = - std::min(512, streambuf_.max_size() - streambuf_.size()); - stream_.async_read_some(streambuf_.prepare(bytes_available), *this); - } - - //private: - AsyncReadStream& stream_; - boost::asio::basic_streambuf& streambuf_; - boost::regex expr_; - std::size_t next_search_start_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_expr_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_expr_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_expr_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -void async_read_until(AsyncReadStream& s, - boost::asio::basic_streambuf& b, const boost::regex& expr, - ReadHandler handler) -{ - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = b.data(); - iterator begin = iterator::begin(buffers); - iterator end = iterator::end(buffers); - - // Look for a match. - std::size_t next_search_start; - boost::match_results match_results; - if (boost::regex_search(begin, end, match_results, expr, - boost::match_default | boost::match_partial)) - { - if (match_results[0].matched) - { - // Full match. We're done. - boost::system::error_code ec; - std::size_t bytes = match_results[0].second - begin; - s.get_io_service().post(detail::bind_handler(handler, ec, bytes)); - return; - } - else - { - // Partial match. Next search needs to start from beginning of match. - next_search_start = match_results[0].first - begin; - } - } - else - { - // No match. Next search can start with the new data. - next_search_start = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - boost::system::error_code ec(error::not_found); - s.get_io_service().post(detail::bind_handler(handler, ec, 0)); - return; - } - - // Start a new asynchronous read operation to obtain more data. - std::size_t bytes_available = - std::min(512, b.max_size() - b.size()); - s.async_read_some(b.prepare(bytes_available), - detail::read_until_expr_handler( - s, b, expr, next_search_start, handler)); -} - -namespace detail -{ - template - class read_until_match_handler - { - public: - read_until_match_handler(AsyncReadStream& stream, - boost::asio::basic_streambuf& streambuf, - MatchCondition match_condition, std::size_t next_search_start, - ReadHandler handler) - : stream_(stream), - streambuf_(streambuf), - match_condition_(match_condition), - next_search_start_(next_search_start), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - // Check for errors. - if (ec) - { - std::size_t bytes = 0; - handler_(ec, bytes); - return; - } - - // Commit received data to streambuf's get area. - streambuf_.commit(bytes_transferred); - - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = streambuf_.data(); - iterator begin = iterator::begin(buffers); - iterator start = begin + next_search_start_; - iterator end = iterator::end(buffers); - - // Look for a match. - std::pair result = match_condition_(start, end); - if (result.second) - { - // Full match. We're done. - std::size_t bytes = result.first - begin; - handler_(ec, bytes); - return; - } - else if (result.first != end) - { - // Partial match. Next search needs to start from beginning of match. - next_search_start_ = result.first - begin; - } - else - { - // No match. Next search can start with the new data. - next_search_start_ = end - begin; - } - - // Check if buffer is full. - if (streambuf_.size() == streambuf_.max_size()) - { - std::size_t bytes = 0; - boost::system::error_code ec(error::not_found); - handler_(ec, bytes); - return; - } - - // Start a new asynchronous read operation to obtain more data. - std::size_t bytes_available = - std::min(512, streambuf_.max_size() - streambuf_.size()); - stream_.async_read_some(streambuf_.prepare(bytes_available), *this); - } - - //private: - AsyncReadStream& stream_; - boost::asio::basic_streambuf& streambuf_; - MatchCondition match_condition_; - std::size_t next_search_start_; - ReadHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - read_until_match_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - read_until_match_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - read_until_match_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -void async_read_until(AsyncReadStream& s, - boost::asio::basic_streambuf& b, - MatchCondition match_condition, ReadHandler handler, - typename boost::enable_if >::type*) -{ - // Determine the range of the data to be searched. - typedef typename boost::asio::basic_streambuf< - Allocator>::const_buffers_type const_buffers_type; - typedef boost::asio::buffers_iterator iterator; - const_buffers_type buffers = b.data(); - iterator begin = iterator::begin(buffers); - iterator end = iterator::end(buffers); - - // Look for a match. - std::size_t next_search_start; - std::pair result = match_condition(begin, end); - if (result.second) - { - // Full match. We're done. - boost::system::error_code ec; - std::size_t bytes = result.first - begin; - s.get_io_service().post(detail::bind_handler(handler, ec, bytes)); - return; - } - else if (result.first != end) - { - // Partial match. Next search needs to start from beginning of match. - next_search_start = result.first - begin; - } - else - { - // No match. Next search can start with the new data. - next_search_start = end - begin; - } - - // Check if buffer is full. - if (b.size() == b.max_size()) - { - boost::system::error_code ec(error::not_found); - s.get_io_service().post(detail::bind_handler(handler, ec, 0)); - return; - } - - // Start a new asynchronous read operation to obtain more data. - std::size_t bytes_available = - std::min(512, b.max_size() - b.size()); - s.async_read_some(b.prepare(bytes_available), - detail::read_until_match_handler< - AsyncReadStream, Allocator, MatchCondition, ReadHandler>( - s, b, match_condition, next_search_start, handler)); -} - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_READ_UNTIL_IPP diff --git a/3rdParty/Boost/boost/asio/impl/serial_port_base.ipp b/3rdParty/Boost/boost/asio/impl/serial_port_base.ipp deleted file mode 100644 index 0470ff2..0000000 --- a/3rdParty/Boost/boost/asio/impl/serial_port_base.ipp +++ /dev/null @@ -1,543 +0,0 @@ -// -// serial_port_base.ipp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_SERIAL_PORT_BASE_IPP -#define BOOST_ASIO_SERIAL_PORT_BASE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -namespace boost { -namespace asio { - -inline serial_port_base::baud_rate::baud_rate(unsigned int rate) - : value_(rate) -{ -} - -inline unsigned int serial_port_base::baud_rate::value() const -{ - return value_; -} - -inline boost::system::error_code serial_port_base::baud_rate::store( - BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) const -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - storage.BaudRate = value_; -#else - speed_t baud; - switch (value_) - { - // Do POSIX-specified rates first. - case 0: baud = B0; break; - case 50: baud = B50; break; - case 75: baud = B75; break; - case 110: baud = B110; break; - case 134: baud = B134; break; - case 150: baud = B150; break; - case 200: baud = B200; break; - case 300: baud = B300; break; - case 600: baud = B600; break; - case 1200: baud = B1200; break; - case 1800: baud = B1800; break; - case 2400: baud = B2400; break; - case 4800: baud = B4800; break; - case 9600: baud = B9600; break; - case 19200: baud = B19200; break; - case 38400: baud = B38400; break; - // And now the extended ones conditionally. -# ifdef B7200 - case 7200: baud = B7200; break; -# endif -# ifdef B14400 - case 14400: baud = B14400; break; -# endif -# ifdef B57600 - case 57600: baud = B57600; break; -# endif -# ifdef B115200 - case 115200: baud = B115200; break; -# endif -# ifdef B230400 - case 230400: baud = B230400; break; -# endif -# ifdef B460800 - case 460800: baud = B460800; break; -# endif -# ifdef B500000 - case 500000: baud = B500000; break; -# endif -# ifdef B576000 - case 576000: baud = B576000; break; -# endif -# ifdef B921600 - case 921600: baud = B921600; break; -# endif -# ifdef B1000000 - case 1000000: baud = B1000000; break; -# endif -# ifdef B1152000 - case 1152000: baud = B1152000; break; -# endif -# ifdef B2000000 - case 2000000: baud = B2000000; break; -# endif -# ifdef B3000000 - case 3000000: baud = B3000000; break; -# endif -# ifdef B3500000 - case 3500000: baud = B3500000; break; -# endif -# ifdef B4000000 - case 4000000: baud = B4000000; break; -# endif - default: - baud = B0; - ec = boost::asio::error::invalid_argument; - return ec; - } -# if defined(_BSD_SOURCE) - ::cfsetspeed(&storage, baud); -# else - ::cfsetispeed(&storage, baud); - ::cfsetospeed(&storage, baud); -# endif -#endif - ec = boost::system::error_code(); - return ec; -} - -inline boost::system::error_code serial_port_base::baud_rate::load( - const BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - value_ = storage.BaudRate; -#else - speed_t baud = ::cfgetospeed(&storage); - switch (baud) - { - // First do those specified by POSIX. - case B0: value_ = 0; break; - case B50: value_ = 50; break; - case B75: value_ = 75; break; - case B110: value_ = 110; break; - case B134: value_ = 134; break; - case B150: value_ = 150; break; - case B200: value_ = 200; break; - case B300: value_ = 300; break; - case B600: value_ = 600; break; - case B1200: value_ = 1200; break; - case B1800: value_ = 1800; break; - case B2400: value_ = 2400; break; - case B4800: value_ = 4800; break; - case B9600: value_ = 9600; break; - case B19200: value_ = 19200; break; - case B38400: value_ = 38400; break; - // Now conditionally handle a bunch of extended rates. -# ifdef B7200 - case B7200: value_ = 7200; break; -# endif -# ifdef B14400 - case B14400: value_ = 14400; break; -# endif -# ifdef B57600 - case B57600: value_ = 57600; break; -# endif -# ifdef B115200 - case B115200: value_ = 115200; break; -# endif -# ifdef B230400 - case B230400: value_ = 230400; break; -# endif -# ifdef B460800 - case B460800: value_ = 460800; break; -# endif -# ifdef B500000 - case B500000: value_ = 500000; break; -# endif -# ifdef B576000 - case B576000: value_ = 576000; break; -# endif -# ifdef B921600 - case B921600: value_ = 921600; break; -# endif -# ifdef B1000000 - case B1000000: value_ = 1000000; break; -# endif -# ifdef B1152000 - case B1152000: value_ = 1152000; break; -# endif -# ifdef B2000000 - case B2000000: value_ = 2000000; break; -# endif -# ifdef B3000000 - case B3000000: value_ = 3000000; break; -# endif -# ifdef B3500000 - case B3500000: value_ = 3500000; break; -# endif -# ifdef B4000000 - case B4000000: value_ = 4000000; break; -# endif - default: - value_ = 0; - ec = boost::asio::error::invalid_argument; - return ec; - } -#endif - ec = boost::system::error_code(); - return ec; -} - -inline serial_port_base::flow_control::flow_control( - serial_port_base::flow_control::type t) - : value_(t) -{ - if (t != none && t != software && t != hardware) - throw std::out_of_range("invalid flow_control value"); -} - -inline serial_port_base::flow_control::type -serial_port_base::flow_control::value() const -{ - return value_; -} - -inline boost::system::error_code serial_port_base::flow_control::store( - BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) const -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - storage.fOutxCtsFlow = FALSE; - storage.fOutxDsrFlow = FALSE; - storage.fTXContinueOnXoff = TRUE; - storage.fDtrControl = DTR_CONTROL_ENABLE; - storage.fDsrSensitivity = FALSE; - storage.fOutX = FALSE; - storage.fInX = FALSE; - storage.fRtsControl = RTS_CONTROL_ENABLE; - switch (value_) - { - case none: - break; - case software: - storage.fOutX = TRUE; - storage.fInX = TRUE; - break; - case hardware: - storage.fOutxCtsFlow = TRUE; - storage.fRtsControl = RTS_CONTROL_HANDSHAKE; - break; - default: - break; - } -#else - switch (value_) - { - case none: - storage.c_iflag &= ~(IXOFF | IXON); -# if defined(_BSD_SOURCE) - storage.c_cflag &= ~CRTSCTS; -# endif - break; - case software: - storage.c_iflag |= IXOFF | IXON; -# if defined(_BSD_SOURCE) - storage.c_cflag &= ~CRTSCTS; -# endif - break; - case hardware: -# if defined(_BSD_SOURCE) - storage.c_iflag &= ~(IXOFF | IXON); - storage.c_cflag |= CRTSCTS; - break; -# else - ec = boost::asio::error::operation_not_supported; - return ec; -# endif - default: - break; - } -#endif - ec = boost::system::error_code(); - return ec; -} - -inline boost::system::error_code serial_port_base::flow_control::load( - const BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - if (storage.fOutX && storage.fInX) - { - value_ = software; - } - else if (storage.fOutxCtsFlow && storage.fRtsControl == RTS_CONTROL_HANDSHAKE) - { - value_ = hardware; - } - else - { - value_ = none; - } -#else - if (storage.c_iflag & (IXOFF | IXON)) - { - value_ = software; - } -# if defined(_BSD_SOURCE) - else if (storage.c_cflag & CRTSCTS) - { - value_ = hardware; - } -# endif - else - { - value_ = none; - } -#endif - ec = boost::system::error_code(); - return ec; -} - -inline serial_port_base::parity::parity(serial_port_base::parity::type t) - : value_(t) -{ - if (t != none && t != odd && t != even) - throw std::out_of_range("invalid parity value"); -} - -inline serial_port_base::parity::type serial_port_base::parity::value() const -{ - return value_; -} - -inline boost::system::error_code serial_port_base::parity::store( - BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) const -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - switch (value_) - { - case none: - storage.fParity = FALSE; - storage.Parity = NOPARITY; - break; - case odd: - storage.fParity = TRUE; - storage.Parity = ODDPARITY; - break; - case even: - storage.fParity = TRUE; - storage.Parity = EVENPARITY; - break; - default: - break; - } -#else - switch (value_) - { - case none: - storage.c_iflag |= IGNPAR; - storage.c_cflag &= ~(PARENB | PARODD); - break; - case even: - storage.c_iflag &= ~(IGNPAR | PARMRK); - storage.c_iflag |= INPCK; - storage.c_cflag |= PARENB; - storage.c_cflag &= ~PARODD; - break; - case odd: - storage.c_iflag &= ~(IGNPAR | PARMRK); - storage.c_iflag |= INPCK; - storage.c_cflag |= (PARENB | PARODD); - break; - default: - break; - } -#endif - ec = boost::system::error_code(); - return ec; -} - -inline boost::system::error_code serial_port_base::parity::load( - const BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - if (storage.Parity == EVENPARITY) - { - value_ = even; - } - else if (storage.Parity == ODDPARITY) - { - value_ = odd; - } - else - { - value_ = none; - } -#else - if (storage.c_cflag & PARENB) - { - if (storage.c_cflag & PARODD) - { - value_ = odd; - } - else - { - value_ = even; - } - } - else - { - value_ = none; - } -#endif - ec = boost::system::error_code(); - return ec; -} - -inline serial_port_base::stop_bits::stop_bits( - serial_port_base::stop_bits::type t) - : value_(t) -{ - if (t != one && t != onepointfive && t != two) - throw std::out_of_range("invalid stop_bits value"); -} - -inline serial_port_base::stop_bits::type -serial_port_base::stop_bits::value() const -{ - return value_; -} - -inline boost::system::error_code serial_port_base::stop_bits::store( - BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) const -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - switch (value_) - { - case one: - storage.StopBits = ONESTOPBIT; - break; - case onepointfive: - storage.StopBits = ONE5STOPBITS; - break; - case two: - storage.StopBits = TWOSTOPBITS; - break; - default: - break; - } -#else - switch (value_) - { - case one: - storage.c_cflag &= ~CSTOPB; - break; - case two: - storage.c_cflag |= CSTOPB; - break; - default: - ec = boost::asio::error::operation_not_supported; - return ec; - } -#endif - ec = boost::system::error_code(); - return ec; -} - -inline boost::system::error_code serial_port_base::stop_bits::load( - const BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - if (storage.StopBits == ONESTOPBIT) - { - value_ = one; - } - else if (storage.StopBits == ONE5STOPBITS) - { - value_ = onepointfive; - } - else if (storage.StopBits == TWOSTOPBITS) - { - value_ = two; - } - else - { - value_ = one; - } -#else - value_ = (storage.c_cflag & CSTOPB) ? two : one; -#endif - ec = boost::system::error_code(); - return ec; -} - -inline serial_port_base::character_size::character_size(unsigned int t) - : value_(t) -{ - if (t < 5 || t > 8) - throw std::out_of_range("invalid character_size value"); -} - -inline unsigned int serial_port_base::character_size::value() const -{ - return value_; -} - -inline boost::system::error_code serial_port_base::character_size::store( - BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) const -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - storage.ByteSize = value_; -#else - storage.c_cflag &= ~CSIZE; - switch (value_) - { - case 5: storage.c_cflag |= CS5; break; - case 6: storage.c_cflag |= CS6; break; - case 7: storage.c_cflag |= CS7; break; - case 8: storage.c_cflag |= CS8; break; - default: break; - } -#endif - ec = boost::system::error_code(); - return ec; -} - -inline boost::system::error_code serial_port_base::character_size::load( - const BOOST_ASIO_OPTION_STORAGE& storage, boost::system::error_code& ec) -{ -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - value_ = storage.ByteSize; -#else - if ((storage.c_cflag & CSIZE) == CS5) { value_ = 5; } - else if ((storage.c_cflag & CSIZE) == CS6) { value_ = 6; } - else if ((storage.c_cflag & CSIZE) == CS7) { value_ = 7; } - else if ((storage.c_cflag & CSIZE) == CS8) { value_ = 8; } - else - { - // Hmmm, use 8 for now. - value_ = 8; - } -#endif - ec = boost::system::error_code(); - return ec; -} - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_SERIAL_PORT_BASE_IPP diff --git a/3rdParty/Boost/boost/asio/impl/write.ipp b/3rdParty/Boost/boost/asio/impl/write.ipp deleted file mode 100644 index 4434a91..0000000 --- a/3rdParty/Boost/boost/asio/impl/write.ipp +++ /dev/null @@ -1,296 +0,0 @@ -// -// write.ipp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WRITE_IPP -#define BOOST_ASIO_WRITE_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, boost::system::error_code& ec) -{ - ec = boost::system::error_code(); - boost::asio::detail::consuming_buffers< - const_buffer, ConstBufferSequence> tmp(buffers); - std::size_t total_transferred = 0; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - while (tmp.begin() != tmp.end()) - { - std::size_t bytes_transferred = s.write_some(tmp, ec); - tmp.consume(bytes_transferred); - total_transferred += bytes_transferred; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - } - return total_transferred; -} - -template -inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = write(s, buffers, transfer_all(), ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -inline std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = write(s, buffers, completion_condition, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -std::size_t write(SyncWriteStream& s, - boost::asio::basic_streambuf& b, - CompletionCondition completion_condition, boost::system::error_code& ec) -{ - std::size_t bytes_transferred = write(s, b.data(), completion_condition, ec); - b.consume(bytes_transferred); - return bytes_transferred; -} - -template -inline std::size_t write(SyncWriteStream& s, - boost::asio::basic_streambuf& b) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = write(s, b, transfer_all(), ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -inline std::size_t write(SyncWriteStream& s, - boost::asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = write(s, b, completion_condition, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -namespace detail -{ - template - class write_handler - { - public: - typedef boost::asio::detail::consuming_buffers< - const_buffer, ConstBufferSequence> buffers_type; - - write_handler(AsyncWriteStream& stream, const buffers_type& buffers, - CompletionCondition completion_condition, WriteHandler handler) - : stream_(stream), - buffers_(buffers), - total_transferred_(0), - completion_condition_(completion_condition), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - total_transferred_ += bytes_transferred; - buffers_.consume(bytes_transferred); - buffers_.set_max_size(detail::adapt_completion_condition_result( - completion_condition_(ec, total_transferred_))); - if (buffers_.begin() == buffers_.end()) - { - handler_(ec, total_transferred_); - } - else - { - stream_.async_write_some(buffers_, *this); - } - } - - //private: - AsyncWriteStream& stream_; - buffers_type buffers_; - std::size_t total_transferred_; - CompletionCondition completion_condition_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -inline void async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, WriteHandler handler) -{ - boost::asio::detail::consuming_buffers< - const_buffer, ConstBufferSequence> tmp(buffers); - - boost::system::error_code ec; - std::size_t total_transferred = 0; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - if (tmp.begin() == tmp.end()) - { - s.get_io_service().post(detail::bind_handler( - handler, ec, total_transferred)); - return; - } - - s.async_write_some(tmp, - detail::write_handler( - s, tmp, completion_condition, handler)); -} - -template -inline void async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - WriteHandler handler) -{ - async_write(s, buffers, transfer_all(), handler); -} - -namespace detail -{ - template - class write_streambuf_handler - { - public: - write_streambuf_handler(boost::asio::basic_streambuf& streambuf, - WriteHandler handler) - : streambuf_(streambuf), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - streambuf_.consume(bytes_transferred); - handler_(ec, bytes_transferred); - } - - //private: - boost::asio::basic_streambuf& streambuf_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_streambuf_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_streambuf_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_streambuf_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -inline void async_write(AsyncWriteStream& s, - boost::asio::basic_streambuf& b, - CompletionCondition completion_condition, WriteHandler handler) -{ - async_write(s, b.data(), completion_condition, - detail::write_streambuf_handler< - AsyncWriteStream, Allocator, WriteHandler>(b, handler)); -} - -template -inline void async_write(AsyncWriteStream& s, - boost::asio::basic_streambuf& b, WriteHandler handler) -{ - async_write(s, b, transfer_all(), handler); -} - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_WRITE_IPP diff --git a/3rdParty/Boost/boost/asio/impl/write_at.ipp b/3rdParty/Boost/boost/asio/impl/write_at.ipp deleted file mode 100644 index ba00567..0000000 --- a/3rdParty/Boost/boost/asio/impl/write_at.ipp +++ /dev/null @@ -1,313 +0,0 @@ -// -// write_at.ipp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WRITE_AT_IPP -#define BOOST_ASIO_WRITE_AT_IPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - boost::uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, boost::system::error_code& ec) -{ - ec = boost::system::error_code(); - boost::asio::detail::consuming_buffers< - const_buffer, ConstBufferSequence> tmp(buffers); - std::size_t total_transferred = 0; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - while (tmp.begin() != tmp.end()) - { - std::size_t bytes_transferred = d.write_some_at( - offset + total_transferred, tmp, ec); - tmp.consume(bytes_transferred); - total_transferred += bytes_transferred; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - } - return total_transferred; -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - boost::uint64_t offset, const ConstBufferSequence& buffers) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = write_at( - d, offset, buffers, transfer_all(), ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - boost::uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = write_at( - d, offset, buffers, completion_condition, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - boost::uint64_t offset, boost::asio::basic_streambuf& b, - CompletionCondition completion_condition, boost::system::error_code& ec) -{ - std::size_t bytes_transferred = write_at( - d, offset, b.data(), completion_condition, ec); - b.consume(bytes_transferred); - return bytes_transferred; -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - boost::uint64_t offset, boost::asio::basic_streambuf& b) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = write_at(d, offset, b, transfer_all(), ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -template -inline std::size_t write_at(SyncRandomAccessWriteDevice& d, - boost::uint64_t offset, boost::asio::basic_streambuf& b, - CompletionCondition completion_condition) -{ - boost::system::error_code ec; - std::size_t bytes_transferred = write_at( - d, offset, b, completion_condition, ec); - boost::asio::detail::throw_error(ec); - return bytes_transferred; -} - -namespace detail -{ - template - class write_at_handler - { - public: - typedef boost::asio::detail::consuming_buffers< - const_buffer, ConstBufferSequence> buffers_type; - - write_at_handler(AsyncRandomAccessWriteDevice& stream, - boost::uint64_t offset, const buffers_type& buffers, - CompletionCondition completion_condition, WriteHandler handler) - : stream_(stream), - buffers_(buffers), - offset_(offset), - total_transferred_(0), - completion_condition_(completion_condition), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - total_transferred_ += bytes_transferred; - buffers_.consume(bytes_transferred); - buffers_.set_max_size(detail::adapt_completion_condition_result( - completion_condition_(ec, total_transferred_))); - if (buffers_.begin() == buffers_.end()) - { - handler_(ec, total_transferred_); - } - else - { - stream_.async_write_some_at( - offset_ + total_transferred_, buffers_, *this); - } - } - - //private: - AsyncRandomAccessWriteDevice& stream_; - buffers_type buffers_; - boost::uint64_t offset_; - std::size_t total_transferred_; - CompletionCondition completion_condition_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_at_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_at_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_at_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -inline void async_write_at(AsyncRandomAccessWriteDevice& d, - boost::uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, WriteHandler handler) -{ - boost::asio::detail::consuming_buffers< - const_buffer, ConstBufferSequence> tmp(buffers); - - boost::system::error_code ec; - std::size_t total_transferred = 0; - tmp.set_max_size(detail::adapt_completion_condition_result( - completion_condition(ec, total_transferred))); - if (tmp.begin() == tmp.end()) - { - d.get_io_service().post(detail::bind_handler( - handler, ec, total_transferred)); - return; - } - - d.async_write_some_at(offset, tmp, - detail::write_at_handler( - d, offset, tmp, completion_condition, handler)); -} - -template -inline void async_write_at(AsyncRandomAccessWriteDevice& d, - boost::uint64_t offset, const ConstBufferSequence& buffers, - WriteHandler handler) -{ - async_write_at(d, offset, buffers, transfer_all(), handler); -} - -namespace detail -{ - template - class write_at_streambuf_handler - { - public: - write_at_streambuf_handler( - boost::asio::basic_streambuf& streambuf, - WriteHandler handler) - : streambuf_(streambuf), - handler_(handler) - { - } - - void operator()(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - streambuf_.consume(bytes_transferred); - handler_(ec, bytes_transferred); - } - - //private: - boost::asio::basic_streambuf& streambuf_; - WriteHandler handler_; - }; - - template - inline void* asio_handler_allocate(std::size_t size, - write_at_streambuf_handler* this_handler) - { - return boost_asio_handler_alloc_helpers::allocate( - size, &this_handler->handler_); - } - - template - inline void asio_handler_deallocate(void* pointer, std::size_t size, - write_at_streambuf_handler* this_handler) - { - boost_asio_handler_alloc_helpers::deallocate( - pointer, size, &this_handler->handler_); - } - - template - inline void asio_handler_invoke(const Function& function, - write_at_streambuf_handler* this_handler) - { - boost_asio_handler_invoke_helpers::invoke( - function, &this_handler->handler_); - } -} // namespace detail - -template -inline void async_write_at(AsyncRandomAccessWriteDevice& d, - boost::uint64_t offset, boost::asio::basic_streambuf& b, - CompletionCondition completion_condition, WriteHandler handler) -{ - async_write_at(d, offset, b.data(), completion_condition, - detail::write_at_streambuf_handler< - AsyncRandomAccessWriteDevice, Allocator, WriteHandler>(b, handler)); -} - -template -inline void async_write_at(AsyncRandomAccessWriteDevice& d, - boost::uint64_t offset, boost::asio::basic_streambuf& b, - WriteHandler handler) -{ - async_write_at(d, offset, b, transfer_all(), handler); -} - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_WRITE_AT_IPP diff --git a/3rdParty/Boost/boost/asio/io_service.hpp b/3rdParty/Boost/boost/asio/io_service.hpp deleted file mode 100644 index e50224a..0000000 --- a/3rdParty/Boost/boost/asio/io_service.hpp +++ /dev/null @@ -1,554 +0,0 @@ -// -// io_service.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IO_SERVICE_HPP -#define BOOST_ASIO_IO_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -class io_service; -template Service& use_service(io_service& ios); -template void add_service(io_service& ios, Service* svc); -template bool has_service(io_service& ios); - -/// Provides core I/O functionality. -/** - * The io_service class provides the core I/O functionality for users of the - * asynchronous I/O objects, including: - * - * @li boost::asio::ip::tcp::socket - * @li boost::asio::ip::tcp::acceptor - * @li boost::asio::ip::udp::socket - * @li boost::asio::deadline_timer. - * - * The io_service class also includes facilities intended for developers of - * custom asynchronous services. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe, with the exception that calling reset() - * while there are unfinished run() calls results in undefined behaviour. - * - * @par Concepts: - * Dispatcher. - * - * @par Effect of exceptions thrown from handlers - * - * If an exception is thrown from a handler, the exception is allowed to - * propagate through the throwing thread's invocation of - * boost::asio::io_service::run(), boost::asio::io_service::run_one(), - * boost::asio::io_service::poll() or boost::asio::io_service::poll_one(). - * No other threads that are calling any of these functions are affected. It is - * then the responsibility of the application to catch the exception. - * - * After the exception has been caught, the - * boost::asio::io_service::run(), boost::asio::io_service::run_one(), - * boost::asio::io_service::poll() or boost::asio::io_service::poll_one() - * call may be restarted @em without the need for an intervening call to - * boost::asio::io_service::reset(). This allows the thread to rejoin the - * io_service's thread pool without impacting any other threads in the pool. - * - * For example: - * - * @code - * boost::asio::io_service io_service; - * ... - * for (;;) - * { - * try - * { - * io_service.run(); - * break; // run() exited normally - * } - * catch (my_exception& e) - * { - * // Deal with exception as appropriate. - * } - * } - * @endcode - * - * @par Stopping the io_service from running out of work - * - * Some applications may need to prevent an io_service's run() call from - * returning when there is no more work to do. For example, the io_service may - * be being run in a background thread that is launched prior to the - * application's asynchronous operations. The run() call may be kept running by - * creating an object of type boost::asio::io_service::work: - * - * @code boost::asio::io_service io_service; - * boost::asio::io_service::work work(io_service); - * ... @endcode - * - * To effect a shutdown, the application will then need to call the io_service's - * stop() member function. This will cause the io_service run() call to return - * as soon as possible, abandoning unfinished operations and without permitting - * ready handlers to be dispatched. - * - * Alternatively, if the application requires that all operations and handlers - * be allowed to finish normally, the work object may be explicitly destroyed. - * - * @code boost::asio::io_service io_service; - * auto_ptr work( - * new boost::asio::io_service::work(io_service)); - * ... - * work.reset(); // Allow run() to exit. @endcode - */ -class io_service - : private noncopyable -{ -private: - // The type of the platform-specific implementation. -#if defined(BOOST_ASIO_HAS_IOCP) - typedef detail::win_iocp_io_service impl_type; - friend class detail::win_iocp_overlapped_ptr; -#elif defined(BOOST_ASIO_HAS_EPOLL) - typedef detail::task_io_service > impl_type; -#elif defined(BOOST_ASIO_HAS_KQUEUE) - typedef detail::task_io_service > impl_type; -#elif defined(BOOST_ASIO_HAS_DEV_POLL) - typedef detail::task_io_service > impl_type; -#else - typedef detail::task_io_service > impl_type; -#endif - -public: - class work; - friend class work; - - class id; - - class service; - - class strand; - - /// Constructor. - io_service(); - - /// Constructor. - /** - * Construct with a hint about the required level of concurrency. - * - * @param concurrency_hint A suggestion to the implementation on how many - * threads it should allow to run simultaneously. - */ - explicit io_service(std::size_t concurrency_hint); - - /// Destructor. - ~io_service(); - - /// Run the io_service's event processing loop. - /** - * The run() function blocks until all work has finished and there are no - * more handlers to be dispatched, or until the io_service has been stopped. - * - * Multiple threads may call the run() function to set up a pool of threads - * from which the io_service may execute handlers. All threads that are - * waiting in the pool are equivalent and the io_service may choose any one - * of them to invoke a handler. - * - * The run() function may be safely called again once it has completed only - * after a call to reset(). - * - * @return The number of handlers that were executed. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note The poll() function may also be used to dispatch ready handlers, - * but without blocking. - */ - std::size_t run(); - - /// Run the io_service's event processing loop. - /** - * The run() function blocks until all work has finished and there are no - * more handlers to be dispatched, or until the io_service has been stopped. - * - * Multiple threads may call the run() function to set up a pool of threads - * from which the io_service may execute handlers. All threads that are - * waiting in the pool are equivalent and the io_service may choose any one - * of them to invoke a handler. - * - * The run() function may be safely called again once it has completed only - * after a call to reset(). - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of handlers that were executed. - * - * @note The poll() function may also be used to dispatch ready handlers, - * but without blocking. - */ - std::size_t run(boost::system::error_code& ec); - - /// Run the io_service's event processing loop to execute at most one handler. - /** - * The run_one() function blocks until one handler has been dispatched, or - * until the io_service has been stopped. - * - * @return The number of handlers that were executed. - * - * @throws boost::system::system_error Thrown on failure. - */ - std::size_t run_one(); - - /// Run the io_service's event processing loop to execute at most one handler. - /** - * The run_one() function blocks until one handler has been dispatched, or - * until the io_service has been stopped. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of handlers that were executed. - */ - std::size_t run_one(boost::system::error_code& ec); - - /// Run the io_service's event processing loop to execute ready handlers. - /** - * The poll() function runs handlers that are ready to run, without blocking, - * until the io_service has been stopped or there are no more ready handlers. - * - * @return The number of handlers that were executed. - * - * @throws boost::system::system_error Thrown on failure. - */ - std::size_t poll(); - - /// Run the io_service's event processing loop to execute ready handlers. - /** - * The poll() function runs handlers that are ready to run, without blocking, - * until the io_service has been stopped or there are no more ready handlers. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of handlers that were executed. - */ - std::size_t poll(boost::system::error_code& ec); - - /// Run the io_service's event processing loop to execute one ready handler. - /** - * The poll_one() function runs at most one handler that is ready to run, - * without blocking. - * - * @return The number of handlers that were executed. - * - * @throws boost::system::system_error Thrown on failure. - */ - std::size_t poll_one(); - - /// Run the io_service's event processing loop to execute one ready handler. - /** - * The poll_one() function runs at most one handler that is ready to run, - * without blocking. - * - * @param ec Set to indicate what error occurred, if any. - * - * @return The number of handlers that were executed. - */ - std::size_t poll_one(boost::system::error_code& ec); - - /// Stop the io_service's event processing loop. - /** - * This function does not block, but instead simply signals the io_service to - * stop. All invocations of its run() or run_one() member functions should - * return as soon as possible. Subsequent calls to run(), run_one(), poll() - * or poll_one() will return immediately until reset() is called. - */ - void stop(); - - /// Reset the io_service in preparation for a subsequent run() invocation. - /** - * This function must be called prior to any second or later set of - * invocations of the run(), run_one(), poll() or poll_one() functions when a - * previous invocation of these functions returned due to the io_service - * being stopped or running out of work. This function allows the io_service - * to reset any internal state, such as a "stopped" flag. - * - * This function must not be called while there are any unfinished calls to - * the run(), run_one(), poll() or poll_one() functions. - */ - void reset(); - - /// Request the io_service to invoke the given handler. - /** - * This function is used to ask the io_service to execute the given handler. - * - * The io_service guarantees that the handler will only be called in a thread - * in which the run(), run_one(), poll() or poll_one() member functions is - * currently being invoked. The handler may be executed inside this function - * if the guarantee can be met. - * - * @param handler The handler to be called. The io_service will make - * a copy of the handler object as required. The function signature of the - * handler must be: @code void handler(); @endcode - */ - template - void dispatch(CompletionHandler handler); - - /// Request the io_service to invoke the given handler and return immediately. - /** - * This function is used to ask the io_service to execute the given handler, - * but without allowing the io_service to call the handler from inside this - * function. - * - * The io_service guarantees that the handler will only be called in a thread - * in which the run(), run_one(), poll() or poll_one() member functions is - * currently being invoked. - * - * @param handler The handler to be called. The io_service will make - * a copy of the handler object as required. The function signature of the - * handler must be: @code void handler(); @endcode - */ - template - void post(CompletionHandler handler); - - /// Create a new handler that automatically dispatches the wrapped handler - /// on the io_service. - /** - * This function is used to create a new handler function object that, when - * invoked, will automatically pass the wrapped handler to the io_service's - * dispatch function. - * - * @param handler The handler to be wrapped. The io_service will make a copy - * of the handler object as required. The function signature of the handler - * must be: @code void handler(A1 a1, ... An an); @endcode - * - * @return A function object that, when invoked, passes the wrapped handler to - * the io_service's dispatch function. Given a function object with the - * signature: - * @code R f(A1 a1, ... An an); @endcode - * If this function object is passed to the wrap function like so: - * @code io_service.wrap(f); @endcode - * then the return value is a function object with the signature - * @code void g(A1 a1, ... An an); @endcode - * that, when invoked, executes code equivalent to: - * @code io_service.dispatch(boost::bind(f, a1, ... an)); @endcode - */ - template -#if defined(GENERATING_DOCUMENTATION) - unspecified -#else - detail::wrapped_handler -#endif - wrap(Handler handler); - - /// Obtain the service object corresponding to the given type. - /** - * This function is used to locate a service object that corresponds to - * the given service type. If there is no existing implementation of the - * service, then the io_service will create a new instance of the service. - * - * @param ios The io_service object that owns the service. - * - * @return The service interface implementing the specified service type. - * Ownership of the service interface is not transferred to the caller. - */ - template - friend Service& use_service(io_service& ios); - - /// Add a service object to the io_service. - /** - * This function is used to add a service to the io_service. - * - * @param ios The io_service object that owns the service. - * - * @param svc The service object. On success, ownership of the service object - * is transferred to the io_service. When the io_service object is destroyed, - * it will destroy the service object by performing: - * @code delete static_cast(svc) @endcode - * - * @throws boost::asio::service_already_exists Thrown if a service of the - * given type is already present in the io_service. - * - * @throws boost::asio::invalid_service_owner Thrown if the service's owning - * io_service is not the io_service object specified by the ios parameter. - */ - template - friend void add_service(io_service& ios, Service* svc); - - /// Determine if an io_service contains a specified service type. - /** - * This function is used to determine whether the io_service contains a - * service object corresponding to the given service type. - * - * @param ios The io_service object that owns the service. - * - * @return A boolean indicating whether the io_service contains the service. - */ - template - friend bool has_service(io_service& ios); - -private: -#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) - detail::winsock_init<> init_; -#elif defined(__sun) || defined(__QNX__) || defined(__hpux) || defined(_AIX) \ - || defined(__osf__) - detail::signal_init<> init_; -#endif - - // The service registry. - boost::asio::detail::service_registry* service_registry_; - - // The implementation. - impl_type& impl_; -}; - -/// Class to inform the io_service when it has work to do. -/** - * The work class is used to inform the io_service when work starts and - * finishes. This ensures that the io_service's run() function will not exit - * while work is underway, and that it does exit when there is no unfinished - * work remaining. - * - * The work class is copy-constructible so that it may be used as a data member - * in a handler class. It is not assignable. - */ -class io_service::work -{ -public: - /// Constructor notifies the io_service that work is starting. - /** - * The constructor is used to inform the io_service that some work has begun. - * This ensures that the io_service's run() function will not exit while the - * work is underway. - */ - explicit work(boost::asio::io_service& io_service); - - /// Copy constructor notifies the io_service that work is starting. - /** - * The constructor is used to inform the io_service that some work has begun. - * This ensures that the io_service's run() function will not exit while the - * work is underway. - */ - work(const work& other); - - /// Destructor notifies the io_service that the work is complete. - /** - * The destructor is used to inform the io_service that some work has - * finished. Once the count of unfinished work reaches zero, the io_service's - * run() function is permitted to exit. - */ - ~work(); - - /// (Deprecated: use get_io_service().) Get the io_service associated with the - /// work. - boost::asio::io_service& io_service(); - - /// Get the io_service associated with the work. - boost::asio::io_service& get_io_service(); - -private: - // Prevent assignment. - void operator=(const work& other); - - // The io_service. - boost::asio::io_service& io_service_; -}; - -/// Class used to uniquely identify a service. -class io_service::id - : private noncopyable -{ -public: - /// Constructor. - id() {} -}; - -/// Base class for all io_service services. -class io_service::service - : private noncopyable -{ -public: - /// (Deprecated: use get_io_service().) Get the io_service object that owns - /// the service. - boost::asio::io_service& io_service(); - - /// Get the io_service object that owns the service. - boost::asio::io_service& get_io_service(); - -protected: - /// Constructor. - /** - * @param owner The io_service object that owns the service. - */ - service(boost::asio::io_service& owner); - - /// Destructor. - virtual ~service(); - -private: - /// Destroy all user-defined handler objects owned by the service. - virtual void shutdown_service() = 0; - - friend class boost::asio::detail::service_registry; - boost::asio::io_service& owner_; - const std::type_info* type_info_; - const boost::asio::io_service::id* id_; - service* next_; -}; - -/// Exception thrown when trying to add a duplicate service to an io_service. -class service_already_exists - : public std::logic_error -{ -public: - service_already_exists() - : std::logic_error("Service already exists.") - { - } -}; - -/// Exception thrown when trying to add a service object to an io_service where -/// the service has a different owner. -class invalid_service_owner - : public std::logic_error -{ -public: - invalid_service_owner() - : std::logic_error("Invalid service owner.") - { - } -}; - -} // namespace asio -} // namespace boost - -#include - -#include - -#endif // BOOST_ASIO_IO_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/ip/address.hpp b/3rdParty/Boost/boost/asio/ip/address.hpp deleted file mode 100644 index 9f1836e..0000000 --- a/3rdParty/Boost/boost/asio/ip/address.hpp +++ /dev/null @@ -1,279 +0,0 @@ -// -// address.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_ADDRESS_HPP -#define BOOST_ASIO_IP_ADDRESS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Implements version-independent IP addresses. -/** - * The boost::asio::ip::address class provides the ability to use either IP - * version 4 or version 6 addresses. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class address -{ -public: - /// Default constructor. - address() - : type_(ipv4), - ipv4_address_(), - ipv6_address_() - { - } - - /// Construct an address from an IPv4 address. - address(const boost::asio::ip::address_v4& ipv4_address) - : type_(ipv4), - ipv4_address_(ipv4_address), - ipv6_address_() - { - } - - /// Construct an address from an IPv6 address. - address(const boost::asio::ip::address_v6& ipv6_address) - : type_(ipv6), - ipv4_address_(), - ipv6_address_(ipv6_address) - { - } - - /// Copy constructor. - address(const address& other) - : type_(other.type_), - ipv4_address_(other.ipv4_address_), - ipv6_address_(other.ipv6_address_) - { - } - - /// Assign from another address. - address& operator=(const address& other) - { - type_ = other.type_; - ipv4_address_ = other.ipv4_address_; - ipv6_address_ = other.ipv6_address_; - return *this; - } - - /// Assign from an IPv4 address. - address& operator=(const boost::asio::ip::address_v4& ipv4_address) - { - type_ = ipv4; - ipv4_address_ = ipv4_address; - ipv6_address_ = boost::asio::ip::address_v6(); - return *this; - } - - /// Assign from an IPv6 address. - address& operator=(const boost::asio::ip::address_v6& ipv6_address) - { - type_ = ipv6; - ipv4_address_ = boost::asio::ip::address_v4(); - ipv6_address_ = ipv6_address; - return *this; - } - - /// Get whether the address is an IP version 4 address. - bool is_v4() const - { - return type_ == ipv4; - } - - /// Get whether the address is an IP version 6 address. - bool is_v6() const - { - return type_ == ipv6; - } - - /// Get the address as an IP version 4 address. - boost::asio::ip::address_v4 to_v4() const - { - if (type_ != ipv4) - { - boost::system::system_error e( - boost::asio::error::address_family_not_supported); - boost::throw_exception(e); - } - return ipv4_address_; - } - - /// Get the address as an IP version 6 address. - boost::asio::ip::address_v6 to_v6() const - { - if (type_ != ipv6) - { - boost::system::system_error e( - boost::asio::error::address_family_not_supported); - boost::throw_exception(e); - } - return ipv6_address_; - } - - /// Get the address as a string in dotted decimal format. - std::string to_string() const - { - if (type_ == ipv6) - return ipv6_address_.to_string(); - return ipv4_address_.to_string(); - } - - /// Get the address as a string in dotted decimal format. - std::string to_string(boost::system::error_code& ec) const - { - if (type_ == ipv6) - return ipv6_address_.to_string(ec); - return ipv4_address_.to_string(ec); - } - - /// Create an address from an IPv4 address string in dotted decimal form, - /// or from an IPv6 address in hexadecimal notation. - static address from_string(const char* str) - { - boost::system::error_code ec; - address addr = from_string(str, ec); - boost::asio::detail::throw_error(ec); - return addr; - } - - /// Create an address from an IPv4 address string in dotted decimal form, - /// or from an IPv6 address in hexadecimal notation. - static address from_string(const char* str, boost::system::error_code& ec) - { - boost::asio::ip::address_v6 ipv6_address = - boost::asio::ip::address_v6::from_string(str, ec); - if (!ec) - { - address tmp; - tmp.type_ = ipv6; - tmp.ipv6_address_ = ipv6_address; - return tmp; - } - - boost::asio::ip::address_v4 ipv4_address = - boost::asio::ip::address_v4::from_string(str, ec); - if (!ec) - { - address tmp; - tmp.type_ = ipv4; - tmp.ipv4_address_ = ipv4_address; - return tmp; - } - - return address(); - } - - /// Create an address from an IPv4 address string in dotted decimal form, - /// or from an IPv6 address in hexadecimal notation. - static address from_string(const std::string& str) - { - return from_string(str.c_str()); - } - - /// Create an address from an IPv4 address string in dotted decimal form, - /// or from an IPv6 address in hexadecimal notation. - static address from_string(const std::string& str, - boost::system::error_code& ec) - { - return from_string(str.c_str(), ec); - } - - /// Compare two addresses for equality. - friend bool operator==(const address& a1, const address& a2) - { - if (a1.type_ != a2.type_) - return false; - if (a1.type_ == ipv6) - return a1.ipv6_address_ == a2.ipv6_address_; - return a1.ipv4_address_ == a2.ipv4_address_; - } - - /// Compare two addresses for inequality. - friend bool operator!=(const address& a1, const address& a2) - { - if (a1.type_ != a2.type_) - return true; - if (a1.type_ == ipv6) - return a1.ipv6_address_ != a2.ipv6_address_; - return a1.ipv4_address_ != a2.ipv4_address_; - } - - /// Compare addresses for ordering. - friend bool operator<(const address& a1, const address& a2) - { - if (a1.type_ < a2.type_) - return true; - if (a1.type_ > a2.type_) - return false; - if (a1.type_ == ipv6) - return a1.ipv6_address_ < a2.ipv6_address_; - return a1.ipv4_address_ < a2.ipv4_address_; - } - -private: - // The type of the address. - enum { ipv4, ipv6 } type_; - - // The underlying IPv4 address. - boost::asio::ip::address_v4 ipv4_address_; - - // The underlying IPv6 address. - boost::asio::ip::address_v6 ipv6_address_; -}; - -/// Output an address as a string. -/** - * Used to output a human-readable string for a specified address. - * - * @param os The output stream to which the string will be written. - * - * @param addr The address to be written. - * - * @return The output stream. - * - * @relates boost::asio::ip::address - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address& addr) -{ - os << addr.to_string(); - return os; -} - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_ADDRESS_HPP diff --git a/3rdParty/Boost/boost/asio/ip/address_v4.hpp b/3rdParty/Boost/boost/asio/ip/address_v4.hpp deleted file mode 100644 index 357edfa..0000000 --- a/3rdParty/Boost/boost/asio/ip/address_v4.hpp +++ /dev/null @@ -1,309 +0,0 @@ -// -// address_v4.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_ADDRESS_V4_HPP -#define BOOST_ASIO_IP_ADDRESS_V4_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Implements IP version 4 style addresses. -/** - * The boost::asio::ip::address_v4 class provides the ability to use and - * manipulate IP version 4 addresses. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class address_v4 -{ -public: - /// The type used to represent an address as an array of bytes. - typedef boost::array bytes_type; - - /// Default constructor. - address_v4() - { - addr_.s_addr = 0; - } - - /// Construct an address from raw bytes. - explicit address_v4(const bytes_type& bytes) - { -#if UCHAR_MAX > 0xFF - if (bytes[0] > 0xFF || bytes[1] > 0xFF - || bytes[2] > 0xFF || bytes[3] > 0xFF) - { - std::out_of_range ex("address_v4 from bytes_type"); - boost::throw_exception(ex); - } -#endif // UCHAR_MAX > 0xFF - - using namespace std; // For memcpy. - memcpy(&addr_.s_addr, bytes.elems, 4); - } - - /// Construct an address from a unsigned long in host byte order. - explicit address_v4(unsigned long addr) - { -#if ULONG_MAX > 0xFFFFFFFF - if (addr > 0xFFFFFFFF) - { - std::out_of_range ex("address_v4 from unsigned long"); - boost::throw_exception(ex); - } -#endif // ULONG_MAX > 0xFFFFFFFF - - addr_.s_addr = boost::asio::detail::socket_ops::host_to_network_long(addr); - } - - /// Copy constructor. - address_v4(const address_v4& other) - : addr_(other.addr_) - { - } - - /// Assign from another address. - address_v4& operator=(const address_v4& other) - { - addr_ = other.addr_; - return *this; - } - - /// Get the address in bytes. - bytes_type to_bytes() const - { - using namespace std; // For memcpy. - bytes_type bytes; - memcpy(bytes.elems, &addr_.s_addr, 4); - return bytes; - } - - /// Get the address as an unsigned long in host byte order - unsigned long to_ulong() const - { - return boost::asio::detail::socket_ops::network_to_host_long(addr_.s_addr); - } - - /// Get the address as a string in dotted decimal format. - std::string to_string() const - { - boost::system::error_code ec; - std::string addr = to_string(ec); - boost::asio::detail::throw_error(ec); - return addr; - } - - /// Get the address as a string in dotted decimal format. - std::string to_string(boost::system::error_code& ec) const - { - char addr_str[boost::asio::detail::max_addr_v4_str_len]; - const char* addr = - boost::asio::detail::socket_ops::inet_ntop(AF_INET, &addr_, addr_str, - boost::asio::detail::max_addr_v4_str_len, 0, ec); - if (addr == 0) - return std::string(); - return addr; - } - - /// Create an address from an IP address string in dotted decimal form. - static address_v4 from_string(const char* str) - { - boost::system::error_code ec; - address_v4 addr = from_string(str, ec); - boost::asio::detail::throw_error(ec); - return addr; - } - - /// Create an address from an IP address string in dotted decimal form. - static address_v4 from_string(const char* str, boost::system::error_code& ec) - { - address_v4 tmp; - if (boost::asio::detail::socket_ops::inet_pton( - AF_INET, str, &tmp.addr_, 0, ec) <= 0) - return address_v4(); - return tmp; - } - - /// Create an address from an IP address string in dotted decimal form. - static address_v4 from_string(const std::string& str) - { - return from_string(str.c_str()); - } - - /// Create an address from an IP address string in dotted decimal form. - static address_v4 from_string(const std::string& str, - boost::system::error_code& ec) - { - return from_string(str.c_str(), ec); - } - - /// Determine whether the address is a class A address. - bool is_class_a() const - { - return IN_CLASSA(to_ulong()); - } - - /// Determine whether the address is a class B address. - bool is_class_b() const - { - return IN_CLASSB(to_ulong()); - } - - /// Determine whether the address is a class C address. - bool is_class_c() const - { - return IN_CLASSC(to_ulong()); - } - - /// Determine whether the address is a multicast address. - bool is_multicast() const - { - return IN_MULTICAST(to_ulong()); - } - - /// Compare two addresses for equality. - friend bool operator==(const address_v4& a1, const address_v4& a2) - { - return a1.addr_.s_addr == a2.addr_.s_addr; - } - - /// Compare two addresses for inequality. - friend bool operator!=(const address_v4& a1, const address_v4& a2) - { - return a1.addr_.s_addr != a2.addr_.s_addr; - } - - /// Compare addresses for ordering. - friend bool operator<(const address_v4& a1, const address_v4& a2) - { - return a1.to_ulong() < a2.to_ulong(); - } - - /// Compare addresses for ordering. - friend bool operator>(const address_v4& a1, const address_v4& a2) - { - return a1.to_ulong() > a2.to_ulong(); - } - - /// Compare addresses for ordering. - friend bool operator<=(const address_v4& a1, const address_v4& a2) - { - return a1.to_ulong() <= a2.to_ulong(); - } - - /// Compare addresses for ordering. - friend bool operator>=(const address_v4& a1, const address_v4& a2) - { - return a1.to_ulong() >= a2.to_ulong(); - } - - /// Obtain an address object that represents any address. - static address_v4 any() - { - return address_v4(static_cast(INADDR_ANY)); - } - - /// Obtain an address object that represents the loopback address. - static address_v4 loopback() - { - return address_v4(static_cast(INADDR_LOOPBACK)); - } - - /// Obtain an address object that represents the broadcast address. - static address_v4 broadcast() - { - return address_v4(static_cast(INADDR_BROADCAST)); - } - - /// Obtain an address object that represents the broadcast address that - /// corresponds to the specified address and netmask. - static address_v4 broadcast(const address_v4& addr, const address_v4& mask) - { - return address_v4(addr.to_ulong() | ~mask.to_ulong()); - } - - /// Obtain the netmask that corresponds to the address, based on its address - /// class. - static address_v4 netmask(const address_v4& addr) - { - if (addr.is_class_a()) - return address_v4(0xFF000000); - if (addr.is_class_b()) - return address_v4(0xFFFF0000); - if (addr.is_class_c()) - return address_v4(0xFFFFFF00); - return address_v4(0xFFFFFFFF); - } - -private: - // The underlying IPv4 address. - boost::asio::detail::in4_addr_type addr_; -}; - -/// Output an address as a string. -/** - * Used to output a human-readable string for a specified address. - * - * @param os The output stream to which the string will be written. - * - * @param addr The address to be written. - * - * @return The output stream. - * - * @relates boost::asio::ip::address_v4 - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address_v4& addr) -{ - boost::system::error_code ec; - std::string s = addr.to_string(ec); - if (ec) - { - if (os.exceptions() & std::ios::failbit) - boost::asio::detail::throw_error(ec); - else - os.setstate(std::ios_base::failbit); - } - else - for (std::string::iterator i = s.begin(); i != s.end(); ++i) - os << os.widen(*i); - return os; -} - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_ADDRESS_V4_HPP diff --git a/3rdParty/Boost/boost/asio/ip/address_v6.hpp b/3rdParty/Boost/boost/asio/ip/address_v6.hpp deleted file mode 100644 index 5f5f092..0000000 --- a/3rdParty/Boost/boost/asio/ip/address_v6.hpp +++ /dev/null @@ -1,423 +0,0 @@ -// -// address_v6.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_ADDRESS_V6_HPP -#define BOOST_ASIO_IP_ADDRESS_V6_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Implements IP version 6 style addresses. -/** - * The boost::asio::ip::address_v6 class provides the ability to use and - * manipulate IP version 6 addresses. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class address_v6 -{ -public: - /// The type used to represent an address as an array of bytes. - typedef boost::array bytes_type; - - /// Default constructor. - address_v6() - : scope_id_(0) - { - boost::asio::detail::in6_addr_type tmp_addr = IN6ADDR_ANY_INIT; - addr_ = tmp_addr; - } - - /// Construct an address from raw bytes and scope ID. - explicit address_v6(const bytes_type& bytes, unsigned long scope_id = 0) - : scope_id_(scope_id) - { -#if UCHAR_MAX > 0xFF - for (std::size_t i = 0; i < bytes.size(); ++i) - { - if (bytes[i] > 0xFF) - { - std::out_of_range ex("address_v6 from bytes_type"); - boost::throw_exception(ex); - } - } -#endif // UCHAR_MAX > 0xFF - - using namespace std; // For memcpy. - memcpy(addr_.s6_addr, bytes.elems, 16); - } - - /// Copy constructor. - address_v6(const address_v6& other) - : addr_(other.addr_), - scope_id_(other.scope_id_) - { - } - - /// Assign from another address. - address_v6& operator=(const address_v6& other) - { - addr_ = other.addr_; - scope_id_ = other.scope_id_; - return *this; - } - - /// The scope ID of the address. - /** - * Returns the scope ID associated with the IPv6 address. - */ - unsigned long scope_id() const - { - return scope_id_; - } - - /// The scope ID of the address. - /** - * Modifies the scope ID associated with the IPv6 address. - */ - void scope_id(unsigned long id) - { - scope_id_ = id; - } - - /// Get the address in bytes. - bytes_type to_bytes() const - { - using namespace std; // For memcpy. - bytes_type bytes; - memcpy(bytes.elems, addr_.s6_addr, 16); - return bytes; - } - - /// Get the address as a string. - std::string to_string() const - { - boost::system::error_code ec; - std::string addr = to_string(ec); - boost::asio::detail::throw_error(ec); - return addr; - } - - /// Get the address as a string. - std::string to_string(boost::system::error_code& ec) const - { - char addr_str[boost::asio::detail::max_addr_v6_str_len]; - const char* addr = - boost::asio::detail::socket_ops::inet_ntop(AF_INET6, &addr_, addr_str, - boost::asio::detail::max_addr_v6_str_len, scope_id_, ec); - if (addr == 0) - return std::string(); - return addr; - } - - /// Create an address from an IP address string. - static address_v6 from_string(const char* str) - { - boost::system::error_code ec; - address_v6 addr = from_string(str, ec); - boost::asio::detail::throw_error(ec); - return addr; - } - - /// Create an address from an IP address string. - static address_v6 from_string(const char* str, boost::system::error_code& ec) - { - address_v6 tmp; - if (boost::asio::detail::socket_ops::inet_pton( - AF_INET6, str, &tmp.addr_, &tmp.scope_id_, ec) <= 0) - return address_v6(); - return tmp; - } - - /// Create an address from an IP address string. - static address_v6 from_string(const std::string& str) - { - return from_string(str.c_str()); - } - - /// Create an address from an IP address string. - static address_v6 from_string(const std::string& str, - boost::system::error_code& ec) - { - return from_string(str.c_str(), ec); - } - - /// Converts an IPv4-mapped or IPv4-compatible address to an IPv4 address. - address_v4 to_v4() const - { - if (!is_v4_mapped() && !is_v4_compatible()) - { - std::bad_cast ex; - boost::throw_exception(ex); - } - - address_v4::bytes_type v4_bytes = { { addr_.s6_addr[12], - addr_.s6_addr[13], addr_.s6_addr[14], addr_.s6_addr[15] } }; - return address_v4(v4_bytes); - } - - /// Determine whether the address is a loopback address. - bool is_loopback() const - { -#if defined(__BORLANDC__) - return ((addr_.s6_addr[0] == 0) && (addr_.s6_addr[1] == 0) - && (addr_.s6_addr[2] == 0) && (addr_.s6_addr[3] == 0) - && (addr_.s6_addr[4] == 0) && (addr_.s6_addr[5] == 0) - && (addr_.s6_addr[6] == 0) && (addr_.s6_addr[7] == 0) - && (addr_.s6_addr[8] == 0) && (addr_.s6_addr[9] == 0) - && (addr_.s6_addr[10] == 0) && (addr_.s6_addr[11] == 0) - && (addr_.s6_addr[12] == 0) && (addr_.s6_addr[13] == 0) - && (addr_.s6_addr[14] == 0) && (addr_.s6_addr[15] == 1)); -#else - using namespace boost::asio::detail; - return IN6_IS_ADDR_LOOPBACK(&addr_) != 0; -#endif - } - - /// Determine whether the address is unspecified. - bool is_unspecified() const - { -#if defined(__BORLANDC__) - return ((addr_.s6_addr[0] == 0) && (addr_.s6_addr[1] == 0) - && (addr_.s6_addr[2] == 0) && (addr_.s6_addr[3] == 0) - && (addr_.s6_addr[4] == 0) && (addr_.s6_addr[5] == 0) - && (addr_.s6_addr[6] == 0) && (addr_.s6_addr[7] == 0) - && (addr_.s6_addr[8] == 0) && (addr_.s6_addr[9] == 0) - && (addr_.s6_addr[10] == 0) && (addr_.s6_addr[11] == 0) - && (addr_.s6_addr[12] == 0) && (addr_.s6_addr[13] == 0) - && (addr_.s6_addr[14] == 0) && (addr_.s6_addr[15] == 0)); -#else - using namespace boost::asio::detail; - return IN6_IS_ADDR_UNSPECIFIED(&addr_) != 0; -#endif - } - - /// Determine whether the address is link local. - bool is_link_local() const - { - using namespace boost::asio::detail; - return IN6_IS_ADDR_LINKLOCAL(&addr_) != 0; - } - - /// Determine whether the address is site local. - bool is_site_local() const - { - using namespace boost::asio::detail; - return IN6_IS_ADDR_SITELOCAL(&addr_) != 0; - } - - /// Determine whether the address is a mapped IPv4 address. - bool is_v4_mapped() const - { - using namespace boost::asio::detail; - return IN6_IS_ADDR_V4MAPPED(&addr_) != 0; - } - - /// Determine whether the address is an IPv4-compatible address. - bool is_v4_compatible() const - { - using namespace boost::asio::detail; - return IN6_IS_ADDR_V4COMPAT(&addr_) != 0; - } - - /// Determine whether the address is a multicast address. - bool is_multicast() const - { - using namespace boost::asio::detail; - return IN6_IS_ADDR_MULTICAST(&addr_) != 0; - } - - /// Determine whether the address is a global multicast address. - bool is_multicast_global() const - { - using namespace boost::asio::detail; - return IN6_IS_ADDR_MC_GLOBAL(&addr_) != 0; - } - - /// Determine whether the address is a link-local multicast address. - bool is_multicast_link_local() const - { - using namespace boost::asio::detail; - return IN6_IS_ADDR_MC_LINKLOCAL(&addr_) != 0; - } - - /// Determine whether the address is a node-local multicast address. - bool is_multicast_node_local() const - { - using namespace boost::asio::detail; - return IN6_IS_ADDR_MC_NODELOCAL(&addr_) != 0; - } - - /// Determine whether the address is a org-local multicast address. - bool is_multicast_org_local() const - { - using namespace boost::asio::detail; - return IN6_IS_ADDR_MC_ORGLOCAL(&addr_) != 0; - } - - /// Determine whether the address is a site-local multicast address. - bool is_multicast_site_local() const - { - using namespace boost::asio::detail; - return IN6_IS_ADDR_MC_SITELOCAL(&addr_) != 0; - } - - /// Compare two addresses for equality. - friend bool operator==(const address_v6& a1, const address_v6& a2) - { - using namespace std; // For memcmp. - return memcmp(&a1.addr_, &a2.addr_, - sizeof(boost::asio::detail::in6_addr_type)) == 0 - && a1.scope_id_ == a2.scope_id_; - } - - /// Compare two addresses for inequality. - friend bool operator!=(const address_v6& a1, const address_v6& a2) - { - using namespace std; // For memcmp. - return memcmp(&a1.addr_, &a2.addr_, - sizeof(boost::asio::detail::in6_addr_type)) != 0 - || a1.scope_id_ != a2.scope_id_; - } - - /// Compare addresses for ordering. - friend bool operator<(const address_v6& a1, const address_v6& a2) - { - using namespace std; // For memcmp. - int memcmp_result = memcmp(&a1.addr_, &a2.addr_, - sizeof(boost::asio::detail::in6_addr_type)); - if (memcmp_result < 0) - return true; - if (memcmp_result > 0) - return false; - return a1.scope_id_ < a2.scope_id_; - } - - /// Compare addresses for ordering. - friend bool operator>(const address_v6& a1, const address_v6& a2) - { - return a2 < a1; - } - - /// Compare addresses for ordering. - friend bool operator<=(const address_v6& a1, const address_v6& a2) - { - return !(a2 < a1); - } - - /// Compare addresses for ordering. - friend bool operator>=(const address_v6& a1, const address_v6& a2) - { - return !(a1 < a2); - } - - /// Obtain an address object that represents any address. - static address_v6 any() - { - return address_v6(); - } - - /// Obtain an address object that represents the loopback address. - static address_v6 loopback() - { - address_v6 tmp; - boost::asio::detail::in6_addr_type tmp_addr = IN6ADDR_LOOPBACK_INIT; - tmp.addr_ = tmp_addr; - return tmp; - } - - /// Create an IPv4-mapped IPv6 address. - static address_v6 v4_mapped(const address_v4& addr) - { - address_v4::bytes_type v4_bytes = addr.to_bytes(); - bytes_type v6_bytes = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xFF, 0xFF, - v4_bytes[0], v4_bytes[1], v4_bytes[2], v4_bytes[3] } }; - return address_v6(v6_bytes); - } - - /// Create an IPv4-compatible IPv6 address. - static address_v6 v4_compatible(const address_v4& addr) - { - address_v4::bytes_type v4_bytes = addr.to_bytes(); - bytes_type v6_bytes = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - v4_bytes[0], v4_bytes[1], v4_bytes[2], v4_bytes[3] } }; - return address_v6(v6_bytes); - } - -private: - // The underlying IPv6 address. - boost::asio::detail::in6_addr_type addr_; - - // The scope ID associated with the address. - unsigned long scope_id_; -}; - -/// Output an address as a string. -/** - * Used to output a human-readable string for a specified address. - * - * @param os The output stream to which the string will be written. - * - * @param addr The address to be written. - * - * @return The output stream. - * - * @relates boost::asio::ip::address_v6 - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, const address_v6& addr) -{ - boost::system::error_code ec; - std::string s = addr.to_string(ec); - if (ec) - { - if (os.exceptions() & std::ios::failbit) - boost::asio::detail::throw_error(ec); - else - os.setstate(std::ios_base::failbit); - } - else - for (std::string::iterator i = s.begin(); i != s.end(); ++i) - os << os.widen(*i); - return os; -} - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_ADDRESS_V6_HPP diff --git a/3rdParty/Boost/boost/asio/ip/basic_endpoint.hpp b/3rdParty/Boost/boost/asio/ip/basic_endpoint.hpp deleted file mode 100644 index 80aaf1e..0000000 --- a/3rdParty/Boost/boost/asio/ip/basic_endpoint.hpp +++ /dev/null @@ -1,377 +0,0 @@ -// -// basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_BASIC_ENDPOINT_HPP -#define BOOST_ASIO_IP_BASIC_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -# include -#endif // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Describes an endpoint for a version-independent IP socket. -/** - * The boost::asio::ip::basic_endpoint class template describes an endpoint that - * may be associated with a particular socket. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * Endpoint. - */ -template -class basic_endpoint -{ -public: - /// The protocol type associated with the endpoint. - typedef InternetProtocol protocol_type; - - /// The type of the endpoint structure. This type is dependent on the - /// underlying implementation of the socket layer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined data_type; -#else - typedef boost::asio::detail::socket_addr_type data_type; -#endif - - /// Default constructor. - basic_endpoint() - : data_() - { - data_.v4.sin_family = AF_INET; - data_.v4.sin_port = 0; - data_.v4.sin_addr.s_addr = INADDR_ANY; - } - - /// Construct an endpoint using a port number, specified in the host's byte - /// order. The IP address will be the any address (i.e. INADDR_ANY or - /// in6addr_any). This constructor would typically be used for accepting new - /// connections. - /** - * @par Examples - * To initialise an IPv4 TCP endpoint for port 1234, use: - * @code - * boost::asio::ip::tcp::endpoint ep(boost::asio::ip::tcp::v4(), 1234); - * @endcode - * - * To specify an IPv6 UDP endpoint for port 9876, use: - * @code - * boost::asio::ip::udp::endpoint ep(boost::asio::ip::udp::v6(), 9876); - * @endcode - */ - basic_endpoint(const InternetProtocol& protocol, unsigned short port_num) - : data_() - { - using namespace std; // For memcpy. - if (protocol.family() == PF_INET) - { - data_.v4.sin_family = AF_INET; - data_.v4.sin_port = - boost::asio::detail::socket_ops::host_to_network_short(port_num); - data_.v4.sin_addr.s_addr = INADDR_ANY; - } - else - { - data_.v6.sin6_family = AF_INET6; - data_.v6.sin6_port = - boost::asio::detail::socket_ops::host_to_network_short(port_num); - data_.v6.sin6_flowinfo = 0; - boost::asio::detail::in6_addr_type tmp_addr = IN6ADDR_ANY_INIT; - data_.v6.sin6_addr = tmp_addr; - data_.v6.sin6_scope_id = 0; - } - } - - /// Construct an endpoint using a port number and an IP address. This - /// constructor may be used for accepting connections on a specific interface - /// or for making a connection to a remote endpoint. - basic_endpoint(const boost::asio::ip::address& addr, unsigned short port_num) - : data_() - { - using namespace std; // For memcpy. - if (addr.is_v4()) - { - data_.v4.sin_family = AF_INET; - data_.v4.sin_port = - boost::asio::detail::socket_ops::host_to_network_short(port_num); - data_.v4.sin_addr.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - addr.to_v4().to_ulong()); - } - else - { - data_.v6.sin6_family = AF_INET6; - data_.v6.sin6_port = - boost::asio::detail::socket_ops::host_to_network_short(port_num); - data_.v6.sin6_flowinfo = 0; - boost::asio::ip::address_v6 v6_addr = addr.to_v6(); - boost::asio::ip::address_v6::bytes_type bytes = v6_addr.to_bytes(); - memcpy(data_.v6.sin6_addr.s6_addr, bytes.elems, 16); - data_.v6.sin6_scope_id = v6_addr.scope_id(); - } - } - - /// Copy constructor. - basic_endpoint(const basic_endpoint& other) - : data_(other.data_) - { - } - - /// Assign from another endpoint. - basic_endpoint& operator=(const basic_endpoint& other) - { - data_ = other.data_; - return *this; - } - - /// The protocol associated with the endpoint. - protocol_type protocol() const - { - if (is_v4()) - return InternetProtocol::v4(); - return InternetProtocol::v6(); - } - - /// Get the underlying endpoint in the native type. - data_type* data() - { - return &data_.base; - } - - /// Get the underlying endpoint in the native type. - const data_type* data() const - { - return &data_.base; - } - - /// Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - if (is_v4()) - return sizeof(boost::asio::detail::sockaddr_in4_type); - else - return sizeof(boost::asio::detail::sockaddr_in6_type); - } - - /// Set the underlying size of the endpoint in the native type. - void resize(std::size_t size) - { - if (size > sizeof(boost::asio::detail::sockaddr_storage_type)) - { - boost::system::system_error e(boost::asio::error::invalid_argument); - boost::throw_exception(e); - } - } - - /// Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return sizeof(boost::asio::detail::sockaddr_storage_type); - } - - /// Get the port associated with the endpoint. The port number is always in - /// the host's byte order. - unsigned short port() const - { - if (is_v4()) - { - return boost::asio::detail::socket_ops::network_to_host_short( - data_.v4.sin_port); - } - else - { - return boost::asio::detail::socket_ops::network_to_host_short( - data_.v6.sin6_port); - } - } - - /// Set the port associated with the endpoint. The port number is always in - /// the host's byte order. - void port(unsigned short port_num) - { - if (is_v4()) - { - data_.v4.sin_port - = boost::asio::detail::socket_ops::host_to_network_short(port_num); - } - else - { - data_.v6.sin6_port - = boost::asio::detail::socket_ops::host_to_network_short(port_num); - } - } - - /// Get the IP address associated with the endpoint. - boost::asio::ip::address address() const - { - using namespace std; // For memcpy. - if (is_v4()) - { - return boost::asio::ip::address_v4( - boost::asio::detail::socket_ops::network_to_host_long( - data_.v4.sin_addr.s_addr)); - } - else - { - boost::asio::ip::address_v6::bytes_type bytes; - memcpy(bytes.elems, data_.v6.sin6_addr.s6_addr, 16); - return boost::asio::ip::address_v6(bytes, data_.v6.sin6_scope_id); - } - } - - /// Set the IP address associated with the endpoint. - void address(const boost::asio::ip::address& addr) - { - basic_endpoint tmp_endpoint(addr, port()); - data_ = tmp_endpoint.data_; - } - - /// Compare two endpoints for equality. - friend bool operator==(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.address() == e2.address() && e1.port() == e2.port(); - } - - /// Compare two endpoints for inequality. - friend bool operator!=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.address() != e2.address() || e1.port() != e2.port(); - } - - /// Compare endpoints for ordering. - friend bool operator<(const basic_endpoint& e1, - const basic_endpoint& e2) - { - if (e1.address() < e2.address()) - return true; - if (e1.address() != e2.address()) - return false; - return e1.port() < e2.port(); - } - -private: - // Helper function to determine whether the endpoint is IPv4. - bool is_v4() const - { - return data_.base.sa_family == AF_INET; - } - - // The underlying IP socket address. - union data_union - { - boost::asio::detail::socket_addr_type base; - boost::asio::detail::sockaddr_storage_type storage; - boost::asio::detail::sockaddr_in4_type v4; - boost::asio::detail::sockaddr_in6_type v6; - } data_; -}; - -/// Output an endpoint as a string. -/** - * Used to output a human-readable string for a specified endpoint. - * - * @param os The output stream to which the string will be written. - * - * @param endpoint The endpoint to be written. - * - * @return The output stream. - * - * @relates boost::asio::ip::basic_endpoint - */ -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -template -std::ostream& operator<<(std::ostream& os, - const basic_endpoint& endpoint) -{ - const address& addr = endpoint.address(); - boost::system::error_code ec; - std::string a = addr.to_string(ec); - if (ec) - { - if (os.exceptions() & std::ios::failbit) - boost::asio::detail::throw_error(ec); - else - os.setstate(std::ios_base::failbit); - } - else - { - std::ostringstream tmp_os; - tmp_os.imbue(std::locale::classic()); - if (addr.is_v4()) - tmp_os << a; - else - tmp_os << '[' << a << ']'; - tmp_os << ':' << endpoint.port(); - os << tmp_os.str(); - } - return os; -} -#else // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -template -std::basic_ostream& operator<<( - std::basic_ostream& os, - const basic_endpoint& endpoint) -{ - const address& addr = endpoint.address(); - boost::system::error_code ec; - std::string a = addr.to_string(ec); - if (ec) - { - if (os.exceptions() & std::ios::failbit) - boost::asio::detail::throw_error(ec); - else - os.setstate(std::ios_base::failbit); - } - else - { - std::ostringstream tmp_os; - tmp_os.imbue(std::locale::classic()); - if (addr.is_v4()) - tmp_os << a; - else - tmp_os << '[' << a << ']'; - tmp_os << ':' << endpoint.port(); - os << tmp_os.str(); - } - return os; -} -#endif // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_BASIC_ENDPOINT_HPP diff --git a/3rdParty/Boost/boost/asio/ip/basic_resolver.hpp b/3rdParty/Boost/boost/asio/ip/basic_resolver.hpp deleted file mode 100644 index d0e8eb8..0000000 --- a/3rdParty/Boost/boost/asio/ip/basic_resolver.hpp +++ /dev/null @@ -1,248 +0,0 @@ -// -// basic_resolver.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_BASIC_RESOLVER_HPP -#define BOOST_ASIO_IP_BASIC_RESOLVER_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Provides endpoint resolution functionality. -/** - * The basic_resolver class template provides the ability to resolve a query - * to a list of endpoints. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template > -class basic_resolver - : public basic_io_object -{ -public: - /// The protocol type. - typedef InternetProtocol protocol_type; - - /// The endpoint type. - typedef typename InternetProtocol::endpoint endpoint_type; - - /// The query type. - typedef typename InternetProtocol::resolver_query query; - - /// The iterator type. - typedef typename InternetProtocol::resolver_iterator iterator; - - /// Constructor. - /** - * This constructor creates a basic_resolver. - * - * @param io_service The io_service object that the resolver will use to - * dispatch handlers for any asynchronous operations performed on the timer. - */ - explicit basic_resolver(boost::asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Cancel any asynchronous operations that are waiting on the resolver. - /** - * This function forces the completion of any pending asynchronous - * operations on the host resolver. The handler for each cancelled operation - * will be invoked with the boost::asio::error::operation_aborted error code. - */ - void cancel() - { - return this->service.cancel(this->implementation); - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve a query into a list of endpoint entries. - * - * @param q A query object that determines what endpoints will be returned. - * - * @returns A forward-only iterator that can be used to traverse the list - * of endpoint entries. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note A default constructed iterator represents the end of the list. - * - * A successful call to this function is guaranteed to return at least one - * entry. - */ - iterator resolve(const query& q) - { - boost::system::error_code ec; - iterator i = this->service.resolve(this->implementation, q, ec); - boost::asio::detail::throw_error(ec); - return i; - } - - /// Perform forward resolution of a query to a list of entries. - /** - * This function is used to resolve a query into a list of endpoint entries. - * - * @param q A query object that determines what endpoints will be returned. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A forward-only iterator that can be used to traverse the list - * of endpoint entries. Returns a default constructed iterator if an error - * occurs. - * - * @note A default constructed iterator represents the end of the list. - * - * A successful call to this function is guaranteed to return at least one - * entry. - */ - iterator resolve(const query& q, boost::system::error_code& ec) - { - return this->service.resolve(this->implementation, q, ec); - } - - /// Asynchronously perform forward resolution of a query to a list of entries. - /** - * This function is used to asynchronously resolve a query into a list of - * endpoint entries. - * - * @param q A query object that determines what endpoints will be returned. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * resolver::iterator iterator // Forward-only iterator that can - * // be used to traverse the list - * // of endpoint entries. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note A default constructed iterator represents the end of the list. - * - * A successful resolve operation is guaranteed to pass at least one entry to - * the handler. - */ - template - void async_resolve(const query& q, ResolveHandler handler) - { - return this->service.async_resolve(this->implementation, q, handler); - } - - /// Perform reverse resolution of an endpoint to a list of entries. - /** - * This function is used to resolve an endpoint into a list of endpoint - * entries. - * - * @param e An endpoint object that determines what endpoints will be - * returned. - * - * @returns A forward-only iterator that can be used to traverse the list - * of endpoint entries. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note A default constructed iterator represents the end of the list. - * - * A successful call to this function is guaranteed to return at least one - * entry. - */ - iterator resolve(const endpoint_type& e) - { - boost::system::error_code ec; - iterator i = this->service.resolve(this->implementation, e, ec); - boost::asio::detail::throw_error(ec); - return i; - } - - /// Perform reverse resolution of an endpoint to a list of entries. - /** - * This function is used to resolve an endpoint into a list of endpoint - * entries. - * - * @param e An endpoint object that determines what endpoints will be - * returned. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns A forward-only iterator that can be used to traverse the list - * of endpoint entries. Returns a default constructed iterator if an error - * occurs. - * - * @note A default constructed iterator represents the end of the list. - * - * A successful call to this function is guaranteed to return at least one - * entry. - */ - iterator resolve(const endpoint_type& e, boost::system::error_code& ec) - { - return this->service.resolve(this->implementation, e, ec); - } - - /// Asynchronously perform reverse resolution of an endpoint to a list of - /// entries. - /** - * This function is used to asynchronously resolve an endpoint into a list of - * endpoint entries. - * - * @param e An endpoint object that determines what endpoints will be - * returned. - * - * @param handler The handler to be called when the resolve operation - * completes. Copies will be made of the handler as required. The function - * signature of the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * resolver::iterator iterator // Forward-only iterator that can - * // be used to traverse the list - * // of endpoint entries. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note A default constructed iterator represents the end of the list. - * - * A successful resolve operation is guaranteed to pass at least one entry to - * the handler. - */ - template - void async_resolve(const endpoint_type& e, ResolveHandler handler) - { - return this->service.async_resolve(this->implementation, e, handler); - } -}; - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_BASIC_RESOLVER_HPP diff --git a/3rdParty/Boost/boost/asio/ip/basic_resolver_entry.hpp b/3rdParty/Boost/boost/asio/ip/basic_resolver_entry.hpp deleted file mode 100644 index ba0a020..0000000 --- a/3rdParty/Boost/boost/asio/ip/basic_resolver_entry.hpp +++ /dev/null @@ -1,97 +0,0 @@ -// -// basic_resolver_entry.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_BASIC_RESOLVER_ENTRY_HPP -#define BOOST_ASIO_IP_BASIC_RESOLVER_ENTRY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// An entry produced by a resolver. -/** - * The boost::asio::ip::basic_resolver_entry class template describes an entry - * as returned by a resolver. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_entry -{ -public: - /// The protocol type associated with the endpoint entry. - typedef InternetProtocol protocol_type; - - /// The endpoint type associated with the endpoint entry. - typedef typename InternetProtocol::endpoint endpoint_type; - - /// Default constructor. - basic_resolver_entry() - { - } - - /// Construct with specified endpoint, host name and service name. - basic_resolver_entry(const endpoint_type& endpoint, - const std::string& host_name, const std::string& service_name) - : endpoint_(endpoint), - host_name_(host_name), - service_name_(service_name) - { - } - - /// Get the endpoint associated with the entry. - endpoint_type endpoint() const - { - return endpoint_; - } - - /// Convert to the endpoint associated with the entry. - operator endpoint_type() const - { - return endpoint_; - } - - /// Get the host name associated with the entry. - std::string host_name() const - { - return host_name_; - } - - /// Get the service name associated with the entry. - std::string service_name() const - { - return service_name_; - } - -private: - endpoint_type endpoint_; - std::string host_name_; - std::string service_name_; -}; - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_BASIC_RESOLVER_ENTRY_HPP diff --git a/3rdParty/Boost/boost/asio/ip/basic_resolver_iterator.hpp b/3rdParty/Boost/boost/asio/ip/basic_resolver_iterator.hpp deleted file mode 100644 index d5860b7..0000000 --- a/3rdParty/Boost/boost/asio/ip/basic_resolver_iterator.hpp +++ /dev/null @@ -1,156 +0,0 @@ -// -// basic_resolver_iterator.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_BASIC_RESOLVER_ITERATOR_HPP -#define BOOST_ASIO_IP_BASIC_RESOLVER_ITERATOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// An iterator over the entries produced by a resolver. -/** - * The boost::asio::ip::basic_resolver_iterator class template is used to define - * iterators over the results returned by a resolver. - * - * The iterator's value_type, obtained when the iterator is dereferenced, is: - * @code const basic_resolver_entry @endcode - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_iterator - : public boost::iterator_facade< - basic_resolver_iterator, - const basic_resolver_entry, - boost::forward_traversal_tag> -{ -public: - /// Default constructor creates an end iterator. - basic_resolver_iterator() - { - } - - /// Create an iterator from an addrinfo list returned by getaddrinfo. - static basic_resolver_iterator create( - boost::asio::detail::addrinfo_type* address_info, - const std::string& host_name, const std::string& service_name) - { - basic_resolver_iterator iter; - if (!address_info) - return iter; - - std::string actual_host_name = host_name; - if (address_info->ai_canonname) - actual_host_name = address_info->ai_canonname; - - iter.values_.reset(new values_type); - - while (address_info) - { - if (address_info->ai_family == PF_INET - || address_info->ai_family == PF_INET6) - { - using namespace std; // For memcpy. - typename InternetProtocol::endpoint endpoint; - endpoint.resize(static_cast(address_info->ai_addrlen)); - memcpy(endpoint.data(), address_info->ai_addr, - address_info->ai_addrlen); - iter.values_->push_back( - basic_resolver_entry(endpoint, - actual_host_name, service_name)); - } - address_info = address_info->ai_next; - } - - if (iter.values_->size()) - iter.iter_ = iter.values_->begin(); - else - iter.values_.reset(); - - return iter; - } - - /// Create an iterator from an endpoint, host name and service name. - static basic_resolver_iterator create( - const typename InternetProtocol::endpoint& endpoint, - const std::string& host_name, const std::string& service_name) - { - basic_resolver_iterator iter; - iter.values_.reset(new values_type); - iter.values_->push_back( - basic_resolver_entry( - endpoint, host_name, service_name)); - iter.iter_ = iter.values_->begin(); - return iter; - } - -private: - friend class boost::iterator_core_access; - - void increment() - { - if (++*iter_ == values_->end()) - { - // Reset state to match a default constructed end iterator. - values_.reset(); - typedef typename values_type::const_iterator values_iterator_type; - iter_.reset(); - } - } - - bool equal(const basic_resolver_iterator& other) const - { - if (!values_ && !other.values_) - return true; - if (values_ != other.values_) - return false; - return *iter_ == *other.iter_; - } - - const basic_resolver_entry& dereference() const - { - return **iter_; - } - - typedef std::vector > values_type; - typedef typename values_type::const_iterator values_iter_type; - boost::shared_ptr values_; - boost::optional iter_; -}; - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_BASIC_RESOLVER_ITERATOR_HPP diff --git a/3rdParty/Boost/boost/asio/ip/basic_resolver_query.hpp b/3rdParty/Boost/boost/asio/ip/basic_resolver_query.hpp deleted file mode 100644 index dd08525..0000000 --- a/3rdParty/Boost/boost/asio/ip/basic_resolver_query.hpp +++ /dev/null @@ -1,151 +0,0 @@ -// -// basic_resolver_query.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_BASIC_RESOLVER_QUERY_HPP -#define BOOST_ASIO_IP_BASIC_RESOLVER_QUERY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// An query to be passed to a resolver. -/** - * The boost::asio::ip::basic_resolver_query class template describes a query - * that can be passed to a resolver. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_resolver_query - : public resolver_query_base -{ -public: - /// The protocol type associated with the endpoint query. - typedef InternetProtocol protocol_type; - - /// Construct with specified service name for any protocol. - basic_resolver_query(const std::string& service_name, - int flags = passive | address_configured) - : hints_(), - host_name_(), - service_name_(service_name) - { - typename InternetProtocol::endpoint endpoint; - hints_.ai_flags = flags; - hints_.ai_family = PF_UNSPEC; - hints_.ai_socktype = endpoint.protocol().type(); - hints_.ai_protocol = endpoint.protocol().protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Construct with specified service name for a given protocol. - basic_resolver_query(const protocol_type& protocol, - const std::string& service_name, - int flags = passive | address_configured) - : hints_(), - host_name_(), - service_name_(service_name) - { - hints_.ai_flags = flags; - hints_.ai_family = protocol.family(); - hints_.ai_socktype = protocol.type(); - hints_.ai_protocol = protocol.protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Construct with specified host name and service name for any protocol. - basic_resolver_query(const std::string& host_name, - const std::string& service_name, int flags = address_configured) - : hints_(), - host_name_(host_name), - service_name_(service_name) - { - typename InternetProtocol::endpoint endpoint; - hints_.ai_flags = flags; - hints_.ai_family = PF_UNSPEC; - hints_.ai_socktype = endpoint.protocol().type(); - hints_.ai_protocol = endpoint.protocol().protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Construct with specified host name and service name for a given protocol. - basic_resolver_query(const protocol_type& protocol, - const std::string& host_name, const std::string& service_name, - int flags = address_configured) - : hints_(), - host_name_(host_name), - service_name_(service_name) - { - hints_.ai_flags = flags; - hints_.ai_family = protocol.family(); - hints_.ai_socktype = protocol.type(); - hints_.ai_protocol = protocol.protocol(); - hints_.ai_addrlen = 0; - hints_.ai_canonname = 0; - hints_.ai_addr = 0; - hints_.ai_next = 0; - } - - /// Get the hints associated with the query. - const boost::asio::detail::addrinfo_type& hints() const - { - return hints_; - } - - /// Get the host name associated with the query. - std::string host_name() const - { - return host_name_; - } - - /// Get the service name associated with the query. - std::string service_name() const - { - return service_name_; - } - -private: - boost::asio::detail::addrinfo_type hints_; - std::string host_name_; - std::string service_name_; -}; - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_BASIC_RESOLVER_QUERY_HPP diff --git a/3rdParty/Boost/boost/asio/ip/detail/socket_option.hpp b/3rdParty/Boost/boost/asio/ip/detail/socket_option.hpp deleted file mode 100644 index 40226fe..0000000 --- a/3rdParty/Boost/boost/asio/ip/detail/socket_option.hpp +++ /dev/null @@ -1,580 +0,0 @@ -// -// socket_option.hpp -// ~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_DETAIL_SOCKET_OPTION_HPP -#define BOOST_ASIO_IP_DETAIL_SOCKET_OPTION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { -namespace detail { -namespace socket_option { - -// Helper template for implementing multicast enable loopback options. -template -class multicast_enable_loopback -{ -public: -#if defined(__sun) || defined(__osf__) - typedef unsigned char ipv4_value_type; - typedef unsigned char ipv6_value_type; -#elif defined(_AIX) || defined(__hpux) || defined(__QNXNTO__) - typedef unsigned char ipv4_value_type; - typedef unsigned int ipv6_value_type; -#else - typedef int ipv4_value_type; - typedef int ipv6_value_type; -#endif - - // Default constructor. - multicast_enable_loopback() - : ipv4_value_(0), - ipv6_value_(0) - { - } - - // Construct with a specific option value. - explicit multicast_enable_loopback(bool v) - : ipv4_value_(v ? 1 : 0), - ipv6_value_(v ? 1 : 0) - { - } - - // Set the value of the boolean. - multicast_enable_loopback& operator=(bool v) - { - ipv4_value_ = v ? 1 : 0; - ipv6_value_ = v ? 1 : 0; - return *this; - } - - // Get the current value of the boolean. - bool value() const - { - return !!ipv4_value_; - } - - // Convert to bool. - operator bool() const - { - return !!ipv4_value_; - } - - // Test for false. - bool operator!() const - { - return !ipv4_value_; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the boolean data. - template - void* data(const Protocol& protocol) - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the address of the boolean data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the boolean data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - - // Set the size of the boolean data. - template - void resize(const Protocol& protocol, std::size_t s) - { - if (protocol.family() == PF_INET6) - { - if (s != sizeof(ipv6_value_)) - { - throw std::length_error( - "multicast_enable_loopback socket option resize"); - } - ipv4_value_ = ipv6_value_ ? 1 : 0; - } - else - { - if (s != sizeof(ipv4_value_)) - { - throw std::length_error( - "multicast_enable_loopback socket option resize"); - } - ipv6_value_ = ipv4_value_ ? 1 : 0; - } - } - -private: - ipv4_value_type ipv4_value_; - ipv6_value_type ipv6_value_; -}; - -// Helper template for implementing unicast hops options. -template -class unicast_hops -{ -public: - // Default constructor. - unicast_hops() - : value_(0) - { - } - - // Construct with a specific option value. - explicit unicast_hops(int v) - : value_(v) - { - } - - // Set the value of the option. - unicast_hops& operator=(int v) - { - value_ = v; - return *this; - } - - // Get the current value of the option. - int value() const - { - return value_; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the data. - template - int* data(const Protocol&) - { - return &value_; - } - - // Get the address of the data. - template - const int* data(const Protocol&) const - { - return &value_; - } - - // Get the size of the data. - template - std::size_t size(const Protocol&) const - { - return sizeof(value_); - } - - // Set the size of the data. - template - void resize(const Protocol&, std::size_t s) - { - if (s != sizeof(value_)) - throw std::length_error("unicast hops socket option resize"); -#if defined(__hpux) - if (value_ < 0) - value_ = value_ & 0xFF; -#endif - } - -private: - int value_; -}; - -// Helper template for implementing multicast hops options. -template -class multicast_hops -{ -public: -#if defined(BOOST_WINDOWS) && defined(UNDER_CE) - typedef int ipv4_value_type; -#else - typedef unsigned char ipv4_value_type; -#endif - typedef int ipv6_value_type; - - // Default constructor. - multicast_hops() - : ipv4_value_(0), - ipv6_value_(0) - { - } - - // Construct with a specific option value. - explicit multicast_hops(int v) - { - if (v < 0 || v > 255) - throw std::out_of_range("multicast hops value out of range"); - ipv4_value_ = (ipv4_value_type)v; - ipv6_value_ = v; - } - - // Set the value of the option. - multicast_hops& operator=(int v) - { - if (v < 0 || v > 255) - throw std::out_of_range("multicast hops value out of range"); - ipv4_value_ = (ipv4_value_type)v; - ipv6_value_ = v; - return *this; - } - - // Get the current value of the option. - int value() const - { - return ipv6_value_; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the data. - template - void* data(const Protocol& protocol) - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the address of the data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - - // Set the size of the data. - template - void resize(const Protocol& protocol, std::size_t s) - { - if (protocol.family() == PF_INET6) - { - if (s != sizeof(ipv6_value_)) - throw std::length_error("multicast hops socket option resize"); - if (ipv6_value_ < 0) - ipv4_value_ = 0; - else if (ipv6_value_ > 255) - ipv4_value_ = 255; - else - ipv4_value_ = (ipv4_value_type)ipv6_value_; - } - else - { - if (s != sizeof(ipv4_value_)) - throw std::length_error("multicast hops socket option resize"); - ipv6_value_ = ipv4_value_; - } - } - -private: - ipv4_value_type ipv4_value_; - ipv6_value_type ipv6_value_; -}; - -// Helper template for implementing ip_mreq-based options. -template -class multicast_request -{ -public: - // Default constructor. - multicast_request() - { - ipv4_value_.imr_multiaddr.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - boost::asio::ip::address_v4::any().to_ulong()); - ipv4_value_.imr_interface.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - boost::asio::ip::address_v4::any().to_ulong()); - - boost::asio::detail::in6_addr_type tmp_addr = IN6ADDR_ANY_INIT; - ipv6_value_.ipv6mr_multiaddr = tmp_addr; - ipv6_value_.ipv6mr_interface = 0; - } - - // Construct with multicast address only. - explicit multicast_request(const boost::asio::ip::address& multicast_address) - { - if (multicast_address.is_v6()) - { - ipv4_value_.imr_multiaddr.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - boost::asio::ip::address_v4::any().to_ulong()); - ipv4_value_.imr_interface.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - boost::asio::ip::address_v4::any().to_ulong()); - - using namespace std; // For memcpy. - boost::asio::ip::address_v6 ipv6_address = multicast_address.to_v6(); - boost::asio::ip::address_v6::bytes_type bytes = ipv6_address.to_bytes(); - memcpy(ipv6_value_.ipv6mr_multiaddr.s6_addr, bytes.elems, 16); - ipv6_value_.ipv6mr_interface = 0; - } - else - { - ipv4_value_.imr_multiaddr.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - multicast_address.to_v4().to_ulong()); - ipv4_value_.imr_interface.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - boost::asio::ip::address_v4::any().to_ulong()); - - boost::asio::detail::in6_addr_type tmp_addr = IN6ADDR_ANY_INIT; - ipv6_value_.ipv6mr_multiaddr = tmp_addr; - ipv6_value_.ipv6mr_interface = 0; - } - } - - // Construct with multicast address and IPv4 address specifying an interface. - explicit multicast_request( - const boost::asio::ip::address_v4& multicast_address, - const boost::asio::ip::address_v4& network_interface - = boost::asio::ip::address_v4::any()) - { - ipv4_value_.imr_multiaddr.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - multicast_address.to_ulong()); - ipv4_value_.imr_interface.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - network_interface.to_ulong()); - - boost::asio::detail::in6_addr_type tmp_addr = IN6ADDR_ANY_INIT; - ipv6_value_.ipv6mr_multiaddr = tmp_addr; - ipv6_value_.ipv6mr_interface = 0; - } - - // Construct with multicast address and IPv6 network interface index. - explicit multicast_request( - const boost::asio::ip::address_v6& multicast_address, - unsigned long network_interface = 0) - { - ipv4_value_.imr_multiaddr.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - boost::asio::ip::address_v4::any().to_ulong()); - ipv4_value_.imr_interface.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - boost::asio::ip::address_v4::any().to_ulong()); - - using namespace std; // For memcpy. - boost::asio::ip::address_v6::bytes_type bytes = - multicast_address.to_bytes(); - memcpy(ipv6_value_.ipv6mr_multiaddr.s6_addr, bytes.elems, 16); - ipv6_value_.ipv6mr_interface = network_interface; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the option data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the option data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - -private: - boost::asio::detail::in4_mreq_type ipv4_value_; - boost::asio::detail::in6_mreq_type ipv6_value_; -}; - -// Helper template for implementing options that specify a network interface. -template -class network_interface -{ -public: - // Default constructor. - network_interface() - { - ipv4_value_.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - boost::asio::ip::address_v4::any().to_ulong()); - ipv6_value_ = 0; - } - - // Construct with IPv4 interface. - explicit network_interface(const boost::asio::ip::address_v4& ipv4_interface) - { - ipv4_value_.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - ipv4_interface.to_ulong()); - ipv6_value_ = 0; - } - - // Construct with IPv6 interface. - explicit network_interface(unsigned int ipv6_interface) - { - ipv4_value_.s_addr = - boost::asio::detail::socket_ops::host_to_network_long( - boost::asio::ip::address_v4::any().to_ulong()); - ipv6_value_ = ipv6_interface; - } - - // Get the level of the socket option. - template - int level(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Level; - return IPv4_Level; - } - - // Get the name of the socket option. - template - int name(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return IPv6_Name; - return IPv4_Name; - } - - // Get the address of the option data. - template - const void* data(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return &ipv6_value_; - return &ipv4_value_; - } - - // Get the size of the option data. - template - std::size_t size(const Protocol& protocol) const - { - if (protocol.family() == PF_INET6) - return sizeof(ipv6_value_); - return sizeof(ipv4_value_); - } - -private: - boost::asio::detail::in4_addr_type ipv4_value_; - unsigned int ipv6_value_; -}; - -} // namespace socket_option -} // namespace detail -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_DETAIL_SOCKET_OPTION_HPP diff --git a/3rdParty/Boost/boost/asio/ip/host_name.hpp b/3rdParty/Boost/boost/asio/ip/host_name.hpp deleted file mode 100644 index a21950e..0000000 --- a/3rdParty/Boost/boost/asio/ip/host_name.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// host_name.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_HOST_NAME_HPP -#define BOOST_ASIO_IP_HOST_NAME_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Get the current host name. -std::string host_name(); - -/// Get the current host name. -std::string host_name(boost::system::error_code& ec); - -inline std::string host_name() -{ - char name[1024]; - boost::system::error_code ec; - if (boost::asio::detail::socket_ops::gethostname(name, sizeof(name), ec) != 0) - { - boost::asio::detail::throw_error(ec); - return std::string(); - } - return std::string(name); -} - -inline std::string host_name(boost::system::error_code& ec) -{ - char name[1024]; - if (boost::asio::detail::socket_ops::gethostname(name, sizeof(name), ec) != 0) - return std::string(); - return std::string(name); -} - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_HOST_NAME_HPP diff --git a/3rdParty/Boost/boost/asio/ip/icmp.hpp b/3rdParty/Boost/boost/asio/ip/icmp.hpp deleted file mode 100644 index 1230128..0000000 --- a/3rdParty/Boost/boost/asio/ip/icmp.hpp +++ /dev/null @@ -1,120 +0,0 @@ -// -// icmp.hpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_ICMP_HPP -#define BOOST_ASIO_IP_ICMP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Encapsulates the flags needed for ICMP. -/** - * The boost::asio::ip::icmp class contains flags necessary for ICMP sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol, InternetProtocol. - */ -class icmp -{ -public: - /// The type of a ICMP endpoint. - typedef basic_endpoint endpoint; - - /// The type of a resolver query. - typedef basic_resolver_query resolver_query; - - /// The type of a resolver iterator. - typedef basic_resolver_iterator resolver_iterator; - - /// Construct to represent the IPv4 ICMP protocol. - static icmp v4() - { - return icmp(IPPROTO_ICMP, PF_INET); - } - - /// Construct to represent the IPv6 ICMP protocol. - static icmp v6() - { - return icmp(IPPROTO_ICMPV6, PF_INET6); - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return SOCK_RAW; - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return protocol_; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// The ICMP socket type. - typedef basic_raw_socket socket; - - /// The ICMP resolver type. - typedef basic_resolver resolver; - - /// Compare two protocols for equality. - friend bool operator==(const icmp& p1, const icmp& p2) - { - return p1.protocol_ == p2.protocol_ && p1.family_ == p2.family_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const icmp& p1, const icmp& p2) - { - return p1.protocol_ != p2.protocol_ || p1.family_ != p2.family_; - } - -private: - // Construct with a specific family. - explicit icmp(int protocol, int family) - : protocol_(protocol), - family_(family) - { - } - - int protocol_; - int family_; -}; - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_ICMP_HPP diff --git a/3rdParty/Boost/boost/asio/ip/multicast.hpp b/3rdParty/Boost/boost/asio/ip/multicast.hpp deleted file mode 100644 index 0f151cd..0000000 --- a/3rdParty/Boost/boost/asio/ip/multicast.hpp +++ /dev/null @@ -1,183 +0,0 @@ -// -// multicast.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_MULTICAST_HPP -#define BOOST_ASIO_IP_MULTICAST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include - -namespace boost { -namespace asio { -namespace ip { -namespace multicast { - -/// Socket option to join a multicast group on a specified interface. -/** - * Implements the IPPROTO_IP/IP_ADD_MEMBERSHIP socket option. - * - * @par Examples - * Setting the option to join a multicast group: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::ip::address multicast_address = - * boost::asio::ip::address::from_string("225.0.0.1"); - * boost::asio::ip::multicast::join_group option(multicast_address); - * socket.set_option(option); - * @endcode - * - * @par Concepts: - * SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined join_group; -#else -typedef boost::asio::ip::detail::socket_option::multicast_request< - IPPROTO_IP, IP_ADD_MEMBERSHIP, IPPROTO_IPV6, IPV6_JOIN_GROUP> join_group; -#endif - -/// Socket option to leave a multicast group on a specified interface. -/** - * Implements the IPPROTO_IP/IP_DROP_MEMBERSHIP socket option. - * - * @par Examples - * Setting the option to leave a multicast group: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::ip::address multicast_address = - * boost::asio::ip::address::from_string("225.0.0.1"); - * boost::asio::ip::multicast::leave_group option(multicast_address); - * socket.set_option(option); - * @endcode - * - * @par Concepts: - * SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined leave_group; -#else -typedef boost::asio::ip::detail::socket_option::multicast_request< - IPPROTO_IP, IP_DROP_MEMBERSHIP, IPPROTO_IPV6, IPV6_LEAVE_GROUP> leave_group; -#endif - -/// Socket option for local interface to use for outgoing multicast packets. -/** - * Implements the IPPROTO_IP/IP_MULTICAST_IF socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::ip::address_v4 local_interface = - * boost::asio::ip::address_v4::from_string("1.2.3.4"); - * boost::asio::ip::multicast::outbound_interface option(local_interface); - * socket.set_option(option); - * @endcode - * - * @par Concepts: - * SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined outbound_interface; -#else -typedef boost::asio::ip::detail::socket_option::network_interface< - IPPROTO_IP, IP_MULTICAST_IF, IPPROTO_IPV6, IPV6_MULTICAST_IF> - outbound_interface; -#endif - -/// Socket option for time-to-live associated with outgoing multicast packets. -/** - * Implements the IPPROTO_IP/IP_MULTICAST_TTL socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::ip::multicast::hops option(4); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::ip::multicast::hops option; - * socket.get_option(option); - * int ttl = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined hops; -#else -typedef boost::asio::ip::detail::socket_option::multicast_hops< - IPPROTO_IP, IP_MULTICAST_TTL, IPPROTO_IPV6, IPV6_MULTICAST_HOPS> hops; -#endif - -/// Socket option determining whether outgoing multicast packets will be -/// received on the same socket if it is a member of the multicast group. -/** - * Implements the IPPROTO_IP/IP_MULTICAST_LOOP socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::ip::multicast::enable_loopback option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::ip::multicast::enable_loopback option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined enable_loopback; -#else -typedef boost::asio::ip::detail::socket_option::multicast_enable_loopback< - IPPROTO_IP, IP_MULTICAST_LOOP, IPPROTO_IPV6, IPV6_MULTICAST_LOOP> - enable_loopback; -#endif - -} // namespace multicast -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_MULTICAST_HPP diff --git a/3rdParty/Boost/boost/asio/ip/resolver_query_base.hpp b/3rdParty/Boost/boost/asio/ip/resolver_query_base.hpp deleted file mode 100644 index 67b5c80..0000000 --- a/3rdParty/Boost/boost/asio/ip/resolver_query_base.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// resolver_query_base.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_RESOLVER_QUERY_BASE_HPP -#define BOOST_ASIO_IP_RESOLVER_QUERY_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include - -namespace boost { -namespace asio { -namespace ip { - -/// The resolver_query_base class is used as a base for the -/// basic_resolver_query class templates to provide a common place to define -/// the flag constants. -class resolver_query_base -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// Determine the canonical name of the host specified in the query. - static const int canonical_name = implementation_defined; - - /// Indicate that returned endpoint is intended for use as a locally bound - /// socket endpoint. - static const int passive = implementation_defined; - - /// Host name should be treated as a numeric string defining an IPv4 or IPv6 - /// address and no name resolution should be attempted. - static const int numeric_host = implementation_defined; - - /// Service name should be treated as a numeric string defining a port number - /// and no name resolution should be attempted. - static const int numeric_service = implementation_defined; - - /// If the query protocol family is specified as IPv6, return IPv4-mapped - /// IPv6 addresses on finding no IPv6 addresses. - static const int v4_mapped = implementation_defined; - - /// If used with v4_mapped, return all matching IPv6 and IPv4 addresses. - static const int all_matching = implementation_defined; - - /// Only return IPv4 addresses if a non-loopback IPv4 address is configured - /// for the system. Only return IPv6 addresses if a non-loopback IPv6 address - /// is configured for the system. - static const int address_configured = implementation_defined; -#else - BOOST_STATIC_CONSTANT(int, canonical_name = AI_CANONNAME); - BOOST_STATIC_CONSTANT(int, passive = AI_PASSIVE); - BOOST_STATIC_CONSTANT(int, numeric_host = AI_NUMERICHOST); -# if defined(AI_NUMERICSERV) - BOOST_STATIC_CONSTANT(int, numeric_service = AI_NUMERICSERV); -# else - BOOST_STATIC_CONSTANT(int, numeric_service = 0); -# endif - // Note: QNX Neutrino 6.3 defines AI_V4MAPPED, AI_ALL and AI_ADDRCONFIG but - // does not implement them. Therefore they are specifically excluded here. -# if defined(AI_V4MAPPED) && !defined(__QNXNTO__) - BOOST_STATIC_CONSTANT(int, v4_mapped = AI_V4MAPPED); -# else - BOOST_STATIC_CONSTANT(int, v4_mapped = 0); -# endif -# if defined(AI_ALL) && !defined(__QNXNTO__) - BOOST_STATIC_CONSTANT(int, all_matching = AI_ALL); -# else - BOOST_STATIC_CONSTANT(int, all_matching = 0); -# endif -# if defined(AI_ADDRCONFIG) && !defined(__QNXNTO__) - BOOST_STATIC_CONSTANT(int, address_configured = AI_ADDRCONFIG); -# else - BOOST_STATIC_CONSTANT(int, address_configured = 0); -# endif -#endif - -protected: - /// Protected destructor to prevent deletion through this type. - ~resolver_query_base() - { - } - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -private: - // Workaround to enable the empty base optimisation with Borland C++. - char dummy_; -#endif -}; - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_RESOLVER_QUERY_BASE_HPP diff --git a/3rdParty/Boost/boost/asio/ip/resolver_service.hpp b/3rdParty/Boost/boost/asio/ip/resolver_service.hpp deleted file mode 100644 index 17a9ac1..0000000 --- a/3rdParty/Boost/boost/asio/ip/resolver_service.hpp +++ /dev/null @@ -1,142 +0,0 @@ -// -// resolver_service.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_RESOLVER_SERVICE_HPP -#define BOOST_ASIO_IP_RESOLVER_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Default service implementation for a resolver. -template -class resolver_service -#if defined(GENERATING_DOCUMENTATION) - : public boost::asio::io_service::service -#else - : public boost::asio::detail::service_base< - resolver_service > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static boost::asio::io_service::id id; -#endif - - /// The protocol type. - typedef InternetProtocol protocol_type; - - /// The endpoint type. - typedef typename InternetProtocol::endpoint endpoint_type; - - /// The query type. - typedef typename InternetProtocol::resolver_query query_type; - - /// The iterator type. - typedef typename InternetProtocol::resolver_iterator iterator_type; - -private: - // The type of the platform-specific implementation. - typedef boost::asio::detail::resolver_service - service_impl_type; - -public: - /// The type of a resolver implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// Construct a new resolver service for the specified io_service. - explicit resolver_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - resolver_service >(io_service), - service_impl_(boost::asio::use_service(io_service)) - { - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Construct a new resolver implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a resolver implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Cancel pending asynchronous operations. - void cancel(implementation_type& impl) - { - service_impl_.cancel(impl); - } - - /// Resolve a query to a list of entries. - iterator_type resolve(implementation_type& impl, const query_type& query, - boost::system::error_code& ec) - { - return service_impl_.resolve(impl, query, ec); - } - - /// Asynchronously resolve a query to a list of entries. - template - void async_resolve(implementation_type& impl, const query_type& query, - Handler handler) - { - service_impl_.async_resolve(impl, query, handler); - } - - /// Resolve an endpoint to a list of entries. - iterator_type resolve(implementation_type& impl, - const endpoint_type& endpoint, boost::system::error_code& ec) - { - return service_impl_.resolve(impl, endpoint, ec); - } - - /// Asynchronously resolve an endpoint to a list of entries. - template - void async_resolve(implementation_type& impl, const endpoint_type& endpoint, - ResolveHandler handler) - { - return service_impl_.async_resolve(impl, endpoint, handler); - } - -private: - // The service that provides the platform-specific implementation. - service_impl_type& service_impl_; -}; - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_RESOLVER_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/ip/tcp.hpp b/3rdParty/Boost/boost/asio/ip/tcp.hpp deleted file mode 100644 index 4c282ab..0000000 --- a/3rdParty/Boost/boost/asio/ip/tcp.hpp +++ /dev/null @@ -1,160 +0,0 @@ -// -// tcp.hpp -// ~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_TCP_HPP -#define BOOST_ASIO_IP_TCP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Encapsulates the flags needed for TCP. -/** - * The boost::asio::ip::tcp class contains flags necessary for TCP sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol, InternetProtocol. - */ -class tcp -{ -public: - /// The type of a TCP endpoint. - typedef basic_endpoint endpoint; - - /// The type of a resolver query. - typedef basic_resolver_query resolver_query; - - /// The type of a resolver iterator. - typedef basic_resolver_iterator resolver_iterator; - - /// Construct to represent the IPv4 TCP protocol. - static tcp v4() - { - return tcp(PF_INET); - } - - /// Construct to represent the IPv6 TCP protocol. - static tcp v6() - { - return tcp(PF_INET6); - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return SOCK_STREAM; - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return IPPROTO_TCP; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// The TCP socket type. - typedef basic_stream_socket socket; - - /// The TCP acceptor type. - typedef basic_socket_acceptor acceptor; - - /// The TCP resolver type. - typedef basic_resolver resolver; - - /// The TCP iostream type. - typedef basic_socket_iostream iostream; - - /// Socket option for disabling the Nagle algorithm. - /** - * Implements the IPPROTO_TCP/TCP_NODELAY socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::tcp::no_delay option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::tcp::no_delay option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined no_delay; -#else - typedef boost::asio::detail::socket_option::boolean< - IPPROTO_TCP, TCP_NODELAY> no_delay; -#endif - - /// Compare two protocols for equality. - friend bool operator==(const tcp& p1, const tcp& p2) - { - return p1.family_ == p2.family_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const tcp& p1, const tcp& p2) - { - return p1.family_ != p2.family_; - } - -private: - // Construct with a specific family. - explicit tcp(int family) - : family_(family) - { - } - - int family_; -}; - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_TCP_HPP diff --git a/3rdParty/Boost/boost/asio/ip/udp.hpp b/3rdParty/Boost/boost/asio/ip/udp.hpp deleted file mode 100644 index 886cad8..0000000 --- a/3rdParty/Boost/boost/asio/ip/udp.hpp +++ /dev/null @@ -1,118 +0,0 @@ -// -// udp.hpp -// ~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_UDP_HPP -#define BOOST_ASIO_IP_UDP_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Encapsulates the flags needed for UDP. -/** - * The boost::asio::ip::udp class contains flags necessary for UDP sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol, InternetProtocol. - */ -class udp -{ -public: - /// The type of a UDP endpoint. - typedef basic_endpoint endpoint; - - /// The type of a resolver query. - typedef basic_resolver_query resolver_query; - - /// The type of a resolver iterator. - typedef basic_resolver_iterator resolver_iterator; - - /// Construct to represent the IPv4 UDP protocol. - static udp v4() - { - return udp(PF_INET); - } - - /// Construct to represent the IPv6 UDP protocol. - static udp v6() - { - return udp(PF_INET6); - } - - /// Obtain an identifier for the type of the protocol. - int type() const - { - return SOCK_DGRAM; - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return IPPROTO_UDP; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return family_; - } - - /// The UDP socket type. - typedef basic_datagram_socket socket; - - /// The UDP resolver type. - typedef basic_resolver resolver; - - /// Compare two protocols for equality. - friend bool operator==(const udp& p1, const udp& p2) - { - return p1.family_ == p2.family_; - } - - /// Compare two protocols for inequality. - friend bool operator!=(const udp& p1, const udp& p2) - { - return p1.family_ != p2.family_; - } - -private: - // Construct with a specific family. - explicit udp(int family) - : family_(family) - { - } - - int family_; -}; - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_UDP_HPP diff --git a/3rdParty/Boost/boost/asio/ip/unicast.hpp b/3rdParty/Boost/boost/asio/ip/unicast.hpp deleted file mode 100644 index f603fed..0000000 --- a/3rdParty/Boost/boost/asio/ip/unicast.hpp +++ /dev/null @@ -1,72 +0,0 @@ -// -// unicast.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_UNICAST_HPP -#define BOOST_ASIO_IP_UNICAST_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include - -namespace boost { -namespace asio { -namespace ip { -namespace unicast { - -/// Socket option for time-to-live associated with outgoing unicast packets. -/** - * Implements the IPPROTO_IP/IP_UNICAST_TTL socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::ip::unicast::hops option(4); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::ip::unicast::hops option; - * socket.get_option(option); - * int ttl = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined hops; -#else -typedef boost::asio::ip::detail::socket_option::unicast_hops< - IPPROTO_IP, IP_TTL, IPPROTO_IPV6, IPV6_UNICAST_HOPS> hops; -#endif - -} // namespace unicast -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_UNICAST_HPP diff --git a/3rdParty/Boost/boost/asio/ip/v6_only.hpp b/3rdParty/Boost/boost/asio/ip/v6_only.hpp deleted file mode 100644 index 203776d..0000000 --- a/3rdParty/Boost/boost/asio/ip/v6_only.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// v6_only.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IP_V6_ONLY_HPP -#define BOOST_ASIO_IP_V6_ONLY_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -namespace boost { -namespace asio { -namespace ip { - -/// Socket option for determining whether an IPv6 socket supports IPv6 -/// communication only. -/** - * Implements the IPPROTO_IPV6/IP_V6ONLY socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::v6_only option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::ip::v6_only option; - * socket.get_option(option); - * bool v6_only = option.value(); - * @endcode - * - * @par Concepts: - * GettableSocketOption, SettableSocketOption. - */ -#if defined(GENERATING_DOCUMENTATION) -typedef implementation_defined v6_only; -#elif defined(IPV6_V6ONLY) -typedef boost::asio::detail::socket_option::boolean< - IPPROTO_IPV6, IPV6_V6ONLY> v6_only; -#else -typedef boost::asio::detail::socket_option::boolean< - boost::asio::detail::custom_socket_option_level, - boost::asio::detail::always_fail_option> v6_only; -#endif - -} // namespace ip -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IP_V6_ONLY_HPP diff --git a/3rdParty/Boost/boost/asio/is_read_buffered.hpp b/3rdParty/Boost/boost/asio/is_read_buffered.hpp deleted file mode 100644 index 92dcc96..0000000 --- a/3rdParty/Boost/boost/asio/is_read_buffered.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// is_read_buffered.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IS_READ_BUFFERED_HPP -#define BOOST_ASIO_IS_READ_BUFFERED_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { - -namespace detail { - -template -char is_read_buffered_helper(buffered_stream* s); - -template -char is_read_buffered_helper(buffered_read_stream* s); - -struct is_read_buffered_big_type { char data[10]; }; -is_read_buffered_big_type is_read_buffered_helper(...); - -} // namespace detail - -/// The is_read_buffered class is a traits class that may be used to determine -/// whether a stream type supports buffering of read data. -template -class is_read_buffered -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true only if the Stream type supports buffering of - /// read data. - static const bool value; -#else - BOOST_STATIC_CONSTANT(bool, - value = sizeof(detail::is_read_buffered_helper((Stream*)0)) == 1); -#endif -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IS_READ_BUFFERED_HPP diff --git a/3rdParty/Boost/boost/asio/is_write_buffered.hpp b/3rdParty/Boost/boost/asio/is_write_buffered.hpp deleted file mode 100644 index ba0bb3b..0000000 --- a/3rdParty/Boost/boost/asio/is_write_buffered.hpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// is_write_buffered.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_IS_WRITE_BUFFERED_HPP -#define BOOST_ASIO_IS_WRITE_BUFFERED_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { - -namespace detail { - -template -char is_write_buffered_helper(buffered_stream* s); - -template -char is_write_buffered_helper(buffered_write_stream* s); - -struct is_write_buffered_big_type { char data[10]; }; -is_write_buffered_big_type is_write_buffered_helper(...); - -} // namespace detail - -/// The is_write_buffered class is a traits class that may be used to determine -/// whether a stream type supports buffering of written data. -template -class is_write_buffered -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true only if the Stream type supports buffering of - /// written data. - static const bool value; -#else - BOOST_STATIC_CONSTANT(bool, - value = sizeof(detail::is_write_buffered_helper((Stream*)0)) == 1); -#endif -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_IS_WRITE_BUFFERED_HPP diff --git a/3rdParty/Boost/boost/asio/local/basic_endpoint.hpp b/3rdParty/Boost/boost/asio/local/basic_endpoint.hpp deleted file mode 100644 index dc927b7..0000000 --- a/3rdParty/Boost/boost/asio/local/basic_endpoint.hpp +++ /dev/null @@ -1,267 +0,0 @@ -// -// basic_endpoint.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_LOCAL_BASIC_ENDPOINT_HPP -#define BOOST_ASIO_LOCAL_BASIC_ENDPOINT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#if !defined(BOOST_ASIO_DISABLE_LOCAL_SOCKETS) -# if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -# define BOOST_ASIO_HAS_LOCAL_SOCKETS 1 -# endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -#endif // !defined(BOOST_ASIO_DISABLE_LOCAL_SOCKETS) - -#if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - - -namespace boost { -namespace asio { -namespace local { - -/// Describes an endpoint for a UNIX socket. -/** - * The boost::asio::local::basic_endpoint class template describes an endpoint - * that may be associated with a particular UNIX socket. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * Endpoint. - */ -template -class basic_endpoint -{ -public: - /// The protocol type associated with the endpoint. - typedef Protocol protocol_type; - - /// The type of the endpoint structure. This type is dependent on the - /// underlying implementation of the socket layer. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined data_type; -#else - typedef boost::asio::detail::socket_addr_type data_type; -#endif - - /// Default constructor. - basic_endpoint() - { - init("", 0); - } - - /// Construct an endpoint using the specified path name. - basic_endpoint(const char* path) - { - using namespace std; // For strlen. - init(path, strlen(path)); - } - - /// Construct an endpoint using the specified path name. - basic_endpoint(const std::string& path) - { - init(path.data(), path.length()); - } - - /// Copy constructor. - basic_endpoint(const basic_endpoint& other) - : data_(other.data_), - path_length_(other.path_length_) - { - } - - /// Assign from another endpoint. - basic_endpoint& operator=(const basic_endpoint& other) - { - data_ = other.data_; - path_length_ = other.path_length_; - return *this; - } - - /// The protocol associated with the endpoint. - protocol_type protocol() const - { - return protocol_type(); - } - - /// Get the underlying endpoint in the native type. - data_type* data() - { - return &data_.base; - } - - /// Get the underlying endpoint in the native type. - const data_type* data() const - { - return &data_.base; - } - - /// Get the underlying size of the endpoint in the native type. - std::size_t size() const - { - return path_length_ - + offsetof(boost::asio::detail::sockaddr_un_type, sun_path); - } - - /// Set the underlying size of the endpoint in the native type. - void resize(std::size_t size) - { - if (size > sizeof(boost::asio::detail::sockaddr_un_type)) - { - boost::system::system_error e(boost::asio::error::invalid_argument); - boost::throw_exception(e); - } - else if (size == 0) - { - path_length_ = 0; - } - else - { - path_length_ = size - - offsetof(boost::asio::detail::sockaddr_un_type, sun_path); - - // The path returned by the operating system may be NUL-terminated. - if (path_length_ > 0 && data_.local.sun_path[path_length_ - 1] == 0) - --path_length_; - } - } - - /// Get the capacity of the endpoint in the native type. - std::size_t capacity() const - { - return sizeof(boost::asio::detail::sockaddr_un_type); - } - - /// Get the path associated with the endpoint. - std::string path() const - { - return std::string(data_.local.sun_path, path_length_); - } - - /// Set the path associated with the endpoint. - void path(const char* p) - { - using namespace std; // For strlen. - init(p, strlen(p)); - } - - /// Set the path associated with the endpoint. - void path(const std::string& p) - { - init(p.data(), p.length()); - } - - /// Compare two endpoints for equality. - friend bool operator==(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.path() == e2.path(); - } - - /// Compare two endpoints for inequality. - friend bool operator!=(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.path() != e2.path(); - } - - /// Compare endpoints for ordering. - friend bool operator<(const basic_endpoint& e1, - const basic_endpoint& e2) - { - return e1.path() < e2.path(); - } - -private: - // The underlying UNIX socket address. - union data_union - { - boost::asio::detail::socket_addr_type base; - boost::asio::detail::sockaddr_un_type local; - } data_; - - // The length of the path associated with the endpoint. - std::size_t path_length_; - - // Initialise with a specified path. - void init(const char* path, std::size_t path_length) - { - if (path_length > sizeof(data_.local.sun_path) - 1) - { - // The buffer is not large enough to store this address. - boost::system::error_code ec(boost::asio::error::name_too_long); - boost::asio::detail::throw_error(ec); - } - - using namespace std; // For memcpy. - data_.local = boost::asio::detail::sockaddr_un_type(); - data_.local.sun_family = AF_UNIX; - memcpy(data_.local.sun_path, path, path_length); - path_length_ = path_length; - - // NUL-terminate normal path names. Names that start with a NUL are in the - // UNIX domain protocol's "abstract namespace" and are not NUL-terminated. - if (path_length > 0 && data_.local.sun_path[0] == 0) - data_.local.sun_path[path_length] = 0; - } -}; - -/// Output an endpoint as a string. -/** - * Used to output a human-readable string for a specified endpoint. - * - * @param os The output stream to which the string will be written. - * - * @param endpoint The endpoint to be written. - * - * @return The output stream. - * - * @relates boost::asio::local::basic_endpoint - */ -template -std::basic_ostream& operator<<( - std::basic_ostream& os, - const basic_endpoint& endpoint) -{ - os << endpoint.path(); - return os; -} - -} // namespace local -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_LOCAL_BASIC_ENDPOINT_HPP diff --git a/3rdParty/Boost/boost/asio/local/connect_pair.hpp b/3rdParty/Boost/boost/asio/local/connect_pair.hpp deleted file mode 100644 index 39a5e2a..0000000 --- a/3rdParty/Boost/boost/asio/local/connect_pair.hpp +++ /dev/null @@ -1,102 +0,0 @@ -// -// connect_pair.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_LOCAL_CONNECT_PAIR_HPP -#define BOOST_ASIO_LOCAL_CONNECT_PAIR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace local { - -/// Create a pair of connected sockets. -template -void connect_pair( - basic_socket& socket1, - basic_socket& socket2); - -/// Create a pair of connected sockets. -template -boost::system::error_code connect_pair( - basic_socket& socket1, - basic_socket& socket2, - boost::system::error_code& ec); - -template -inline void connect_pair( - basic_socket& socket1, - basic_socket& socket2) -{ - boost::system::error_code ec; - connect_pair(socket1, socket2, ec); - boost::asio::detail::throw_error(ec); -} - -template -inline boost::system::error_code connect_pair( - basic_socket& socket1, - basic_socket& socket2, - boost::system::error_code& ec) -{ - // Check that this function is only being used with a UNIX domain socket. - boost::asio::local::basic_endpoint* tmp - = static_cast(0); - (void)tmp; - - Protocol protocol; - boost::asio::detail::socket_type sv[2]; - if (boost::asio::detail::socket_ops::socketpair(protocol.family(), - protocol.type(), protocol.protocol(), sv, ec) - == boost::asio::detail::socket_error_retval) - return ec; - - if (socket1.assign(protocol, sv[0], ec)) - { - boost::system::error_code temp_ec; - boost::asio::detail::socket_ops::close(sv[0], temp_ec); - boost::asio::detail::socket_ops::close(sv[1], temp_ec); - return ec; - } - - if (socket2.assign(protocol, sv[1], ec)) - { - boost::system::error_code temp_ec; - socket1.close(temp_ec); - boost::asio::detail::socket_ops::close(sv[1], temp_ec); - return ec; - } - - return ec; -} - -} // namespace local -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_LOCAL_CONNECT_PAIR_HPP diff --git a/3rdParty/Boost/boost/asio/local/datagram_protocol.hpp b/3rdParty/Boost/boost/asio/local/datagram_protocol.hpp deleted file mode 100644 index 75407c2..0000000 --- a/3rdParty/Boost/boost/asio/local/datagram_protocol.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// datagram_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_LOCAL_DATAGRAM_PROTOCOL_HPP -#define BOOST_ASIO_LOCAL_DATAGRAM_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace local { - -/// Encapsulates the flags needed for datagram-oriented UNIX sockets. -/** - * The boost::asio::local::datagram_protocol class contains flags necessary for - * datagram-oriented UNIX domain sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class datagram_protocol -{ -public: - /// Obtain an identifier for the type of the protocol. - int type() const - { - return SOCK_DGRAM; - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return 0; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return AF_UNIX; - } - - /// The type of a UNIX domain endpoint. - typedef basic_endpoint endpoint; - - /// The UNIX domain socket type. - typedef basic_datagram_socket socket; -}; - -} // namespace local -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_LOCAL_DATAGRAM_PROTOCOL_HPP diff --git a/3rdParty/Boost/boost/asio/local/stream_protocol.hpp b/3rdParty/Boost/boost/asio/local/stream_protocol.hpp deleted file mode 100644 index 8839661..0000000 --- a/3rdParty/Boost/boost/asio/local/stream_protocol.hpp +++ /dev/null @@ -1,88 +0,0 @@ -// -// stream_protocol.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_LOCAL_STREAM_PROTOCOL_HPP -#define BOOST_ASIO_LOCAL_STREAM_PROTOCOL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#if defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace local { - -/// Encapsulates the flags needed for stream-oriented UNIX sockets. -/** - * The boost::asio::local::stream_protocol class contains flags necessary for - * stream-oriented UNIX domain sockets. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Protocol. - */ -class stream_protocol -{ -public: - /// Obtain an identifier for the type of the protocol. - int type() const - { - return SOCK_STREAM; - } - - /// Obtain an identifier for the protocol. - int protocol() const - { - return 0; - } - - /// Obtain an identifier for the protocol family. - int family() const - { - return AF_UNIX; - } - - /// The type of a UNIX domain endpoint. - typedef basic_endpoint endpoint; - - /// The UNIX domain socket type. - typedef basic_stream_socket socket; - - /// The UNIX domain acceptor type. - typedef basic_socket_acceptor acceptor; - - /// The UNIX domain iostream type. - typedef basic_socket_iostream iostream; -}; - -} // namespace local -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_LOCAL_SOCKETS) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_LOCAL_STREAM_PROTOCOL_HPP diff --git a/3rdParty/Boost/boost/asio/placeholders.hpp b/3rdParty/Boost/boost/asio/placeholders.hpp deleted file mode 100644 index 67fc18c..0000000 --- a/3rdParty/Boost/boost/asio/placeholders.hpp +++ /dev/null @@ -1,109 +0,0 @@ -// -// placeholders.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_PLACEHOLDERS_HPP -#define BOOST_ASIO_PLACEHOLDERS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace placeholders { - -#if defined(GENERATING_DOCUMENTATION) - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the error argument of a handler for any of the asynchronous functions. -unspecified error; - -/// An argument placeholder, for use with boost::bind(), that corresponds to -/// the bytes_transferred argument of a handler for asynchronous functions such -/// as boost::asio::basic_stream_socket::async_write_some or -/// boost::asio::async_write. -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. -unspecified iterator; - -#elif defined(__BORLANDC__) || defined(__GNUC__) - -inline boost::arg<1> error() -{ - return boost::arg<1>(); -} - -inline boost::arg<2> bytes_transferred() -{ - return boost::arg<2>(); -} - -inline boost::arg<2> iterator() -{ - return boost::arg<2>(); -} - -#else - -namespace detail -{ - template - struct placeholder - { - static boost::arg& get() - { - static boost::arg result; - return result; - } - }; -} - -#if BOOST_WORKAROUND(BOOST_MSVC, < 1400) - -static boost::arg<1>& error - = boost::asio::placeholders::detail::placeholder<1>::get(); -static boost::arg<2>& bytes_transferred - = boost::asio::placeholders::detail::placeholder<2>::get(); -static boost::arg<2>& iterator - = boost::asio::placeholders::detail::placeholder<2>::get(); - -#else - -namespace -{ - boost::arg<1>& error - = boost::asio::placeholders::detail::placeholder<1>::get(); - boost::arg<2>& bytes_transferred - = boost::asio::placeholders::detail::placeholder<2>::get(); - boost::arg<2>& iterator - = boost::asio::placeholders::detail::placeholder<2>::get(); -} // namespace - -#endif - -#endif - -} // namespace placeholders -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_PLACEHOLDERS_HPP diff --git a/3rdParty/Boost/boost/asio/posix/basic_descriptor.hpp b/3rdParty/Boost/boost/asio/posix/basic_descriptor.hpp deleted file mode 100644 index 023d5b3..0000000 --- a/3rdParty/Boost/boost/asio/posix/basic_descriptor.hpp +++ /dev/null @@ -1,296 +0,0 @@ -// -// basic_descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_POSIX_BASIC_DESCRIPTOR_HPP -#define BOOST_ASIO_POSIX_BASIC_DESCRIPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include -#include - -namespace boost { -namespace asio { -namespace posix { - -/// Provides POSIX descriptor functionality. -/** - * The posix::basic_descriptor class template provides the ability to wrap a - * POSIX descriptor. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_descriptor - : public basic_io_object, - public descriptor_base -{ -public: - /// The native representation of a descriptor. - typedef typename DescriptorService::native_type native_type; - - /// A basic_descriptor is always the lowest layer. - typedef basic_descriptor lowest_layer_type; - - /// Construct a basic_descriptor without opening it. - /** - * This constructor creates a descriptor without opening it. - * - * @param io_service The io_service object that the descriptor will use to - * dispatch handlers for any asynchronous operations performed on the - * descriptor. - */ - explicit basic_descriptor(boost::asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Construct a basic_descriptor on an existing native descriptor. - /** - * This constructor creates a descriptor object to hold an existing native - * descriptor. - * - * @param io_service The io_service object that the descriptor will use to - * dispatch handlers for any asynchronous operations performed on the - * descriptor. - * - * @param native_descriptor A native descriptor. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_descriptor(boost::asio::io_service& io_service, - const native_type& native_descriptor) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.assign(this->implementation, native_descriptor, ec); - boost::asio::detail::throw_error(ec); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_descriptor cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_descriptor cannot contain any further layers, it - * simply returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native descriptor to the descriptor. - /* - * This function opens the descriptor to hold an existing native descriptor. - * - * @param native_descriptor A native descriptor. - * - * @throws boost::system::system_error Thrown on failure. - */ - void assign(const native_type& native_descriptor) - { - boost::system::error_code ec; - this->service.assign(this->implementation, native_descriptor, ec); - boost::asio::detail::throw_error(ec); - } - - /// Assign an existing native descriptor to the descriptor. - /* - * This function opens the descriptor to hold an existing native descriptor. - * - * @param native_descriptor A native descriptor. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code assign(const native_type& native_descriptor, - boost::system::error_code& ec) - { - return this->service.assign(this->implementation, native_descriptor, ec); - } - - /// Determine whether the descriptor is open. - bool is_open() const - { - return this->service.is_open(this->implementation); - } - - /// Close the descriptor. - /** - * This function is used to close the descriptor. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * boost::asio::error::operation_aborted error. - * - * @throws boost::system::system_error Thrown on failure. - */ - void close() - { - boost::system::error_code ec; - this->service.close(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Close the descriptor. - /** - * This function is used to close the descriptor. Any asynchronous read or - * write operations will be cancelled immediately, and will complete with the - * boost::asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code close(boost::system::error_code& ec) - { - return this->service.close(this->implementation, ec); - } - - /// Get the native descriptor representation. - /** - * This function may be used to obtain the underlying representation of the - * descriptor. This is intended to allow access to native descriptor - * functionality that is not otherwise provided. - */ - native_type native() - { - return this->service.native(this->implementation); - } - - /// Cancel all asynchronous operations associated with the descriptor. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the boost::asio::error::operation_aborted error. - * - * @throws boost::system::system_error Thrown on failure. - */ - void cancel() - { - boost::system::error_code ec; - this->service.cancel(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Cancel all asynchronous operations associated with the descriptor. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the boost::asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code cancel(boost::system::error_code& ec) - { - return this->service.cancel(this->implementation, ec); - } - - /// Perform an IO control command on the descriptor. - /** - * This function is used to execute an IO control command on the descriptor. - * - * @param command The IO control command to be performed on the descriptor. - * - * @throws boost::system::system_error Thrown on failure. - * - * @sa IoControlCommand @n - * boost::asio::posix::descriptor_base::bytes_readable @n - * boost::asio::posix::descriptor_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * boost::asio::posix::stream_descriptor descriptor(io_service); - * ... - * boost::asio::posix::stream_descriptor::bytes_readable command; - * descriptor.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - void io_control(IoControlCommand& command) - { - boost::system::error_code ec; - this->service.io_control(this->implementation, command, ec); - boost::asio::detail::throw_error(ec); - } - - /// Perform an IO control command on the descriptor. - /** - * This function is used to execute an IO control command on the descriptor. - * - * @param command The IO control command to be performed on the descriptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @sa IoControlCommand @n - * boost::asio::posix::descriptor_base::bytes_readable @n - * boost::asio::posix::descriptor_base::non_blocking_io - * - * @par Example - * Getting the number of bytes ready to read: - * @code - * boost::asio::posix::stream_descriptor descriptor(io_service); - * ... - * boost::asio::posix::stream_descriptor::bytes_readable command; - * boost::system::error_code ec; - * descriptor.io_control(command, ec); - * if (ec) - * { - * // An error occurred. - * } - * std::size_t bytes_readable = command.get(); - * @endcode - */ - template - boost::system::error_code io_control(IoControlCommand& command, - boost::system::error_code& ec) - { - return this->service.io_control(this->implementation, command, ec); - } - -protected: - /// Protected destructor to prevent deletion through this type. - ~basic_descriptor() - { - } -}; - -} // namespace posix -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_POSIX_BASIC_DESCRIPTOR_HPP diff --git a/3rdParty/Boost/boost/asio/posix/basic_stream_descriptor.hpp b/3rdParty/Boost/boost/asio/posix/basic_stream_descriptor.hpp deleted file mode 100644 index 6559a68..0000000 --- a/3rdParty/Boost/boost/asio/posix/basic_stream_descriptor.hpp +++ /dev/null @@ -1,306 +0,0 @@ -// -// basic_stream_descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_POSIX_BASIC_STREAM_DESCRIPTOR_HPP -#define BOOST_ASIO_POSIX_BASIC_STREAM_DESCRIPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -#if defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace posix { - -/// Provides stream-oriented descriptor functionality. -/** - * The posix::basic_stream_descriptor class template provides asynchronous and - * blocking stream-oriented descriptor functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class basic_stream_descriptor - : public basic_descriptor -{ -public: - /// The native representation of a descriptor. - typedef typename StreamDescriptorService::native_type native_type; - - /// Construct a basic_stream_descriptor without opening it. - /** - * This constructor creates a stream descriptor without opening it. The - * descriptor needs to be opened and then connected or accepted before data - * can be sent or received on it. - * - * @param io_service The io_service object that the stream descriptor will - * use to dispatch handlers for any asynchronous operations performed on the - * descriptor. - */ - explicit basic_stream_descriptor(boost::asio::io_service& io_service) - : basic_descriptor(io_service) - { - } - - /// Construct a basic_stream_descriptor on an existing native descriptor. - /** - * This constructor creates a stream descriptor object to hold an existing - * native descriptor. - * - * @param io_service The io_service object that the stream descriptor will - * use to dispatch handlers for any asynchronous operations performed on the - * descriptor. - * - * @param native_descriptor The new underlying descriptor implementation. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_stream_descriptor(boost::asio::io_service& io_service, - const native_type& native_descriptor) - : basic_descriptor(io_service, native_descriptor) - { - } - - /// Write some data to the descriptor. - /** - * This function is used to write data to the stream descriptor. The function - * call will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the descriptor. - * - * @returns The number of bytes written. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.write_some(boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.write_some(this->implementation, buffers, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Write some data to the descriptor. - /** - * This function is used to write data to the stream descriptor. The function - * call will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the descriptor. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - boost::system::error_code& ec) - { - return this->service.write_some(this->implementation, buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream - * descriptor. The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the descriptor. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.async_write_some(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_write_some(const ConstBufferSequence& buffers, - WriteHandler handler) - { - this->service.async_write_some(this->implementation, buffers, handler); - } - - /// Read some data from the descriptor. - /** - * This function is used to read data from the stream descriptor. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.read_some(boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.read_some(this->implementation, buffers, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Read some data from the descriptor. - /** - * This function is used to read data from the stream descriptor. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - boost::system::error_code& ec) - { - return this->service.read_some(this->implementation, buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream - * descriptor. The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * descriptor.async_read_some(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_read_some(const MutableBufferSequence& buffers, - ReadHandler handler) - { - this->service.async_read_some(this->implementation, buffers, handler); - } -}; - -} // namespace posix -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_POSIX_BASIC_STREAM_DESCRIPTOR_HPP diff --git a/3rdParty/Boost/boost/asio/posix/descriptor_base.hpp b/3rdParty/Boost/boost/asio/posix/descriptor_base.hpp deleted file mode 100644 index 19a5727..0000000 --- a/3rdParty/Boost/boost/asio/posix/descriptor_base.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// -// descriptor_base.hpp -// ~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_POSIX_DESCRIPTOR_BASE_HPP -#define BOOST_ASIO_POSIX_DESCRIPTOR_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { -namespace posix { - -/// The descriptor_base class is used as a base for the basic_stream_descriptor -/// class template so that we have a common place to define the associated -/// IO control commands. -class descriptor_base -{ -public: - /// IO control command to set the blocking mode of the descriptor. - /** - * Implements the FIONBIO IO control command. - * - * @par Example - * @code - * boost::asio::posix::stream_descriptor descriptor(io_service); - * ... - * boost::asio::descriptor_base::non_blocking_io command(true); - * descriptor.io_control(command); - * @endcode - * - * @par Concepts: - * IoControlCommand. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined non_blocking_io; -#else - typedef boost::asio::detail::io_control::non_blocking_io non_blocking_io; -#endif - - /// IO control command to get the amount of data that can be read without - /// blocking. - /** - * Implements the FIONREAD IO control command. - * - * @par Example - * @code - * boost::asio::posix::stream_descriptor descriptor(io_service); - * ... - * boost::asio::descriptor_base::bytes_readable command(true); - * descriptor.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - * - * @par Concepts: - * IoControlCommand. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined bytes_readable; -#else - typedef boost::asio::detail::io_control::bytes_readable bytes_readable; -#endif - -protected: - /// Protected destructor to prevent deletion through this type. - ~descriptor_base() - { - } -}; - -} // namespace posix -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_POSIX_DESCRIPTOR_BASE_HPP diff --git a/3rdParty/Boost/boost/asio/posix/stream_descriptor.hpp b/3rdParty/Boost/boost/asio/posix/stream_descriptor.hpp deleted file mode 100644 index ff728e2..0000000 --- a/3rdParty/Boost/boost/asio/posix/stream_descriptor.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// -// stream_descriptor.hpp -// ~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_POSIX_STREAM_DESCRIPTOR_HPP -#define BOOST_ASIO_POSIX_STREAM_DESCRIPTOR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace posix { - -/// Typedef for the typical usage of a stream-oriented descriptor. -typedef basic_stream_descriptor<> stream_descriptor; - -} // namespace posix -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_POSIX_STREAM_DESCRIPTOR_HPP diff --git a/3rdParty/Boost/boost/asio/posix/stream_descriptor_service.hpp b/3rdParty/Boost/boost/asio/posix/stream_descriptor_service.hpp deleted file mode 100644 index 0b6d55f..0000000 --- a/3rdParty/Boost/boost/asio/posix/stream_descriptor_service.hpp +++ /dev/null @@ -1,202 +0,0 @@ -// -// stream_descriptor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_POSIX_STREAM_DESCRIPTOR_SERVICE_HPP -#define BOOST_ASIO_POSIX_STREAM_DESCRIPTOR_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#if !defined(BOOST_ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR) -# if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -# define BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR 1 -# endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -#endif // !defined(BOOST_ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR) - -#if defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace posix { - -/// Default service implementation for a stream descriptor. -class stream_descriptor_service -#if defined(GENERATING_DOCUMENTATION) - : public boost::asio::io_service::service -#else - : public boost::asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static boost::asio::io_service::id id; -#endif - -private: - // The type of the platform-specific implementation. -#if defined(BOOST_ASIO_HAS_EPOLL) - typedef detail::reactive_descriptor_service< - detail::epoll_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_KQUEUE) - typedef detail::reactive_descriptor_service< - detail::kqueue_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_DEV_POLL) - typedef detail::reactive_descriptor_service< - detail::dev_poll_reactor > service_impl_type; -#else - typedef detail::reactive_descriptor_service< - detail::select_reactor > service_impl_type; -#endif - -public: - /// The type of a stream descriptor implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native descriptor type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_type; -#else - typedef service_impl_type::native_type native_type; -#endif - - /// Construct a new stream descriptor service for the specified io_service. - explicit stream_descriptor_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base(io_service), - service_impl_(boost::asio::use_service(io_service)) - { - } - - /// Destroy all user-defined descriptorr objects owned by the service. - void shutdown_service() - { - } - - /// Construct a new stream descriptor implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a stream descriptor implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native descriptor to a stream descriptor. - boost::system::error_code assign(implementation_type& impl, - const native_type& native_descriptor, boost::system::error_code& ec) - { - return service_impl_.assign(impl, native_descriptor, ec); - } - - /// Determine whether the descriptor is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a stream descriptor implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.close(impl, ec); - } - - /// Get the native descriptor implementation. - native_type native(implementation_type& impl) - { - return service_impl_.native(impl); - } - - /// Cancel all asynchronous operations associated with the descriptor. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Perform an IO control command on the descriptor. - template - boost::system::error_code io_control(implementation_type& impl, - IoControlCommand& command, boost::system::error_code& ec) - { - return service_impl_.io_control(impl, command, ec); - } - - /// Write the given data to the stream. - template - std::size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, boost::system::error_code& ec) - { - return service_impl_.write_some(impl, buffers, ec); - } - - /// Start an asynchronous write. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, WriteHandler descriptorr) - { - service_impl_.async_write_some(impl, buffers, descriptorr); - } - - /// Read some data from the stream. - template - std::size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, boost::system::error_code& ec) - { - return service_impl_.read_some(impl, buffers, ec); - } - - /// Start an asynchronous read. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, ReadHandler descriptorr) - { - service_impl_.async_read_some(impl, buffers, descriptorr); - } - -private: - // The service that provides the platform-specific implementation. - service_impl_type& service_impl_; -}; - -} // namespace posix -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_POSIX_STREAM_DESCRIPTOR_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/raw_socket_service.hpp b/3rdParty/Boost/boost/asio/raw_socket_service.hpp deleted file mode 100644 index ec7cc2a..0000000 --- a/3rdParty/Boost/boost/asio/raw_socket_service.hpp +++ /dev/null @@ -1,325 +0,0 @@ -// -// raw_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_RAW_SOCKET_SERVICE_HPP -#define BOOST_ASIO_RAW_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Default service implementation for a raw socket. -template -class raw_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public boost::asio::io_service::service -#else - : public boost::asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static boost::asio::io_service::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(BOOST_ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#elif defined(BOOST_ASIO_HAS_EPOLL) - typedef detail::reactive_socket_service< - Protocol, detail::epoll_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_KQUEUE) - typedef detail::reactive_socket_service< - Protocol, detail::kqueue_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_DEV_POLL) - typedef detail::reactive_socket_service< - Protocol, detail::dev_poll_reactor > service_impl_type; -#else - typedef detail::reactive_socket_service< - Protocol, detail::select_reactor > service_impl_type; -#endif - -public: - /// The type of a raw socket. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_type; -#else - typedef typename service_impl_type::native_type native_type; -#endif - - /// Construct a new raw socket service for the specified io_service. - explicit raw_socket_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - raw_socket_service >(io_service), - service_impl_(boost::asio::use_service(io_service)) - { - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Construct a new raw socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a raw socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - // Open a new raw socket implementation. - boost::system::error_code open(implementation_type& impl, - const protocol_type& protocol, boost::system::error_code& ec) - { - if (protocol.type() == SOCK_RAW) - service_impl_.open(impl, protocol, ec); - else - ec = boost::asio::error::invalid_argument; - return ec; - } - - /// Assign an existing native socket to a raw socket. - boost::system::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_type& native_socket, - boost::system::error_code& ec) - { - return service_impl_.assign(impl, protocol, native_socket, ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a raw socket implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.close(impl, ec); - } - - /// Get the native socket implementation. - native_type native(implementation_type& impl) - { - return service_impl_.native(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - // Bind the raw socket to the specified local endpoint. - boost::system::error_code bind(implementation_type& impl, - const endpoint_type& endpoint, boost::system::error_code& ec) - { - return service_impl_.bind(impl, endpoint, ec); - } - - /// Connect the raw socket to the specified endpoint. - boost::system::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, boost::system::error_code& ec) - { - return service_impl_.connect(impl, peer_endpoint, ec); - } - - /// Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, ConnectHandler handler) - { - service_impl_.async_connect(impl, peer_endpoint, handler); - } - - /// Set a socket option. - template - boost::system::error_code set_option(implementation_type& impl, - const SettableSocketOption& option, boost::system::error_code& ec) - { - return service_impl_.set_option(impl, option, ec); - } - - /// Get a socket option. - template - boost::system::error_code get_option(const implementation_type& impl, - GettableSocketOption& option, boost::system::error_code& ec) const - { - return service_impl_.get_option(impl, option, ec); - } - - /// Perform an IO control command on the socket. - template - boost::system::error_code io_control(implementation_type& impl, - IoControlCommand& command, boost::system::error_code& ec) - { - return service_impl_.io_control(impl, command, ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - boost::system::error_code shutdown(implementation_type& impl, - socket_base::shutdown_type what, boost::system::error_code& ec) - { - return service_impl_.shutdown(impl, what, ec); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - void async_send(implementation_type& impl, const ConstBufferSequence& buffers, - socket_base::message_flags flags, WriteHandler handler) - { - service_impl_.async_send(impl, buffers, flags, handler); - } - - /// Send raw data to the specified endpoint. - template - std::size_t send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return service_impl_.send_to(impl, buffers, destination, flags, ec); - } - - /// Start an asynchronous send. - template - void async_send_to(implementation_type& impl, - const ConstBufferSequence& buffers, const endpoint_type& destination, - socket_base::message_flags flags, WriteHandler handler) - { - service_impl_.async_send_to(impl, buffers, destination, flags, handler); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return service_impl_.receive(impl, buffers, flags, ec); - } - - /// Start an asynchronous receive. - template - void async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, ReadHandler handler) - { - service_impl_.async_receive(impl, buffers, flags, handler); - } - - /// Receive raw data with the endpoint of the sender. - template - std::size_t receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return service_impl_.receive_from(impl, buffers, sender_endpoint, flags, - ec); - } - - /// Start an asynchronous receive that will get the endpoint of the sender. - template - void async_receive_from(implementation_type& impl, - const MutableBufferSequence& buffers, endpoint_type& sender_endpoint, - socket_base::message_flags flags, ReadHandler handler) - { - service_impl_.async_receive_from(impl, buffers, sender_endpoint, flags, - handler); - } - -private: - // The service that provides the platform-specific implementation. - service_impl_type& service_impl_; -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_RAW_SOCKET_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/read.hpp b/3rdParty/Boost/boost/asio/read.hpp deleted file mode 100644 index 0faeb02..0000000 --- a/3rdParty/Boost/boost/asio/read.hpp +++ /dev/null @@ -1,528 +0,0 @@ -// -// read.hpp -// ~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_READ_HPP -#define BOOST_ASIO_READ_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { - -/** - * @defgroup read boost::asio::read - * - * @brief Attempt to read a certain amount of data from a stream before - * returning. - */ -/*@{*/ - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code boost::asio::read(s, boost::asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code boost::asio::read( - * s, buffers, - * boost::asio::transfer_all()); @endcode - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code boost::asio::read(s, boost::asio::buffer(data, size), - * boost::asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read(SyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, boost::system::error_code& ec); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code boost::asio::read( - * s, b, - * boost::asio::transfer_all()); @endcode - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition); - -/// Attempt to read a certain amount of data from a stream before returning. -/** - * This function is used to read a certain number of bytes of data from a - * stream. The call will block until one of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's read_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read(SyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition, boost::system::error_code& ec); - -/*@}*/ -/** - * @defgroup async_read boost::asio::async_read - * - * @brief Start an asynchronous operation to read a certain amount of data from - * a stream. - */ -/*@{*/ - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * boost::asio::async_read(s, boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code boost::asio::async_read( - * s, buffers, - * boost::asio::transfer_all(), - * handler); @endcode - */ -template -void async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - ReadHandler handler); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * stream. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's async_read_some function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code boost::asio::async_read(s, - * boost::asio::buffer(data, size), - * boost::asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -void async_read(AsyncReadStream& s, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, ReadHandler handler); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note This overload is equivalent to calling: - * @code boost::asio::async_read( - * s, b, - * boost::asio::transfer_all(), - * handler); @endcode - */ -template -void async_read(AsyncReadStream& s, basic_streambuf& b, - ReadHandler handler); - -/// Start an asynchronous operation to read a certain amount of data from a -/// stream. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions is - * true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the stream's async_read_some function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes copied into the - * // buffers. If an error occurred, - * // this will be the number of - * // bytes successfully transferred - * // prior to the error. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ -template -void async_read(AsyncReadStream& s, basic_streambuf& b, - CompletionCondition completion_condition, ReadHandler handler); - -/*@}*/ - -} // namespace asio -} // namespace boost - -#include - -#include - -#endif // BOOST_ASIO_READ_HPP diff --git a/3rdParty/Boost/boost/asio/read_at.hpp b/3rdParty/Boost/boost/asio/read_at.hpp deleted file mode 100644 index 5b1d5ea..0000000 --- a/3rdParty/Boost/boost/asio/read_at.hpp +++ /dev/null @@ -1,570 +0,0 @@ -// -// read_at.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_READ_AT_HPP -#define BOOST_ASIO_READ_AT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { - -/** - * @defgroup read_at boost::asio::read_at - * - * @brief Attempt to read a certain amount of data at the specified offset - * before returning. - */ -/*@{*/ - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code boost::asio::read_at(d, 42, boost::asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code boost::asio::read_at( - * d, 42, buffers, - * boost::asio::transfer_all()); @endcode - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, const MutableBufferSequence& buffers); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code boost::asio::read_at(d, 42, boost::asio::buffer(data, size), - * boost::asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, boost::system::error_code& ec); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code boost::asio::read_at( - * d, 42, b, - * boost::asio::transfer_all()); @endcode - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, basic_streambuf& b); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, basic_streambuf& b, - CompletionCondition completion_condition); - -/// Attempt to read a certain amount of data at the specified offset before -/// returning. -/** - * This function is used to read a certain number of bytes of data from a - * random access device at the specified offset. The call will block until one - * of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the SyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b The basic_streambuf object into which the data will be read. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest read_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's read_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t read_at(SyncRandomAccessReadDevice& d, - boost::uint64_t offset, basic_streambuf& b, - CompletionCondition completion_condition, boost::system::error_code& ec); - -/*@}*/ -/** - * @defgroup async_read_at boost::asio::async_read_at - * - * @brief Start an asynchronous operation to read a certain amount of data at - * the specified offset. - */ -/*@{*/ - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * boost::asio::async_read_at(d, 42, boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code boost::asio::async_read_at( - * d, 42, buffers, - * boost::asio::transfer_all(), - * handler); @endcode - */ -template -void async_read_at(AsyncRandomAccessReadDevice& d, boost::uint64_t offset, - const MutableBufferSequence& buffers, ReadHandler handler); - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li The supplied buffers are full. That is, the bytes transferred is equal to - * the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. The sum - * of the buffer sizes indicates the maximum number of bytes to read from the - * device. Although the buffers object may be copied as necessary, ownership of - * the underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's async_read_some_at function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code boost::asio::async_read_at(d, 42, - * boost::asio::buffer(data, size), - * boost::asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -void async_read_at(AsyncRandomAccessReadDevice& d, - boost::uint64_t offset, const MutableBufferSequence& buffers, - CompletionCondition completion_condition, ReadHandler handler); - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note This overload is equivalent to calling: - * @code boost::asio::async_read_at( - * d, 42, b, - * boost::asio::transfer_all(), - * handler); @endcode - */ -template -void async_read_at(AsyncRandomAccessReadDevice& d, boost::uint64_t offset, - basic_streambuf& b, ReadHandler handler); - -/// Start an asynchronous operation to read a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously read a certain number of bytes of - * data from a random access device at the specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_read_some_at function. - * - * @param d The device from which the data is to be read. The type must support - * the AsyncRandomAccessReadDevice concept. - * - * @param offset The offset at which the data will be read. - * - * @param b A basic_streambuf object into which the data will be read. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the read operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_read_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the read operation is complete. A non-zero - * return value indicates the maximum number of bytes to be read on the next - * call to the device's async_read_some_at function. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // Number of bytes copied into the buffers. If an error - * // occurred, this will be the number of bytes successfully - * // transferred prior to the error. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ -template -void async_read_at(AsyncRandomAccessReadDevice& d, - boost::uint64_t offset, basic_streambuf& b, - CompletionCondition completion_condition, ReadHandler handler); - -/*@}*/ - -} // namespace asio -} // namespace boost - -#include - -#include - -#endif // BOOST_ASIO_READ_AT_HPP diff --git a/3rdParty/Boost/boost/asio/read_until.hpp b/3rdParty/Boost/boost/asio/read_until.hpp deleted file mode 100644 index 6144e60..0000000 --- a/3rdParty/Boost/boost/asio/read_until.hpp +++ /dev/null @@ -1,841 +0,0 @@ -// -// read_until.hpp -// ~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_READ_UNTIL_HPP -#define BOOST_ASIO_READ_UNTIL_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { - -namespace detail -{ -#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610)) - template - struct has_result_type - { - template struct inner - { - struct big { char a[100]; }; - static big helper(U, ...); - static char helper(U, typename U::result_type* = 0); - }; - static const T& ref(); - enum { value = (sizeof((inner::helper)((ref)())) == 1) }; - }; -#else // BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610)) - template - struct has_result_type - { - struct big { char a[100]; }; - template static big helper(U, ...); - template static char helper(U, typename U::result_type* = 0); - static const T& ref(); - enum { value = (sizeof((helper)((ref)())) == 1) }; - }; -#endif // BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610)) -} // namespace detail - -/// Type trait used to determine whether a type can be used as a match condition -/// function with read_until and async_read_until. -template -struct is_match_condition -{ -#if defined(GENERATING_DOCUMENTATION) - /// The value member is true if the type may be used as a match condition. - static const bool value; -#else - enum - { - value = boost::is_function::type>::value - || detail::has_result_type::value - }; -#endif -}; - -/** - * @defgroup read_until boost::asio::read_until - * - * @brief Read data into a streambuf until it contains a delimiter, matches a - * regular expression, or a function object indicates a match. - */ -/*@{*/ - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter character. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - * - * @par Example - * To read data into a streambuf until a newline is encountered: - * @code boost::asio::streambuf b; - * boost::asio::read_until(s, b, '\n'); - * std::istream is(&b); - * std::string line; - * std::getline(is, line); @endcode - */ -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, char delim); - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter character. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, char delim, - boost::system::error_code& ec); - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter string. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - * - * @par Example - * To read data into a streambuf until a newline is encountered: - * @code boost::asio::streambuf b; - * boost::asio::read_until(s, b, "\r\n"); - * std::istream is(&b); - * std::string line; - * std::getline(is, line); @endcode - */ -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, const std::string& delim); - -/// Read data into a streambuf until it contains a specified delimiter. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains the specified delimiter. The call will block - * until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains the - * delimiter, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param delim The delimiter string. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the delimiter. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond the delimiter. An application will typically leave - * that data in the streambuf for a subsequent read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, const std::string& delim, - boost::system::error_code& ec); - -/// Read data into a streambuf until some part of the data it contains matches -/// a regular expression. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains some data that matches a regular expression. - * The call will block until one of the following conditions is true: - * - * @li A substring of the streambuf's get area matches the regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains data that - * matches the regular expression, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param expr The regular expression. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the substring that matches the regular expression. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the regular expression. An - * application will typically leave that data in the streambuf for a subsequent - * read_until operation to examine. - * - * @par Example - * To read data into a streambuf until a CR-LF sequence is encountered: - * @code boost::asio::streambuf b; - * boost::asio::read_until(s, b, boost::regex("\r\n")); - * std::istream is(&b); - * std::string line; - * std::getline(is, line); @endcode - */ -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, const boost::regex& expr); - -/// Read data into a streambuf until some part of the data it contains matches -/// a regular expression. -/** - * This function is used to read data into the specified streambuf until the - * streambuf's get area contains some data that matches a regular expression. - * The call will block until one of the following conditions is true: - * - * @li A substring of the streambuf's get area matches the regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the streambuf's get area already contains data that - * matches the regular expression, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param expr The regular expression. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area up to and including - * the substring that matches the regular expression. Returns 0 if an error - * occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the regular expression. An - * application will typically leave that data in the streambuf for a subsequent - * read_until operation to examine. - */ -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, const boost::regex& expr, - boost::system::error_code& ec); - -/// Read data into a streambuf until a function object indicates a match. -/** - * This function is used to read data into the specified streambuf until a - * user-defined match condition function object, when applied to the data - * contained in the streambuf, indicates a successful match. The call will - * block until one of the following conditions is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the match condition function object already indicates - * a match, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator::const_buffers_type> - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @returns The number of bytes in the streambuf's get area that have been fully - * consumed by the match function. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the function object. An application - * will typically leave that data in the streambuf for a subsequent - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - * - * @par Examples - * To read data into a streambuf until whitespace is encountered: - * @code typedef boost::asio::buffers_iterator< - * boost::asio::streambuf::const_buffers_type> iterator; - * - * std::pair - * match_whitespace(iterator begin, iterator end) - * { - * iterator i = begin; - * while (i != end) - * if (std::isspace(*i++)) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * ... - * boost::asio::streambuf b; - * boost::asio::read_until(s, b, match_whitespace); - * @endcode - * - * To read data into a streambuf until a matching character is found: - * @code class match_char - * { - * public: - * explicit match_char(char c) : c_(c) {} - * - * template - * std::pair operator()( - * Iterator begin, Iterator end) const - * { - * Iterator i = begin; - * while (i != end) - * if (c_ == *i++) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * - * private: - * char c_; - * }; - * - * namespace asio { - * template <> struct is_match_condition - * : public boost::true_type {}; - * } // namespace asio - * ... - * boost::asio::streambuf b; - * boost::asio::read_until(s, b, match_char('a')); - * @endcode - */ -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, MatchCondition match_condition, - typename boost::enable_if >::type* = 0); - -/// Read data into a streambuf until a function object indicates a match. -/** - * This function is used to read data into the specified streambuf until a - * user-defined match condition function object, when applied to the data - * contained in the streambuf, indicates a successful match. The call will - * block until one of the following conditions is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * read_some function. If the match condition function object already indicates - * a match, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the SyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator::const_buffers_type> - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes in the streambuf's get area that have been fully - * consumed by the match function. Returns 0 if an error occurred. - * - * @note After a successful read_until operation, the streambuf may contain - * additional data beyond that which matched the function object. An application - * will typically leave that data in the streambuf for a subsequent - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - */ -template -std::size_t read_until(SyncReadStream& s, - boost::asio::basic_streambuf& b, - MatchCondition match_condition, boost::system::error_code& ec, - typename boost::enable_if >::type* = 0); - -/*@}*/ -/** - * @defgroup async_read_until boost::asio::async_read_until - * - * @brief Start an asynchronous operation to read data into a streambuf until it - * contains a delimiter, matches a regular expression, or a function object - * indicates a match. - */ -/*@{*/ - -/// Start an asynchronous operation to read data into a streambuf until it -/// contains a specified delimiter. -/** - * This function is used to asynchronously read data into the specified - * streambuf until the streambuf's get area contains the specified delimiter. - * The function call always returns immediately. The asynchronous operation - * will continue until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function. If the streambuf's get area already contains the - * delimiter, the asynchronous operation completes immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. Ownership of - * the streambuf is retained by the caller, which must guarantee that it remains - * valid until the handler is called. - * - * @param delim The delimiter character. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area up to and including the delimiter. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond the delimiter. An application will typically - * leave that data in the streambuf for a subsequent async_read_until operation - * to examine. - * - * @par Example - * To asynchronously read data into a streambuf until a newline is encountered: - * @code boost::asio::streambuf b; - * ... - * void handler(const boost::system::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::istream is(&b); - * std::string line; - * std::getline(is, line); - * ... - * } - * } - * ... - * boost::asio::async_read_until(s, b, '\n', handler); @endcode - */ -template -void async_read_until(AsyncReadStream& s, - boost::asio::basic_streambuf& b, - char delim, ReadHandler handler); - -/// Start an asynchronous operation to read data into a streambuf until it -/// contains a specified delimiter. -/** - * This function is used to asynchronously read data into the specified - * streambuf until the streambuf's get area contains the specified delimiter. - * The function call always returns immediately. The asynchronous operation - * will continue until one of the following conditions is true: - * - * @li The get area of the streambuf contains the specified delimiter. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function. If the streambuf's get area already contains the - * delimiter, the asynchronous operation completes immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. Ownership of - * the streambuf is retained by the caller, which must guarantee that it remains - * valid until the handler is called. - * - * @param delim The delimiter string. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area up to and including the delimiter. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond the delimiter. An application will typically - * leave that data in the streambuf for a subsequent async_read_until operation - * to examine. - * - * @par Example - * To asynchronously read data into a streambuf until a newline is encountered: - * @code boost::asio::streambuf b; - * ... - * void handler(const boost::system::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::istream is(&b); - * std::string line; - * std::getline(is, line); - * ... - * } - * } - * ... - * boost::asio::async_read_until(s, b, "\r\n", handler); @endcode - */ -template -void async_read_until(AsyncReadStream& s, - boost::asio::basic_streambuf& b, const std::string& delim, - ReadHandler handler); - -/// Start an asynchronous operation to read data into a streambuf until some -/// part of its data matches a regular expression. -/** - * This function is used to asynchronously read data into the specified - * streambuf until the streambuf's get area contains some data that matches a - * regular expression. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li A substring of the streambuf's get area matches the regular expression. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function. If the streambuf's get area already contains data - * that matches the regular expression, the function returns immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. Ownership of - * the streambuf is retained by the caller, which must guarantee that it remains - * valid until the handler is called. - * - * @param expr The regular expression. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area up to and including the substring - * // that matches the regular. expression. - * // 0 if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond that which matched the regular expression. An - * application will typically leave that data in the streambuf for a subsequent - * async_read_until operation to examine. - * - * @par Example - * To asynchronously read data into a streambuf until a CR-LF sequence is - * encountered: - * @code boost::asio::streambuf b; - * ... - * void handler(const boost::system::error_code& e, std::size_t size) - * { - * if (!e) - * { - * std::istream is(&b); - * std::string line; - * std::getline(is, line); - * ... - * } - * } - * ... - * boost::asio::async_read_until(s, b, boost::regex("\r\n"), handler); @endcode - */ -template -void async_read_until(AsyncReadStream& s, - boost::asio::basic_streambuf& b, const boost::regex& expr, - ReadHandler handler); - -/// Start an asynchronous operation to read data into a streambuf until a -/// function object indicates a match. -/** - * This function is used to asynchronously read data into the specified - * streambuf until a user-defined match condition function object, when applied - * to the data contained in the streambuf, indicates a successful match. The - * function call always returns immediately. The asynchronous operation will - * continue until one of the following conditions is true: - * - * @li The match condition function object returns a std::pair where the second - * element evaluates to true. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_read_some function. If the match condition function object already - * indicates a match, the operation completes immediately. - * - * @param s The stream from which the data is to be read. The type must support - * the AsyncReadStream concept. - * - * @param b A streambuf object into which the data will be read. - * - * @param match_condition The function object to be called to determine whether - * a match exists. The signature of the function object must be: - * @code pair match_condition(iterator begin, iterator end); - * @endcode - * where @c iterator represents the type: - * @code buffers_iterator::const_buffers_type> - * @endcode - * The iterator parameters @c begin and @c end define the range of bytes to be - * scanned to determine whether there is a match. The @c first member of the - * return value is an iterator marking one-past-the-end of the bytes that have - * been consumed by the match function. This iterator is used to calculate the - * @c begin parameter for any subsequent invocation of the match condition. The - * @c second member of the return value is true if a match has been found, false - * otherwise. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // The number of bytes in the streambuf's get - * // area that have been fully consumed by the - * // match function. O if an error occurred. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note After a successful async_read_until operation, the streambuf may - * contain additional data beyond that which matched the function object. An - * application will typically leave that data in the streambuf for a subsequent - * async_read_until operation to examine. - * - * @note The default implementation of the @c is_match_condition type trait - * evaluates to true for function pointers and function objects with a - * @c result_type typedef. It must be specialised for other user-defined - * function objects. - * - * @par Examples - * To asynchronously read data into a streambuf until whitespace is encountered: - * @code typedef boost::asio::buffers_iterator< - * boost::asio::streambuf::const_buffers_type> iterator; - * - * std::pair - * match_whitespace(iterator begin, iterator end) - * { - * iterator i = begin; - * while (i != end) - * if (std::isspace(*i++)) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * ... - * void handler(const boost::system::error_code& e, std::size_t size); - * ... - * boost::asio::streambuf b; - * boost::asio::async_read_until(s, b, match_whitespace, handler); - * @endcode - * - * To asynchronously read data into a streambuf until a matching character is - * found: - * @code class match_char - * { - * public: - * explicit match_char(char c) : c_(c) {} - * - * template - * std::pair operator()( - * Iterator begin, Iterator end) const - * { - * Iterator i = begin; - * while (i != end) - * if (c_ == *i++) - * return std::make_pair(i, true); - * return std::make_pair(i, false); - * } - * - * private: - * char c_; - * }; - * - * namespace asio { - * template <> struct is_match_condition - * : public boost::true_type {}; - * } // namespace asio - * ... - * void handler(const boost::system::error_code& e, std::size_t size); - * ... - * boost::asio::streambuf b; - * boost::asio::async_read_until(s, b, match_char('a'), handler); - * @endcode - */ -template -void async_read_until(AsyncReadStream& s, - boost::asio::basic_streambuf& b, - MatchCondition match_condition, ReadHandler handler, - typename boost::enable_if >::type* = 0); - -/*@}*/ - -} // namespace asio -} // namespace boost - -#include - -#include - -#endif // BOOST_ASIO_READ_UNTIL_HPP diff --git a/3rdParty/Boost/boost/asio/serial_port.hpp b/3rdParty/Boost/boost/asio/serial_port.hpp deleted file mode 100644 index 0be39e0..0000000 --- a/3rdParty/Boost/boost/asio/serial_port.hpp +++ /dev/null @@ -1,40 +0,0 @@ -// -// serial_port.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_SERIAL_PORT_HPP -#define BOOST_ASIO_SERIAL_PORT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { - -/// Typedef for the typical usage of a serial port. -typedef basic_serial_port<> serial_port; - -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_SERIAL_PORT_HPP diff --git a/3rdParty/Boost/boost/asio/serial_port_base.hpp b/3rdParty/Boost/boost/asio/serial_port_base.hpp deleted file mode 100644 index 98557cd..0000000 --- a/3rdParty/Boost/boost/asio/serial_port_base.hpp +++ /dev/null @@ -1,175 +0,0 @@ -// -// serial_port_base.hpp -// ~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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 -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#ifndef BOOST_ASIO_SERIAL_PORT_BASE_HPP -#define BOOST_ASIO_SERIAL_PORT_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include - -#if !defined(BOOST_ASIO_DISABLE_SERIAL_PORT) -# if defined(BOOST_ASIO_HAS_IOCP) \ - || !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -# define BOOST_ASIO_HAS_SERIAL_PORT 1 -# endif // defined(BOOST_ASIO_HAS_IOCP) -#endif // !defined(BOOST_ASIO_DISABLE_STREAM_HANDLE) - -#if defined(BOOST_ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -#if !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) -# include -# include -# include -#endif // !defined(BOOST_WINDOWS) && !defined(__CYGWIN__) - -#include - -#if defined(GENERATING_DOCUMENTATION) -# define BOOST_ASIO_OPTION_STORAGE implementation_defined -#elif defined(BOOST_WINDOWS) || defined(__CYGWIN__) -# define BOOST_ASIO_OPTION_STORAGE DCB -#else -# define BOOST_ASIO_OPTION_STORAGE termios -#endif - -namespace boost { -namespace asio { - -/// The serial_port_base class is used as a base for the basic_serial_port class -/// template so that we have a common place to define the serial port options. -class serial_port_base -{ -public: - /// Serial port option to permit changing the baud rate. - /** - * Implements changing the baud rate for a given serial port. - */ - class baud_rate - { - public: - explicit baud_rate(unsigned int rate = 0); - unsigned int value() const; - boost::system::error_code store(BOOST_ASIO_OPTION_STORAGE& storage, - boost::system::error_code& ec) const; - boost::system::error_code load(const BOOST_ASIO_OPTION_STORAGE& storage, - boost::system::error_code& ec); - private: - unsigned int value_; - }; - - /// Serial port option to permit changing the flow control. - /** - * Implements changing the flow control for a given serial port. - */ - class flow_control - { - public: - enum type { none, software, hardware }; - explicit flow_control(type t = none); - type value() const; - boost::system::error_code store(BOOST_ASIO_OPTION_STORAGE& storage, - boost::system::error_code& ec) const; - boost::system::error_code load(const BOOST_ASIO_OPTION_STORAGE& storage, - boost::system::error_code& ec); - private: - type value_; - }; - - /// Serial port option to permit changing the parity. - /** - * Implements changing the parity for a given serial port. - */ - class parity - { - public: - enum type { none, odd, even }; - explicit parity(type t = none); - type value() const; - boost::system::error_code store(BOOST_ASIO_OPTION_STORAGE& storage, - boost::system::error_code& ec) const; - boost::system::error_code load(const BOOST_ASIO_OPTION_STORAGE& storage, - boost::system::error_code& ec); - private: - type value_; - }; - - /// Serial port option to permit changing the number of stop bits. - /** - * Implements changing the number of stop bits for a given serial port. - */ - class stop_bits - { - public: - enum type { one, onepointfive, two }; - explicit stop_bits(type t = one); - type value() const; - boost::system::error_code store(BOOST_ASIO_OPTION_STORAGE& storage, - boost::system::error_code& ec) const; - boost::system::error_code load(const BOOST_ASIO_OPTION_STORAGE& storage, - boost::system::error_code& ec); - private: - type value_; - }; - - /// Serial port option to permit changing the character size. - /** - * Implements changing the character size for a given serial port. - */ - class character_size - { - public: - explicit character_size(unsigned int t = 8); - unsigned int value() const; - boost::system::error_code store(BOOST_ASIO_OPTION_STORAGE& storage, - boost::system::error_code& ec) const; - boost::system::error_code load(const BOOST_ASIO_OPTION_STORAGE& storage, - boost::system::error_code& ec); - private: - unsigned int value_; - }; - -protected: - /// Protected destructor to prevent deletion through this type. - ~serial_port_base() - { - } - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -private: - // Workaround to enable the empty base optimisation with Borland C++. - char dummy_; -#endif -}; - -} // namespace asio -} // namespace boost - -#include - -#undef BOOST_ASIO_OPTION_STORAGE - -#endif // defined(BOOST_ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_SERIAL_PORT_BASE_HPP diff --git a/3rdParty/Boost/boost/asio/serial_port_service.hpp b/3rdParty/Boost/boost/asio/serial_port_service.hpp deleted file mode 100644 index fe2ce94..0000000 --- a/3rdParty/Boost/boost/asio/serial_port_service.hpp +++ /dev/null @@ -1,218 +0,0 @@ -// -// serial_port_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_SERIAL_PORT_SERVICE_HPP -#define BOOST_ASIO_SERIAL_PORT_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#if defined(BOOST_ASIO_HAS_SERIAL_PORT) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { - -/// Default service implementation for a serial port. -class serial_port_service -#if defined(GENERATING_DOCUMENTATION) - : public boost::asio::io_service::service -#else - : public boost::asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static boost::asio::io_service::id id; -#endif - -private: - // The type of the platform-specific implementation. -#if defined(BOOST_ASIO_HAS_IOCP) - typedef detail::win_iocp_serial_port_service service_impl_type; -#elif defined(BOOST_ASIO_HAS_EPOLL) - typedef detail::reactive_serial_port_service< - detail::epoll_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_KQUEUE) - typedef detail::reactive_serial_port_service< - detail::kqueue_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_DEV_POLL) - typedef detail::reactive_serial_port_service< - detail::dev_poll_reactor > service_impl_type; -#else - typedef detail::reactive_serial_port_service< - detail::select_reactor > service_impl_type; -#endif - -public: - /// The type of a serial port implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_type; -#else - typedef service_impl_type::native_type native_type; -#endif - - /// Construct a new serial port service for the specified io_service. - explicit serial_port_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base(io_service), - service_impl_(boost::asio::use_service(io_service)) - { - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Construct a new serial port implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a serial port implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a serial port. - boost::system::error_code open(implementation_type& impl, - const std::string& device, boost::system::error_code& ec) - { - return service_impl_.open(impl, device, ec); - } - - /// Assign an existing native handle to a serial port. - boost::system::error_code assign(implementation_type& impl, - const native_type& native_handle, boost::system::error_code& ec) - { - return service_impl_.assign(impl, native_handle, ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a serial port implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.close(impl, ec); - } - - /// Get the native handle implementation. - native_type native(implementation_type& impl) - { - return service_impl_.native(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Set a serial port option. - template - boost::system::error_code set_option(implementation_type& impl, - const SettableSerialPortOption& option, boost::system::error_code& ec) - { - return service_impl_.set_option(impl, option, ec); - } - - /// Get a serial port option. - template - boost::system::error_code get_option(const implementation_type& impl, - GettableSerialPortOption& option, boost::system::error_code& ec) const - { - return service_impl_.get_option(impl, option, ec); - } - - /// Send a break sequence to the serial port. - boost::system::error_code send_break(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.send_break(impl, ec); - } - - /// Write the given data to the stream. - template - std::size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, boost::system::error_code& ec) - { - return service_impl_.write_some(impl, buffers, ec); - } - - /// Start an asynchronous write. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, WriteHandler handler) - { - service_impl_.async_write_some(impl, buffers, handler); - } - - /// Read some data from the stream. - template - std::size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, boost::system::error_code& ec) - { - return service_impl_.read_some(impl, buffers, ec); - } - - /// Start an asynchronous read. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, ReadHandler handler) - { - service_impl_.async_read_some(impl, buffers, handler); - } - -private: - // The service that provides the platform-specific implementation. - service_impl_type& service_impl_; -}; - -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_SERIAL_PORT) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_SERIAL_PORT_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/socket_acceptor_service.hpp b/3rdParty/Boost/boost/asio/socket_acceptor_service.hpp deleted file mode 100644 index ba78746..0000000 --- a/3rdParty/Boost/boost/asio/socket_acceptor_service.hpp +++ /dev/null @@ -1,227 +0,0 @@ -// -// socket_acceptor_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_SOCKET_ACCEPTOR_SERVICE_HPP -#define BOOST_ASIO_SOCKET_ACCEPTOR_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Default service implementation for a socket acceptor. -template -class socket_acceptor_service -#if defined(GENERATING_DOCUMENTATION) - : public boost::asio::io_service::service -#else - : public boost::asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static boost::asio::io_service::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename protocol_type::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(BOOST_ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#elif defined(BOOST_ASIO_HAS_EPOLL) - typedef detail::reactive_socket_service< - Protocol, detail::epoll_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_KQUEUE) - typedef detail::reactive_socket_service< - Protocol, detail::kqueue_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_DEV_POLL) - typedef detail::reactive_socket_service< - Protocol, detail::dev_poll_reactor > service_impl_type; -#else - typedef detail::reactive_socket_service< - Protocol, detail::select_reactor > service_impl_type; -#endif - -public: - /// The native type of the socket acceptor. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native acceptor type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_type; -#else - typedef typename service_impl_type::native_type native_type; -#endif - - /// Construct a new socket acceptor service for the specified io_service. - explicit socket_acceptor_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - socket_acceptor_service >(io_service), - service_impl_(boost::asio::use_service(io_service)) - { - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Construct a new socket acceptor implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a socket acceptor implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a new socket acceptor implementation. - boost::system::error_code open(implementation_type& impl, - const protocol_type& protocol, boost::system::error_code& ec) - { - return service_impl_.open(impl, protocol, ec); - } - - /// Assign an existing native acceptor to a socket acceptor. - boost::system::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_type& native_acceptor, - boost::system::error_code& ec) - { - return service_impl_.assign(impl, protocol, native_acceptor, ec); - } - - /// Determine whether the acceptor is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Cancel all asynchronous operations associated with the acceptor. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Bind the socket acceptor to the specified local endpoint. - boost::system::error_code bind(implementation_type& impl, - const endpoint_type& endpoint, boost::system::error_code& ec) - { - return service_impl_.bind(impl, endpoint, ec); - } - - /// Place the socket acceptor into the state where it will listen for new - /// connections. - boost::system::error_code listen(implementation_type& impl, int backlog, - boost::system::error_code& ec) - { - return service_impl_.listen(impl, backlog, ec); - } - - /// Close a socket acceptor implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.close(impl, ec); - } - - /// Get the native acceptor implementation. - native_type native(implementation_type& impl) - { - return service_impl_.native(impl); - } - - /// Set a socket option. - template - boost::system::error_code set_option(implementation_type& impl, - const SettableSocketOption& option, boost::system::error_code& ec) - { - return service_impl_.set_option(impl, option, ec); - } - - /// Get a socket option. - template - boost::system::error_code get_option(const implementation_type& impl, - GettableSocketOption& option, boost::system::error_code& ec) const - { - return service_impl_.get_option(impl, option, ec); - } - - /// Perform an IO control command on the socket. - template - boost::system::error_code io_control(implementation_type& impl, - IoControlCommand& command, boost::system::error_code& ec) - { - return service_impl_.io_control(impl, command, ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Accept a new connection. - template - boost::system::error_code accept(implementation_type& impl, - basic_socket& peer, - endpoint_type* peer_endpoint, boost::system::error_code& ec) - { - return service_impl_.accept(impl, peer, peer_endpoint, ec); - } - - /// Start an asynchronous accept. - template - void async_accept(implementation_type& impl, - basic_socket& peer, - endpoint_type* peer_endpoint, AcceptHandler handler) - { - service_impl_.async_accept(impl, peer, peer_endpoint, handler); - } - -private: - // The service that provides the platform-specific implementation. - service_impl_type& service_impl_; -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_SOCKET_ACCEPTOR_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/socket_base.hpp b/3rdParty/Boost/boost/asio/socket_base.hpp deleted file mode 100644 index 5a1b675..0000000 --- a/3rdParty/Boost/boost/asio/socket_base.hpp +++ /dev/null @@ -1,517 +0,0 @@ -// -// socket_base.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_SOCKET_BASE_HPP -#define BOOST_ASIO_SOCKET_BASE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { - -/// The socket_base class is used as a base for the basic_stream_socket and -/// basic_datagram_socket class templates so that we have a common place to -/// define the shutdown_type and enum. -class socket_base -{ -public: - /// Different ways a socket may be shutdown. - enum shutdown_type - { -#if defined(GENERATING_DOCUMENTATION) - /// Shutdown the receive side of the socket. - shutdown_receive = implementation_defined, - - /// Shutdown the send side of the socket. - shutdown_send = implementation_defined, - - /// Shutdown both send and receive on the socket. - shutdown_both = implementation_defined -#else - shutdown_receive = boost::asio::detail::shutdown_receive, - shutdown_send = boost::asio::detail::shutdown_send, - shutdown_both = boost::asio::detail::shutdown_both -#endif - }; - - /// Bitmask type for flags that can be passed to send and receive operations. - typedef int message_flags; - -#if defined(GENERATING_DOCUMENTATION) - /// Peek at incoming data without removing it from the input queue. - static const int message_peek = implementation_defined; - - /// Process out-of-band data. - static const int message_out_of_band = implementation_defined; - - /// Specify that the data should not be subject to routing. - static const int message_do_not_route = implementation_defined; -#else - BOOST_STATIC_CONSTANT(int, - message_peek = boost::asio::detail::message_peek); - BOOST_STATIC_CONSTANT(int, - message_out_of_band = boost::asio::detail::message_out_of_band); - BOOST_STATIC_CONSTANT(int, - message_do_not_route = boost::asio::detail::message_do_not_route); -#endif - - /// Socket option to permit sending of broadcast messages. - /** - * Implements the SOL_SOCKET/SO_BROADCAST socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::socket_base::broadcast option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::socket_base::broadcast option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined broadcast; -#else - typedef boost::asio::detail::socket_option::boolean< - SOL_SOCKET, SO_BROADCAST> broadcast; -#endif - - /// Socket option to enable socket-level debugging. - /** - * Implements the SOL_SOCKET/SO_DEBUG socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::debug option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::debug option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined debug; -#else - typedef boost::asio::detail::socket_option::boolean< - SOL_SOCKET, SO_DEBUG> debug; -#endif - - /// Socket option to prevent routing, use local interfaces only. - /** - * Implements the SOL_SOCKET/SO_DONTROUTE socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::socket_base::do_not_route option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::udp::socket socket(io_service); - * ... - * boost::asio::socket_base::do_not_route option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined do_not_route; -#else - typedef boost::asio::detail::socket_option::boolean< - SOL_SOCKET, SO_DONTROUTE> do_not_route; -#endif - - /// Socket option to send keep-alives. - /** - * Implements the SOL_SOCKET/SO_KEEPALIVE socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::keep_alive option(true); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::keep_alive option; - * socket.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined keep_alive; -#else - typedef boost::asio::detail::socket_option::boolean< - SOL_SOCKET, SO_KEEPALIVE> keep_alive; -#endif - - /// Socket option for the send buffer size of a socket. - /** - * Implements the SOL_SOCKET/SO_SNDBUF socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::send_buffer_size option(8192); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::send_buffer_size option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined send_buffer_size; -#else - typedef boost::asio::detail::socket_option::integer< - SOL_SOCKET, SO_SNDBUF> send_buffer_size; -#endif - - /// Socket option for the send low watermark. - /** - * Implements the SOL_SOCKET/SO_SNDLOWAT socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::send_low_watermark option(1024); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::send_low_watermark option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined send_low_watermark; -#else - typedef boost::asio::detail::socket_option::integer< - SOL_SOCKET, SO_SNDLOWAT> send_low_watermark; -#endif - - /// Socket option for the receive buffer size of a socket. - /** - * Implements the SOL_SOCKET/SO_RCVBUF socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::receive_buffer_size option(8192); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::receive_buffer_size option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined receive_buffer_size; -#else - typedef boost::asio::detail::socket_option::integer< - SOL_SOCKET, SO_RCVBUF> receive_buffer_size; -#endif - - /// Socket option for the receive low watermark. - /** - * Implements the SOL_SOCKET/SO_RCVLOWAT socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::receive_low_watermark option(1024); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::receive_low_watermark option; - * socket.get_option(option); - * int size = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Integer_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined receive_low_watermark; -#else - typedef boost::asio::detail::socket_option::integer< - SOL_SOCKET, SO_RCVLOWAT> receive_low_watermark; -#endif - - /// Socket option to allow the socket to be bound to an address that is - /// already in use. - /** - * Implements the SOL_SOCKET/SO_REUSEADDR socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::socket_base::reuse_address option(true); - * acceptor.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::socket_base::reuse_address option; - * acceptor.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined reuse_address; -#else - typedef boost::asio::detail::socket_option::boolean< - SOL_SOCKET, SO_REUSEADDR> reuse_address; -#endif - - /// Socket option to specify whether the socket lingers on close if unsent - /// data is present. - /** - * Implements the SOL_SOCKET/SO_LINGER socket option. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::linger option(true, 30); - * socket.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::linger option; - * socket.get_option(option); - * bool is_set = option.enabled(); - * unsigned short timeout = option.timeout(); - * @endcode - * - * @par Concepts: - * Socket_Option, Linger_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined linger; -#else - typedef boost::asio::detail::socket_option::linger< - SOL_SOCKET, SO_LINGER> linger; -#endif - - /// Socket option to report aborted connections on accept. - /** - * Implements a custom socket option that determines whether or not an accept - * operation is permitted to fail with boost::asio::error::connection_aborted. - * By default the option is false. - * - * @par Examples - * Setting the option: - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::socket_base::enable_connection_aborted option(true); - * acceptor.set_option(option); - * @endcode - * - * @par - * Getting the current option value: - * @code - * boost::asio::ip::tcp::acceptor acceptor(io_service); - * ... - * boost::asio::socket_base::enable_connection_aborted option; - * acceptor.get_option(option); - * bool is_set = option.value(); - * @endcode - * - * @par Concepts: - * Socket_Option, Boolean_Socket_Option. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined enable_connection_aborted; -#else - typedef boost::asio::detail::socket_option::boolean< - boost::asio::detail::custom_socket_option_level, - boost::asio::detail::enable_connection_aborted_option> - enable_connection_aborted; -#endif - - /// IO control command to set the blocking mode of the socket. - /** - * Implements the FIONBIO IO control command. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::non_blocking_io command(true); - * socket.io_control(command); - * @endcode - * - * @par Concepts: - * IO_Control_Command, Boolean_IO_Control_Command. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined non_blocking_io; -#else - typedef boost::asio::detail::io_control::non_blocking_io non_blocking_io; -#endif - - /// IO control command to get the amount of data that can be read without - /// blocking. - /** - * Implements the FIONREAD IO control command. - * - * @par Example - * @code - * boost::asio::ip::tcp::socket socket(io_service); - * ... - * boost::asio::socket_base::bytes_readable command(true); - * socket.io_control(command); - * std::size_t bytes_readable = command.get(); - * @endcode - * - * @par Concepts: - * IO_Control_Command, Size_IO_Control_Command. - */ -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined bytes_readable; -#else - typedef boost::asio::detail::io_control::bytes_readable bytes_readable; -#endif - - /// The maximum length of the queue of pending incoming connections. -#if defined(GENERATING_DOCUMENTATION) - static const int max_connections = implementation_defined; -#else - BOOST_STATIC_CONSTANT(int, max_connections = SOMAXCONN); -#endif - -protected: - /// Protected destructor to prevent deletion through this type. - ~socket_base() - { - } - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -private: - // Workaround to enable the empty base optimisation with Borland C++. - char dummy_; -#endif -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_SOCKET_BASE_HPP diff --git a/3rdParty/Boost/boost/asio/strand.hpp b/3rdParty/Boost/boost/asio/strand.hpp deleted file mode 100644 index b130a84..0000000 --- a/3rdParty/Boost/boost/asio/strand.hpp +++ /dev/null @@ -1,188 +0,0 @@ -// -// strand.hpp -// ~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_STRAND_HPP -#define BOOST_ASIO_STRAND_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -namespace boost { -namespace asio { - -/// Provides serialised handler execution. -/** - * The io_service::strand class provides the ability to post and dispatch - * handlers with the guarantee that none of those handlers will execute - * concurrently. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Safe. - * - * @par Concepts: - * Dispatcher. - */ -class io_service::strand -{ -public: - /// Constructor. - /** - * Constructs the strand. - * - * @param io_service The io_service object that the strand will use to - * dispatch handlers that are ready to be run. - */ - explicit strand(boost::asio::io_service& io_service) - : service_(boost::asio::use_service< - boost::asio::detail::strand_service>(io_service)) - { - service_.construct(impl_); - } - - /// Destructor. - /** - * Destroys a strand. - * - * Handlers posted through the strand that have not yet been invoked will - * still be dispatched in a way that meets the guarantee of non-concurrency. - */ - ~strand() - { - service_.destroy(impl_); - } - - /// (Deprecated: use get_io_service().) Get the io_service associated with - /// the strand. - /** - * This function may be used to obtain the io_service object that the strand - * uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_service object that the strand will use to - * dispatch handlers. Ownership is not transferred to the caller. - */ - boost::asio::io_service& io_service() - { - return service_.get_io_service(); - } - - /// Get the io_service associated with the strand. - /** - * This function may be used to obtain the io_service object that the strand - * uses to dispatch handlers for asynchronous operations. - * - * @return A reference to the io_service object that the strand will use to - * dispatch handlers. Ownership is not transferred to the caller. - */ - boost::asio::io_service& get_io_service() - { - return service_.get_io_service(); - } - - /// Request the strand to invoke the given handler. - /** - * This function is used to ask the strand to execute the given handler. - * - * The strand object guarantees that handlers posted or dispatched through - * the strand will not be executed concurrently. The handler may be executed - * inside this function if the guarantee can be met. If this function is - * called from within a handler that was posted or dispatched through the same - * strand, then the new handler will be executed immediately. - * - * The strand's guarantee is in addition to the guarantee provided by the - * underlying io_service. The io_service guarantees that the handler will only - * be called in a thread in which the io_service's run member function is - * currently being invoked. - * - * @param handler The handler to be called. The strand will make a copy of the - * handler object as required. The function signature of the handler must be: - * @code void handler(); @endcode - */ - template - void dispatch(Handler handler) - { - service_.dispatch(impl_, handler); - } - - /// Request the strand to invoke the given handler and return - /// immediately. - /** - * This function is used to ask the strand to execute the given handler, but - * without allowing the strand to call the handler from inside this function. - * - * The strand object guarantees that handlers posted or dispatched through - * the strand will not be executed concurrently. The strand's guarantee is in - * addition to the guarantee provided by the underlying io_service. The - * io_service guarantees that the handler will only be called in a thread in - * which the io_service's run member function is currently being invoked. - * - * @param handler The handler to be called. The strand will make a copy of the - * handler object as required. The function signature of the handler must be: - * @code void handler(); @endcode - */ - template - void post(Handler handler) - { - service_.post(impl_, handler); - } - - /// Create a new handler that automatically dispatches the wrapped handler - /// on the strand. - /** - * This function is used to create a new handler function object that, when - * invoked, will automatically pass the wrapped handler to the strand's - * dispatch function. - * - * @param handler The handler to be wrapped. The strand will make a copy of - * the handler object as required. The function signature of the handler must - * be: @code void handler(A1 a1, ... An an); @endcode - * - * @return A function object that, when invoked, passes the wrapped handler to - * the strand's dispatch function. Given a function object with the signature: - * @code R f(A1 a1, ... An an); @endcode - * If this function object is passed to the wrap function like so: - * @code strand.wrap(f); @endcode - * then the return value is a function object with the signature - * @code void g(A1 a1, ... An an); @endcode - * that, when invoked, executes code equivalent to: - * @code strand.dispatch(boost::bind(f, a1, ... an)); @endcode - */ - template -#if defined(GENERATING_DOCUMENTATION) - unspecified -#else - detail::wrapped_handler -#endif - wrap(Handler handler) - { - return detail::wrapped_handler(*this, handler); - } - -private: - boost::asio::detail::strand_service& service_; - boost::asio::detail::strand_service::implementation_type impl_; -}; - -/// Typedef for backwards compatibility. -typedef boost::asio::io_service::strand strand; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_STRAND_HPP diff --git a/3rdParty/Boost/boost/asio/stream_socket_service.hpp b/3rdParty/Boost/boost/asio/stream_socket_service.hpp deleted file mode 100644 index 502c293..0000000 --- a/3rdParty/Boost/boost/asio/stream_socket_service.hpp +++ /dev/null @@ -1,288 +0,0 @@ -// -// stream_socket_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_STREAM_SOCKET_SERVICE_HPP -#define BOOST_ASIO_STREAM_SOCKET_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace asio { - -/// Default service implementation for a stream socket. -template -class stream_socket_service -#if defined(GENERATING_DOCUMENTATION) - : public boost::asio::io_service::service -#else - : public boost::asio::detail::service_base > -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static boost::asio::io_service::id id; -#endif - - /// The protocol type. - typedef Protocol protocol_type; - - /// The endpoint type. - typedef typename Protocol::endpoint endpoint_type; - -private: - // The type of the platform-specific implementation. -#if defined(BOOST_ASIO_HAS_IOCP) - typedef detail::win_iocp_socket_service service_impl_type; -#elif defined(BOOST_ASIO_HAS_EPOLL) - typedef detail::reactive_socket_service< - Protocol, detail::epoll_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_KQUEUE) - typedef detail::reactive_socket_service< - Protocol, detail::kqueue_reactor > service_impl_type; -#elif defined(BOOST_ASIO_HAS_DEV_POLL) - typedef detail::reactive_socket_service< - Protocol, detail::dev_poll_reactor > service_impl_type; -#else - typedef detail::reactive_socket_service< - Protocol, detail::select_reactor > service_impl_type; -#endif - -public: - /// The type of a stream socket implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef typename service_impl_type::implementation_type implementation_type; -#endif - - /// The native socket type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_type; -#else - typedef typename service_impl_type::native_type native_type; -#endif - - /// Construct a new stream socket service for the specified io_service. - explicit stream_socket_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - stream_socket_service >(io_service), - service_impl_(boost::asio::use_service(io_service)) - { - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Construct a new stream socket implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a stream socket implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Open a stream socket. - boost::system::error_code open(implementation_type& impl, - const protocol_type& protocol, boost::system::error_code& ec) - { - if (protocol.type() == SOCK_STREAM) - service_impl_.open(impl, protocol, ec); - else - ec = boost::asio::error::invalid_argument; - return ec; - } - - /// Assign an existing native socket to a stream socket. - boost::system::error_code assign(implementation_type& impl, - const protocol_type& protocol, const native_type& native_socket, - boost::system::error_code& ec) - { - return service_impl_.assign(impl, protocol, native_socket, ec); - } - - /// Determine whether the socket is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a stream socket implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.close(impl, ec); - } - - /// Get the native socket implementation. - native_type native(implementation_type& impl) - { - return service_impl_.native(impl); - } - - /// Cancel all asynchronous operations associated with the socket. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Determine whether the socket is at the out-of-band data mark. - bool at_mark(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.at_mark(impl, ec); - } - - /// Determine the number of bytes available for reading. - std::size_t available(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.available(impl, ec); - } - - /// Bind the stream socket to the specified local endpoint. - boost::system::error_code bind(implementation_type& impl, - const endpoint_type& endpoint, boost::system::error_code& ec) - { - return service_impl_.bind(impl, endpoint, ec); - } - - /// Connect the stream socket to the specified endpoint. - boost::system::error_code connect(implementation_type& impl, - const endpoint_type& peer_endpoint, boost::system::error_code& ec) - { - return service_impl_.connect(impl, peer_endpoint, ec); - } - - /// Start an asynchronous connect. - template - void async_connect(implementation_type& impl, - const endpoint_type& peer_endpoint, ConnectHandler handler) - { - service_impl_.async_connect(impl, peer_endpoint, handler); - } - - /// Set a socket option. - template - boost::system::error_code set_option(implementation_type& impl, - const SettableSocketOption& option, boost::system::error_code& ec) - { - return service_impl_.set_option(impl, option, ec); - } - - /// Get a socket option. - template - boost::system::error_code get_option(const implementation_type& impl, - GettableSocketOption& option, boost::system::error_code& ec) const - { - return service_impl_.get_option(impl, option, ec); - } - - /// Perform an IO control command on the socket. - template - boost::system::error_code io_control(implementation_type& impl, - IoControlCommand& command, boost::system::error_code& ec) - { - return service_impl_.io_control(impl, command, ec); - } - - /// Get the local endpoint. - endpoint_type local_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.local_endpoint(impl, ec); - } - - /// Get the remote endpoint. - endpoint_type remote_endpoint(const implementation_type& impl, - boost::system::error_code& ec) const - { - return service_impl_.remote_endpoint(impl, ec); - } - - /// Disable sends or receives on the socket. - boost::system::error_code shutdown(implementation_type& impl, - socket_base::shutdown_type what, boost::system::error_code& ec) - { - return service_impl_.shutdown(impl, what, ec); - } - - /// Send the given data to the peer. - template - std::size_t send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return service_impl_.send(impl, buffers, flags, ec); - } - - /// Start an asynchronous send. - template - void async_send(implementation_type& impl, - const ConstBufferSequence& buffers, - socket_base::message_flags flags, WriteHandler handler) - { - service_impl_.async_send(impl, buffers, flags, handler); - } - - /// Receive some data from the peer. - template - std::size_t receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, boost::system::error_code& ec) - { - return service_impl_.receive(impl, buffers, flags, ec); - } - - /// Start an asynchronous receive. - template - void async_receive(implementation_type& impl, - const MutableBufferSequence& buffers, - socket_base::message_flags flags, ReadHandler handler) - { - service_impl_.async_receive(impl, buffers, flags, handler); - } - -private: - // The service that provides the platform-specific implementation. - service_impl_type& service_impl_; -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_STREAM_SOCKET_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/streambuf.hpp b/3rdParty/Boost/boost/asio/streambuf.hpp deleted file mode 100644 index 63c8a41..0000000 --- a/3rdParty/Boost/boost/asio/streambuf.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// streambuf.hpp -// ~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_STREAMBUF_HPP -#define BOOST_ASIO_STREAMBUF_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -namespace boost { -namespace asio { - -/// Typedef for the typical usage of basic_streambuf. -typedef basic_streambuf<> streambuf; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_STREAMBUF_HPP diff --git a/3rdParty/Boost/boost/asio/time_traits.hpp b/3rdParty/Boost/boost/asio/time_traits.hpp deleted file mode 100644 index 097ece4..0000000 --- a/3rdParty/Boost/boost/asio/time_traits.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// time_traits.hpp -// ~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_TIME_TRAITS_HPP -#define BOOST_ASIO_TIME_TRAITS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include // Must come before posix_time. - -#include -#include -#include - -namespace boost { -namespace asio { - -/// Time traits suitable for use with the deadline timer. -template -struct time_traits; - -/// Time traits specialised for posix_time. -template <> -struct time_traits -{ - /// The time type. - typedef boost::posix_time::ptime time_type; - - /// The duration type. - typedef boost::posix_time::time_duration duration_type; - - /// Get the current time. - static time_type now() - { - return boost::posix_time::microsec_clock::universal_time(); - } - - /// Add a duration to a time. - static time_type add(const time_type& t, const duration_type& d) - { - return t + d; - } - - /// Subtract one time from another. - static duration_type subtract(const time_type& t1, const time_type& t2) - { - return t1 - t2; - } - - /// Test whether one time is less than another. - static bool less_than(const time_type& t1, const time_type& t2) - { - return t1 < t2; - } - - /// Convert to POSIX duration type. - static boost::posix_time::time_duration to_posix_duration( - const duration_type& d) - { - return d; - } -}; - -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_TIME_TRAITS_HPP diff --git a/3rdParty/Boost/boost/asio/version.hpp b/3rdParty/Boost/boost/asio/version.hpp deleted file mode 100644 index bb10dc7..0000000 --- a/3rdParty/Boost/boost/asio/version.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// -// version.hpp -// ~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_VERSION_HPP -#define BOOST_ASIO_VERSION_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -// 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 100402 // 1.4.2 - -#endif // BOOST_ASIO_VERSION_HPP diff --git a/3rdParty/Boost/boost/asio/windows/basic_handle.hpp b/3rdParty/Boost/boost/asio/windows/basic_handle.hpp deleted file mode 100644 index 96a7b90..0000000 --- a/3rdParty/Boost/boost/asio/windows/basic_handle.hpp +++ /dev/null @@ -1,227 +0,0 @@ -// -// basic_handle.hpp -// ~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WINDOWS_BASIC_HANDLE_HPP -#define BOOST_ASIO_WINDOWS_BASIC_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#include -#include -#include - -namespace boost { -namespace asio { -namespace windows { - -/// Provides Windows handle functionality. -/** - * The windows::basic_handle class template provides the ability to wrap a - * Windows handle. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_handle - : public basic_io_object -{ -public: - /// The native representation of a handle. - typedef typename HandleService::native_type native_type; - - /// A basic_handle is always the lowest layer. - typedef basic_handle lowest_layer_type; - - /// Construct a basic_handle without opening it. - /** - * This constructor creates a handle without opening it. - * - * @param io_service The io_service object that the handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit basic_handle(boost::asio::io_service& io_service) - : basic_io_object(io_service) - { - } - - /// Construct a basic_handle on an existing native handle. - /** - * This constructor creates a handle object to hold an existing native handle. - * - * @param io_service The io_service object that the handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param native_handle A native handle. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_handle(boost::asio::io_service& io_service, - const native_type& native_handle) - : basic_io_object(io_service) - { - boost::system::error_code ec; - this->service.assign(this->implementation, native_handle, ec); - boost::asio::detail::throw_error(ec); - } - - /// Get a reference to the lowest layer. - /** - * This function returns a reference to the lowest layer in a stack of - * layers. Since a basic_handle cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A reference to the lowest layer in the stack of layers. Ownership - * is not transferred to the caller. - */ - lowest_layer_type& lowest_layer() - { - return *this; - } - - /// Get a const reference to the lowest layer. - /** - * This function returns a const reference to the lowest layer in a stack of - * layers. Since a basic_handle cannot contain any further layers, it simply - * returns a reference to itself. - * - * @return A const reference to the lowest layer in the stack of layers. - * Ownership is not transferred to the caller. - */ - const lowest_layer_type& lowest_layer() const - { - return *this; - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param native_handle A native handle. - * - * @throws boost::system::system_error Thrown on failure. - */ - void assign(const native_type& native_handle) - { - boost::system::error_code ec; - this->service.assign(this->implementation, native_handle, ec); - boost::asio::detail::throw_error(ec); - } - - /// Assign an existing native handle to the handle. - /* - * This function opens the handle to hold an existing native handle. - * - * @param native_handle A native handle. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code assign(const native_type& native_handle, - boost::system::error_code& ec) - { - return this->service.assign(this->implementation, native_handle, ec); - } - - /// Determine whether the handle is open. - bool is_open() const - { - return this->service.is_open(this->implementation); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * boost::asio::error::operation_aborted error. - * - * @throws boost::system::system_error Thrown on failure. - */ - void close() - { - boost::system::error_code ec; - this->service.close(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Close the handle. - /** - * This function is used to close the handle. Any asynchronous read or write - * operations will be cancelled immediately, and will complete with the - * boost::asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code close(boost::system::error_code& ec) - { - return this->service.close(this->implementation, ec); - } - - /// Get the native handle representation. - /** - * This function may be used to obtain the underlying representation of the - * handle. This is intended to allow access to native handle functionality - * that is not otherwise provided. - */ - native_type native() - { - return this->service.native(this->implementation); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the boost::asio::error::operation_aborted error. - * - * @throws boost::system::system_error Thrown on failure. - */ - void cancel() - { - boost::system::error_code ec; - this->service.cancel(this->implementation, ec); - boost::asio::detail::throw_error(ec); - } - - /// Cancel all asynchronous operations associated with the handle. - /** - * This function causes all outstanding asynchronous read or write operations - * to finish immediately, and the handlers for cancelled operations will be - * passed the boost::asio::error::operation_aborted error. - * - * @param ec Set to indicate what error occurred, if any. - */ - boost::system::error_code cancel(boost::system::error_code& ec) - { - return this->service.cancel(this->implementation, ec); - } - -protected: - /// Protected destructor to prevent deletion through this type. - ~basic_handle() - { - } -}; - -} // namespace windows -} // namespace asio -} // namespace boost - -#include - -#endif // BOOST_ASIO_WINDOWS_BASIC_HANDLE_HPP diff --git a/3rdParty/Boost/boost/asio/windows/basic_random_access_handle.hpp b/3rdParty/Boost/boost/asio/windows/basic_random_access_handle.hpp deleted file mode 100644 index d6b63b1..0000000 --- a/3rdParty/Boost/boost/asio/windows/basic_random_access_handle.hpp +++ /dev/null @@ -1,322 +0,0 @@ -// -// basic_random_access_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WINDOWS_BASIC_RANDOM_ACCESS_HANDLE_HPP -#define BOOST_ASIO_WINDOWS_BASIC_RANDOM_ACCESS_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -#if defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace windows { - -/// Provides random-access handle functionality. -/** - * The windows::basic_random_access_handle class template provides asynchronous - * and blocking random-access handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -template -class basic_random_access_handle - : public basic_handle -{ -public: - /// The native representation of a handle. - typedef typename RandomAccessHandleService::native_type native_type; - - /// Construct a basic_random_access_handle without opening it. - /** - * This constructor creates a random-access handle without opening it. The - * handle needs to be opened before data can be written to or or read from it. - * - * @param io_service The io_service object that the random-access handle will - * use to dispatch handlers for any asynchronous operations performed on the - * handle. - */ - explicit basic_random_access_handle(boost::asio::io_service& io_service) - : basic_handle(io_service) - { - } - - /// Construct a basic_random_access_handle on an existing native handle. - /** - * This constructor creates a random-access handle object to hold an existing - * native handle. - * - * @param io_service The io_service object that the random-access handle will - * use to dispatch handlers for any asynchronous operations performed on the - * handle. - * - * @param native_handle The new underlying handle implementation. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_random_access_handle(boost::asio::io_service& io_service, - const native_type& native_handle) - : basic_handle(io_service, native_handle) - { - } - - /// Write some data to the handle at the specified offset. - /** - * This function is used to write data to the random-access handle. The - * function call will block until one or more bytes of the data has been - * written successfully, or until an error occurs. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @returns The number of bytes written. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some_at operation may not write all of the data. Consider - * using the @ref write_at function if you need to ensure that all data is - * written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.write_some_at(42, boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some_at(boost::uint64_t offset, - const ConstBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.write_some_at( - this->implementation, offset, buffers, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Write some data to the handle at the specified offset. - /** - * This function is used to write data to the random-access handle. The - * function call will block until one or more bytes of the data has been - * written successfully, or until an error occurs. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write_at function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some_at(boost::uint64_t offset, - const ConstBufferSequence& buffers, boost::system::error_code& ec) - { - return this->service.write_some_at( - this->implementation, offset, buffers, ec); - } - - /// Start an asynchronous write at the specified offset. - /** - * This function is used to asynchronously write data to the random-access - * handle. The function call always returns immediately. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more data buffers to be written to the handle. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write_at function if you need to ensure that - * all data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_write_some_at(42, boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_write_some_at(boost::uint64_t offset, - const ConstBufferSequence& buffers, WriteHandler handler) - { - this->service.async_write_some_at( - this->implementation, offset, buffers, handler); - } - - /// Read some data from the handle at the specified offset. - /** - * This function is used to read data from the random-access handle. The - * function call will block until one or more bytes of data has been read - * successfully, or until an error occurs. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read_at function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.read_some_at(42, boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some_at(boost::uint64_t offset, - const MutableBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.read_some_at( - this->implementation, offset, buffers, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Read some data from the handle at the specified offset. - /** - * This function is used to read data from the random-access handle. The - * function call will block until one or more bytes of data has been read - * successfully, or until an error occurs. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read_at function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some_at(boost::uint64_t offset, - const MutableBufferSequence& buffers, boost::system::error_code& ec) - { - return this->service.read_some_at( - this->implementation, offset, buffers, ec); - } - - /// Start an asynchronous read at the specified offset. - /** - * This function is used to asynchronously read data from the random-access - * handle. The function call always returns immediately. - * - * @param offset The offset at which the data will be read. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read_at function if you need to ensure that - * the requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_read_some_at(42, boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_read_some_at(boost::uint64_t offset, - const MutableBufferSequence& buffers, ReadHandler handler) - { - this->service.async_read_some_at( - this->implementation, offset, buffers, handler); - } -}; - -} // namespace windows -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_WINDOWS_BASIC_RANDOM_ACCESS_HANDLE_HPP diff --git a/3rdParty/Boost/boost/asio/windows/basic_stream_handle.hpp b/3rdParty/Boost/boost/asio/windows/basic_stream_handle.hpp deleted file mode 100644 index aaa8448..0000000 --- a/3rdParty/Boost/boost/asio/windows/basic_stream_handle.hpp +++ /dev/null @@ -1,304 +0,0 @@ -// -// basic_stream_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WINDOWS_BASIC_STREAM_HANDLE_HPP -#define BOOST_ASIO_WINDOWS_BASIC_STREAM_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -#if defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace windows { - -/// Provides stream-oriented handle functionality. -/** - * The windows::basic_stream_handle class template provides asynchronous and - * blocking stream-oriented handle functionality. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - * - * @par Concepts: - * AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream. - */ -template -class basic_stream_handle - : public basic_handle -{ -public: - /// The native representation of a handle. - typedef typename StreamHandleService::native_type native_type; - - /// Construct a basic_stream_handle without opening it. - /** - * This constructor creates a stream handle without opening it. The handle - * needs to be opened and then connected or accepted before data can be sent - * or received on it. - * - * @param io_service The io_service object that the stream handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - */ - explicit basic_stream_handle(boost::asio::io_service& io_service) - : basic_handle(io_service) - { - } - - /// Construct a basic_stream_handle on an existing native handle. - /** - * This constructor creates a stream handle object to hold an existing native - * handle. - * - * @param io_service The io_service object that the stream handle will use to - * dispatch handlers for any asynchronous operations performed on the handle. - * - * @param native_handle The new underlying handle implementation. - * - * @throws boost::system::system_error Thrown on failure. - */ - basic_stream_handle(boost::asio::io_service& io_service, - const native_type& native_handle) - : basic_handle(io_service, native_handle) - { - } - - /// Write some data to the handle. - /** - * This function is used to write data to the stream handle. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @returns The number of bytes written. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.write_some(boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.write_some(this->implementation, buffers, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Write some data to the handle. - /** - * This function is used to write data to the stream handle. The function call - * will block until one or more bytes of the data has been written - * successfully, or until an error occurs. - * - * @param buffers One or more data buffers to be written to the handle. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. Returns 0 if an error occurred. - * - * @note The write_some operation may not transmit all of the data to the - * peer. Consider using the @ref write function if you need to ensure that - * all data is written before the blocking operation completes. - */ - template - std::size_t write_some(const ConstBufferSequence& buffers, - boost::system::error_code& ec) - { - return this->service.write_some(this->implementation, buffers, ec); - } - - /// Start an asynchronous write. - /** - * This function is used to asynchronously write data to the stream handle. - * The function call always returns immediately. - * - * @param buffers One or more data buffers to be written to the handle. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes written. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The write operation may not transmit all of the data to the peer. - * Consider using the @ref async_write function if you need to ensure that all - * data is written before the asynchronous operation completes. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_write_some(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_write_some(const ConstBufferSequence& buffers, - WriteHandler handler) - { - this->service.async_write_some(this->implementation, buffers, handler); - } - - /// Read some data from the handle. - /** - * This function is used to read data from the stream handle. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @returns The number of bytes read. - * - * @throws boost::system::system_error Thrown on failure. An error code of - * boost::asio::error::eof indicates that the connection was closed by the - * peer. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.read_some(boost::asio::buffer(data, size)); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers) - { - boost::system::error_code ec; - std::size_t s = this->service.read_some(this->implementation, buffers, ec); - boost::asio::detail::throw_error(ec); - return s; - } - - /// Read some data from the handle. - /** - * This function is used to read data from the stream handle. The function - * call will block until one or more bytes of data has been read successfully, - * or until an error occurs. - * - * @param buffers One or more buffers into which the data will be read. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes read. Returns 0 if an error occurred. - * - * @note The read_some operation may not read all of the requested number of - * bytes. Consider using the @ref read function if you need to ensure that - * the requested amount of data is read before the blocking operation - * completes. - */ - template - std::size_t read_some(const MutableBufferSequence& buffers, - boost::system::error_code& ec) - { - return this->service.read_some(this->implementation, buffers, ec); - } - - /// Start an asynchronous read. - /** - * This function is used to asynchronously read data from the stream handle. - * The function call always returns immediately. - * - * @param buffers One or more buffers into which the data will be read. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the read operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * std::size_t bytes_transferred // Number of bytes read. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation - * of the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @note The read operation may not read all of the requested number of bytes. - * Consider using the @ref async_read function if you need to ensure that the - * requested amount of data is read before the asynchronous operation - * completes. - * - * @par Example - * To read into a single data buffer use the @ref buffer function as follows: - * @code - * handle.async_read_some(boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on reading into multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ - template - void async_read_some(const MutableBufferSequence& buffers, - ReadHandler handler) - { - this->service.async_read_some(this->implementation, buffers, handler); - } -}; - -} // namespace windows -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_WINDOWS_BASIC_STREAM_HANDLE_HPP diff --git a/3rdParty/Boost/boost/asio/windows/overlapped_ptr.hpp b/3rdParty/Boost/boost/asio/windows/overlapped_ptr.hpp deleted file mode 100644 index e97c16e..0000000 --- a/3rdParty/Boost/boost/asio/windows/overlapped_ptr.hpp +++ /dev/null @@ -1,120 +0,0 @@ -// -// overlapped_ptr.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WINDOWS_OVERLAPPED_PTR_HPP -#define BOOST_ASIO_WINDOWS_OVERLAPPED_PTR_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include - -#if !defined(BOOST_ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR) -# if defined(BOOST_ASIO_HAS_IOCP) -# define BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR 1 -# endif // defined(BOOST_ASIO_HAS_IOCP) -#endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR) - -#if defined(BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace windows { - -/// Wraps a handler to create an OVERLAPPED object for use with overlapped I/O. -/** - * A special-purpose smart pointer used to wrap an application handler so that - * it can be passed as the LPOVERLAPPED argument to overlapped I/O functions. - * - * @par Thread Safety - * @e Distinct @e objects: Safe.@n - * @e Shared @e objects: Unsafe. - */ -class overlapped_ptr - : private noncopyable -{ -public: - /// Construct an empty overlapped_ptr. - overlapped_ptr() - : impl_() - { - } - - /// Construct an overlapped_ptr to contain the specified handler. - template - explicit overlapped_ptr(boost::asio::io_service& io_service, Handler handler) - : impl_(io_service, handler) - { - } - - /// Destructor automatically frees the OVERLAPPED object unless released. - ~overlapped_ptr() - { - } - - /// Reset to empty. - void reset() - { - impl_.reset(); - } - - /// Reset to contain the specified handler, freeing any current OVERLAPPED - /// object. - template - void reset(boost::asio::io_service& io_service, Handler handler) - { - impl_.reset(io_service, handler); - } - - /// Get the contained OVERLAPPED object. - OVERLAPPED* get() - { - return impl_.get(); - } - - /// Get the contained OVERLAPPED object. - const OVERLAPPED* get() const - { - return impl_.get(); - } - - /// Release ownership of the OVERLAPPED object. - OVERLAPPED* release() - { - return impl_.release(); - } - - /// Post completion notification for overlapped operation. Releases ownership. - void complete(const boost::system::error_code& ec, - std::size_t bytes_transferred) - { - impl_.complete(ec, bytes_transferred); - } - -private: - detail::win_iocp_overlapped_ptr impl_; -}; - -} // namespace windows -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_WINDOWS_OVERLAPPED_PTR_HPP diff --git a/3rdParty/Boost/boost/asio/windows/random_access_handle.hpp b/3rdParty/Boost/boost/asio/windows/random_access_handle.hpp deleted file mode 100644 index 38e79e9..0000000 --- a/3rdParty/Boost/boost/asio/windows/random_access_handle.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// -// random_access_handle.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP -#define BOOST_ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace windows { - -/// Typedef for the typical usage of a random-access handle. -typedef basic_random_access_handle<> random_access_handle; - -} // namespace windows -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_HPP diff --git a/3rdParty/Boost/boost/asio/windows/random_access_handle_service.hpp b/3rdParty/Boost/boost/asio/windows/random_access_handle_service.hpp deleted file mode 100644 index 3b11223..0000000 --- a/3rdParty/Boost/boost/asio/windows/random_access_handle_service.hpp +++ /dev/null @@ -1,181 +0,0 @@ -// -// random_access_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_SERVICE_HPP -#define BOOST_ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#if !defined(BOOST_ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE) -# if defined(BOOST_ASIO_HAS_IOCP) -# define BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE 1 -# endif // defined(BOOST_ASIO_HAS_IOCP) -#endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE) - -#if defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace windows { - -/// Default service implementation for a random-access handle. -class random_access_handle_service -#if defined(GENERATING_DOCUMENTATION) - : public boost::asio::io_service::service -#else - : public boost::asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static boost::asio::io_service::id id; -#endif - -private: - // The type of the platform-specific implementation. - typedef detail::win_iocp_handle_service service_impl_type; - -public: - /// The type of a random-access handle implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_type; -#else - typedef service_impl_type::native_type native_type; -#endif - - /// Construct a new random-access handle service for the specified io_service. - explicit random_access_handle_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base< - random_access_handle_service>(io_service), - service_impl_(boost::asio::use_service(io_service)) - { - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Construct a new random-access handle implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a random-access handle implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native handle to a random-access handle. - boost::system::error_code assign(implementation_type& impl, - const native_type& native_handle, boost::system::error_code& ec) - { - return service_impl_.assign(impl, native_handle, ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a random-access handle implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.close(impl, ec); - } - - /// Get the native handle implementation. - native_type native(implementation_type& impl) - { - return service_impl_.native(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Write the given data at the specified offset. - template - std::size_t write_some_at(implementation_type& impl, boost::uint64_t offset, - const ConstBufferSequence& buffers, boost::system::error_code& ec) - { - return service_impl_.write_some_at(impl, offset, buffers, ec); - } - - /// Start an asynchronous write at the specified offset. - template - void async_write_some_at(implementation_type& impl, boost::uint64_t offset, - const ConstBufferSequence& buffers, WriteHandler handler) - { - service_impl_.async_write_some_at(impl, offset, buffers, handler); - } - - /// Read some data from the specified offset. - template - std::size_t read_some_at(implementation_type& impl, boost::uint64_t offset, - const MutableBufferSequence& buffers, boost::system::error_code& ec) - { - return service_impl_.read_some_at(impl, offset, buffers, ec); - } - - /// Start an asynchronous read at the specified offset. - template - void async_read_some_at(implementation_type& impl, boost::uint64_t offset, - const MutableBufferSequence& buffers, ReadHandler handler) - { - service_impl_.async_read_some_at(impl, offset, buffers, handler); - } - -private: - // The service that provides the platform-specific implementation. - service_impl_type& service_impl_; -}; - -} // namespace windows -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_WINDOWS_RANDOM_ACCESS_HANDLE_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/windows/stream_handle.hpp b/3rdParty/Boost/boost/asio/windows/stream_handle.hpp deleted file mode 100644 index b247197..0000000 --- a/3rdParty/Boost/boost/asio/windows/stream_handle.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// -// stream_handle.hpp -// ~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WINDOWS_STREAM_HANDLE_HPP -#define BOOST_ASIO_WINDOWS_STREAM_HANDLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include - -#if defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace windows { - -/// Typedef for the typical usage of a stream-oriented handle. -typedef basic_stream_handle<> stream_handle; - -} // namespace windows -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_WINDOWS_STREAM_HANDLE_HPP diff --git a/3rdParty/Boost/boost/asio/windows/stream_handle_service.hpp b/3rdParty/Boost/boost/asio/windows/stream_handle_service.hpp deleted file mode 100644 index 29cdc95..0000000 --- a/3rdParty/Boost/boost/asio/windows/stream_handle_service.hpp +++ /dev/null @@ -1,179 +0,0 @@ -// -// stream_handle_service.hpp -// ~~~~~~~~~~~~~~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WINDOWS_STREAM_HANDLE_SERVICE_HPP -#define BOOST_ASIO_WINDOWS_STREAM_HANDLE_SERVICE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include - -#if !defined(BOOST_ASIO_DISABLE_WINDOWS_STREAM_HANDLE) -# if defined(BOOST_ASIO_HAS_IOCP) -# define BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE 1 -# endif // defined(BOOST_ASIO_HAS_IOCP) -#endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_STREAM_HANDLE) - -#if defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE) \ - || defined(GENERATING_DOCUMENTATION) - -namespace boost { -namespace asio { -namespace windows { - -/// Default service implementation for a stream handle. -class stream_handle_service -#if defined(GENERATING_DOCUMENTATION) - : public boost::asio::io_service::service -#else - : public boost::asio::detail::service_base -#endif -{ -public: -#if defined(GENERATING_DOCUMENTATION) - /// The unique service identifier. - static boost::asio::io_service::id id; -#endif - -private: - // The type of the platform-specific implementation. - typedef detail::win_iocp_handle_service service_impl_type; - -public: - /// The type of a stream handle implementation. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined implementation_type; -#else - typedef service_impl_type::implementation_type implementation_type; -#endif - - /// The native handle type. -#if defined(GENERATING_DOCUMENTATION) - typedef implementation_defined native_type; -#else - typedef service_impl_type::native_type native_type; -#endif - - /// Construct a new stream handle service for the specified io_service. - explicit stream_handle_service(boost::asio::io_service& io_service) - : boost::asio::detail::service_base(io_service), - service_impl_(boost::asio::use_service(io_service)) - { - } - - /// Destroy all user-defined handler objects owned by the service. - void shutdown_service() - { - } - - /// Construct a new stream handle implementation. - void construct(implementation_type& impl) - { - service_impl_.construct(impl); - } - - /// Destroy a stream handle implementation. - void destroy(implementation_type& impl) - { - service_impl_.destroy(impl); - } - - /// Assign an existing native handle to a stream handle. - boost::system::error_code assign(implementation_type& impl, - const native_type& native_handle, boost::system::error_code& ec) - { - return service_impl_.assign(impl, native_handle, ec); - } - - /// Determine whether the handle is open. - bool is_open(const implementation_type& impl) const - { - return service_impl_.is_open(impl); - } - - /// Close a stream handle implementation. - boost::system::error_code close(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.close(impl, ec); - } - - /// Get the native handle implementation. - native_type native(implementation_type& impl) - { - return service_impl_.native(impl); - } - - /// Cancel all asynchronous operations associated with the handle. - boost::system::error_code cancel(implementation_type& impl, - boost::system::error_code& ec) - { - return service_impl_.cancel(impl, ec); - } - - /// Write the given data to the stream. - template - std::size_t write_some(implementation_type& impl, - const ConstBufferSequence& buffers, boost::system::error_code& ec) - { - return service_impl_.write_some(impl, buffers, ec); - } - - /// Start an asynchronous write. - template - void async_write_some(implementation_type& impl, - const ConstBufferSequence& buffers, WriteHandler handler) - { - service_impl_.async_write_some(impl, buffers, handler); - } - - /// Read some data from the stream. - template - std::size_t read_some(implementation_type& impl, - const MutableBufferSequence& buffers, boost::system::error_code& ec) - { - return service_impl_.read_some(impl, buffers, ec); - } - - /// Start an asynchronous read. - template - void async_read_some(implementation_type& impl, - const MutableBufferSequence& buffers, ReadHandler handler) - { - service_impl_.async_read_some(impl, buffers, handler); - } - -private: - // The service that provides the platform-specific implementation. - service_impl_type& service_impl_; -}; - -} // namespace windows -} // namespace asio -} // namespace boost - -#endif // defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE) - // || defined(GENERATING_DOCUMENTATION) - -#include - -#endif // BOOST_ASIO_WINDOWS_STREAM_HANDLE_SERVICE_HPP diff --git a/3rdParty/Boost/boost/asio/write.hpp b/3rdParty/Boost/boost/asio/write.hpp deleted file mode 100644 index 61d59a0..0000000 --- a/3rdParty/Boost/boost/asio/write.hpp +++ /dev/null @@ -1,522 +0,0 @@ -// -// write.hpp -// ~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WRITE_HPP -#define BOOST_ASIO_WRITE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { - -/** - * @defgroup write boost::asio::write - * - * @brief Write a certain amount of data to a stream before returning. - */ -/*@{*/ - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code boost::asio::write(s, boost::asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code boost::asio::write( - * s, buffers, - * boost::asio::transfer_all()); @endcode - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code boost::asio::write(s, boost::asio::buffer(data, size), - * boost::asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * stream. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write(SyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, boost::system::error_code& ec); - -/// Write all of the supplied data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code boost::asio::write( - * s, b, - * boost::asio::transfer_all()); @endcode - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b, - CompletionCondition completion_condition); - -/// Write a certain amount of data to a stream before returning. -/** - * This function is used to write a certain number of bytes of data to a stream. - * The call will block until one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the SyncWriteStream concept. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's write_some function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write(SyncWriteStream& s, basic_streambuf& b, - CompletionCondition completion_condition, boost::system::error_code& ec); - -/*@}*/ -/** - * @defgroup async_write boost::asio::async_write - * - * @brief Start an asynchronous operation to write a certain amount of data to a - * stream. - */ -/*@{*/ - -/// Start an asynchronous operation to write all of the supplied data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * boost::asio::async_write(s, boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -void async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - WriteHandler handler); - -/// Start an asynchronous operation to write a certain amount of data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's async_write_some function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code boost::asio::async_write(s, - * boost::asio::buffer(data, size), - * boost::asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -void async_write(AsyncWriteStream& s, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, WriteHandler handler); - -/// Start an asynchronous operation to write all of the supplied data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ -template -void async_write(AsyncWriteStream& s, basic_streambuf& b, - WriteHandler handler); - -/// Start an asynchronous operation to write a certain amount of data to a -/// stream. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a stream. The function call always returns immediately. The - * asynchronous operation will continue until one of the following conditions - * is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the stream's - * async_write_some function. - * - * @param s The stream to which the data is to be written. The type must support - * the AsyncWriteStream concept. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the stream's async_write_some function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * const boost::system::error_code& error, // Result of operation. - * - * std::size_t bytes_transferred // Number of bytes written from the - * // buffers. If an error occurred, - * // this will be less than the sum - * // of the buffer sizes. - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ -template -void async_write(AsyncWriteStream& s, basic_streambuf& b, - CompletionCondition completion_condition, WriteHandler handler); - -/*@}*/ - -} // namespace asio -} // namespace boost - -#include - -#include - -#endif // BOOST_ASIO_WRITE_HPP diff --git a/3rdParty/Boost/boost/asio/write_at.hpp b/3rdParty/Boost/boost/asio/write_at.hpp deleted file mode 100644 index 85efbc2..0000000 --- a/3rdParty/Boost/boost/asio/write_at.hpp +++ /dev/null @@ -1,557 +0,0 @@ -// -// write_at.hpp -// ~~~~~~~~~~~~ -// -// Copyright (c) 2003-2008 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) -// - -#ifndef BOOST_ASIO_WRITE_AT_HPP -#define BOOST_ASIO_WRITE_AT_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1200) -# pragma once -#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) - -#include - -#include -#include -#include -#include -#include - -#include -#include - -namespace boost { -namespace asio { - -/** - * @defgroup write_at boost::asio::write_at - * - * @brief Write a certain amount of data at a specified offset before returning. - */ -/*@{*/ - -/// Write all of the supplied data at the specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code boost::asio::write_at(d, 42, boost::asio::buffer(data, size)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - * - * @note This overload is equivalent to calling: - * @code boost::asio::write_at( - * d, offset, buffers, - * boost::asio::transfer_all()); @endcode - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - boost::uint64_t offset, const ConstBufferSequence& buffers); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code boost::asio::write_at(d, 42, boost::asio::buffer(data, size), - * boost::asio::transfer_at_least(32)); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - boost::uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. The sum - * of the buffer sizes indicates the maximum number of bytes to write to the - * device. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - boost::uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, boost::system::error_code& ec); - -/// Write all of the supplied data at the specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - * - * @note This overload is equivalent to calling: - * @code boost::asio::write_at( - * d, 42, b, - * boost::asio::transfer_all()); @endcode - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, - boost::uint64_t offset, basic_streambuf& b); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @returns The number of bytes transferred. - * - * @throws boost::system::system_error Thrown on failure. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, boost::uint64_t offset, - basic_streambuf& b, CompletionCondition completion_condition); - -/// Write a certain amount of data at a specified offset before returning. -/** - * This function is used to write a certain number of bytes of data to a random - * access device at a specified offset. The call will block until one of the - * following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the SyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b The basic_streambuf object from which data will be written. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest write_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's write_some_at function. - * - * @param ec Set to indicate what error occurred, if any. - * - * @returns The number of bytes written. If an error occurs, returns the total - * number of bytes successfully transferred prior to the error. - */ -template -std::size_t write_at(SyncRandomAccessWriteDevice& d, boost::uint64_t offset, - basic_streambuf& b, CompletionCondition completion_condition, - boost::system::error_code& ec); - -/*@}*/ -/** - * @defgroup async_write_at boost::asio::async_write_at - * - * @brief Start an asynchronous operation to write a certain amount of data at - * the specified offset. - */ -/*@{*/ - -/// Start an asynchronous operation to write all of the supplied data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of - * the handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code - * boost::asio::async_write_at(d, 42, boost::asio::buffer(data, size), handler); - * @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -void async_write_at(AsyncRandomAccessWriteDevice& d, boost::uint64_t offset, - const ConstBufferSequence& buffers, WriteHandler handler); - -/// Start an asynchronous operation to write a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied buffers has been written. That is, the - * bytes transferred is equal to the sum of the buffer sizes. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param buffers One or more buffers containing the data to be written. - * Although the buffers object may be copied as necessary, ownership of the - * underlying memory blocks is retained by the caller, which must guarantee - * that they remain valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's async_write_some_at function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - * - * @par Example - * To write a single data buffer use the @ref buffer function as follows: - * @code boost::asio::async_write_at(d, 42, - * boost::asio::buffer(data, size), - * boost::asio::transfer_at_least(32), - * handler); @endcode - * See the @ref buffer documentation for information on writing multiple - * buffers in one go, and how to use it with arrays, boost::array or - * std::vector. - */ -template -void async_write_at(AsyncRandomAccessWriteDevice& d, - boost::uint64_t offset, const ConstBufferSequence& buffers, - CompletionCondition completion_condition, WriteHandler handler); - -/// Start an asynchronous operation to write all of the supplied data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li An error occurred. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ -template -void async_write_at(AsyncRandomAccessWriteDevice& d, boost::uint64_t offset, - basic_streambuf& b, WriteHandler handler); - -/// Start an asynchronous operation to write a certain amount of data at the -/// specified offset. -/** - * This function is used to asynchronously write a certain number of bytes of - * data to a random access device at a specified offset. The function call - * always returns immediately. The asynchronous operation will continue until - * one of the following conditions is true: - * - * @li All of the data in the supplied basic_streambuf has been written. - * - * @li The completion_condition function object returns 0. - * - * This operation is implemented in terms of zero or more calls to the device's - * async_write_some_at function. - * - * @param d The device to which the data is to be written. The type must support - * the AsyncRandomAccessWriteDevice concept. - * - * @param offset The offset at which the data will be written. - * - * @param b A basic_streambuf object from which data will be written. Ownership - * of the streambuf is retained by the caller, which must guarantee that it - * remains valid until the handler is called. - * - * @param completion_condition The function object to be called to determine - * whether the write operation is complete. The signature of the function object - * must be: - * @code std::size_t completion_condition( - * // Result of latest async_write_some_at operation. - * const boost::system::error_code& error, - * - * // Number of bytes transferred so far. - * std::size_t bytes_transferred - * ); @endcode - * A return value of 0 indicates that the write operation is complete. A - * non-zero return value indicates the maximum number of bytes to be written on - * the next call to the device's async_write_some_at function. - * - * @param handler The handler to be called when the write operation completes. - * Copies will be made of the handler as required. The function signature of the - * handler must be: - * @code void handler( - * // Result of operation. - * const boost::system::error_code& error, - * - * // Number of bytes written from the buffers. If an error - * // occurred, this will be less than the sum of the buffer sizes. - * std::size_t bytes_transferred - * ); @endcode - * Regardless of whether the asynchronous operation completes immediately or - * not, the handler will not be invoked from within this function. Invocation of - * the handler will be performed in a manner equivalent to using - * boost::asio::io_service::post(). - */ -template -void async_write_at(AsyncRandomAccessWriteDevice& d, boost::uint64_t offset, - basic_streambuf& b, CompletionCondition completion_condition, - WriteHandler handler); - -/*@}*/ - -} // namespace asio -} // namespace boost - -#include - -#include - -#endif // BOOST_ASIO_WRITE_AT_HPP diff --git a/3rdParty/Boost/boost/assert.hpp b/3rdParty/Boost/boost/assert.hpp deleted file mode 100644 index c227f17..0000000 --- a/3rdParty/Boost/boost/assert.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// -// boost/assert.hpp - BOOST_ASSERT(expr) -// -// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2007 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// Note: There are no include guards. This is intentional. -// -// See http://www.boost.org/libs/utility/assert.html for documentation. -// - -#undef BOOST_ASSERT - -#if defined(BOOST_DISABLE_ASSERTS) - -# define BOOST_ASSERT(expr) ((void)0) - -#elif defined(BOOST_ENABLE_ASSERT_HANDLER) - -#include - -namespace boost -{ - -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__)) - -#else -# include // .h to support old libraries w/o - effect is the same -# define BOOST_ASSERT(expr) assert(expr) -#endif - -#undef BOOST_VERIFY - -#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) ) - -# define BOOST_VERIFY(expr) ((void)(expr)) - -#else - -# define BOOST_VERIFY(expr) BOOST_ASSERT(expr) - -#endif diff --git a/3rdParty/Boost/boost/bind.hpp b/3rdParty/Boost/boost/bind.hpp deleted file mode 100644 index fd3421e..0000000 --- a/3rdParty/Boost/boost/bind.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef BOOST_BIND_HPP_INCLUDED -#define BOOST_BIND_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// bind.hpp - binds function objects to arguments -// -// Copyright (c) 2009 Peter Dimov -// -// Distributed under the 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/bind/bind.html for documentation. -// - -#include - -#endif // #ifndef BOOST_BIND_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/bind/arg.hpp b/3rdParty/Boost/boost/bind/arg.hpp deleted file mode 100644 index 0d5cd03..0000000 --- a/3rdParty/Boost/boost/bind/arg.hpp +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef BOOST_BIND_ARG_HPP_INCLUDED -#define BOOST_BIND_ARG_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// bind/arg.hpp -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// -// Distributed under the 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/bind/bind.html for documentation. -// - -#include -#include - -namespace boost -{ - -template< int I > struct arg -{ - arg() - { - } - - template< class T > arg( T const & /* t */ ) - { - // static assert I == is_placeholder::value - typedef char T_must_be_placeholder[ I == is_placeholder::value? 1: -1 ]; - } -}; - -template< int I > bool operator==( arg const &, arg const & ) -{ - return true; -} - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< int I > struct is_placeholder< arg > -{ - enum _vt { value = I }; -}; - -template< int I > struct is_placeholder< arg (*) () > -{ - enum _vt { value = I }; -}; - -#endif - -} // namespace boost - -#endif // #ifndef BOOST_BIND_ARG_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/bind/bind.hpp b/3rdParty/Boost/boost/bind/bind.hpp deleted file mode 100644 index 1e5c9e0..0000000 --- a/3rdParty/Boost/boost/bind/bind.hpp +++ /dev/null @@ -1,1733 +0,0 @@ -#ifndef BOOST_BIND_BIND_HPP_INCLUDED -#define BOOST_BIND_BIND_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// bind.hpp - binds function objects to arguments -// -// Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2001 David Abrahams -// Copyright (c) 2005 Peter Dimov -// -// Distributed under the 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/bind/bind.html for documentation. -// - -#include -#include -#include -#include -#include -#include -#include -#include - -// Borland-specific bug, visit_each() silently fails to produce code - -#if defined(__BORLANDC__) -# define BOOST_BIND_VISIT_EACH boost::visit_each -#else -# define BOOST_BIND_VISIT_EACH visit_each -#endif - -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4512) // assignment operator could not be generated -#endif - -namespace boost -{ - -template class weak_ptr; - -namespace _bi // implementation details -{ - -// result_traits - -template struct result_traits -{ - typedef R type; -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - -struct unspecified {}; - -template struct result_traits -{ - typedef typename F::result_type type; -}; - -template struct result_traits< unspecified, reference_wrapper > -{ - typedef typename F::result_type type; -}; - -#endif - -// ref_compare - -template bool ref_compare( T const & a, T const & b, long ) -{ - return a == b; -} - -template bool ref_compare( arg const &, arg const &, int ) -{ - return true; -} - -template bool ref_compare( arg (*) (), arg (*) (), int ) -{ - return true; -} - -template bool ref_compare( reference_wrapper const & a, reference_wrapper const & b, int ) -{ - return a.get_pointer() == b.get_pointer(); -} - -// bind_t forward declaration for listN - -template class bind_t; - -template bool ref_compare( bind_t const & a, bind_t const & b, int ) -{ - return a.compare( b ); -} - -// value - -template class value -{ -public: - - value(T const & t): t_(t) {} - - T & get() { return t_; } - T const & get() const { return t_; } - - bool operator==(value const & rhs) const - { - return t_ == rhs.t_; - } - -private: - - T t_; -}; - -// ref_compare for weak_ptr - -template bool ref_compare( value< weak_ptr > const & a, value< weak_ptr > const & b, int ) -{ - return !(a.get() < b.get()) && !(b.get() < a.get()); -} - -// type - -template class type {}; - -// unwrap - -template struct unwrapper -{ - static inline F & unwrap( F & f, long ) - { - return f; - } - - template static inline F2 & unwrap( reference_wrapper rf, int ) - { - return rf.get(); - } - - template static inline _mfi::dm unwrap( R T::* pm, int ) - { - return _mfi::dm( pm ); - } -}; - -// listN - -class list0 -{ -public: - - list0() {} - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A &, long) - { - return unwrapper::unwrap(f, 0)(); - } - - template R operator()(type, F const & f, A &, long) const - { - return unwrapper::unwrap(f, 0)(); - } - - template void operator()(type, F & f, A &, int) - { - unwrapper::unwrap(f, 0)(); - } - - template void operator()(type, F const & f, A &, int) const - { - unwrapper::unwrap(f, 0)(); - } - - template void accept(V &) const - { - } - - bool operator==(list0 const &) const - { - return true; - } -}; - -template< class A1 > class list1: private storage1< A1 > -{ -private: - - typedef storage1< A1 > base_type; - -public: - - explicit list1( A1 a1 ): base_type( a1 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - - template T & operator[] ( _bi::value & v ) const { return v.get(); } - - template T const & operator[] ( _bi::value const & v ) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list1 const & rhs) const - { - return ref_compare(base_type::a1_, rhs.a1_, 0); - } -}; - -struct logical_and; -struct logical_or; - -template< class A1, class A2 > class list2: private storage2< A1, A2 > -{ -private: - - typedef storage2< A1, A2 > base_type; - -public: - - list2( A1 a1, A2 a2 ): base_type( a1, a2 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_]); - } - - template bool operator()( type, logical_and & /*f*/, A & a, int ) - { - return a[ base_type::a1_ ] && a[ base_type::a2_ ]; - } - - template bool operator()( type, logical_and const & /*f*/, A & a, int ) const - { - return a[ base_type::a1_ ] && a[ base_type::a2_ ]; - } - - template bool operator()( type, logical_or & /*f*/, A & a, int ) - { - return a[ base_type::a1_ ] || a[ base_type::a2_ ]; - } - - template bool operator()( type, logical_or const & /*f*/, A & a, int ) const - { - return a[ base_type::a1_ ] || a[ base_type::a2_ ]; - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list2 const & rhs) const - { - return ref_compare(base_type::a1_, rhs.a1_, 0) && ref_compare(base_type::a2_, rhs.a2_, 0); - } -}; - -template< class A1, class A2, class A3 > class list3: private storage3< A1, A2, A3 > -{ -private: - - typedef storage3< A1, A2, A3 > base_type; - -public: - - list3( A1 a1, A2 a2, A3 a3 ): base_type( a1, a2, a3 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list3 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ); - } -}; - -template< class A1, class A2, class A3, class A4 > class list4: private storage4< A1, A2, A3, A4 > -{ -private: - - typedef storage4< A1, A2, A3, A4 > base_type; - -public: - - list4( A1 a1, A2 a2, A3 a3, A4 a4 ): base_type( a1, a2, a3, a4 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list4 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ); - } -}; - -template< class A1, class A2, class A3, class A4, class A5 > class list5: private storage5< A1, A2, A3, A4, A5 > -{ -private: - - typedef storage5< A1, A2, A3, A4, A5 > base_type; - -public: - - list5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): base_type( a1, a2, a3, a4, a5 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (boost::arg<5>) const { return base_type::a5_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list5 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ) && - ref_compare( base_type::a5_, rhs.a5_, 0 ); - } -}; - -template class list6: private storage6< A1, A2, A3, A4, A5, A6 > -{ -private: - - typedef storage6< A1, A2, A3, A4, A5, A6 > base_type; - -public: - - list6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): base_type( a1, a2, a3, a4, a5, a6 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (boost::arg<6>) const { return base_type::a6_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list6 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ) && - ref_compare( base_type::a5_, rhs.a5_, 0 ) && - ref_compare( base_type::a6_, rhs.a6_, 0 ); - } -}; - -template class list7: private storage7< A1, A2, A3, A4, A5, A6, A7 > -{ -private: - - typedef storage7< A1, A2, A3, A4, A5, A6, A7 > base_type; - -public: - - list7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): base_type( a1, a2, a3, a4, a5, a6, a7 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (boost::arg<6>) const { return base_type::a6_; } - A7 operator[] (boost::arg<7>) const { return base_type::a7_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } - A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list7 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ) && - ref_compare( base_type::a5_, rhs.a5_, 0 ) && - ref_compare( base_type::a6_, rhs.a6_, 0 ) && - ref_compare( base_type::a7_, rhs.a7_, 0 ); - } -}; - -template< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class list8: private storage8< A1, A2, A3, A4, A5, A6, A7, A8 > -{ -private: - - typedef storage8< A1, A2, A3, A4, A5, A6, A7, A8 > base_type; - -public: - - list8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (boost::arg<6>) const { return base_type::a6_; } - A7 operator[] (boost::arg<7>) const { return base_type::a7_; } - A8 operator[] (boost::arg<8>) const { return base_type::a8_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } - A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } - A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list8 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ) && - ref_compare( base_type::a5_, rhs.a5_, 0 ) && - ref_compare( base_type::a6_, rhs.a6_, 0 ) && - ref_compare( base_type::a7_, rhs.a7_, 0 ) && - ref_compare( base_type::a8_, rhs.a8_, 0 ); - } -}; - -template class list9: private storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > -{ -private: - - typedef storage9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > base_type; - -public: - - list9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): base_type( a1, a2, a3, a4, a5, a6, a7, a8, a9 ) {} - - A1 operator[] (boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (boost::arg<6>) const { return base_type::a6_; } - A7 operator[] (boost::arg<7>) const { return base_type::a7_; } - A8 operator[] (boost::arg<8>) const { return base_type::a8_; } - A9 operator[] (boost::arg<9>) const { return base_type::a9_; } - - A1 operator[] (boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (boost::arg<6> (*) ()) const { return base_type::a6_; } - A7 operator[] (boost::arg<7> (*) ()) const { return base_type::a7_; } - A8 operator[] (boost::arg<8> (*) ()) const { return base_type::a8_; } - A9 operator[] (boost::arg<9> (*) ()) const { return base_type::a9_; } - - template T & operator[] (_bi::value & v) const { return v.get(); } - - template T const & operator[] (_bi::value const & v) const { return v.get(); } - - template T & operator[] (reference_wrapper const & v) const { return v.get(); } - - template typename result_traits::type operator[] (bind_t & b) const { return b.eval(*this); } - - template typename result_traits::type operator[] (bind_t const & b) const { return b.eval(*this); } - - template R operator()(type, F & f, A & a, long) - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); - } - - template R operator()(type, F const & f, A & a, long) const - { - return unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); - } - - template void operator()(type, F & f, A & a, int) - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); - } - - template void operator()(type, F const & f, A & a, int) const - { - unwrapper::unwrap(f, 0)(a[base_type::a1_], a[base_type::a2_], a[base_type::a3_], a[base_type::a4_], a[base_type::a5_], a[base_type::a6_], a[base_type::a7_], a[base_type::a8_], a[base_type::a9_]); - } - - template void accept(V & v) const - { - base_type::accept(v); - } - - bool operator==(list9 const & rhs) const - { - return - - ref_compare( base_type::a1_, rhs.a1_, 0 ) && - ref_compare( base_type::a2_, rhs.a2_, 0 ) && - ref_compare( base_type::a3_, rhs.a3_, 0 ) && - ref_compare( base_type::a4_, rhs.a4_, 0 ) && - ref_compare( base_type::a5_, rhs.a5_, 0 ) && - ref_compare( base_type::a6_, rhs.a6_, 0 ) && - ref_compare( base_type::a7_, rhs.a7_, 0 ) && - ref_compare( base_type::a8_, rhs.a8_, 0 ) && - ref_compare( base_type::a9_, rhs.a9_, 0 ); - } -}; - -// bind_t - -#ifndef BOOST_NO_VOID_RETURNS - -template class bind_t -{ -public: - - typedef bind_t this_type; - - bind_t(F f, L const & l): f_(f), l_(l) {} - -#define BOOST_BIND_RETURN return -#include -#undef BOOST_BIND_RETURN - -}; - -#else - -template struct bind_t_generator -{ - -template class implementation -{ -public: - - typedef implementation this_type; - - implementation(F f, L const & l): f_(f), l_(l) {} - -#define BOOST_BIND_RETURN return -#include -#undef BOOST_BIND_RETURN - -}; - -}; - -template<> struct bind_t_generator -{ - -template class implementation -{ -private: - - typedef void R; - -public: - - typedef implementation this_type; - - implementation(F f, L const & l): f_(f), l_(l) {} - -#define BOOST_BIND_RETURN -#include -#undef BOOST_BIND_RETURN - -}; - -}; - -template class bind_t: public bind_t_generator::BOOST_NESTED_TEMPLATE implementation -{ -public: - - bind_t(F f, L const & l): bind_t_generator::BOOST_NESTED_TEMPLATE implementation(f, l) {} - -}; - -#endif - -// function_equal - -#ifndef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP - -// put overloads in _bi, rely on ADL - -# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -template bool function_equal( bind_t const & a, bind_t const & b ) -{ - return a.compare(b); -} - -# else - -template bool function_equal_impl( bind_t const & a, bind_t const & b, int ) -{ - return a.compare(b); -} - -# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -#else // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP - -// put overloads in boost - -} // namespace _bi - -# ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -template bool function_equal( _bi::bind_t const & a, _bi::bind_t const & b ) -{ - return a.compare(b); -} - -# else - -template bool function_equal_impl( _bi::bind_t const & a, _bi::bind_t const & b, int ) -{ - return a.compare(b); -} - -# endif // #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -namespace _bi -{ - -#endif // BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP - -// add_value - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || (__SUNPRO_CC >= 0x530) - -#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x582) ) - -template struct add_value -{ - typedef _bi::value type; -}; - -#else - -template< class T, int I > struct add_value_2 -{ - typedef boost::arg type; -}; - -template< class T > struct add_value_2< T, 0 > -{ - typedef _bi::value< T > type; -}; - -template struct add_value -{ - typedef typename add_value_2< T, boost::is_placeholder< T >::value >::type type; -}; - -#endif - -template struct add_value< value > -{ - typedef _bi::value type; -}; - -template struct add_value< reference_wrapper > -{ - typedef reference_wrapper type; -}; - -template struct add_value< arg > -{ - typedef boost::arg type; -}; - -template struct add_value< arg (*) () > -{ - typedef boost::arg (*type) (); -}; - -template struct add_value< bind_t > -{ - typedef bind_t type; -}; - -#else - -template struct _avt_0; - -template<> struct _avt_0<1> -{ - template struct inner - { - typedef T type; - }; -}; - -template<> struct _avt_0<2> -{ - template struct inner - { - typedef value type; - }; -}; - -typedef char (&_avt_r1) [1]; -typedef char (&_avt_r2) [2]; - -template _avt_r1 _avt_f(value); -template _avt_r1 _avt_f(reference_wrapper); -template _avt_r1 _avt_f(arg); -template _avt_r1 _avt_f(arg (*) ()); -template _avt_r1 _avt_f(bind_t); - -_avt_r2 _avt_f(...); - -template struct add_value -{ - static T t(); - typedef typename _avt_0::template inner::type type; -}; - -#endif - -// list_av_N - -template struct list_av_1 -{ - typedef typename add_value::type B1; - typedef list1 type; -}; - -template struct list_av_2 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef list2 type; -}; - -template struct list_av_3 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef list3 type; -}; - -template struct list_av_4 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef list4 type; -}; - -template struct list_av_5 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef typename add_value::type B5; - typedef list5 type; -}; - -template struct list_av_6 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef typename add_value::type B5; - typedef typename add_value::type B6; - typedef list6 type; -}; - -template struct list_av_7 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef typename add_value::type B5; - typedef typename add_value::type B6; - typedef typename add_value::type B7; - typedef list7 type; -}; - -template struct list_av_8 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef typename add_value::type B5; - typedef typename add_value::type B6; - typedef typename add_value::type B7; - typedef typename add_value::type B8; - typedef list8 type; -}; - -template struct list_av_9 -{ - typedef typename add_value::type B1; - typedef typename add_value::type B2; - typedef typename add_value::type B3; - typedef typename add_value::type B4; - typedef typename add_value::type B5; - typedef typename add_value::type B6; - typedef typename add_value::type B7; - typedef typename add_value::type B8; - typedef typename add_value::type B9; - typedef list9 type; -}; - -// operator! - -struct logical_not -{ - template bool operator()(V const & v) const { return !v; } -}; - -template - bind_t< bool, logical_not, list1< bind_t > > - operator! (bind_t const & f) -{ - typedef list1< bind_t > list_type; - return bind_t ( logical_not(), list_type(f) ); -} - -// relational operators - -#define BOOST_BIND_OPERATOR( op, name ) \ -\ -struct name \ -{ \ - template bool operator()(V const & v, W const & w) const { return v op w; } \ -}; \ - \ -template \ - bind_t< bool, name, list2< bind_t, typename add_value::type > > \ - operator op (bind_t const & f, A2 a2) \ -{ \ - typedef typename add_value::type B2; \ - typedef list2< bind_t, B2> list_type; \ - return bind_t ( name(), list_type(f, a2) ); \ -} - -BOOST_BIND_OPERATOR( ==, equal ) -BOOST_BIND_OPERATOR( !=, not_equal ) - -BOOST_BIND_OPERATOR( <, less ) -BOOST_BIND_OPERATOR( <=, less_equal ) - -BOOST_BIND_OPERATOR( >, greater ) -BOOST_BIND_OPERATOR( >=, greater_equal ) - -BOOST_BIND_OPERATOR( &&, logical_and ) -BOOST_BIND_OPERATOR( ||, logical_or ) - -#undef BOOST_BIND_OPERATOR - -#if defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) - -// resolve ambiguity with rel_ops - -#define BOOST_BIND_OPERATOR( op, name ) \ -\ -template \ - bind_t< bool, name, list2< bind_t, bind_t > > \ - operator op (bind_t const & f, bind_t const & g) \ -{ \ - typedef list2< bind_t, bind_t > list_type; \ - return bind_t ( name(), list_type(f, g) ); \ -} - -BOOST_BIND_OPERATOR( !=, not_equal ) -BOOST_BIND_OPERATOR( <=, less_equal ) -BOOST_BIND_OPERATOR( >, greater ) -BOOST_BIND_OPERATOR( >=, greater_equal ) - -#endif - -// visit_each, ADL - -#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) \ - && !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) - -template void visit_each( V & v, value const & t, int ) -{ - using boost::visit_each; - BOOST_BIND_VISIT_EACH( v, t.get(), 0 ); -} - -template void visit_each( V & v, bind_t const & t, int ) -{ - t.accept( v ); -} - -#endif - -} // namespace _bi - -// visit_each, no ADL - -#if defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) || defined( __BORLANDC__ ) \ - || (defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) - -template void visit_each( V & v, _bi::value const & t, int ) -{ - BOOST_BIND_VISIT_EACH( v, t.get(), 0 ); -} - -template void visit_each( V & v, _bi::bind_t const & t, int ) -{ - t.accept( v ); -} - -#endif - -// is_bind_expression - -template< class T > struct is_bind_expression -{ - enum _vt { value = 0 }; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template< class R, class F, class L > struct is_bind_expression< _bi::bind_t< R, F, L > > -{ - enum _vt { value = 1 }; -}; - -#endif - -// bind - -#ifndef BOOST_BIND -#define BOOST_BIND bind -#endif - -// generic function objects - -template - _bi::bind_t - BOOST_BIND(F f) -{ - typedef _bi::list0 list_type; - return _bi::bind_t (f, list_type()); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1) -{ - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t (f, list_type(a1)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2) -{ - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t (f, list_type(a1, a2)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3) -{ - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -// generic function objects, alternative syntax - -template - _bi::bind_t - BOOST_BIND(boost::type, F f) -{ - typedef _bi::list0 list_type; - return _bi::bind_t (f, list_type()); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1) -{ - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t (f, list_type(a1)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2) -{ - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t (f, list_type(a1, a2)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3) -{ - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t::type> - BOOST_BIND(boost::type, F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - -// adaptable function objects - -template - _bi::bind_t<_bi::unspecified, F, _bi::list0> - BOOST_BIND(F f) -{ - typedef _bi::list0 list_type; - return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type()); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_1::type> - BOOST_BIND(F f, A1 a1) -{ - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_2::type> - BOOST_BIND(F f, A1 a1, A2 a2) -{ - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type> (f, list_type(a1, a2)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_3::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3) -{ - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_4::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_5::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_6::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_7::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_8::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t<_bi::unspecified, F, typename _bi::list_av_9::type> - BOOST_BIND(F f, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t<_bi::unspecified, F, list_type>(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - -// function pointers - -#define BOOST_BIND_CC -#define BOOST_BIND_ST - -#include - -#undef BOOST_BIND_CC -#undef BOOST_BIND_ST - -#ifdef BOOST_BIND_ENABLE_STDCALL - -#define BOOST_BIND_CC __stdcall -#define BOOST_BIND_ST - -#include - -#undef BOOST_BIND_CC -#undef BOOST_BIND_ST - -#endif - -#ifdef BOOST_BIND_ENABLE_FASTCALL - -#define BOOST_BIND_CC __fastcall -#define BOOST_BIND_ST - -#include - -#undef BOOST_BIND_CC -#undef BOOST_BIND_ST - -#endif - -#ifdef BOOST_BIND_ENABLE_PASCAL - -#define BOOST_BIND_ST pascal -#define BOOST_BIND_CC - -#include - -#undef BOOST_BIND_ST -#undef BOOST_BIND_CC - -#endif - -// member function pointers - -#define BOOST_BIND_MF_NAME(X) X -#define BOOST_BIND_MF_CC - -#include -#include - -#undef BOOST_BIND_MF_NAME -#undef BOOST_BIND_MF_CC - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_BIND_MF_NAME(X) X##_cdecl -#define BOOST_BIND_MF_CC __cdecl - -#include -#include - -#undef BOOST_BIND_MF_NAME -#undef BOOST_BIND_MF_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_BIND_MF_NAME(X) X##_stdcall -#define BOOST_BIND_MF_CC __stdcall - -#include -#include - -#undef BOOST_BIND_MF_NAME -#undef BOOST_BIND_MF_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_BIND_MF_NAME(X) X##_fastcall -#define BOOST_BIND_MF_CC __fastcall - -#include -#include - -#undef BOOST_BIND_MF_NAME -#undef BOOST_BIND_MF_CC - -#endif - -// data member pointers - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - || ( defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, <= 0x610 ) ) - -template -_bi::bind_t< R, _mfi::dm, typename _bi::list_av_1::type > - BOOST_BIND(R T::*f, A1 a1) -{ - typedef _mfi::dm F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t( F(f), list_type(a1) ); -} - -#else - -namespace _bi -{ - -template< class Pm, int I > struct add_cref; - -template< class M, class T > struct add_cref< M T::*, 0 > -{ - typedef M type; -}; - -template< class M, class T > struct add_cref< M T::*, 1 > -{ - typedef M const & type; -}; - -template< class R, class T > struct add_cref< R (T::*) (), 1 > -{ - typedef void type; -}; - -#if !( defined(__IBMCPP__) && BOOST_WORKAROUND( __IBMCPP__, BOOST_TESTED_AT(600) ) ) - -template< class R, class T > struct add_cref< R (T::*) () const, 1 > -{ - typedef void type; -}; - -#endif // __IBMCPP__ - -template struct isref -{ - enum value_type { value = 0 }; -}; - -template struct isref< R& > -{ - enum value_type { value = 1 }; -}; - -template struct isref< R* > -{ - enum value_type { value = 1 }; -}; - -template struct dm_result -{ - typedef typename add_cref< Pm, 1 >::type type; -}; - -template struct dm_result< Pm, bind_t > -{ - typedef typename bind_t::result_type result_type; - typedef typename add_cref< Pm, isref< result_type >::value >::type type; -}; - -} // namespace _bi - -template< class A1, class M, class T > - -_bi::bind_t< - typename _bi::dm_result< M T::*, A1 >::type, - _mfi::dm, - typename _bi::list_av_1::type -> - -BOOST_BIND( M T::*f, A1 a1 ) -{ - typedef typename _bi::dm_result< M T::*, A1 >::type result_type; - typedef _mfi::dm F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t< result_type, F, list_type >( F( f ), list_type( a1 ) ); -} - -#endif - -} // namespace boost - -#ifndef BOOST_BIND_NO_PLACEHOLDERS - -# include - -#endif - -#ifdef BOOST_MSVC -# pragma warning(default: 4512) // assignment operator could not be generated -# pragma warning(pop) -#endif - -#endif // #ifndef BOOST_BIND_BIND_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/bind/bind_cc.hpp b/3rdParty/Boost/boost/bind/bind_cc.hpp deleted file mode 100644 index 35f8ece..0000000 --- a/3rdParty/Boost/boost/bind/bind_cc.hpp +++ /dev/null @@ -1,117 +0,0 @@ -// -// bind/bind_cc.hpp - support for different calling conventions -// -// Do not include this header directly. -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// -// Distributed under the 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/bind/bind.html for documentation. -// - -template - _bi::bind_t - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) ()) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (); - typedef _bi::list0 list_type; - return _bi::bind_t (f, list_type()); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1), A1 a1) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1); - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t (f, list_type(a1)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2), A1 a1, A2 a2) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2); - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t (f, list_type(a1, a2)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3), A1 a1, A2 a2, A3 a3) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3); - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4); - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5); - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6); - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7); - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8); - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t::type> - BOOST_BIND(BOOST_BIND_ST R (BOOST_BIND_CC *f) (B1, B2, B3, B4, B5, B6, B7, B8, B9), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef BOOST_BIND_ST R (BOOST_BIND_CC *F) (B1, B2, B3, B4, B5, B6, B7, B8, B9); - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(f, list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} diff --git a/3rdParty/Boost/boost/bind/bind_mf2_cc.hpp b/3rdParty/Boost/boost/bind/bind_mf2_cc.hpp deleted file mode 100644 index 66476bc..0000000 --- a/3rdParty/Boost/boost/bind/bind_mf2_cc.hpp +++ /dev/null @@ -1,228 +0,0 @@ -// -// bind/bind_mf2_cc.hpp - member functions, type<> syntax -// -// Do not include this header directly. -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2008 Peter Dimov -// -// Distributed under the 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/bind/bind.html for documentation. -// - -// 0 - -template - _bi::bind_t, typename _bi::list_av_1::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (), A1 a1) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf0) F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t(F(f), list_type(a1)); -} - -template - _bi::bind_t, typename _bi::list_av_1::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) () const, A1 a1) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf0) F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t(F(f), list_type(a1)); -} - -// 1 - -template - _bi::bind_t, typename _bi::list_av_2::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf1) F; - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2)); -} - -template - _bi::bind_t, typename _bi::list_av_2::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf1) F; - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2)); -} - -// 2 - -template - _bi::bind_t, typename _bi::list_av_3::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf2) F; - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3)); -} - -template - _bi::bind_t, typename _bi::list_av_3::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf2) F; - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3)); -} - -// 3 - -template - _bi::bind_t, typename _bi::list_av_4::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf3) F; - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t, typename _bi::list_av_4::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf3) F; - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); -} - -// 4 - -template - _bi::bind_t, typename _bi::list_av_5::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf4) F; - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t, typename _bi::list_av_5::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf4) F; - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); -} - -// 5 - -template - _bi::bind_t, typename _bi::list_av_6::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf5) F; - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t, typename _bi::list_av_6::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf5) F; - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); -} - -// 6 - -template - _bi::bind_t, typename _bi::list_av_7::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf6) F; - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t, typename _bi::list_av_7::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf6) F; - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -// 7 - -template - _bi::bind_t, typename _bi::list_av_8::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf7) F; - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t, typename _bi::list_av_8::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf7) F; - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -// 8 - -template - _bi::bind_t, typename _bi::list_av_9::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf8) F; - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -template - _bi::bind_t, typename _bi::list_av_9::type> - BOOST_BIND(boost::type, R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf8) F; - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} diff --git a/3rdParty/Boost/boost/bind/bind_mf_cc.hpp b/3rdParty/Boost/boost/bind/bind_mf_cc.hpp deleted file mode 100644 index 88be822..0000000 --- a/3rdParty/Boost/boost/bind/bind_mf_cc.hpp +++ /dev/null @@ -1,227 +0,0 @@ -// -// bind/bind_mf_cc.hpp - support for different calling conventions -// -// Do not include this header directly. -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// -// Distributed under the 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/bind/bind.html for documentation. -// - -// 0 - -template - _bi::bind_t, typename _bi::list_av_1::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (), A1 a1) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf0) F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t(F(f), list_type(a1)); -} - -template - _bi::bind_t, typename _bi::list_av_1::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) () const, A1 a1) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf0) F; - typedef typename _bi::list_av_1::type list_type; - return _bi::bind_t(F(f), list_type(a1)); -} - -// 1 - -template - _bi::bind_t, typename _bi::list_av_2::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1), A1 a1, A2 a2) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf1) F; - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2)); -} - -template - _bi::bind_t, typename _bi::list_av_2::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1) const, A1 a1, A2 a2) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf1) F; - typedef typename _bi::list_av_2::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2)); -} - -// 2 - -template - _bi::bind_t, typename _bi::list_av_3::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2), A1 a1, A2 a2, A3 a3) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf2) F; - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3)); -} - -template - _bi::bind_t, typename _bi::list_av_3::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2) const, A1 a1, A2 a2, A3 a3) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf2) F; - typedef typename _bi::list_av_3::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3)); -} - -// 3 - -template - _bi::bind_t, typename _bi::list_av_4::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3), A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf3) F; - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); -} - -template - _bi::bind_t, typename _bi::list_av_4::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3) const, A1 a1, A2 a2, A3 a3, A4 a4) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf3) F; - typedef typename _bi::list_av_4::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4)); -} - -// 4 - -template - _bi::bind_t, typename _bi::list_av_5::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf4) F; - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); -} - -template - _bi::bind_t, typename _bi::list_av_5::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf4) F; - typedef typename _bi::list_av_5::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5)); -} - -// 5 - -template - _bi::bind_t, typename _bi::list_av_6::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf5) F; - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); -} - -template - _bi::bind_t, typename _bi::list_av_6::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf5) F; - typedef typename _bi::list_av_6::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6)); -} - -// 6 - -template - _bi::bind_t, typename _bi::list_av_7::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf6) F; - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -template - _bi::bind_t, typename _bi::list_av_7::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf6) F; - typedef typename _bi::list_av_7::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7)); -} - -// 7 - -template - _bi::bind_t, typename _bi::list_av_8::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf7) F; - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -template - _bi::bind_t, typename _bi::list_av_8::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf7) F; - typedef typename _bi::list_av_8::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8)); -} - -// 8 - -template - _bi::bind_t, typename _bi::list_av_9::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8), A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef _mfi::BOOST_BIND_MF_NAME(mf8) F; - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} - -template - _bi::bind_t, typename _bi::list_av_9::type> - BOOST_BIND(R (BOOST_BIND_MF_CC T::*f) (B1, B2, B3, B4, B5, B6, B7, B8) const, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9) -{ - typedef _mfi::BOOST_BIND_MF_NAME(cmf8) F; - typedef typename _bi::list_av_9::type list_type; - return _bi::bind_t(F(f), list_type(a1, a2, a3, a4, a5, a6, a7, a8, a9)); -} diff --git a/3rdParty/Boost/boost/bind/bind_template.hpp b/3rdParty/Boost/boost/bind/bind_template.hpp deleted file mode 100644 index 411d20c..0000000 --- a/3rdParty/Boost/boost/bind/bind_template.hpp +++ /dev/null @@ -1,345 +0,0 @@ -// -// bind/bind_template.hpp -// -// Do not include this header directly. -// -// Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd. -// -// Distributed under the 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/bind/bind.html for documentation. -// - - typedef typename result_traits::type result_type; - - result_type operator()() - { - list0 a; - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - result_type operator()() const - { - list0 a; - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1) - { - list1 a(a1); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1) const - { - list1 a(a1); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1) - { - list1 a(a1); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1) const - { - list1 a(a1); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2) - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2) const - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 & a2) - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 & a2) const - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - - template result_type operator()(A1 & a1, A2 const & a2) - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 const & a2) const - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - - template result_type operator()(A1 const & a1, A2 const & a2) - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2) const - { - list2 a(a1, a2); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3) - { - list3 a(a1, a2, a3); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3) const - { - list3 a(a1, a2, a3); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) - { - list3 a(a1, a2, a3); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) const - { - list3 a(a1, a2, a3); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) - { - list4 a(a1, a2, a3, a4); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const - { - list4 a(a1, a2, a3, a4); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) - { - list4 a(a1, a2, a3, a4); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) const - { - list4 a(a1, a2, a3, a4); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) - { - list5 a(a1, a2, a3, a4, a5); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const - { - list5 a(a1, a2, a3, a4, a5); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) - { - list5 a(a1, a2, a3, a4, a5); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) const - { - list5 a(a1, a2, a3, a4, a5); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) - { - list6 a(a1, a2, a3, a4, a5, a6); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const - { - list6 a(a1, a2, a3, a4, a5, a6); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) - { - list6 a(a1, a2, a3, a4, a5, a6); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) const - { - list6 a(a1, a2, a3, a4, a5, a6); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) - { - list7 a(a1, a2, a3, a4, a5, a6, a7); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const - { - list7 a(a1, a2, a3, a4, a5, a6, a7); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) - { - list7 a(a1, a2, a3, a4, a5, a6, a7); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) const - { - list7 a(a1, a2, a3, a4, a5, a6, a7); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) - { - list8 a(a1, a2, a3, a4, a5, a6, a7, a8); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const - { - list8 a(a1, a2, a3, a4, a5, a6, a7, a8); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) - { - list8 a(a1, a2, a3, a4, a5, a6, a7, a8); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) const - { - list8 a(a1, a2, a3, a4, a5, a6, a7, a8); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) - { - list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const - { - list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) - { - list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) const - { - list9 a(a1, a2, a3, a4, a5, a6, a7, a8, a9); - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - -#endif - - template result_type eval(A & a) - { - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template result_type eval(A & a) const - { - BOOST_BIND_RETURN l_(type(), f_, a, 0); - } - - template void accept(V & v) const - { -#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) - - using boost::visit_each; - -#endif - BOOST_BIND_VISIT_EACH(v, f_, 0); - l_.accept(v); - } - - bool compare(this_type const & rhs) const - { - return ref_compare(f_, rhs.f_, 0) && l_ == rhs.l_; - } - -private: - - F f_; - L l_; diff --git a/3rdParty/Boost/boost/bind/mem_fn.hpp b/3rdParty/Boost/boost/bind/mem_fn.hpp deleted file mode 100644 index 956e7d8..0000000 --- a/3rdParty/Boost/boost/bind/mem_fn.hpp +++ /dev/null @@ -1,389 +0,0 @@ -#ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED -#define BOOST_BIND_MEM_FN_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// mem_fn.hpp - a generalization of std::mem_fun[_ref] -// -// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2001 David Abrahams -// Copyright (c) 2003-2005 Peter Dimov -// -// Distributed under the 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/bind/mem_fn.html for documentation. -// - -#include -#include -#include - -namespace boost -{ - -#if defined(BOOST_NO_VOID_RETURNS) - -#define BOOST_MEM_FN_CLASS_F , class F -#define BOOST_MEM_FN_TYPEDEF(X) - -namespace _mfi // mem_fun_impl -{ - -template struct mf -{ - -#define BOOST_MEM_FN_RETURN return - -#define BOOST_MEM_FN_NAME(X) inner_##X -#define BOOST_MEM_FN_CC - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl -#define BOOST_MEM_FN_CC __cdecl - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall -#define BOOST_MEM_FN_CC __stdcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall -#define BOOST_MEM_FN_CC __fastcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#undef BOOST_MEM_FN_RETURN - -}; // struct mf - -template<> struct mf -{ - -#define BOOST_MEM_FN_RETURN - -#define BOOST_MEM_FN_NAME(X) inner_##X -#define BOOST_MEM_FN_CC - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_cdecl -#define BOOST_MEM_FN_CC __cdecl - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_stdcall -#define BOOST_MEM_FN_CC __stdcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_MEM_FN_NAME(X) inner_##X##_fastcall -#define BOOST_MEM_FN_CC __fastcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#undef BOOST_MEM_FN_RETURN - -}; // struct mf - -#undef BOOST_MEM_FN_CLASS_F -#undef BOOST_MEM_FN_TYPEDEF_F - -#define BOOST_MEM_FN_NAME(X) X -#define BOOST_MEM_FN_NAME2(X) inner_##X -#define BOOST_MEM_FN_CC - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_NAME2 -#undef BOOST_MEM_FN_CC - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_MEM_FN_NAME(X) X##_cdecl -#define BOOST_MEM_FN_NAME2(X) inner_##X##_cdecl -#define BOOST_MEM_FN_CC __cdecl - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_NAME2 -#undef BOOST_MEM_FN_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_MEM_FN_NAME(X) X##_stdcall -#define BOOST_MEM_FN_NAME2(X) inner_##X##_stdcall -#define BOOST_MEM_FN_CC __stdcall - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_NAME2 -#undef BOOST_MEM_FN_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_MEM_FN_NAME(X) X##_fastcall -#define BOOST_MEM_FN_NAME2(X) inner_##X##_fastcall -#define BOOST_MEM_FN_CC __fastcall - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_NAME2 -#undef BOOST_MEM_FN_CC - -#endif - -} // namespace _mfi - -#else // #ifdef BOOST_NO_VOID_RETURNS - -#define BOOST_MEM_FN_CLASS_F -#define BOOST_MEM_FN_TYPEDEF(X) typedef X; - -namespace _mfi -{ - -#define BOOST_MEM_FN_RETURN return - -#define BOOST_MEM_FN_NAME(X) X -#define BOOST_MEM_FN_CC - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_MEM_FN_NAME(X) X##_cdecl -#define BOOST_MEM_FN_CC __cdecl - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_MEM_FN_NAME(X) X##_stdcall -#define BOOST_MEM_FN_CC __stdcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_MEM_FN_NAME(X) X##_fastcall -#define BOOST_MEM_FN_CC __fastcall - -#include - -#undef BOOST_MEM_FN_CC -#undef BOOST_MEM_FN_NAME - -#endif - -#undef BOOST_MEM_FN_RETURN - -} // namespace _mfi - -#undef BOOST_MEM_FN_CLASS_F -#undef BOOST_MEM_FN_TYPEDEF - -#endif // #ifdef BOOST_NO_VOID_RETURNS - -#define BOOST_MEM_FN_NAME(X) X -#define BOOST_MEM_FN_CC - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_CC - -#ifdef BOOST_MEM_FN_ENABLE_CDECL - -#define BOOST_MEM_FN_NAME(X) X##_cdecl -#define BOOST_MEM_FN_CC __cdecl - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_STDCALL - -#define BOOST_MEM_FN_NAME(X) X##_stdcall -#define BOOST_MEM_FN_CC __stdcall - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_CC - -#endif - -#ifdef BOOST_MEM_FN_ENABLE_FASTCALL - -#define BOOST_MEM_FN_NAME(X) X##_fastcall -#define BOOST_MEM_FN_CC __fastcall - -#include - -#undef BOOST_MEM_FN_NAME -#undef BOOST_MEM_FN_CC - -#endif - -// data member support - -namespace _mfi -{ - -template class dm -{ -public: - - typedef R const & result_type; - typedef T const * argument_type; - -private: - - typedef R (T::*F); - F f_; - - template R const & call(U & u, T const *) const - { - return (u.*f_); - } - - template R const & call(U & u, void const *) const - { - return (get_pointer(u)->*f_); - } - -public: - - explicit dm(F f): f_(f) {} - - R & operator()(T * p) const - { - return (p->*f_); - } - - R const & operator()(T const * p) const - { - return (p->*f_); - } - - template R const & operator()(U const & u) const - { - return call(u, &u); - } - -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && !BOOST_WORKAROUND(__MWERKS__, < 0x3200) - - R & operator()(T & t) const - { - return (t.*f_); - } - - R const & operator()(T const & t) const - { - return (t.*f_); - } - -#endif - - bool operator==(dm const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(dm const & rhs) const - { - return f_ != rhs.f_; - } -}; - -} // namespace _mfi - -template _mfi::dm mem_fn(R T::*f) -{ - return _mfi::dm(f); -} - -} // namespace boost - -#endif // #ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/bind/mem_fn_cc.hpp b/3rdParty/Boost/boost/bind/mem_fn_cc.hpp deleted file mode 100644 index 8b6ea0b..0000000 --- a/3rdParty/Boost/boost/bind/mem_fn_cc.hpp +++ /dev/null @@ -1,103 +0,0 @@ -// -// bind/mem_fn_cc.hpp - support for different calling conventions -// -// Do not include this header directly. -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// -// Distributed under the 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/bind/mem_fn.html for documentation. -// - -template _mfi::BOOST_MEM_FN_NAME(mf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) ()) -{ - return _mfi::BOOST_MEM_FN_NAME(mf0)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf0) mem_fn(R (BOOST_MEM_FN_CC T::*f) () const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf0)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf1)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf1) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf1)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf2)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf2) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf2)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf3)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf3) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf3)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf4)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf4) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf4)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf5)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf5) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf5)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf6)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf6) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf6)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf7)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf7) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf7)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(mf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8)) -{ - return _mfi::BOOST_MEM_FN_NAME(mf8)(f); -} - -template _mfi::BOOST_MEM_FN_NAME(cmf8) mem_fn(R (BOOST_MEM_FN_CC T::*f) (A1, A2, A3, A4, A5, A6, A7, A8) const) -{ - return _mfi::BOOST_MEM_FN_NAME(cmf8)(f); -} diff --git a/3rdParty/Boost/boost/bind/mem_fn_template.hpp b/3rdParty/Boost/boost/bind/mem_fn_template.hpp deleted file mode 100644 index 1db0713..0000000 --- a/3rdParty/Boost/boost/bind/mem_fn_template.hpp +++ /dev/null @@ -1,1020 +0,0 @@ -// -// bind/mem_fn_template.hpp -// -// Do not include this header directly -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// -// Distributed under the 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/bind/mem_fn.html for documentation. -// - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) -# define BOOST_MEM_FN_ENABLE_CONST_OVERLOADS -#endif - -// mf0 - -template class BOOST_MEM_FN_NAME(mf0) -{ -public: - - typedef R result_type; - typedef T * argument_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) ()) - F f_; - - template R call(U & u, T const *) const - { - BOOST_MEM_FN_RETURN (u.*f_)(); - } - - template R call(U & u, void const *) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf0)(F f): f_(f) {} - - R operator()(T * p) const - { - BOOST_MEM_FN_RETURN (p->*f_)(); - } - - template R operator()(U & u) const - { - BOOST_MEM_FN_RETURN call(u, &u); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u) const - { - BOOST_MEM_FN_RETURN call(u, &u); - } - -#endif - - R operator()(T & t) const - { - BOOST_MEM_FN_RETURN (t.*f_)(); - } - - bool operator==(BOOST_MEM_FN_NAME(mf0) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf0) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf0 - -template class BOOST_MEM_FN_NAME(cmf0) -{ -public: - - typedef R result_type; - typedef T const * argument_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) () const) - F f_; - - template R call(U & u, T const *) const - { - BOOST_MEM_FN_RETURN (u.*f_)(); - } - - template R call(U & u, void const *) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf0)(F f): f_(f) {} - - template R operator()(U const & u) const - { - BOOST_MEM_FN_RETURN call(u, &u); - } - - R operator()(T const & t) const - { - BOOST_MEM_FN_RETURN (t.*f_)(); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf0) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf0) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf1 - -template class BOOST_MEM_FN_NAME(mf1) -{ -public: - - typedef R result_type; - typedef T * first_argument_type; - typedef A1 second_argument_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1)) - F f_; - - template R call(U & u, T const *, B1 & b1) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1); - } - - template R call(U & u, void const *, B1 & b1) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf1)(F f): f_(f) {} - - R operator()(T * p, A1 a1) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1); - } - - template R operator()(U & u, A1 a1) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1); - } - -#endif - - R operator()(T & t, A1 a1) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1); - } - - bool operator==(BOOST_MEM_FN_NAME(mf1) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf1) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf1 - -template class BOOST_MEM_FN_NAME(cmf1) -{ -public: - - typedef R result_type; - typedef T const * first_argument_type; - typedef A1 second_argument_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1) const) - F f_; - - template R call(U & u, T const *, B1 & b1) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1); - } - - template R call(U & u, void const *, B1 & b1) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf1)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1); - } - - R operator()(T const & t, A1 a1) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf1) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf1) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf2 - -template class BOOST_MEM_FN_NAME(mf2) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf2)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2); - } - - template R operator()(U & u, A1 a1, A2 a2) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2); - } - - bool operator==(BOOST_MEM_FN_NAME(mf2) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf2) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf2 - -template class BOOST_MEM_FN_NAME(cmf2) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf2)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2); - } - - R operator()(T const & t, A1 a1, A2 a2) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf2) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf2) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf3 - -template class BOOST_MEM_FN_NAME(mf3) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf3)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3); - } - - bool operator==(BOOST_MEM_FN_NAME(mf3) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf3) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf3 - -template class BOOST_MEM_FN_NAME(cmf3) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf3)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf3) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf3) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf4 - -template class BOOST_MEM_FN_NAME(mf4) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf4)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4); - } - - bool operator==(BOOST_MEM_FN_NAME(mf4) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf4) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf4 - -template class BOOST_MEM_FN_NAME(cmf4) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf4)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf4) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf4) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf5 - -template class BOOST_MEM_FN_NAME(mf5) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf5)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5); - } - - bool operator==(BOOST_MEM_FN_NAME(mf5) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf5) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf5 - -template class BOOST_MEM_FN_NAME(cmf5) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf5)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf5) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf5) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf6 - -template class BOOST_MEM_FN_NAME(mf6) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf6)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6); - } - - bool operator==(BOOST_MEM_FN_NAME(mf6) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf6) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf6 - -template class BOOST_MEM_FN_NAME(cmf6) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf6)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf6) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf6) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf7 - -template class BOOST_MEM_FN_NAME(mf7) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf7)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7); - } - - bool operator==(BOOST_MEM_FN_NAME(mf7) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf7) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf7 - -template class BOOST_MEM_FN_NAME(cmf7) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf7)(F f): f_(f) {} - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf7) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf7) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// mf8 - -template class BOOST_MEM_FN_NAME(mf8) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8)) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8); - } - -public: - - explicit BOOST_MEM_FN_NAME(mf8)(F f): f_(f) {} - - R operator()(T * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8); - } - - template R operator()(U & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8); - } - -#endif - - R operator()(T & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8); - } - - bool operator==(BOOST_MEM_FN_NAME(mf8) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(mf8) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -// cmf8 - -template class BOOST_MEM_FN_NAME(cmf8) -{ -public: - - typedef R result_type; - -private: - - BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const) - F f_; - - template R call(U & u, T const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const - { - BOOST_MEM_FN_RETURN (u.*f_)(b1, b2, b3, b4, b5, b6, b7, b8); - } - - template R call(U & u, void const *, B1 & b1, B2 & b2, B3 & b3, B4 & b4, B5 & b5, B6 & b6, B7 & b7, B8 & b8) const - { - BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1, b2, b3, b4, b5, b6, b7, b8); - } - -public: - - explicit BOOST_MEM_FN_NAME(cmf8)(F f): f_(f) {} - - R operator()(T const * p, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN (p->*f_)(a1, a2, a3, a4, a5, a6, a7, a8); - } - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN call(u, &u, a1, a2, a3, a4, a5, a6, a7, a8); - } - - R operator()(T const & t, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) const - { - BOOST_MEM_FN_RETURN (t.*f_)(a1, a2, a3, a4, a5, a6, a7, a8); - } - - bool operator==(BOOST_MEM_FN_NAME(cmf8) const & rhs) const - { - return f_ == rhs.f_; - } - - bool operator!=(BOOST_MEM_FN_NAME(cmf8) const & rhs) const - { - return f_ != rhs.f_; - } -}; - -#undef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS diff --git a/3rdParty/Boost/boost/bind/mem_fn_vw.hpp b/3rdParty/Boost/boost/bind/mem_fn_vw.hpp deleted file mode 100644 index f3fc58d..0000000 --- a/3rdParty/Boost/boost/bind/mem_fn_vw.hpp +++ /dev/null @@ -1,130 +0,0 @@ -// -// bind/mem_fn_vw.hpp - void return helper wrappers -// -// Do not include this header directly -// -// Copyright (c) 2001 Peter Dimov and Multi Media Ltd. -// -// Distributed under the 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/bind/mem_fn.html for documentation. -// - -template struct BOOST_MEM_FN_NAME(mf0): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (); - explicit BOOST_MEM_FN_NAME(mf0)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf0): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0) -{ - typedef R (BOOST_MEM_FN_CC T::*F) () const; - explicit BOOST_MEM_FN_NAME(cmf0)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf1): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1); - explicit BOOST_MEM_FN_NAME(mf1)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf1): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1) const; - explicit BOOST_MEM_FN_NAME(cmf1)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf2): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2); - explicit BOOST_MEM_FN_NAME(mf2)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf2): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2) const; - explicit BOOST_MEM_FN_NAME(cmf2)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf3): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3); - explicit BOOST_MEM_FN_NAME(mf3)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf3): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const; - explicit BOOST_MEM_FN_NAME(cmf3)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf4): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4); - explicit BOOST_MEM_FN_NAME(mf4)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf4): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const; - explicit BOOST_MEM_FN_NAME(cmf4)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf5): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5); - explicit BOOST_MEM_FN_NAME(mf5)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf5): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const; - explicit BOOST_MEM_FN_NAME(cmf5)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf6): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6); - explicit BOOST_MEM_FN_NAME(mf6)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf6): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const; - explicit BOOST_MEM_FN_NAME(cmf6)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf7): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7); - explicit BOOST_MEM_FN_NAME(mf7)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf7): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const; - explicit BOOST_MEM_FN_NAME(cmf7)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7)(f) {} -}; - - -template struct BOOST_MEM_FN_NAME(mf8): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8); - explicit BOOST_MEM_FN_NAME(mf8)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8)(f) {} -}; - -template struct BOOST_MEM_FN_NAME(cmf8): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8) -{ - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const; - explicit BOOST_MEM_FN_NAME(cmf8)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8)(f) {} -}; - diff --git a/3rdParty/Boost/boost/bind/placeholders.hpp b/3rdParty/Boost/boost/bind/placeholders.hpp deleted file mode 100644 index 37d01db..0000000 --- a/3rdParty/Boost/boost/bind/placeholders.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED -#define BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// bind/placeholders.hpp - _N definitions -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// -// Distributed under the 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/bind/bind.html for documentation. -// - -#include -#include - -namespace -{ - -#if defined(__BORLANDC__) || defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 400) - -static inline boost::arg<1> _1() { return boost::arg<1>(); } -static inline boost::arg<2> _2() { return boost::arg<2>(); } -static inline boost::arg<3> _3() { return boost::arg<3>(); } -static inline boost::arg<4> _4() { return boost::arg<4>(); } -static inline boost::arg<5> _5() { return boost::arg<5>(); } -static inline boost::arg<6> _6() { return boost::arg<6>(); } -static inline boost::arg<7> _7() { return boost::arg<7>(); } -static inline boost::arg<8> _8() { return boost::arg<8>(); } -static inline boost::arg<9> _9() { return boost::arg<9>(); } - -#elif defined(BOOST_MSVC) || (defined(__DECCXX_VER) && __DECCXX_VER <= 60590031) || defined(__MWERKS__) || \ - defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ == 400) - -static boost::arg<1> _1; -static boost::arg<2> _2; -static boost::arg<3> _3; -static boost::arg<4> _4; -static boost::arg<5> _5; -static boost::arg<6> _6; -static boost::arg<7> _7; -static boost::arg<8> _8; -static boost::arg<9> _9; - -#else - -boost::arg<1> _1; -boost::arg<2> _2; -boost::arg<3> _3; -boost::arg<4> _4; -boost::arg<5> _5; -boost::arg<6> _6; -boost::arg<7> _7; -boost::arg<8> _8; -boost::arg<9> _9; - -#endif - -} // unnamed namespace - -#endif // #ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/bind/storage.hpp b/3rdParty/Boost/boost/bind/storage.hpp deleted file mode 100644 index be490b0..0000000 --- a/3rdParty/Boost/boost/bind/storage.hpp +++ /dev/null @@ -1,475 +0,0 @@ -#ifndef BOOST_BIND_STORAGE_HPP_INCLUDED -#define BOOST_BIND_STORAGE_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// bind/storage.hpp -// -// boost/bind.hpp support header, optimized storage -// -// Copyright (c) 2006 Peter Dimov -// -// Distributed under the 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/bind/bind.html for documentation. -// - -#include -#include - -#ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable: 4512) // assignment operator could not be generated -#endif - -namespace boost -{ - -namespace _bi -{ - -// 1 - -template struct storage1 -{ - explicit storage1( A1 a1 ): a1_( a1 ) {} - - template void accept(V & v) const - { - BOOST_BIND_VISIT_EACH(v, a1_, 0); - } - - A1 a1_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( __BORLANDC__ ) - -template struct storage1< boost::arg > -{ - explicit storage1( boost::arg ) {} - - template void accept(V &) const { } - - static boost::arg a1_() { return boost::arg(); } -}; - -template struct storage1< boost::arg (*) () > -{ - explicit storage1( boost::arg (*) () ) {} - - template void accept(V &) const { } - - static boost::arg a1_() { return boost::arg(); } -}; - -#endif - -// 2 - -template struct storage2: public storage1 -{ - typedef storage1 inherited; - - storage2( A1 a1, A2 a2 ): storage1( a1 ), a2_( a2 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a2_, 0); - } - - A2 a2_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage2< A1, boost::arg >: public storage1 -{ - typedef storage1 inherited; - - storage2( A1 a1, boost::arg ): storage1( a1 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a2_() { return boost::arg(); } -}; - -template struct storage2< A1, boost::arg (*) () >: public storage1 -{ - typedef storage1 inherited; - - storage2( A1 a1, boost::arg (*) () ): storage1( a1 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a2_() { return boost::arg(); } -}; - -#endif - -// 3 - -template struct storage3: public storage2< A1, A2 > -{ - typedef storage2 inherited; - - storage3( A1 a1, A2 a2, A3 a3 ): storage2( a1, a2 ), a3_( a3 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a3_, 0); - } - - A3 a3_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage3< A1, A2, boost::arg >: public storage2< A1, A2 > -{ - typedef storage2 inherited; - - storage3( A1 a1, A2 a2, boost::arg ): storage2( a1, a2 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a3_() { return boost::arg(); } -}; - -template struct storage3< A1, A2, boost::arg (*) () >: public storage2< A1, A2 > -{ - typedef storage2 inherited; - - storage3( A1 a1, A2 a2, boost::arg (*) () ): storage2( a1, a2 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a3_() { return boost::arg(); } -}; - -#endif - -// 4 - -template struct storage4: public storage3< A1, A2, A3 > -{ - typedef storage3 inherited; - - storage4( A1 a1, A2 a2, A3 a3, A4 a4 ): storage3( a1, a2, a3 ), a4_( a4 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a4_, 0); - } - - A4 a4_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage4< A1, A2, A3, boost::arg >: public storage3< A1, A2, A3 > -{ - typedef storage3 inherited; - - storage4( A1 a1, A2 a2, A3 a3, boost::arg ): storage3( a1, a2, a3 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a4_() { return boost::arg(); } -}; - -template struct storage4< A1, A2, A3, boost::arg (*) () >: public storage3< A1, A2, A3 > -{ - typedef storage3 inherited; - - storage4( A1 a1, A2 a2, A3 a3, boost::arg (*) () ): storage3( a1, a2, a3 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a4_() { return boost::arg(); } -}; - -#endif - -// 5 - -template struct storage5: public storage4< A1, A2, A3, A4 > -{ - typedef storage4 inherited; - - storage5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): storage4( a1, a2, a3, a4 ), a5_( a5 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a5_, 0); - } - - A5 a5_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage5< A1, A2, A3, A4, boost::arg >: public storage4< A1, A2, A3, A4 > -{ - typedef storage4 inherited; - - storage5( A1 a1, A2 a2, A3 a3, A4 a4, boost::arg ): storage4( a1, a2, a3, a4 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a5_() { return boost::arg(); } -}; - -template struct storage5< A1, A2, A3, A4, boost::arg (*) () >: public storage4< A1, A2, A3, A4 > -{ - typedef storage4 inherited; - - storage5( A1 a1, A2 a2, A3 a3, A4 a4, boost::arg (*) () ): storage4( a1, a2, a3, a4 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a5_() { return boost::arg(); } -}; - -#endif - -// 6 - -template struct storage6: public storage5< A1, A2, A3, A4, A5 > -{ - typedef storage5 inherited; - - storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): storage5( a1, a2, a3, a4, a5 ), a6_( a6 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a6_, 0); - } - - A6 a6_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage6< A1, A2, A3, A4, A5, boost::arg >: public storage5< A1, A2, A3, A4, A5 > -{ - typedef storage5 inherited; - - storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, boost::arg ): storage5( a1, a2, a3, a4, a5 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a6_() { return boost::arg(); } -}; - -template struct storage6< A1, A2, A3, A4, A5, boost::arg (*) () >: public storage5< A1, A2, A3, A4, A5 > -{ - typedef storage5 inherited; - - storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, boost::arg (*) () ): storage5( a1, a2, a3, a4, a5 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a6_() { return boost::arg(); } -}; - -#endif - -// 7 - -template struct storage7: public storage6< A1, A2, A3, A4, A5, A6 > -{ - typedef storage6 inherited; - - storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): storage6( a1, a2, a3, a4, a5, a6 ), a7_( a7 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a7_, 0); - } - - A7 a7_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage7< A1, A2, A3, A4, A5, A6, boost::arg >: public storage6< A1, A2, A3, A4, A5, A6 > -{ - typedef storage6 inherited; - - storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, boost::arg ): storage6( a1, a2, a3, a4, a5, a6 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a7_() { return boost::arg(); } -}; - -template struct storage7< A1, A2, A3, A4, A5, A6, boost::arg (*) () >: public storage6< A1, A2, A3, A4, A5, A6 > -{ - typedef storage6 inherited; - - storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, boost::arg (*) () ): storage6( a1, a2, a3, a4, a5, a6 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a7_() { return boost::arg(); } -}; - -#endif - -// 8 - -template struct storage8: public storage7< A1, A2, A3, A4, A5, A6, A7 > -{ - typedef storage7 inherited; - - storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): storage7( a1, a2, a3, a4, a5, a6, a7 ), a8_( a8 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a8_, 0); - } - - A8 a8_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage8< A1, A2, A3, A4, A5, A6, A7, boost::arg >: public storage7< A1, A2, A3, A4, A5, A6, A7 > -{ - typedef storage7 inherited; - - storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, boost::arg ): storage7( a1, a2, a3, a4, a5, a6, a7 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a8_() { return boost::arg(); } -}; - -template struct storage8< A1, A2, A3, A4, A5, A6, A7, boost::arg (*) () >: public storage7< A1, A2, A3, A4, A5, A6, A7 > -{ - typedef storage7 inherited; - - storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, boost::arg (*) () ): storage7( a1, a2, a3, a4, a5, a6, a7 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a8_() { return boost::arg(); } -}; - -#endif - -// 9 - -template struct storage9: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > -{ - typedef storage8 inherited; - - storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ), a9_( a9 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - BOOST_BIND_VISIT_EACH(v, a9_, 0); - } - - A9 a9_; -}; - -#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) - -template struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, boost::arg >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > -{ - typedef storage8 inherited; - - storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, boost::arg ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a9_() { return boost::arg(); } -}; - -template struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, boost::arg (*) () >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 > -{ - typedef storage8 inherited; - - storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, boost::arg (*) () ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static boost::arg a9_() { return boost::arg(); } -}; - -#endif - -} // namespace _bi - -} // namespace boost - -#ifdef BOOST_MSVC -# pragma warning(default: 4512) // assignment operator could not be generated -# pragma warning(pop) -#endif - -#endif // #ifndef BOOST_BIND_STORAGE_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/call_traits.hpp b/3rdParty/Boost/boost/call_traits.hpp deleted file mode 100644 index 5253a6d..0000000 --- a/3rdParty/Boost/boost/call_traits.hpp +++ /dev/null @@ -1,24 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Use, modification and distribution are subject to the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt). -// -// See http://www.boost.org/libs/utility for most recent version including documentation. - -// See boost/detail/call_traits.hpp and boost/detail/ob_call_traits.hpp -// for full copyright notices. - -#ifndef BOOST_CALL_TRAITS_HPP -#define BOOST_CALL_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -#include -#endif - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -#include -#else -#include -#endif - -#endif // BOOST_CALL_TRAITS_HPP diff --git a/3rdParty/Boost/boost/cerrno.hpp b/3rdParty/Boost/boost/cerrno.hpp deleted file mode 100644 index 6f26698..0000000 --- a/3rdParty/Boost/boost/cerrno.hpp +++ /dev/null @@ -1,331 +0,0 @@ -// Boost cerrno.hpp header -------------------------------------------------// - -// Copyright Beman Dawes 2005. -// 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/system - -#ifndef BOOST_CERRNO_HPP -#define BOOST_CERRNO_HPP - -#include - -// supply errno values likely to be missing, particularly on Windows - -#ifndef EAFNOSUPPORT -#define EAFNOSUPPORT 9901 -#endif - -#ifndef EADDRINUSE -#define EADDRINUSE 9902 -#endif - -#ifndef EADDRNOTAVAIL -#define EADDRNOTAVAIL 9903 -#endif - -#ifndef EISCONN -#define EISCONN 9904 -#endif - -#ifndef EBADMSG -#define EBADMSG 9905 -#endif - -#ifndef ECONNABORTED -#define ECONNABORTED 9906 -#endif - -#ifndef EALREADY -#define EALREADY 9907 -#endif - -#ifndef ECONNREFUSED -#define ECONNREFUSED 9908 -#endif - -#ifndef ECONNRESET -#define ECONNRESET 9909 -#endif - -#ifndef EDESTADDRREQ -#define EDESTADDRREQ 9910 -#endif - -#ifndef EHOSTUNREACH -#define EHOSTUNREACH 9911 -#endif - -#ifndef EIDRM -#define EIDRM 9912 -#endif - -#ifndef EMSGSIZE -#define EMSGSIZE 9913 -#endif - -#ifndef ENETDOWN -#define ENETDOWN 9914 -#endif - -#ifndef ENETRESET -#define ENETRESET 9915 -#endif - -#ifndef ENETUNREACH -#define ENETUNREACH 9916 -#endif - -#ifndef ENOBUFS -#define ENOBUFS 9917 -#endif - -#ifndef ENOLINK -#define ENOLINK 9918 -#endif - -#ifndef ENODATA -#define ENODATA 9919 -#endif - -#ifndef ENOMSG -#define ENOMSG 9920 -#endif - -#ifndef ENOPROTOOPT -#define ENOPROTOOPT 9921 -#endif - -#ifndef ENOSR -#define ENOSR 9922 -#endif - -#ifndef ENOTSOCK -#define ENOTSOCK 9923 -#endif - -#ifndef ENOSTR -#define ENOSTR 9924 -#endif - -#ifndef ENOTCONN -#define ENOTCONN 9925 -#endif - -#ifndef ENOTSUP -#define ENOTSUP 9926 -#endif - -#ifndef ECANCELED -#define ECANCELED 9927 -#endif - -#ifndef EINPROGRESS -#define EINPROGRESS 9928 -#endif - -#ifndef EOPNOTSUPP -#define EOPNOTSUPP 9929 -#endif - -#ifndef EWOULDBLOCK -#define EWOULDBLOCK 9930 -#endif - -#ifndef EOWNERDEAD -#define EOWNERDEAD 9931 -#endif - -#ifndef EPROTO -#define EPROTO 9932 -#endif - -#ifndef EPROTONOSUPPORT -#define EPROTONOSUPPORT 9933 -#endif - -#ifndef ENOTRECOVERABLE -#define ENOTRECOVERABLE 9934 -#endif - -#ifndef ETIME -#define ETIME 9935 -#endif - -#ifndef ETXTBSY -#define ETXTBSY 9936 -#endif - -#ifndef ETIMEDOUT -#define ETIMEDOUT 9938 -#endif - -#ifndef ELOOP -#define ELOOP 9939 -#endif - -#ifndef EOVERFLOW -#define EOVERFLOW 9940 -#endif - -#ifndef EPROTOTYPE -#define EPROTOTYPE 9941 -#endif - -#ifndef ENOSYS -#define ENOSYS 9942 -#endif - -#ifndef EINVAL -#define EINVAL 9943 -#endif - -#ifndef ERANGE -#define ERANGE 9944 -#endif - -#ifndef EILSEQ -#define EILSEQ 9945 -#endif - -// Windows Mobile doesn't appear to define these: - -#ifndef E2BIG -#define E2BIG 9946 -#endif - -#ifndef EDOM -#define EDOM 9947 -#endif - -#ifndef EFAULT -#define EFAULT 9948 -#endif - -#ifndef EBADF -#define EBADF 9949 -#endif - -#ifndef EPIPE -#define EPIPE 9950 -#endif - -#ifndef EXDEV -#define EXDEV 9951 -#endif - -#ifndef EBUSY -#define EBUSY 9952 -#endif - -#ifndef ENOTEMPTY -#define ENOTEMPTY 9953 -#endif - -#ifndef ENOEXEC -#define ENOEXEC 9954 -#endif - -#ifndef EEXIST -#define EEXIST 9955 -#endif - -#ifndef EFBIG -#define EFBIG 9956 -#endif - -#ifndef ENAMETOOLONG -#define ENAMETOOLONG 9957 -#endif - -#ifndef ENOTTY -#define ENOTTY 9958 -#endif - -#ifndef EINTR -#define EINTR 9959 -#endif - -#ifndef ESPIPE -#define ESPIPE 9960 -#endif - -#ifndef EIO -#define EIO 9961 -#endif - -#ifndef EISDIR -#define EISDIR 9962 -#endif - -#ifndef ECHILD -#define ECHILD 9963 -#endif - -#ifndef ENOLCK -#define ENOLCK 9964 -#endif - -#ifndef ENOSPC -#define ENOSPC 9965 -#endif - -#ifndef ENXIO -#define ENXIO 9966 -#endif - -#ifndef ENODEV -#define ENODEV 9967 -#endif - -#ifndef ENOENT -#define ENOENT 9968 -#endif - -#ifndef ESRCH -#define ESRCH 9969 -#endif - -#ifndef ENOTDIR -#define ENOTDIR 9970 -#endif - -#ifndef ENOMEM -#define ENOMEM 9971 -#endif - -#ifndef EPERM -#define EPERM 9972 -#endif - -#ifndef EACCES -#define EACCES 9973 -#endif - -#ifndef EROFS -#define EROFS 9974 -#endif - -#ifndef EDEADLK -#define EDEADLK 9975 -#endif - -#ifndef EAGAIN -#define EAGAIN 9976 -#endif - -#ifndef ENFILE -#define ENFILE 9977 -#endif - -#ifndef EMFILE -#define EMFILE 9978 -#endif - -#ifndef EMLINK -#define EMLINK 9979 -#endif - -#endif // include guard diff --git a/3rdParty/Boost/boost/checked_delete.hpp b/3rdParty/Boost/boost/checked_delete.hpp deleted file mode 100644 index 9bb84e8..0000000 --- a/3rdParty/Boost/boost/checked_delete.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED -#define BOOST_CHECKED_DELETE_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/checked_delete.hpp -// -// Copyright (c) 2002, 2003 Peter Dimov -// Copyright (c) 2003 Daniel Frey -// Copyright (c) 2003 Howard Hinnant -// -// Distributed under the 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/utility/checked_delete.html for documentation. -// - -namespace boost -{ - -// verify that types are complete for increased safety - -template inline void checked_delete(T * x) -{ - // intentionally complex - simplification causes regressions - typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; - (void) sizeof(type_must_be_complete); - delete x; -} - -template inline void checked_array_delete(T * x) -{ - typedef char type_must_be_complete[ sizeof(T)? 1: -1 ]; - (void) sizeof(type_must_be_complete); - delete [] x; -} - -template struct checked_deleter -{ - typedef void result_type; - typedef T * argument_type; - - void operator()(T * x) const - { - // boost:: disables ADL - boost::checked_delete(x); - } -}; - -template struct checked_array_deleter -{ - typedef void result_type; - typedef T * argument_type; - - void operator()(T * x) const - { - boost::checked_array_delete(x); - } -}; - -} // namespace boost - -#endif // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/concept/assert.hpp b/3rdParty/Boost/boost/concept/assert.hpp deleted file mode 100644 index 80eca81..0000000 --- a/3rdParty/Boost/boost/concept/assert.hpp +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright David Abrahams 2006. Distributed under the Boost -// Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef BOOST_CONCEPT_ASSERT_DWA2006430_HPP -# define BOOST_CONCEPT_ASSERT_DWA2006430_HPP - -# include -# include - -// The old protocol used a constraints() member function in concept -// checking classes. If the compiler supports SFINAE, we can detect -// that function and seamlessly support the old concept checking -// classes. In this release, backward compatibility with the old -// concept checking classes is enabled by default, where available. -// The old protocol is deprecated, though, and backward compatibility -// will no longer be the default in the next release. - -# if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT) \ - && !defined(BOOST_NO_SFINAE) \ - \ - && !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4)) \ - && !(BOOST_WORKAROUND(__GNUC__, == 2)) - -// Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to -// check for the presence of particularmember functions. - -# define BOOST_OLD_CONCEPT_SUPPORT - -# endif - -# ifdef BOOST_MSVC -# include -# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -# include -# else -# include -# endif - - // Usage, in class or function context: - // - // BOOST_CONCEPT_ASSERT((UnaryFunctionConcept)); - // -# define BOOST_CONCEPT_ASSERT(ModelInParens) \ - BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens) - -#endif // BOOST_CONCEPT_ASSERT_DWA2006430_HPP diff --git a/3rdParty/Boost/boost/concept/detail/borland.hpp b/3rdParty/Boost/boost/concept/detail/borland.hpp deleted file mode 100644 index 59fec55..0000000 --- a/3rdParty/Boost/boost/concept/detail/borland.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright David Abrahams 2006. Distributed under the Boost -// Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP -# define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP - -# include - -namespace boost { namespace concept { - -template -struct require; - -template -struct require -{ - enum { instantiate = sizeof((((Model*)0)->~Model()), 3) }; -}; - -# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ - enum \ - { \ - BOOST_PP_CAT(boost_concept_check,__LINE__) = \ - boost::concept::require::instantiate \ - } - -}} // namespace boost::concept - -#endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP diff --git a/3rdParty/Boost/boost/concept/detail/concept_def.hpp b/3rdParty/Boost/boost/concept/detail/concept_def.hpp deleted file mode 100644 index 79f628e..0000000 --- a/3rdParty/Boost/boost/concept/detail/concept_def.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright David Abrahams 2006. Distributed under the Boost -// Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP -# define BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP -# include -# include -# include -# include -#endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP - -// BOOST_concept(SomeName, (p1)(p2)...(pN)) -// -// Expands to "template struct SomeName" -// -// Also defines an equivalent SomeNameConcept for backward compatibility. -// Maybe in the next release we can kill off the "Concept" suffix for good. -#if BOOST_WORKAROUND(__GNUC__, <= 3) -# define BOOST_concept(name, params) \ - template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ - struct name; /* forward declaration */ \ - \ - template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ - struct BOOST_PP_CAT(name,Concept) \ - : name< BOOST_PP_SEQ_ENUM(params) > \ - { \ - /* at least 2.96 and 3.4.3 both need this */ \ - BOOST_PP_CAT(name,Concept)(); \ - }; \ - \ - template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ - struct name -#else -# define BOOST_concept(name, params) \ - template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ - struct name; /* forward declaration */ \ - \ - template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ - struct BOOST_PP_CAT(name,Concept) \ - : name< BOOST_PP_SEQ_ENUM(params) > \ - { \ - }; \ - \ - template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ - struct name -#endif - -// Helper for BOOST_concept, above. -# define BOOST_CONCEPT_typename(r, ignored, index, t) \ - BOOST_PP_COMMA_IF(index) typename t - diff --git a/3rdParty/Boost/boost/concept/detail/concept_undef.hpp b/3rdParty/Boost/boost/concept/detail/concept_undef.hpp deleted file mode 100644 index 713db89..0000000 --- a/3rdParty/Boost/boost/concept/detail/concept_undef.hpp +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright David Abrahams 2006. Distributed under the Boost -// Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -# undef BOOST_concept_typename -# undef BOOST_concept diff --git a/3rdParty/Boost/boost/concept/detail/general.hpp b/3rdParty/Boost/boost/concept/detail/general.hpp deleted file mode 100644 index f36f9c4..0000000 --- a/3rdParty/Boost/boost/concept/detail/general.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright David Abrahams 2006. Distributed under the Boost -// Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP -# define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP - -# include - -# ifdef BOOST_OLD_CONCEPT_SUPPORT -# include -# include -# endif - -// This implementation works on Comeau and GCC, all the way back to -// 2.95 -namespace boost { namespace concept { - -template -struct requirement_; - -namespace detail -{ - template struct instantiate {}; -} - -template -struct requirement -{ - static void failed() { ((Model*)0)->~Model(); } -}; - -# ifdef BOOST_OLD_CONCEPT_SUPPORT - -template -struct constraint -{ - static void failed() { ((Model*)0)->constraints(); } -}; - -template -struct requirement_ - : mpl::if_< - concept::not_satisfied - , constraint - , requirement - >::type -{}; - -# else - -// For GCC-2.x, these can't have exactly the same name -template -struct requirement_ - : requirement -{}; - -# endif - -# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ - typedef ::boost::concept::detail::instantiate< \ - &::boost::concept::requirement_::failed> \ - BOOST_PP_CAT(boost_concept_check,__LINE__) - -}} - -#endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP diff --git a/3rdParty/Boost/boost/concept/detail/has_constraints.hpp b/3rdParty/Boost/boost/concept/detail/has_constraints.hpp deleted file mode 100644 index 3112b55..0000000 --- a/3rdParty/Boost/boost/concept/detail/has_constraints.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright David Abrahams 2006. Distributed under the Boost -// Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP -# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP - -# include -# include -namespace boost { namespace concept { - -namespace detail -{ - -// Here we implement the metafunction that detects whether a -// constraints metafunction exists - typedef char yes; - typedef char (&no)[2]; - - template - struct wrap_constraints {}; - -#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) - // Work around the following bogus error in Sun Studio 11, by - // turning off the has_constraints function entirely: - // Error: complex expression not allowed in dependent template - // argument expression - inline no has_constraints_(...); -#else - template - inline yes has_constraints_(Model*, wrap_constraints* = 0); - inline no has_constraints_(...); -#endif -} - -// This would be called "detail::has_constraints," but it has a strong -// tendency to show up in error messages. -template -struct not_satisfied -{ - BOOST_STATIC_CONSTANT( - bool - , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) ); - typedef mpl::bool_ type; -}; - -}} // namespace boost::concept::detail - -#endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP diff --git a/3rdParty/Boost/boost/concept/detail/msvc.hpp b/3rdParty/Boost/boost/concept/detail/msvc.hpp deleted file mode 100644 index 3aadb79..0000000 --- a/3rdParty/Boost/boost/concept/detail/msvc.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright David Abrahams 2006. Distributed under the Boost -// Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP -# define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP - -# include - -# ifdef BOOST_OLD_CONCEPT_SUPPORT -# include -# include -# endif - - -namespace boost { namespace concept { - -template -struct check -{ - virtual void failed(Model* x) - { - x->~Model(); - } -}; - -# ifdef BOOST_OLD_CONCEPT_SUPPORT - -namespace detail -{ - // No need for a virtual function here, since evaluating - // not_satisfied below will have already instantiated the - // constraints() member. - struct constraint {}; -} - -template -struct require - : mpl::if_c< - not_satisfied::value - , detail::constraint - , check - >::type -{}; - -# else - -template -struct require - : check -{}; - -# endif - -# if BOOST_WORKAROUND(BOOST_MSVC, == 1310) - -// -// The iterator library sees some really strange errors unless we -// do things this way. -// -template -struct require -{ - virtual void failed(Model*) - { - require(); - } -}; - -# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ -enum \ -{ \ - BOOST_PP_CAT(boost_concept_check,__LINE__) = \ - sizeof(::boost::concept::require) \ -} - -# else // Not vc-7.1 - -template -require -require_(void(*)(Model)); - -# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ -enum \ -{ \ - BOOST_PP_CAT(boost_concept_check,__LINE__) = \ - sizeof(::boost::concept::require_((ModelFnPtr)0)) \ -} - -# endif -}} - -#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP diff --git a/3rdParty/Boost/boost/concept/usage.hpp b/3rdParty/Boost/boost/concept/usage.hpp deleted file mode 100644 index 9af8ca3..0000000 --- a/3rdParty/Boost/boost/concept/usage.hpp +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright David Abrahams 2006. Distributed under the Boost -// Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef BOOST_CONCEPT_USAGE_DWA2006919_HPP -# define BOOST_CONCEPT_USAGE_DWA2006919_HPP - -# include -# include - -namespace boost { namespace concept { - -# if BOOST_WORKAROUND(__GNUC__, == 2) - -# define BOOST_CONCEPT_USAGE(model) ~model() - -# else - -template -struct usage_requirements -{ - ~usage_requirements() { ((Model*)0)->~Model(); } -}; - -# if BOOST_WORKAROUND(__GNUC__, <= 3) - -# define BOOST_CONCEPT_USAGE(model) \ - model(); /* at least 2.96 and 3.4.3 both need this :( */ \ - BOOST_CONCEPT_ASSERT((boost::concept::usage_requirements)); \ - ~model() - -# else - -# define BOOST_CONCEPT_USAGE(model) \ - BOOST_CONCEPT_ASSERT((boost::concept::usage_requirements)); \ - ~model() - -# endif - -# endif - -}} // namespace boost::concept - -#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP diff --git a/3rdParty/Boost/boost/concept_check.hpp b/3rdParty/Boost/boost/concept_check.hpp deleted file mode 100644 index 12ec2ad..0000000 --- a/3rdParty/Boost/boost/concept_check.hpp +++ /dev/null @@ -1,998 +0,0 @@ -// -// (C) Copyright Jeremy Siek 2000. -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// Revision History: -// 05 May 2001: Workarounds for HP aCC from Thomas Matelich. (Jeremy Siek) -// 02 April 2001: Removed limits header altogether. (Jeremy Siek) -// 01 April 2001: Modified to use new header. (JMaddock) -// - -// See http://www.boost.org/libs/concept_check for documentation. - -#ifndef BOOST_CONCEPT_CHECKS_HPP -# define BOOST_CONCEPT_CHECKS_HPP - -# include - -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include - -namespace boost -{ - - // - // Backward compatibility - // - - template - inline void function_requires(Model* = 0) - { - BOOST_CONCEPT_ASSERT((Model)); - } - template inline void ignore_unused_variable_warning(T const&) {} - -# define BOOST_CLASS_REQUIRE(type_var, ns, concept) \ - BOOST_CONCEPT_ASSERT((ns::concept)) - -# define BOOST_CLASS_REQUIRE2(type_var1, type_var2, ns, concept) \ - BOOST_CONCEPT_ASSERT((ns::concept)) - -# define BOOST_CLASS_REQUIRE3(tv1, tv2, tv3, ns, concept) \ - BOOST_CONCEPT_ASSERT((ns::concept)) - -# define BOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \ - BOOST_CONCEPT_ASSERT((ns::concept)) - - - // - // 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 {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; - template <> struct Integer {}; -# if defined(BOOST_HAS_LONG_LONG) - template <> struct Integer< ::boost::long_long_type> {}; - template <> struct Integer< ::boost::ulong_long_type> {}; -# elif defined(BOOST_HAS_MS_INT64) - template <> struct Integer<__int64> {}; - template <> struct Integer {}; -# endif - - BOOST_concept(SignedInteger,(T)) { - BOOST_CONCEPT_USAGE(SignedInteger) { - x.error_type_must_be_a_signed_integer_type(); - } - private: - T x; - }; - template <> struct SignedInteger { }; - template <> struct SignedInteger {}; - template <> struct SignedInteger {}; - template <> struct SignedInteger {}; -# if defined(BOOST_HAS_LONG_LONG) - template <> struct SignedInteger< ::boost::long_long_type> {}; -# elif defined(BOOST_HAS_MS_INT64) - template <> struct SignedInteger<__int64> {}; -# endif - - BOOST_concept(UnsignedInteger,(T)) { - BOOST_CONCEPT_USAGE(UnsignedInteger) { - x.error_type_must_be_an_unsigned_integer_type(); - } - private: - T x; - }; - - template <> struct UnsignedInteger {}; - template <> struct UnsignedInteger {}; - template <> struct UnsignedInteger {}; - template <> struct UnsignedInteger {}; -# if defined(BOOST_HAS_LONG_LONG) - template <> struct UnsignedInteger< ::boost::ulong_long_type> {}; -# elif defined(BOOST_HAS_MS_INT64) - template <> struct UnsignedInteger {}; -# endif - - //=========================================================================== - // Basic Concepts - - BOOST_concept(DefaultConstructible,(TT)) - { - BOOST_CONCEPT_USAGE(DefaultConstructible) { - TT a; // require default constructor - ignore_unused_variable_warning(a); - } - }; - - BOOST_concept(Assignable,(TT)) - { - BOOST_CONCEPT_USAGE(Assignable) { -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = a; // require assignment operator -#endif - const_constraints(a); - } - private: - void const_constraints(const TT& b) { -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = b; // const required for argument to assignment -#else - ignore_unused_variable_warning(b); -#endif - } - private: - TT a; - }; - - - BOOST_concept(CopyConstructible,(TT)) - { - BOOST_CONCEPT_USAGE(CopyConstructible) { - TT a(b); // require copy constructor - TT* ptr = &a; // require address of operator - const_constraints(a); - ignore_unused_variable_warning(ptr); - } - private: - void const_constraints(const TT& a) { - TT c(a); // require const copy constructor - const TT* ptr = &a; // require const address of operator - ignore_unused_variable_warning(c); - ignore_unused_variable_warning(ptr); - } - TT b; - }; - -#if (defined _MSC_VER) -# pragma warning( push ) -# pragma warning( disable : 4510 ) // default constructor could not be generated -# pragma warning( disable : 4610 ) // object 'class' can never be instantiated - user-defined constructor required -#endif - // The SGI STL version of Assignable requires copy constructor and operator= - BOOST_concept(SGIAssignable,(TT)) - { - BOOST_CONCEPT_USAGE(SGIAssignable) { - TT b(a); -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = a; // require assignment operator -#endif - const_constraints(a); - ignore_unused_variable_warning(b); - } - private: - void const_constraints(const TT& b) { - TT c(b); -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = b; // const required for argument to assignment -#endif - ignore_unused_variable_warning(c); - } - TT a; - }; -#if (defined _MSC_VER) -# pragma warning( pop ) -#endif - - BOOST_concept(Convertible,(X)(Y)) - { - BOOST_CONCEPT_USAGE(Convertible) { - Y y = x; - ignore_unused_variable_warning(y); - } - private: - X x; - }; - - // The C++ standard requirements for many concepts talk about return - // types that must be "convertible to bool". The problem with this - // requirement is that it leaves the door open for evil proxies that - // define things like operator|| with strange return types. Two - // possible solutions are: - // 1) require the return type to be exactly bool - // 2) stay with convertible to bool, and also - // specify stuff about all the logical operators. - // For now we just test for convertible to bool. - template - void require_boolean_expr(const TT& t) { - bool x = t; - ignore_unused_variable_warning(x); - } - - BOOST_concept(EqualityComparable,(TT)) - { - BOOST_CONCEPT_USAGE(EqualityComparable) { - require_boolean_expr(a == b); - require_boolean_expr(a != b); - } - private: - TT a, b; - }; - - BOOST_concept(LessThanComparable,(TT)) - { - BOOST_CONCEPT_USAGE(LessThanComparable) { - require_boolean_expr(a < b); - } - private: - TT a, b; - }; - - // This is equivalent to SGI STL's LessThanComparable. - BOOST_concept(Comparable,(TT)) - { - BOOST_CONCEPT_USAGE(Comparable) { - require_boolean_expr(a < b); - require_boolean_expr(a > b); - require_boolean_expr(a <= b); - require_boolean_expr(a >= b); - } - private: - TT a, b; - }; - -#define BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(OP,NAME) \ - BOOST_concept(NAME, (First)(Second)) \ - { \ - BOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); } \ - private: \ - bool constraints_() { return a OP b; } \ - First a; \ - Second b; \ - } - -#define BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(OP,NAME) \ - BOOST_concept(NAME, (Ret)(First)(Second)) \ - { \ - BOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); } \ - private: \ - Ret constraints_() { return a OP b; } \ - First a; \ - Second b; \ - } - - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(==, EqualOp); - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(!=, NotEqualOp); - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<, LessThanOp); - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<=, LessEqualOp); - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>, GreaterThanOp); - BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>=, GreaterEqualOp); - - BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(+, PlusOp); - BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(*, TimesOp); - BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(/, DivideOp); - BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(-, SubtractOp); - BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(%, ModOp); - - //=========================================================================== - // Function Object Concepts - - BOOST_concept(Generator,(Func)(Return)) - { - BOOST_CONCEPT_USAGE(Generator) { test(is_void()); } - - private: - void test(boost::mpl::false_) - { - // Do we really want a reference here? - const Return& r = f(); - ignore_unused_variable_warning(r); - } - - void test(boost::mpl::true_) - { - f(); - } - - Func f; - }; - - BOOST_concept(UnaryFunction,(Func)(Return)(Arg)) - { - BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void()); } - - 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); - } - - void test(boost::mpl::true_) - { - f(arg); - } - - Func f; - Arg arg; - }; - - BOOST_concept(BinaryFunction,(Func)(Return)(First)(Second)) - { - BOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void()); } - private: - void test(boost::mpl::false_) - { - f(first,second); - Return r = f(first, second); // require operator() - (void)r; - } - - void test(boost::mpl::true_) - { - f(first,second); - } - - Func f; - First first; - Second second; - }; - - BOOST_concept(UnaryPredicate,(Func)(Arg)) - { - BOOST_CONCEPT_USAGE(UnaryPredicate) { - require_boolean_expr(f(arg)); // require operator() returning bool - } - private: - Func f; - Arg arg; - }; - - BOOST_concept(BinaryPredicate,(Func)(First)(Second)) - { - BOOST_CONCEPT_USAGE(BinaryPredicate) { - require_boolean_expr(f(a, b)); // require operator() returning bool - } - private: - Func f; - First a; - Second b; - }; - - // use this when functor is used inside a container class like std::set - BOOST_concept(Const_BinaryPredicate,(Func)(First)(Second)) - : BinaryPredicate - { - BOOST_CONCEPT_USAGE(Const_BinaryPredicate) { - const_constraints(f); - } - private: - void const_constraints(const Func& fun) { - // operator() must be a const member function - require_boolean_expr(fun(a, b)); - } - Func f; - First a; - Second b; - }; - - BOOST_concept(AdaptableGenerator,(Func)(Return)) - : Generator - { - typedef typename Func::result_type result_type; - - BOOST_CONCEPT_USAGE(AdaptableGenerator) - { - BOOST_CONCEPT_ASSERT((Convertible)); - } - }; - - BOOST_concept(AdaptableUnaryFunction,(Func)(Return)(Arg)) - : UnaryFunction - { - typedef typename Func::argument_type argument_type; - typedef typename Func::result_type result_type; - - ~AdaptableUnaryFunction() - { - BOOST_CONCEPT_ASSERT((Convertible)); - BOOST_CONCEPT_ASSERT((Convertible)); - } - }; - - BOOST_concept(AdaptableBinaryFunction,(Func)(Return)(First)(Second)) - : BinaryFunction< - Func - , typename Func::result_type - , typename Func::first_argument_type - , typename Func::second_argument_type - > - { - 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)); - BOOST_CONCEPT_ASSERT((Convertible)); - BOOST_CONCEPT_ASSERT((Convertible)); - } - }; - - BOOST_concept(AdaptablePredicate,(Func)(Arg)) - : UnaryPredicate - , AdaptableUnaryFunction - { - }; - - BOOST_concept(AdaptableBinaryPredicate,(Func)(First)(Second)) - : BinaryPredicate - , AdaptableBinaryFunction - { - }; - - //=========================================================================== - // Iterator Concepts - - BOOST_concept(InputIterator,(TT)) - : Assignable - , EqualityComparable - { - typedef typename boost::detail::iterator_traits::value_type value_type; - typedef typename boost::detail::iterator_traits::difference_type difference_type; - typedef typename boost::detail::iterator_traits::reference reference; - typedef typename boost::detail::iterator_traits::pointer pointer; - typedef typename boost::detail::iterator_traits::iterator_category iterator_category; - - BOOST_CONCEPT_USAGE(InputIterator) - { - BOOST_CONCEPT_ASSERT((SignedInteger)); - BOOST_CONCEPT_ASSERT((Convertible)); - - TT j(i); - (void)*i; // require dereference operator - ++j; // require preincrement operator - i++; // require postincrement operator - } - private: - TT i; - }; - - BOOST_concept(OutputIterator,(TT)(ValueT)) - : Assignable - { - BOOST_CONCEPT_USAGE(OutputIterator) { - - ++i; // require preincrement operator - i++; // require postincrement operator - *i++ = t; // require postincrement and assignment - } - private: - TT i, j; - ValueT t; - }; - - BOOST_concept(ForwardIterator,(TT)) - : InputIterator - { - BOOST_CONCEPT_USAGE(ForwardIterator) - { - BOOST_CONCEPT_ASSERT((Convertible< - BOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category - , std::forward_iterator_tag - >)); - - typename InputIterator::reference r = *i; - ignore_unused_variable_warning(r); - } - - private: - TT i; - }; - - BOOST_concept(Mutable_ForwardIterator,(TT)) - : ForwardIterator - { - BOOST_CONCEPT_USAGE(Mutable_ForwardIterator) { - *i++ = *i; // require postincrement and assignment - } - private: - TT i; - }; - - BOOST_concept(BidirectionalIterator,(TT)) - : ForwardIterator - { - BOOST_CONCEPT_USAGE(BidirectionalIterator) - { - BOOST_CONCEPT_ASSERT((Convertible< - BOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category - , std::bidirectional_iterator_tag - >)); - - --i; // require predecrement operator - i--; // require postdecrement operator - } - private: - TT i; - }; - - BOOST_concept(Mutable_BidirectionalIterator,(TT)) - : BidirectionalIterator - , Mutable_ForwardIterator - { - BOOST_CONCEPT_USAGE(Mutable_BidirectionalIterator) - { - *i-- = *i; // require postdecrement and assignment - } - private: - TT i; - }; - - BOOST_concept(RandomAccessIterator,(TT)) - : BidirectionalIterator - , Comparable - { - BOOST_CONCEPT_USAGE(RandomAccessIterator) - { - BOOST_CONCEPT_ASSERT((Convertible< - BOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category - , std::random_access_iterator_tag - >)); - - i += n; // require assignment addition operator - i = i + n; i = n + i; // require addition with difference type - i -= n; // require assignment subtraction operator - i = i - n; // require subtraction with difference type - n = i - j; // require difference operator - (void)i[n]; // require element access operator - } - - private: - TT a, b; - TT i, j; - typename boost::detail::iterator_traits::difference_type n; - }; - - BOOST_concept(Mutable_RandomAccessIterator,(TT)) - : RandomAccessIterator - , Mutable_BidirectionalIterator - { - BOOST_CONCEPT_USAGE(Mutable_RandomAccessIterator) - { - i[n] = *i; // require element access and assignment - } - private: - TT i; - typename boost::detail::iterator_traits::difference_type n; - }; - - //=========================================================================== - // Container s - - BOOST_concept(Container,(C)) - : Assignable - { - typedef typename C::value_type value_type; - typedef typename C::difference_type difference_type; - typedef typename C::size_type size_type; - typedef typename C::const_reference const_reference; - typedef typename C::const_pointer const_pointer; - typedef typename C::const_iterator const_iterator; - - BOOST_CONCEPT_USAGE(Container) - { - BOOST_CONCEPT_ASSERT((InputIterator)); - const_constraints(c); - } - - private: - void const_constraints(const C& cc) { - i = cc.begin(); - i = cc.end(); - n = cc.size(); - n = cc.max_size(); - b = cc.empty(); - } - C c; - bool b; - const_iterator i; - size_type n; - }; - - BOOST_concept(Mutable_Container,(C)) - : Container - { - typedef typename C::reference reference; - typedef typename C::iterator iterator; - typedef typename C::pointer pointer; - - BOOST_CONCEPT_USAGE(Mutable_Container) - { - BOOST_CONCEPT_ASSERT(( - Assignable)); - - BOOST_CONCEPT_ASSERT((InputIterator)); - - i = c.begin(); - i = c.end(); - c.swap(c2); - } - - private: - iterator i; - C c, c2; - }; - - BOOST_concept(ForwardContainer,(C)) - : Container - { - BOOST_CONCEPT_USAGE(ForwardContainer) - { - BOOST_CONCEPT_ASSERT(( - ForwardIterator< - typename ForwardContainer::const_iterator - >)); - } - }; - - BOOST_concept(Mutable_ForwardContainer,(C)) - : ForwardContainer - , Mutable_Container - { - BOOST_CONCEPT_USAGE(Mutable_ForwardContainer) - { - BOOST_CONCEPT_ASSERT(( - Mutable_ForwardIterator< - typename Mutable_ForwardContainer::iterator - >)); - } - }; - - BOOST_concept(ReversibleContainer,(C)) - : ForwardContainer - { - typedef typename - C::const_reverse_iterator - const_reverse_iterator; - - BOOST_CONCEPT_USAGE(ReversibleContainer) - { - BOOST_CONCEPT_ASSERT(( - BidirectionalIterator< - typename ReversibleContainer::const_iterator>)); - - BOOST_CONCEPT_ASSERT((BidirectionalIterator)); - - const_constraints(c); - } - private: - void const_constraints(const C& cc) - { - const_reverse_iterator i = cc.rbegin(); - i = cc.rend(); - } - C c; - }; - - BOOST_concept(Mutable_ReversibleContainer,(C)) - : Mutable_ForwardContainer - , ReversibleContainer - { - typedef typename C::reverse_iterator reverse_iterator; - - BOOST_CONCEPT_USAGE(Mutable_ReversibleContainer) - { - typedef typename Mutable_ForwardContainer::iterator iterator; - BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator)); - BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator)); - - reverse_iterator i = c.rbegin(); - i = c.rend(); - } - private: - C c; - }; - - BOOST_concept(RandomAccessContainer,(C)) - : ReversibleContainer - { - typedef typename C::size_type size_type; - typedef typename C::const_reference const_reference; - - BOOST_CONCEPT_USAGE(RandomAccessContainer) - { - BOOST_CONCEPT_ASSERT(( - RandomAccessIterator< - typename RandomAccessContainer::const_iterator - >)); - - const_constraints(c); - } - private: - void const_constraints(const C& cc) - { - const_reference r = cc[n]; - ignore_unused_variable_warning(r); - } - - C c; - size_type n; - }; - - BOOST_concept(Mutable_RandomAccessContainer,(C)) - : Mutable_ReversibleContainer - , RandomAccessContainer - { - private: - typedef Mutable_RandomAccessContainer self; - public: - BOOST_CONCEPT_USAGE(Mutable_RandomAccessContainer) - { - BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator)); - BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator)); - - typename self::reference r = c[i]; - ignore_unused_variable_warning(r); - } - - private: - typename Mutable_ReversibleContainer::size_type i; - C c; - }; - - // A Sequence is inherently mutable - BOOST_concept(Sequence,(S)) - : Mutable_ForwardContainer - // Matt Austern's book puts DefaultConstructible here, the C++ - // standard places it in Container --JGS - // ... so why aren't we following the standard? --DWA - , DefaultConstructible - { - BOOST_CONCEPT_USAGE(Sequence) - { - S - c(n), - c2(n, t), - c3(first, last); - - c.insert(p, t); - c.insert(p, n, t); - c.insert(p, first, last); - - c.erase(p); - c.erase(p, q); - - typename Sequence::reference r = c.front(); - - ignore_unused_variable_warning(c); - ignore_unused_variable_warning(c2); - ignore_unused_variable_warning(c3); - ignore_unused_variable_warning(r); - const_constraints(c); - } - private: - void const_constraints(const S& c) { - 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; - typename S::iterator p, q; - }; - - BOOST_concept(FrontInsertionSequence,(S)) - : Sequence - { - BOOST_CONCEPT_USAGE(FrontInsertionSequence) - { - c.push_front(t); - c.pop_front(); - } - private: - S c; - typename S::value_type t; - }; - - BOOST_concept(BackInsertionSequence,(S)) - : Sequence - { - BOOST_CONCEPT_USAGE(BackInsertionSequence) - { - c.push_back(t); - c.pop_back(); - typename BackInsertionSequence::reference r = c.back(); - ignore_unused_variable_warning(r); - const_constraints(c); - } - private: - void const_constraints(const S& cc) { - typename BackInsertionSequence::const_reference - r = cc.back(); - ignore_unused_variable_warning(r); - }; - S c; - typename S::value_type t; - }; - - BOOST_concept(AssociativeContainer,(C)) - : ForwardContainer - , DefaultConstructible - { - typedef typename C::key_type key_type; - typedef typename C::key_compare key_compare; - typedef typename C::value_compare value_compare; - typedef typename C::iterator iterator; - - BOOST_CONCEPT_USAGE(AssociativeContainer) - { - i = c.find(k); - r = c.equal_range(k); - c.erase(k); - c.erase(i); - c.erase(r.first, r.second); - const_constraints(c); - BOOST_CONCEPT_ASSERT((BinaryPredicate)); - - typedef typename AssociativeContainer::value_type value_type_; - BOOST_CONCEPT_ASSERT((BinaryPredicate)); - } - - // Redundant with the base concept, but it helps below. - typedef typename C::const_iterator const_iterator; - private: - void const_constraints(const C& cc) - { - ci = cc.find(k); - n = cc.count(k); - cr = cc.equal_range(k); - } - - C c; - iterator i; - std::pair r; - const_iterator ci; - std::pair cr; - typename C::key_type k; - typename C::size_type n; - }; - - BOOST_concept(UniqueAssociativeContainer,(C)) - : AssociativeContainer - { - BOOST_CONCEPT_USAGE(UniqueAssociativeContainer) - { - C c(first, last); - - pos_flag = c.insert(t); - c.insert(first, last); - - ignore_unused_variable_warning(c); - } - private: - std::pair pos_flag; - typename C::value_type t; - typename C::value_type* first, *last; - }; - - BOOST_concept(MultipleAssociativeContainer,(C)) - : AssociativeContainer - { - BOOST_CONCEPT_USAGE(MultipleAssociativeContainer) - { - C c(first, last); - - pos = c.insert(t); - c.insert(first, last); - - ignore_unused_variable_warning(c); - ignore_unused_variable_warning(pos); - } - private: - typename C::iterator pos; - typename C::value_type t; - typename C::value_type* first, *last; - }; - - BOOST_concept(SimpleAssociativeContainer,(C)) - : AssociativeContainer - { - BOOST_CONCEPT_USAGE(SimpleAssociativeContainer) - { - typedef typename C::key_type key_type; - typedef typename C::value_type value_type; - BOOST_MPL_ASSERT((boost::is_same)); - } - }; - - BOOST_concept(PairAssociativeContainer,(C)) - : AssociativeContainer - { - BOOST_CONCEPT_USAGE(PairAssociativeContainer) - { - typedef typename C::key_type key_type; - typedef typename C::value_type value_type; - typedef typename C::mapped_type mapped_type; - typedef std::pair required_value_type; - BOOST_MPL_ASSERT((boost::is_same)); - } - }; - - BOOST_concept(SortedAssociativeContainer,(C)) - : AssociativeContainer - , ReversibleContainer - { - BOOST_CONCEPT_USAGE(SortedAssociativeContainer) - { - C - c(kc), - c2(first, last), - c3(first, last, kc); - - 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(); - vc = c.value_comp(); - - cp = c.upper_bound(k); - cp = c.lower_bound(k); - cr = c.equal_range(k); - } - - private: - typename C::key_compare kc; - typename C::value_compare vc; - typename C::value_type t; - typename C::key_type k; - typedef typename C::iterator iterator; - typedef typename C::const_iterator const_iterator; - - typedef SortedAssociativeContainer self; - iterator p; - const_iterator cp; - std::pair r; - std::pair cr; - typename C::value_type* first, *last; - }; - - // HashedAssociativeContainer - -} // namespace boost - -# include - -#endif // BOOST_CONCEPT_CHECKS_HPP - diff --git a/3rdParty/Boost/boost/config.hpp b/3rdParty/Boost/boost/config.hpp deleted file mode 100644 index 055a278..0000000 --- a/3rdParty/Boost/boost/config.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// Boost config.hpp configuration header file ------------------------------// - -// (C) Copyright John Maddock 2002. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org/libs/config for most recent version. - -// Boost config.hpp policy and rationale documentation has been moved to -// http://www.boost.org/libs/config -// -// CAUTION: This file is intended to be completely stable - -// DO NOT MODIFY THIS FILE! -// - -#ifndef BOOST_CONFIG_HPP -#define BOOST_CONFIG_HPP - -// if we don't have a user config, then use the default location: -#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG) -# define BOOST_USER_CONFIG -#endif -// include it first: -#ifdef BOOST_USER_CONFIG -# include BOOST_USER_CONFIG -#endif - -// if we don't have a compiler config set, try and find one: -#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG) -# include -#endif -// if we have a compiler config, include it now: -#ifdef BOOST_COMPILER_CONFIG -# include BOOST_COMPILER_CONFIG -#endif - -// if we don't have a std library config set, try and find one: -#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) -# include -#endif -// if we have a std library config, include it now: -#ifdef BOOST_STDLIB_CONFIG -# include BOOST_STDLIB_CONFIG -#endif - -// if we don't have a platform config set, try and find one: -#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG) -# include -#endif -// if we have a platform config, include it now: -#ifdef BOOST_PLATFORM_CONFIG -# include BOOST_PLATFORM_CONFIG -#endif - -// get config suffix code: -#include - -#endif // BOOST_CONFIG_HPP - - - - - - - - - - - diff --git a/3rdParty/Boost/boost/config/abi/borland_prefix.hpp b/3rdParty/Boost/boost/config/abi/borland_prefix.hpp deleted file mode 100644 index 49f4249..0000000 --- a/3rdParty/Boost/boost/config/abi/borland_prefix.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// (C) Copyright John Maddock 2003. -// 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) - -// for C++ Builder the following options effect the ABI: -// -// -b (on or off - effect emum sizes) -// -Vx (on or off - empty members) -// -Ve (on or off - empty base classes) -// -aX (alignment - 5 options). -// -pX (Calling convention - 4 options) -// -VmX (member pointer size and layout - 5 options) -// -VC (on or off, changes name mangling) -// -Vl (on or off, changes struct layout). - -// In addition the following warnings are sufficiently annoying (and -// unfixable) to have them turned off by default: -// -// 8027 - functions containing [for|while] loops are not expanded inline -// 8026 - functions taking class by value arguments are not expanded inline - -#pragma nopushoptwarn -# pragma option push -Vx -Ve -a8 -b -pc -Vmv -VC- -Vl- -w-8027 -w-8026 - - - diff --git a/3rdParty/Boost/boost/config/abi/borland_suffix.hpp b/3rdParty/Boost/boost/config/abi/borland_suffix.hpp deleted file mode 100644 index 940535f..0000000 --- a/3rdParty/Boost/boost/config/abi/borland_suffix.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// (C) Copyright John Maddock 2003. -// 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) - -# pragma option pop -#pragma nopushoptwarn - - - - - diff --git a/3rdParty/Boost/boost/config/abi/msvc_prefix.hpp b/3rdParty/Boost/boost/config/abi/msvc_prefix.hpp deleted file mode 100644 index 97f06cd..0000000 --- a/3rdParty/Boost/boost/config/abi/msvc_prefix.hpp +++ /dev/null @@ -1,22 +0,0 @@ -// (C) Copyright John Maddock 2003. -// 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) - -// -// Boost binaries are built with the compiler's default ABI settings, -// if the user changes their default alignment in the VS IDE then their -// code will no longer be binary compatible with the bjam built binaries -// unless this header is included to force Boost code into a consistent ABI. -// -// Note that inclusion of this header is only necessary for libraries with -// separate source, header only libraries DO NOT need this as long as all -// translation units are built with the same options. -// -#if defined(_M_X64) -# pragma pack(push,16) -#else -# pragma pack(push,8) -#endif - - diff --git a/3rdParty/Boost/boost/config/abi/msvc_suffix.hpp b/3rdParty/Boost/boost/config/abi/msvc_suffix.hpp deleted file mode 100644 index a64d783..0000000 --- a/3rdParty/Boost/boost/config/abi/msvc_suffix.hpp +++ /dev/null @@ -1,8 +0,0 @@ -// (C) Copyright John Maddock 2003. -// 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) - -#pragma pack(pop) - - diff --git a/3rdParty/Boost/boost/config/abi_prefix.hpp b/3rdParty/Boost/boost/config/abi_prefix.hpp deleted file mode 100644 index 3b13474..0000000 --- a/3rdParty/Boost/boost/config/abi_prefix.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// abi_prefix header -------------------------------------------------------// - -// (c) Copyright John Maddock 2003 - -// 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). - -#ifndef BOOST_CONFIG_ABI_PREFIX_HPP -# define BOOST_CONFIG_ABI_PREFIX_HPP -#else -# error double inclusion of header boost/config/abi_prefix.hpp is an error -#endif - -#include - -// this must occur after all other includes and before any code appears: -#ifdef BOOST_HAS_ABI_HEADERS -# include BOOST_ABI_PREFIX -#endif - -#if defined( __BORLANDC__ ) -#pragma nopushoptwarn -#endif - diff --git a/3rdParty/Boost/boost/config/abi_suffix.hpp b/3rdParty/Boost/boost/config/abi_suffix.hpp deleted file mode 100644 index 9391616..0000000 --- a/3rdParty/Boost/boost/config/abi_suffix.hpp +++ /dev/null @@ -1,27 +0,0 @@ -// abi_sufffix header -------------------------------------------------------// - -// (c) Copyright John Maddock 2003 - -// 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). - -// This header should be #included AFTER code that was preceded by a #include -// . - -#ifndef BOOST_CONFIG_ABI_PREFIX_HPP -# error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp -#else -# undef BOOST_CONFIG_ABI_PREFIX_HPP -#endif - -// the suffix header occurs after all of our code: -#ifdef BOOST_HAS_ABI_HEADERS -# include BOOST_ABI_SUFFIX -#endif - -#if defined( __BORLANDC__ ) -#pragma nopushoptwarn -#endif - - diff --git a/3rdParty/Boost/boost/config/auto_link.hpp b/3rdParty/Boost/boost/config/auto_link.hpp deleted file mode 100644 index f2eb583..0000000 --- a/3rdParty/Boost/boost/config/auto_link.hpp +++ /dev/null @@ -1,373 +0,0 @@ -// (C) Copyright John Maddock 2003. -// 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) - - /* - * LOCATION: see http://www.boost.org for most recent version. - * FILE auto_link.hpp - * VERSION see - * DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers. - */ - -/************************************************************************* - -USAGE: -~~~~~~ - -Before including this header you must define one or more of define the following macros: - -BOOST_LIB_NAME: Required: A string containing the basename of the library, - for example boost_regex. -BOOST_LIB_TOOLSET: Optional: the base name of the toolset. -BOOST_DYN_LINK: Optional: when set link to dll rather than static library. -BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name - of the library selected (useful for debugging). -BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib, - rather than a mangled-name version. - -These macros will be undef'ed at the end of the header, further this header -has no include guards - so be sure to include it only once from your library! - -Algorithm: -~~~~~~~~~~ - -Libraries for Borland and Microsoft compilers are automatically -selected here, the name of the lib is selected according to the following -formula: - -BOOST_LIB_PREFIX - + BOOST_LIB_NAME - + "_" - + BOOST_LIB_TOOLSET - + BOOST_LIB_THREAD_OPT - + BOOST_LIB_RT_OPT - "-" - + BOOST_LIB_VERSION - -These are defined as: - -BOOST_LIB_PREFIX: "lib" for static libraries otherwise "". - -BOOST_LIB_NAME: The base name of the lib ( for example boost_regex). - -BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc). - -BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing. - -BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used, - contains one or more of the following letters after - a hiphen: - - s static runtime (dynamic if not present). - d debug build (release if not present). - g debug/diagnostic runtime (release if not present). - p STLPort Build. - -BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y. - - -***************************************************************************/ - -#ifdef __cplusplus -# ifndef BOOST_CONFIG_HPP -# include -# endif -#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__) -// -// C language compatability (no, honestly) -// -# define BOOST_MSVC _MSC_VER -# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X) -# define BOOST_DO_STRINGIZE(X) #X -#endif -// -// Only include what follows for known and supported compilers: -// -#if defined(BOOST_MSVC) \ - || defined(__BORLANDC__) \ - || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ - || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) - -#ifndef BOOST_VERSION_HPP -# include -#endif - -#ifndef BOOST_LIB_NAME -# error "Macro BOOST_LIB_NAME not set (internal error)" -#endif - -// -// error check: -// -#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG) -# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors") -# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes") -# error "Incompatible build options" -#endif -// -// select toolset if not defined already: -// -#ifndef BOOST_LIB_TOOLSET -// Note: no compilers before 1200 are supported -#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) - -# ifdef UNDER_CE - // vc6: -# define BOOST_LIB_TOOLSET "evc4" -# else - // vc6: -# define BOOST_LIB_TOOLSET "vc6" -# endif - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300) - - // vc7: -# define BOOST_LIB_TOOLSET "vc7" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310) - - // vc71: -# define BOOST_LIB_TOOLSET "vc71" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400) - - // vc80: -# define BOOST_LIB_TOOLSET "vc80" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1500) - - // vc90: -# define BOOST_LIB_TOOLSET "vc90" - -#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1600) - - // vc10: -# define BOOST_LIB_TOOLSET "vc100" - -#elif defined(__BORLANDC__) - - // CBuilder 6: -# define BOOST_LIB_TOOLSET "bcb" - -#elif defined(__ICL) - - // Intel C++, no version number: -# define BOOST_LIB_TOOLSET "iw" - -#elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF ) - - // Metrowerks CodeWarrior 8.x -# define BOOST_LIB_TOOLSET "cw8" - -#elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF ) - - // Metrowerks CodeWarrior 9.x -# define BOOST_LIB_TOOLSET "cw9" - -#endif -#endif // BOOST_LIB_TOOLSET - -// -// select thread opt: -// -#if defined(_MT) || defined(__MT__) -# define BOOST_LIB_THREAD_OPT "-mt" -#else -# define BOOST_LIB_THREAD_OPT -#endif - -#if defined(_MSC_VER) || defined(__MWERKS__) - -# ifdef _DLL - -# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-gdp" -# elif defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-gdp" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define BOOST_LIB_RT_OPT "-p" -# endif - -# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-gdpn" -# elif defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-gdpn" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define BOOST_LIB_RT_OPT "-pn" -# endif - -# else - -# if defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-gd" -# else -# define BOOST_LIB_RT_OPT -# endif - -# endif - -# else - -# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-sgdp" -# elif defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-sgdp" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define BOOST_LIB_RT_OPT "-sp" -# endif - -# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) - -# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-sgdpn" -# elif defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-sgdpn" -# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# else -# define BOOST_LIB_RT_OPT "-spn" -# endif - -# else - -# if defined(_DEBUG) -# define BOOST_LIB_RT_OPT "-sgd" -# else -# define BOOST_LIB_RT_OPT "-s" -# endif - -# endif - -# endif - -#elif defined(__BORLANDC__) - -// -// figure out whether we want the debug builds or not: -// -#if __BORLANDC__ > 0x561 -#pragma defineonoption BOOST_BORLAND_DEBUG -v -#endif -// -// sanity check: -// -#if defined(__STL_DEBUG) || defined(_STLP_DEBUG) -#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form" -#endif - -# ifdef _RTLDLL - -# ifdef BOOST_BORLAND_DEBUG -# define BOOST_LIB_RT_OPT "-d" -# else -# define BOOST_LIB_RT_OPT -# endif - -# else - -# ifdef BOOST_BORLAND_DEBUG -# define BOOST_LIB_RT_OPT "-sd" -# else -# define BOOST_LIB_RT_OPT "-s" -# endif - -# endif - -#endif - -// -// select linkage opt: -// -#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK) -# define BOOST_LIB_PREFIX -#elif defined(BOOST_DYN_LINK) -# error "Mixing a dll boost library with a static runtime is a really bad idea..." -#else -# define BOOST_LIB_PREFIX "lib" -#endif - -// -// now include the lib: -// -#if defined(BOOST_LIB_NAME) \ - && defined(BOOST_LIB_PREFIX) \ - && defined(BOOST_LIB_TOOLSET) \ - && defined(BOOST_LIB_THREAD_OPT) \ - && defined(BOOST_LIB_RT_OPT) \ - && defined(BOOST_LIB_VERSION) - -#ifndef BOOST_AUTO_LINK_NOMANGLE -# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib") -# ifdef BOOST_LIB_DIAGNOSTIC -# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib") -# endif -#else -# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") -# ifdef BOOST_LIB_DIAGNOSTIC -# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") -# endif -#endif - -#else -# error "some required macros where not defined (internal logic error)." -#endif - - -#endif // _MSC_VER || __BORLANDC__ - -// -// finally undef any macros we may have set: -// -#ifdef BOOST_LIB_PREFIX -# undef BOOST_LIB_PREFIX -#endif -#if defined(BOOST_LIB_NAME) -# undef BOOST_LIB_NAME -#endif -// Don't undef this one: it can be set by the user and should be the -// same for all libraries: -//#if defined(BOOST_LIB_TOOLSET) -//# undef BOOST_LIB_TOOLSET -//#endif -#if defined(BOOST_LIB_THREAD_OPT) -# undef BOOST_LIB_THREAD_OPT -#endif -#if defined(BOOST_LIB_RT_OPT) -# undef BOOST_LIB_RT_OPT -#endif -#if defined(BOOST_LIB_LINK_OPT) -# undef BOOST_LIB_LINK_OPT -#endif -#if defined(BOOST_LIB_DEBUG_OPT) -# undef BOOST_LIB_DEBUG_OPT -#endif -#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/boost/config/compiler/borland.hpp b/3rdParty/Boost/boost/config/compiler/borland.hpp deleted file mode 100644 index c6413b3..0000000 --- a/3rdParty/Boost/boost/config/compiler/borland.hpp +++ /dev/null @@ -1,267 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Aleksey Gurtovoy 2002. -// 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. - -// Borland C++ compiler setup: - -// -// versions check: -// we don't support Borland prior to version 5.4: -#if __BORLANDC__ < 0x540 -# error "Compiler not supported or configured - please reconfigure" -#endif - -// last known compiler version: -#if (__BORLANDC__ > 0x610) -//# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -//# else -//# pragma message( "Unknown compiler version - please run the configure tests and report the results") -//# endif -#elif (__BORLANDC__ == 0x600) -# error "CBuilderX preview compiler is no longer supported" -#endif - -// -// Support macros to help with standard library detection -#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL) -# define BOOST_BCB_WITH_ROGUE_WAVE -#elif __BORLANDC__ < 0x570 -# define BOOST_BCB_WITH_STLPORT -#else -# define BOOST_BCB_WITH_DINKUMWARE -#endif - -// -// Version 5.0 and below: -# if __BORLANDC__ <= 0x0550 -// Borland C++Builder 4 and 5: -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# if __BORLANDC__ == 0x0550 -// Borland C++Builder 5, command-line compiler 5.5: -# define BOOST_NO_OPERATORS_IN_NAMESPACE -# endif -# endif - -// Version 5.51 and below: -#if (__BORLANDC__ <= 0x551) -# define BOOST_NO_CV_SPECIALIZATIONS -# define BOOST_NO_CV_VOID_SPECIALIZATIONS -# define BOOST_NO_DEDUCED_TYPENAME -// workaround for missing WCHAR_MAX/WCHAR_MIN: -#include -#include -#ifndef WCHAR_MAX -# define WCHAR_MAX 0xffff -#endif -#ifndef WCHAR_MIN -# define WCHAR_MIN 0 -#endif -#endif - -// Borland C++ Builder 6 and below: -#if (__BORLANDC__ <= 0x564) -# define BOOST_NO_INTEGRAL_INT64_T - -# ifdef NDEBUG - // fix broken so that Boost.test works: -# include -# undef strcmp -# endif - // fix broken errno declaration: -# include -# ifndef errno -# define errno errno -# endif - -#endif - -// -// new bug in 5.61: -#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580) - // this seems to be needed by the command line compiler, but not the IDE: -# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS -#endif - -// Borland C++ Builder 2006 Update 2 and below: -#if (__BORLANDC__ <= 0x582) -# define BOOST_NO_SFINAE -# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG -# define BOOST_NO_TEMPLATE_TEMPLATES - -# define BOOST_NO_PRIVATE_IN_AGGREGATE - -# ifdef _WIN32 -# define BOOST_NO_SWPRINTF -# elif defined(linux) || defined(__linux__) || defined(__linux) - // we should really be able to do without this - // but the wcs* functions aren't imported into std:: -# define BOOST_NO_STDC_NAMESPACE - // _CPPUNWIND doesn't get automatically set for some reason: -# pragma defineonoption BOOST_CPPUNWIND -x -# endif -#endif - -// Borland C++ Builder 2007 December 2007 Update and below: -//#if (__BORLANDC__ <= 0x593) -#if (__BORLANDC__ <= 0x610) // Beman has asked Alisdair for more info - // we shouldn't really need this - but too many things choke - // without it, this needs more investigation: -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -# define BOOST_NO_IS_ABSTRACT -# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS - -// Temporary workaround -#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif - -// Borland C++ Builder 2008 and below: -#if (__BORLANDC__ <= 0x601) -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# define BOOST_ILLEGAL_CV_REFERENCES -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -# define BOOST_NO_USING_TEMPLATE -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -#endif - -// -// Positive Feature detection -// -// Borland C++ Builder 2008 and below: -#if (__BORLANDC__ >= 0x599) -# pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax -#endif -// -// C++0x Macros: -// -#if defined( BOOST_CODEGEAR_0X_SUPPORT ) && (__BORLANDC__ >= 0x610) -# define BOOST_HAS_ALIGNOF -# define BOOST_HAS_CHAR16_T -# define BOOST_HAS_CHAR32_T -# define BOOST_HAS_DECLTYPE -# define BOOST_HAS_EXPLICIT_CONVERSION_OPS -# define BOOST_HAS_REF_QUALIFIER -# define BOOST_HAS_RVALUE_REFS -# define BOOST_HAS_STATIC_ASSERT - -# define BOOST_NO_EXTERN_TEMPLATE -# define BOOST_NO_SCOPED_ENUMS -# define BOOST_NO_VARIADIC_TEMPLATES -# define BOOST_NO_CONSTEXPR -# define BOOST_NO_DEFAULTED_FUNCTIONS -# define BOOST_NO_DELETED_FUNCTIONS -# define BOOST_NO_RAW_LITERALS -# define BOOST_NO_UNICODE_LITERALS // UTF-8 still not supported -#else -# define BOOST_NO_CHAR16_T -# define BOOST_NO_CHAR32_T -# define BOOST_NO_DECLTYPE -# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_EXTERN_TEMPLATE -# define BOOST_NO_SCOPED_ENUMS -# define BOOST_NO_STATIC_ASSERT -# define BOOST_NO_RVALUE_REFERENCES -# define BOOST_NO_VARIADIC_TEMPLATES -# define BOOST_NO_CONSTEXPR -# define BOOST_NO_DEFAULTED_FUNCTIONS -# define BOOST_NO_DELETED_FUNCTIONS -# define BOOST_NO_RAW_LITERALS -# define BOOST_NO_UNICODE_LITERALS -#endif - -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#define BOOST_NO_INITIALIZER_LISTS - -#if __BORLANDC__ >= 0x590 -# define BOOST_HAS_TR1_HASH - -# define BOOST_HAS_MACRO_USE_FACET -#endif - -// -// Post 0x561 we have long long and stdint.h: -#if __BORLANDC__ >= 0x561 -# ifndef __NO_LONG_LONG -# define BOOST_HAS_LONG_LONG -# else -# define BOOST_NO_LONG_LONG -# endif - // On non-Win32 platforms let the platform config figure this out: -# ifdef _WIN32 -# define BOOST_HAS_STDINT_H -# endif -#endif - -// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is -// defined, then we have 0x560 or greater with the Rogue Wave implementation -// which presumably has the std::DBL_MAX bug. -#if defined( BOOST_BCB_WITH_ROGUE_WAVE ) -// is partly broken, some macros define symbols that are really in -// namespace std, so you end up having to use illegal constructs like -// std::DBL_MAX, as a fix we'll just include float.h and have done with: -#include -#endif -// -// __int64: -// -#if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__) -# define BOOST_HAS_MS_INT64 -#endif -// -// check for exception handling support: -// -#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif -// -// all versions have a : -// -#ifndef __STRICT_ANSI__ -# define BOOST_HAS_DIRENT_H -#endif -// -// all versions support __declspec: -// -#ifndef __STRICT_ANSI__ -# define BOOST_HAS_DECLSPEC -#endif -// -// ABI fixing headers: -// -#if __BORLANDC__ < 0x600 // not implemented for version 6 compiler yet -#ifndef BOOST_ABI_PREFIX -# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp" -#endif -#ifndef BOOST_ABI_SUFFIX -# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp" -#endif -#endif -// -// Disable Win32 support in ANSI mode: -// -#if __BORLANDC__ < 0x600 -# pragma defineonoption BOOST_DISABLE_WIN32 -A -#elif defined(__STRICT_ANSI__) -# define BOOST_DISABLE_WIN32 -#endif -// -// MSVC compatibility mode does some nasty things: -// TODO: look up if this doesn't apply to the whole 12xx range -// -#if defined(_MSC_VER) && (_MSC_VER <= 1200) -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -# define BOOST_NO_VOID_RETURNS -#endif - -#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__) - - - diff --git a/3rdParty/Boost/boost/config/compiler/codegear.hpp b/3rdParty/Boost/boost/config/compiler/codegear.hpp deleted file mode 100644 index 803d17a..0000000 --- a/3rdParty/Boost/boost/config/compiler/codegear.hpp +++ /dev/null @@ -1,153 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Aleksey Gurtovoy 2002. -// 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. - -// CodeGear C++ compiler setup: - -#if !defined( BOOST_WITH_CODEGEAR_WARNINGS ) -// these warnings occur frequently in optimized template code -# pragma warn -8004 // var assigned value, but never used -# pragma warn -8008 // condition always true/false -# pragma warn -8066 // dead code can never execute -# pragma warn -8104 // static members with ctors not threadsafe -# pragma warn -8105 // reference member in class without ctors -#endif -// -// versions check: -// last known and checked version is 0x610 -#if (__CODEGEARC__ > 0x610) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# else -# pragma message( "Unknown compiler version - please run the configure tests and report the results") -# endif -#endif - -// CodeGear C++ Builder 2009 -#if (__CODEGEARC__ <= 0x610) -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_PRIVATE_IN_AGGREGATE -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -# define BOOST_NO_USING_TEMPLATE - // we shouldn't really need this - but too many things choke - // without it, this needs more investigation: -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type -# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member - -// Temporary hack, until specific MPL preprocessed headers are generated -# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -# ifdef NDEBUG - // fix broken so that Boost.test works: -# include -# undef strcmp -# endif - // fix broken errno declaration: -# include -# ifndef errno -# define errno errno -# endif - -#endif - -// -// C++0x macros: -// -#define BOOST_HAS_CHAR16_T -#define BOOST_HAS_CHAR32_T -#define BOOST_HAS_LONG_LONG -// #define BOOST_HAS_ALIGNOF -#define BOOST_HAS_DECLTYPE -#define BOOST_HAS_EXPLICIT_CONVERSION_OPS -// #define BOOST_HAS_RVALUE_REFS -#define BOOST_HAS_SCOPED_ENUM -// #define BOOST_HAS_STATIC_ASSERT -#define BOOST_HAS_STD_TYPE_TRAITS - -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS - -// -// TR1 macros: -// -#define BOOST_HAS_TR1_HASH -#define BOOST_HAS_TR1_TYPE_TRAITS -#define BOOST_HAS_TR1_UNORDERED_MAP -#define BOOST_HAS_TR1_UNORDERED_SET - -#define BOOST_HAS_MACRO_USE_FACET - -#define BOOST_NO_INITIALIZER_LISTS - -// On non-Win32 platforms let the platform config figure this out: -#ifdef _WIN32 -# define BOOST_HAS_STDINT_H -#endif - -// -// __int64: -// -#if !defined(__STRICT_ANSI__) -# define BOOST_HAS_MS_INT64 -#endif -// -// check for exception handling support: -// -#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif -// -// all versions have a : -// -#if !defined(__STRICT_ANSI__) -# define BOOST_HAS_DIRENT_H -#endif -// -// all versions support __declspec: -// -#if !defined(__STRICT_ANSI__) -# define BOOST_HAS_DECLSPEC -#endif -// -// ABI fixing headers: -// -#ifndef BOOST_ABI_PREFIX -# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp" -#endif -#ifndef BOOST_ABI_SUFFIX -# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp" -#endif -// -// Disable Win32 support in ANSI mode: -// -# pragma defineonoption BOOST_DISABLE_WIN32 -A -// -// MSVC compatibility mode does some nasty things: -// TODO: look up if this doesn't apply to the whole 12xx range -// -#if defined(_MSC_VER) && (_MSC_VER <= 1200) -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -# define BOOST_NO_VOID_RETURNS -#endif - -#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__) - diff --git a/3rdParty/Boost/boost/config/compiler/comeau.hpp b/3rdParty/Boost/boost/config/compiler/comeau.hpp deleted file mode 100644 index 278222d..0000000 --- a/3rdParty/Boost/boost/config/compiler/comeau.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Douglas Gregor 2001. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright Aleksey Gurtovoy 2003. -// (C) Copyright Beman Dawes 2003. -// (C) Copyright Jens Maurer 2003. -// 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. - -// Comeau C++ compiler setup: - -#include "boost/config/compiler/common_edg.hpp" - -#if (__COMO_VERSION__ <= 4245) - -# if defined(_MSC_VER) && _MSC_VER <= 1300 -# if _MSC_VER > 100 - // only set this in non-strict mode: -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -# endif -# endif - -// Void returns don't work when emulating VC 6 (Peter Dimov) -// TODO: look up if this doesn't apply to the whole 12xx range -# if defined(_MSC_VER) && (_MSC_VER < 1300) -# define BOOST_NO_VOID_RETURNS -# endif - -#endif // version 4245 - -// -// enable __int64 support in VC emulation mode -// -# if defined(_MSC_VER) && (_MSC_VER >= 1200) -# define BOOST_HAS_MS_INT64 -# endif - -#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__) - -// -// versions check: -// we don't know Comeau prior to version 4245: -#if __COMO_VERSION__ < 4245 -# error "Compiler not configured - please reconfigure" -#endif -// -// last known and checked version is 4245: -#if (__COMO_VERSION__ > 4245) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - - diff --git a/3rdParty/Boost/boost/config/compiler/common_edg.hpp b/3rdParty/Boost/boost/config/compiler/common_edg.hpp deleted file mode 100644 index 3e62bb0..0000000 --- a/3rdParty/Boost/boost/config/compiler/common_edg.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Jens Maurer 2001. -// (C) Copyright David Abrahams 2002. -// (C) Copyright Aleksey Gurtovoy 2002. -// (C) Copyright Markus Schoepflin 2005. -// 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. - -// -// Options common to all edg based compilers. -// -// This is included from within the individual compiler mini-configs. - -#ifndef __EDG_VERSION__ -# error This file requires that __EDG_VERSION__ be defined. -#endif - -#if (__EDG_VERSION__ <= 238) -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_SFINAE -#endif - -#if (__EDG_VERSION__ <= 240) -# define BOOST_NO_VOID_RETURNS -#endif - -#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -#endif - -#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES) -# define BOOST_NO_TEMPLATE_TEMPLATES -#endif - -#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT) -# define BOOST_NO_IS_ABSTRACT -#endif - -#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#endif - -#if (__EDG_VERSION__ <= 310) || !defined(BOOST_STRICT_CONFIG) -// No support for initializer lists -# define BOOST_NO_INITIALIZER_LISTS -#endif - -// See also kai.hpp which checks a Kai-specific symbol for EH -# if !defined(__KCC) && !defined(__EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -# endif - -# if !defined(__NO_LONG_LONG) -# define BOOST_HAS_LONG_LONG -# else -# define BOOST_NO_LONG_LONG -# endif - -// -// C++0x features -// -// See above for BOOST_NO_LONG_LONG -// -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#ifdef c_plusplus -// EDG has "long long" in non-strict mode -// However, some libraries have insufficient "long long" support -// #define BOOST_HAS_LONG_LONG -#endif - - - diff --git a/3rdParty/Boost/boost/config/compiler/compaq_cxx.hpp b/3rdParty/Boost/boost/config/compiler/compaq_cxx.hpp deleted file mode 100644 index b44486c..0000000 --- a/3rdParty/Boost/boost/config/compiler/compaq_cxx.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// 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. - -// Tru64 C++ compiler setup (now HP): - -#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER) - -#include "boost/config/compiler/common_edg.hpp" - -// -// versions check: -// Nothing to do here? - - - diff --git a/3rdParty/Boost/boost/config/compiler/digitalmars.hpp b/3rdParty/Boost/boost/config/compiler/digitalmars.hpp deleted file mode 100644 index 5984312..0000000 --- a/3rdParty/Boost/boost/config/compiler/digitalmars.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (C) Christof Meerwald 2003 -// Copyright (C) Dan Watkins 2003 -// -// 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) - -// Digital Mars C++ compiler setup: -#define BOOST_COMPILER __DMC_VERSION_STRING__ - -#define BOOST_HAS_LONG_LONG -#define BOOST_HAS_PRAGMA_ONCE - -#if (__DMC__ <= 0x833) -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#define BOOST_NO_TEMPLATE_TEMPLATES -#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING -#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS -#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -#endif -#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG) -#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -#define BOOST_NO_OPERATORS_IN_NAMESPACE -#define BOOST_NO_UNREACHABLE_RETURN_DETECTION -#define BOOST_NO_SFINAE -#define BOOST_NO_USING_TEMPLATE -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#define BOOST_NO_INITIALIZER_LISTS -#endif - -// -// has macros: -#if (__DMC__ >= 0x840) -#define BOOST_HAS_DIRENT_H -#define BOOST_HAS_STDINT_H -#define BOOST_HAS_WINTHREADS -#endif - -#if (__DMC__ >= 0x847) -#define BOOST_HAS_EXPM1 -#define BOOST_HAS_LOG1P -#endif - -// -// Is this really the best way to detect whether the std lib is in namespace std? -// -#include -#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD) -# define BOOST_NO_STDC_NAMESPACE -#endif - - -// check for exception handling support: -#ifndef _CPPUNWIND -# define BOOST_NO_EXCEPTIONS -#endif - -// -// C++0x features -// -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -#if __DMC__ < 0x800 -#error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is ...: -#if (__DMC__ > 0x848) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif diff --git a/3rdParty/Boost/boost/config/compiler/gcc.hpp b/3rdParty/Boost/boost/config/compiler/gcc.hpp deleted file mode 100644 index 62bf45e..0000000 --- a/3rdParty/Boost/boost/config/compiler/gcc.hpp +++ /dev/null @@ -1,177 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001 - 2002. -// (C) Copyright Jens Maurer 2001 - 2002. -// (C) Copyright Beman Dawes 2001 - 2003. -// (C) Copyright Douglas Gregor 2002. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Synge Todo 2003. -// 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. - -// GNU C++ compiler setup: - -#if __GNUC__ < 3 -# if __GNUC_MINOR__ == 91 - // egcs 1.1 won't parse shared_ptr.hpp without this: -# define BOOST_NO_AUTO_PTR -# endif -# if __GNUC_MINOR__ < 95 - // - // Prior to gcc 2.95 member templates only partly - // work - define BOOST_MSVC6_MEMBER_TEMPLATES - // instead since inline member templates mostly work. - // -# define BOOST_NO_MEMBER_TEMPLATES -# if __GNUC_MINOR__ >= 9 -# define BOOST_MSVC6_MEMBER_TEMPLATES -# endif -# endif - -# if __GNUC_MINOR__ < 96 -# define BOOST_NO_SFINAE -# endif - -# if __GNUC_MINOR__ <= 97 -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_OPERATORS_IN_NAMESPACE -# endif - -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# define BOOST_NO_IS_ABSTRACT -#elif __GNUC__ == 3 -# if defined (__PATHSCALE__) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -# define BOOST_NO_IS_ABSTRACT -# endif - // - // gcc-3.x problems: - // - // Bug specific to gcc 3.1 and 3.2: - // -# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2)) -# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -# endif -# if __GNUC_MINOR__ < 4 -# define BOOST_NO_IS_ABSTRACT -# endif -#endif -#if __GNUC__ < 4 -// -// All problems to gcc-3.x and earlier here: -// -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -#ifndef __EXCEPTIONS -# define BOOST_NO_EXCEPTIONS -#endif - - -// -// Threading support: Turn this on unconditionally here (except for -// those platforms where we can know for sure). It will get turned off again -// later if no threading API is detected. -// -#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__) -# define BOOST_HAS_THREADS -#endif - -// -// gcc has "long long" -// -#define BOOST_HAS_LONG_LONG - -// -// gcc implements the named return value optimization since version 3.1 -// -#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 ) -#define BOOST_HAS_NRVO -#endif -// -// RTTI and typeinfo detection is possible post gcc-4.3: -// -#if __GNUC__ * 100 + __GNUC_MINOR__ >= 403 -# ifndef __GXX_RTTI -# define BOOST_NO_TYPEID -# define BOOST_NO_RTTI -# endif -#endif - -// -// C++0x features -// - -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_UNICODE_LITERALS -// See below for BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS - -#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__) -// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are -// passed on the command line, which in turn defines -// __GXX_EXPERIMENTAL_CXX0X__. -# define BOOST_HAS_DECLTYPE -# define BOOST_HAS_RVALUE_REFS -# define BOOST_HAS_STATIC_ASSERT -# define BOOST_HAS_VARIADIC_TMPL -#else -# define BOOST_NO_DECLTYPE -# define BOOST_NO_RVALUE_REFERENCES -# define BOOST_NO_STATIC_ASSERT - -// Variadic templates compiler: -// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html -# ifdef __VARIADIC_TEMPLATES -# define BOOST_HAS_VARIADIC_TMPL -# else -# define BOOST_NO_VARIADIC_TEMPLATES -# endif -#endif - -#if !defined(__GXX_EXPERIMENTAL_CXX0X__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) -# define BOOST_NO_INITIALIZER_LISTS -# define BOOST_NO_AUTO_DECLARATIONS -#endif - -// ConceptGCC compiler: -// http://www.generic-programming.org/software/ConceptGCC/ -#ifdef __GXX_CONCEPTS__ -# define BOOST_HAS_CONCEPTS -# define BOOST_COMPILER "ConceptGCC version " __VERSION__ -#endif - -#ifndef BOOST_COMPILER -# define BOOST_COMPILER "GNU C++ version " __VERSION__ -#endif - -// -// versions check: -// we don't know gcc prior to version 2.90: -#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90) -# error "Compiler not configured - please reconfigure" -#endif -// -// last known and checked version is 4.3 (Pre-release): -#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 3)) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# else -// we don't emit warnings here anymore since there are no defect macros defined for -// gcc post 3.4, so any failures are gcc regressions... -//# warning "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - diff --git a/3rdParty/Boost/boost/config/compiler/gcc_xml.hpp b/3rdParty/Boost/boost/config/compiler/gcc_xml.hpp deleted file mode 100644 index 5dd67c7..0000000 --- a/3rdParty/Boost/boost/config/compiler/gcc_xml.hpp +++ /dev/null @@ -1,30 +0,0 @@ -// (C) Copyright John Maddock 2006. -// 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. - -// GCC-XML C++ compiler setup: - -# if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3)) -# define BOOST_NO_IS_ABSTRACT -# endif - -// -// Threading support: Turn this on unconditionally here (except for -// those platforms where we can know for sure). It will get turned off again -// later if no threading API is detected. -// -#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__) -# define BOOST_HAS_THREADS -#endif - -// -// gcc has "long long" -// -#define BOOST_HAS_LONG_LONG - -#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ - - diff --git a/3rdParty/Boost/boost/config/compiler/greenhills.hpp b/3rdParty/Boost/boost/config/compiler/greenhills.hpp deleted file mode 100644 index 038b6b2..0000000 --- a/3rdParty/Boost/boost/config/compiler/greenhills.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2001. -// 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. - -// Greenhills C++ compiler setup: - -#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs) - -#include "boost/config/compiler/common_edg.hpp" - -// -// versions check: -// we don't support Greenhills prior to version 0: -#if __ghs < 0 -# error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 0: -#if (__ghs > 0) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - diff --git a/3rdParty/Boost/boost/config/compiler/hp_acc.hpp b/3rdParty/Boost/boost/config/compiler/hp_acc.hpp deleted file mode 100644 index 0c3cc9a..0000000 --- a/3rdParty/Boost/boost/config/compiler/hp_acc.hpp +++ /dev/null @@ -1,117 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001 - 2003. -// (C) Copyright Aleksey Gurtovoy 2002. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Toon Knapen 2003. -// (C) Copyright Boris Gubenko 2006 - 2007. -// 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. - -// HP aCC C++ compiler setup: - -#if defined(__EDG__) -#include "boost/config/compiler/common_edg.hpp" -#endif - -#if (__HP_aCC <= 33100) -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_OPERATORS_IN_NAMESPACE -# if !defined(_NAMESPACE_STD) -# define BOOST_NO_STD_LOCALE -# define BOOST_NO_STRINGSTREAM -# endif -#endif - -#if (__HP_aCC <= 33300) -// member templates are sufficiently broken that we disable them for now -# define BOOST_NO_MEMBER_TEMPLATES -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -#endif - -#if (__HP_aCC <= 38000) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -#if (__HP_aCC > 50000) && (__HP_aCC < 60000) -# define BOOST_NO_UNREACHABLE_RETURN_DETECTION -# define BOOST_NO_TEMPLATE_TEMPLATES -# define BOOST_NO_SWPRINTF -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# define BOOST_NO_IS_ABSTRACT -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -#endif - -// optional features rather than defects: -#if (__HP_aCC >= 33900) -# define BOOST_HAS_LONG_LONG -# define BOOST_HAS_PARTIAL_STD_ALLOCATOR -#endif - -#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 ) -# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD -#endif - -// This macro should not be defined when compiling in strict ansi -// mode, but, currently, we don't have the ability to determine -// what standard mode we are compiling with. Some future version -// of aCC6 compiler will provide predefined macros reflecting the -// compilation options, including the standard mode. -#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98)) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC) - -// -// versions check: -// we don't support HP aCC prior to version 33000: -#if __HP_aCC < 33000 -# error "Compiler not supported or configured - please reconfigure" -#endif - -// -// Extended checks for supporting aCC on PA-RISC -#if __HP_aCC > 30000 && __HP_aCC < 50000 -# if __HP_aCC < 38000 - // versions prior to version A.03.80 not supported -# error "Compiler version not supported - version A.03.80 or higher is required" -# elif !defined(__hpxstd98) - // must compile using the option +hpxstd98 with version A.03.80 and above -# error "Compiler option '+hpxstd98' is required for proper support" -# endif //PA-RISC -#endif - -// -// C++0x features -// -// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG -// -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS - -// -// last known and checked version for HP-UX/ia64 is 61300 -// last known and checked version for PA-RISC is 38000 -#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98))) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif diff --git a/3rdParty/Boost/boost/config/compiler/intel.hpp b/3rdParty/Boost/boost/config/compiler/intel.hpp deleted file mode 100644 index e4d1b07..0000000 --- a/3rdParty/Boost/boost/config/compiler/intel.hpp +++ /dev/null @@ -1,195 +0,0 @@ -// (C) Copyright John Maddock 2001-8. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright Jens Maurer 2001. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Aleksey Gurtovoy 2002 - 2003. -// (C) Copyright Guillaume Melquiond 2002 - 2003. -// (C) Copyright Beman Dawes 2003. -// (C) Copyright Martin Wille 2003. -// 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. - -// Intel compiler setup: - -#include "boost/config/compiler/common_edg.hpp" - -#if defined(__INTEL_COMPILER) -# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER -#elif defined(__ICL) -# define BOOST_INTEL_CXX_VERSION __ICL -#elif defined(__ICC) -# define BOOST_INTEL_CXX_VERSION __ICC -#elif defined(__ECC) -# define BOOST_INTEL_CXX_VERSION __ECC -#endif - -#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) -#define BOOST_INTEL BOOST_INTEL_CXX_VERSION - -#if defined(_WIN32) || defined(_WIN64) -# define BOOST_INTEL_WIN BOOST_INTEL -#else -# define BOOST_INTEL_LINUX BOOST_INTEL -#endif - -#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER) -# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -# define BOOST_NO_TEMPLATE_TEMPLATES -#endif - -#if (BOOST_INTEL_CXX_VERSION <= 600) - -# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov) - -// Boost libraries assume strong standard conformance unless otherwise -// indicated by a config macro. As configured by Intel, the EDG front-end -// requires certain compiler options be set to achieve that strong conformance. -// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt) -// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for -// details as they apply to particular versions of the compiler. When the -// compiler does not predefine a macro indicating if an option has been set, -// this config file simply assumes the option has been set. -// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if -// the compiler option is not enabled. - -# define BOOST_NO_SWPRINTF -# endif - -// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov) - -# if defined(_MSC_VER) && (_MSC_VER <= 1200) -# define BOOST_NO_VOID_RETURNS -# define BOOST_NO_INTEGRAL_INT64_T -# endif - -#endif - -#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32) -# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS -#endif - -// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864 -#if BOOST_INTEL_CXX_VERSION < 600 -# define BOOST_NO_INTRINSIC_WCHAR_T -#else -// We should test the macro _WCHAR_T_DEFINED to check if the compiler -// supports wchar_t natively. *BUT* there is a problem here: the standard -// headers define this macro if they typedef wchar_t. Anyway, we're lucky -// because they define it without a value, while Intel C++ defines it -// to 1. So we can check its value to see if the macro was defined natively -// or not. -// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T -// is used instead. -# if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0) -# define BOOST_NO_INTRINSIC_WCHAR_T -# endif -#endif - -#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) -// -// Figure out when Intel is emulating this gcc bug -// (All Intel versions prior to 9.0.26, and versions -// later than that if they are set up to emulate gcc 3.2 -// or earlier): -// -# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912) -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# endif -#endif -#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1100) -// GCC or VC emulation: -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif -// -// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T -// set correctly, if we don't do this now, we will get errors later -// in type_traits code among other things, getting this correct -// for the Intel compiler is actually remarkably fragile and tricky: -// -#if defined(BOOST_NO_INTRINSIC_WCHAR_T) -#include -template< typename T > struct assert_no_intrinsic_wchar_t; -template<> struct assert_no_intrinsic_wchar_t { typedef void type; }; -// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T -// where it is defined above: -typedef assert_no_intrinsic_wchar_t::type assert_no_intrinsic_wchar_t_; -#else -template< typename T > struct assert_intrinsic_wchar_t; -template<> struct assert_intrinsic_wchar_t {}; -// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line: -template<> struct assert_intrinsic_wchar_t {}; -#endif - -#if _MSC_VER+0 >= 1000 -# if _MSC_VER >= 1200 -# define BOOST_HAS_MS_INT64 -# endif -# define BOOST_NO_SWPRINTF -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#elif defined(_WIN32) -# define BOOST_DISABLE_WIN32 -#endif - -// I checked version 6.0 build 020312Z, it implements the NRVO. -// Correct this as you find out which version of the compiler -// implemented the NRVO first. (Daniel Frey) -#if (BOOST_INTEL_CXX_VERSION >= 600) -# define BOOST_HAS_NRVO -#endif - -// -// versions check: -// we don't support Intel prior to version 5.0: -#if BOOST_INTEL_CXX_VERSION < 500 -# error "Compiler not supported or configured - please reconfigure" -#endif - -// Intel on MacOS requires -#if defined(__APPLE__) && defined(__INTEL_COMPILER) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -// Intel on Altix Itanium -#if defined(__itanium__) && defined(__INTEL_COMPILER) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#endif - -// -// C++0x features -// -// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG -// -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS - -// -// last known and checked version: -#if (BOOST_INTEL_CXX_VERSION > 1100) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# elif defined(_MSC_VER) -// -// We don't emit this warning any more, since we have so few -// defect macros set anyway (just the one). -// -//# pragma message("Unknown compiler version - please run the configure tests and report the results") -# endif -#endif - diff --git a/3rdParty/Boost/boost/config/compiler/kai.hpp b/3rdParty/Boost/boost/config/compiler/kai.hpp deleted file mode 100644 index de16f1a..0000000 --- a/3rdParty/Boost/boost/config/compiler/kai.hpp +++ /dev/null @@ -1,35 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright David Abrahams 2002. -// (C) Copyright Aleksey Gurtovoy 2002. -// 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. - -// Kai C++ compiler setup: - -#include "boost/config/compiler/common_edg.hpp" - -# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG) - // at least on Sun, the contents of is not in namespace std -# define BOOST_NO_STDC_NAMESPACE -# endif - -// see also common_edg.hpp which needs a special check for __KCC -# if !defined(_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -# endif - -#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION) - -// -// last known and checked version is 4001: -#if (__KCC_VERSION > 4001) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - diff --git a/3rdParty/Boost/boost/config/compiler/metrowerks.hpp b/3rdParty/Boost/boost/config/compiler/metrowerks.hpp deleted file mode 100644 index 5f6e0fe..0000000 --- a/3rdParty/Boost/boost/config/compiler/metrowerks.hpp +++ /dev/null @@ -1,131 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Darin Adler 2001. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright David Abrahams 2001 - 2002. -// (C) Copyright Beman Dawes 2001 - 2003. -// (C) Copyright Stefan Slapeta 2004. -// 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. - -// Metrowerks C++ compiler setup: - -// locale support is disabled when linking with the dynamic runtime -# ifdef _MSL_NO_LOCALE -# define BOOST_NO_STD_LOCALE -# endif - -# if __MWERKS__ <= 0x2301 // 5.3 -# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING -# define BOOST_NO_POINTER_TO_MEMBER_CONST -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD -# endif - -# if __MWERKS__ <= 0x2401 // 6.2 -//# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING -# endif - -# if(__MWERKS__ <= 0x2407) // 7.x -# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS -# define BOOST_NO_UNREACHABLE_RETURN_DETECTION -# endif - -# if(__MWERKS__ <= 0x3003) // 8.x -# define BOOST_NO_SFINAE -# endif - -// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last -// tested version *only*: -# if(__MWERKS__ <= 0x3206) || !defined(BOOST_STRICT_CONFIG) // 9.5 -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_IS_ABSTRACT -# define BOOST_NO_INITIALIZER_LISTS -# endif - -#if !__option(wchar_type) -# define BOOST_NO_INTRINSIC_WCHAR_T -#endif - -#if !__option(exceptions) -# define BOOST_NO_EXCEPTIONS -#endif - -#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh) -# if __MWERKS__ == 0x3000 -# define BOOST_COMPILER_VERSION 8.0 -# elif __MWERKS__ == 0x3001 -# define BOOST_COMPILER_VERSION 8.1 -# elif __MWERKS__ == 0x3002 -# define BOOST_COMPILER_VERSION 8.2 -# elif __MWERKS__ == 0x3003 -# define BOOST_COMPILER_VERSION 8.3 -# elif __MWERKS__ == 0x3200 -# define BOOST_COMPILER_VERSION 9.0 -# elif __MWERKS__ == 0x3201 -# define BOOST_COMPILER_VERSION 9.1 -# elif __MWERKS__ == 0x3202 -# define BOOST_COMPILER_VERSION 9.2 -# elif __MWERKS__ == 0x3204 -# define BOOST_COMPILER_VERSION 9.3 -# elif __MWERKS__ == 0x3205 -# define BOOST_COMPILER_VERSION 9.4 -# elif __MWERKS__ == 0x3206 -# define BOOST_COMPILER_VERSION 9.5 -# else -# define BOOST_COMPILER_VERSION __MWERKS__ -# endif -#else -# define BOOST_COMPILER_VERSION __MWERKS__ -#endif - -// -// C++0x features -// -// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG -// -#if __MWERKS__ > 0x3206 && __option(rvalue_refs) -# define BOOST_HAS_RVALUE_REFS -#else -# define BOOST_NO_RVALUE_REFERENCES -#endif -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS - -#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) - -// -// versions check: -// we don't support Metrowerks prior to version 5.3: -#if __MWERKS__ < 0x2301 -# error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version: -#if (__MWERKS__ > 0x3205) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - - - - - - diff --git a/3rdParty/Boost/boost/config/compiler/mpw.hpp b/3rdParty/Boost/boost/config/compiler/mpw.hpp deleted file mode 100644 index 1d72406..0000000 --- a/3rdParty/Boost/boost/config/compiler/mpw.hpp +++ /dev/null @@ -1,75 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Aleksey Gurtovoy 2002. -// 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. - -// MPW C++ compilers setup: - -# if defined(__SC__) -# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__) -# elif defined(__MRC__) -# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__) -# else -# error "Using MPW compiler configuration by mistake. Please update." -# endif - -// -// MPW 8.90: -// -#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG) -# define BOOST_NO_CV_SPECIALIZATIONS -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_NO_INTRINSIC_WCHAR_T -# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# define BOOST_NO_USING_TEMPLATE - -# define BOOST_NO_CWCHAR -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS - -# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */ - -# define BOOST_NO_INITIALIZER_LISTS -#endif - -// -// C++0x features -// -// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG -// -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS - -// -// versions check: -// we don't support MPW prior to version 8.9: -#if MPW_CPLUS < 0x890 -# error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 0x890: -#if (MPW_CPLUS > 0x890) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - - diff --git a/3rdParty/Boost/boost/config/compiler/pgi.hpp b/3rdParty/Boost/boost/config/compiler/pgi.hpp deleted file mode 100644 index ce09e2a..0000000 --- a/3rdParty/Boost/boost/config/compiler/pgi.hpp +++ /dev/null @@ -1,56 +0,0 @@ -// (C) Copyright Noel Belcourt 2007. -// 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. - -// PGI C++ compiler setup: - -#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__ -#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) - -// -// Threading support: -// Turn this on unconditionally here, it will get turned off again later -// if no threading API is detected. -// - -#if (__PGIC__ >= 7) - -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_NO_SWPRINTF -#define BOOST_NO_INITIALIZER_LISTS - -#else - -# error "Pgi compiler not configured - please reconfigure" - -#endif -// -// C++0x features -// -// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG -// -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS - -// -// version check: -// probably nothing to do here? - diff --git a/3rdParty/Boost/boost/config/compiler/sgi_mipspro.hpp b/3rdParty/Boost/boost/config/compiler/sgi_mipspro.hpp deleted file mode 100644 index f6a86ad..0000000 --- a/3rdParty/Boost/boost/config/compiler/sgi_mipspro.hpp +++ /dev/null @@ -1,52 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// 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. - -// SGI C++ compiler setup: - -#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) - -#include "boost/config/compiler/common_edg.hpp" - -// -// Threading support: -// Turn this on unconditionally here, it will get turned off again later -// if no threading API is detected. -// -#define BOOST_HAS_THREADS -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP - -#undef BOOST_NO_SWPRINTF -#undef BOOST_DEDUCED_TYPENAME - -#define BOOST_NO_INITIALIZER_LISTS -// -// C++0x features -// -// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG -// -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS - -// -// version check: -// probably nothing to do here? - - diff --git a/3rdParty/Boost/boost/config/compiler/sunpro_cc.hpp b/3rdParty/Boost/boost/config/compiler/sunpro_cc.hpp deleted file mode 100644 index 6553a46..0000000 --- a/3rdParty/Boost/boost/config/compiler/sunpro_cc.hpp +++ /dev/null @@ -1,124 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Jens Maurer 2001 - 2003. -// (C) Copyright Peter Dimov 2002. -// (C) Copyright Aleksey Gurtovoy 2002 - 2003. -// (C) Copyright David Abrahams 2002. -// 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. - -// Sun C++ compiler setup: - -# if __SUNPRO_CC <= 0x500 -# define BOOST_NO_MEMBER_TEMPLATES -# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING -# endif - -# if (__SUNPRO_CC <= 0x520) - // - // Sunpro 5.2 and earler: - // - // although sunpro 5.2 supports the syntax for - // inline initialization it often gets the value - // wrong, especially where the value is computed - // from other constants (J Maddock 6th May 2001) -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION - - // Although sunpro 5.2 supports the syntax for - // partial specialization, it often seems to - // bind to the wrong specialization. Better - // to disable it until suppport becomes more stable - // (J Maddock 6th May 2001). -# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# endif - -# if (__SUNPRO_CC <= 0x530) - // Requesting debug info (-g) with Boost.Python results - // in an internal compiler error for "static const" - // initialized in-class. - // >> Assertion: (../links/dbg_cstabs.cc, line 611) - // while processing ../test.cpp at line 0. - // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002) -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION - - // SunPro 5.3 has better support for partial specialization, - // but breaks when compiling std::less > - // (Jens Maurer 4 Nov 2001). - - // std::less specialization fixed as reported by George - // Heintzelman; partial specialization re-enabled - // (Peter Dimov 17 Jan 2002) - -//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - // integral constant expressions with 64 bit numbers fail -# define BOOST_NO_INTEGRAL_INT64_T -# endif - -# if (__SUNPRO_CC < 0x570) -# define BOOST_NO_TEMPLATE_TEMPLATES - // see http://lists.boost.org/MailArchives/boost/msg47184.php - // and http://lists.boost.org/MailArchives/boost/msg47220.php -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_NO_SFINAE -# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS -# endif -# if (__SUNPRO_CC <= 0x580) -# define BOOST_NO_IS_ABSTRACT -# endif - -// -// Issues that effect all known versions: -// -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_NO_ADL_BARRIER -#define BOOST_NO_INITIALIZER_LISTS - -// -// C++0x features -// - -#if(__SUNPRO_CC >= 0x590) -# define BOOST_HAS_LONG_LONG -#else -# define BOOST_NO_LONG_LONG -#endif - -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS - -// -// Version -// - -#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC) - -// -// versions check: -// we don't support sunpro prior to version 4: -#if __SUNPRO_CC < 0x400 -#error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 0x590: -#if (__SUNPRO_CC > 0x590) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif diff --git a/3rdParty/Boost/boost/config/compiler/vacpp.hpp b/3rdParty/Boost/boost/config/compiler/vacpp.hpp deleted file mode 100644 index eb75cdb..0000000 --- a/3rdParty/Boost/boost/config/compiler/vacpp.hpp +++ /dev/null @@ -1,82 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Toon Knapen 2001 - 2003. -// (C) Copyright Lie-Quan Lee 2001. -// (C) Copyright Markus Schoepflin 2002 - 2003. -// (C) Copyright Beman Dawes 2002 - 2003. -// 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. - -// Visual Age (IBM) C++ compiler setup: - -#if __IBMCPP__ <= 501 -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS -#endif - -#if (__IBMCPP__ <= 502) -// Actually the compiler supports inclass member initialization but it -// requires a definition for the class member and it doesn't recognize -// it as an integral constant expression when used as a template argument. -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD -#endif - -#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG) -# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS -# define BOOST_NO_INITIALIZER_LISTS -#endif - -// -// On AIX thread support seems to be indicated by _THREAD_SAFE: -// -#ifdef _THREAD_SAFE -# define BOOST_HAS_THREADS -#endif - -#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__) - -// -// versions check: -// we don't support Visual age prior to version 5: -#if __IBMCPP__ < 500 -#error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 600: -#if (__IBMCPP__ > 600) -# 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 -#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS - -// -// C++0x features -// -// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG -// -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS - - - diff --git a/3rdParty/Boost/boost/config/compiler/visualc.hpp b/3rdParty/Boost/boost/config/compiler/visualc.hpp deleted file mode 100644 index 552e5bb..0000000 --- a/3rdParty/Boost/boost/config/compiler/visualc.hpp +++ /dev/null @@ -1,241 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001 - 2002. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright Aleksey Gurtovoy 2002. -// (C) Copyright David Abrahams 2002 - 2003. -// (C) Copyright Beman Dawes 2002 - 2003. -// 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. - -// Microsoft Visual C++ compiler setup: - -#define BOOST_MSVC _MSC_VER - -// turn off the warnings before we #include anything -#pragma warning( disable : 4503 ) // warning: decorated name length exceeded - -#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4 -# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# define BOOST_NO_VOID_RETURNS -# define BOOST_NO_EXCEPTION_STD_NAMESPACE - -# if BOOST_MSVC == 1202 -# define BOOST_NO_STD_TYPEINFO -# endif - - // disable min/max macro defines on vc6: - // -#endif - -#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 -# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS -# endif - -# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS -# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_NO_PRIVATE_IN_AGGREGATE -# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_DEDUCED_TYPENAME -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE - -// VC++ 6/7 has member templates but they have numerous problems including -// cases of silent failure, so for safety we define: -# define BOOST_NO_MEMBER_TEMPLATES -// For VC++ experts wishing to attempt workarounds, we define: -# define BOOST_MSVC6_MEMBER_TEMPLATES - -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# define BOOST_NO_CV_VOID_SPECIALIZATIONS -# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING -# define BOOST_NO_USING_TEMPLATE -# define BOOST_NO_SWPRINTF -# define BOOST_NO_TEMPLATE_TEMPLATES -# define BOOST_NO_SFINAE -# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS -# define BOOST_NO_IS_ABSTRACT -# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS -// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)? -# if (_MSC_VER > 1200) -# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS -# endif - -#endif - -#if _MSC_VER < 1400 -// although a conforming signature for swprint exists in VC7.1 -// it appears not to actually work: -# define BOOST_NO_SWPRINTF -#endif - -#if defined(UNDER_CE) -// Windows CE does not have a conforming signature for swprintf -# define BOOST_NO_SWPRINTF -#endif - -#if _MSC_VER <= 1400 // 1400 == VC++ 8.0 -# 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 -#endif - -#if _MSC_VER <= 1500 || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0 -# define BOOST_NO_INITIALIZER_LISTS -#endif - -#ifndef _NATIVE_WCHAR_T_DEFINED -# define BOOST_NO_INTRINSIC_WCHAR_T -#endif - -#if defined(_WIN32_WCE) || defined(UNDER_CE) -# define BOOST_NO_THREADEX -# define BOOST_NO_GETSYSTEMTIMEASFILETIME -# define BOOST_NO_SWPRINTF -#endif - -// -// check for exception handling support: -#ifndef _CPPUNWIND -# define BOOST_NO_EXCEPTIONS -#endif - -// -// __int64 support: -// -#if (_MSC_VER >= 1200) -# define BOOST_HAS_MS_INT64 -#endif -#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS) -# define BOOST_HAS_LONG_LONG -#else -# define BOOST_NO_LONG_LONG -#endif -#if (_MSC_VER >= 1400) && !defined(_DEBUG) -# define BOOST_HAS_NRVO -#endif -// -// disable Win32 API's if compiler extentions are -// turned off: -// -#ifndef _MSC_EXTENSIONS -# define BOOST_DISABLE_WIN32 -#endif -#ifndef _CPPRTTI -# define BOOST_NO_RTTI -#endif - -// -// all versions support __declspec: -// -#define BOOST_HAS_DECLSPEC -// -// C++0x features -// -// See above for BOOST_NO_LONG_LONG -#define BOOST_NO_CHAR16_T -#define BOOST_NO_CHAR32_T -#define BOOST_NO_CONSTEXPR -#define BOOST_NO_DECLTYPE -#define BOOST_NO_DEFAULTED_FUNCTIONS -#define BOOST_NO_DELETED_FUNCTIONS -#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_EXTERN_TEMPLATE -#define BOOST_NO_RAW_LITERALS -#define BOOST_NO_SCOPED_ENUMS -#define BOOST_NO_UNICODE_LITERALS -#define BOOST_NO_VARIADIC_TEMPLATES - -// MSVC 2010 CTP has some support for C++0x, but we still disable it until the compiler release -// #if _MSC_VER < 1600 -#define BOOST_NO_RVALUE_REFERENCES -#define BOOST_NO_STATIC_ASSERT -#define BOOST_NO_AUTO_DECLARATIONS -#define BOOST_NO_AUTO_MULTIDECLARATIONS -// #endif // _MSC_VER < 1600 - -// -// prefix and suffix headers: -// -#ifndef BOOST_ABI_PREFIX -# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp" -#endif -#ifndef BOOST_ABI_SUFFIX -# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp" -#endif - -// TODO: -// these things are mostly bogus. 1200 means version 12.0 of the compiler. The -// artificial versions assigned to them only refer to the versions of some IDE -// these compilers have been shipped with, and even that is not all of it. Some -// were shipped with freely downloadable SDKs, others as crosscompilers in eVC. -// IOW, you can't use these 'versions' in any sensible way. Sorry. -# if defined(UNDER_CE) -# if _MSC_VER < 1200 - // Note: these are so far off, they are not really supported -# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202 -# define BOOST_COMPILER_VERSION evc4.0 -# elif _MSC_VER == 1400 -# define BOOST_COMPILER_VERSION evc8 -# elif _MSC_VER == 1500 -# define BOOST_COMPILER_VERSION evc9 -# elif _MSC_VER == 1600 -# define BOOST_COMPILER_VERSION evc10 -# else -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown EVC++ compiler version - please run the configure tests and report the results" -# else -# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") -# endif -# endif -# else -# if _MSC_VER < 1200 - // Note: these are so far off, they are not really supported -# define BOOST_COMPILER_VERSION 5.0 -# elif _MSC_VER < 1300 -# define BOOST_COMPILER_VERSION 6.0 -# elif _MSC_VER == 1300 -# define BOOST_COMPILER_VERSION 7.0 -# elif _MSC_VER == 1310 -# define BOOST_COMPILER_VERSION 7.1 -# elif _MSC_VER == 1400 -# define BOOST_COMPILER_VERSION 8.0 -# elif _MSC_VER == 1500 -# define BOOST_COMPILER_VERSION 9.0 -# elif _MSC_VER == 1600 -# define BOOST_COMPILER_VERSION 10.0 -# else -# define BOOST_COMPILER_VERSION _MSC_VER -# endif -# endif - -#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) - -// -// versions check: -// we don't support Visual C++ prior to version 6: -#if _MSC_VER < 1200 -#error "Compiler not supported or configured - please reconfigure" -#endif -// -// last known and checked version is 1500 (VC9): -#if (_MSC_VER > 1600) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# else -# pragma message("Unknown compiler version - please run the configure tests and report the results") -# endif -#endif diff --git a/3rdParty/Boost/boost/config/no_tr1/cmath.hpp b/3rdParty/Boost/boost/config/no_tr1/cmath.hpp deleted file mode 100644 index d8268d8..0000000 --- a/3rdParty/Boost/boost/config/no_tr1/cmath.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2008. -// 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) -// -// The aim of this header is just to include but to do -// so in a way that does not result in recursive inclusion of -// the Boost TR1 components if boost/tr1/tr1/cmath is in the -// include search path. We have to do this to avoid circular -// dependencies: -// - -#ifndef BOOST_CONFIG_CMATH -# define BOOST_CONFIG_CMATH - -# ifndef BOOST_TR1_NO_RECURSION -# define BOOST_TR1_NO_RECURSION -# define BOOST_CONFIG_NO_CMATH_RECURSION -# endif - -# include - -# ifdef BOOST_CONFIG_NO_CMATH_RECURSION -# undef BOOST_TR1_NO_RECURSION -# undef BOOST_CONFIG_NO_CMATH_RECURSION -# endif - -#endif diff --git a/3rdParty/Boost/boost/config/no_tr1/complex.hpp b/3rdParty/Boost/boost/config/no_tr1/complex.hpp deleted file mode 100644 index ca20092..0000000 --- a/3rdParty/Boost/boost/config/no_tr1/complex.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2005. -// 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) -// -// The aim of this header is just to include but to do -// so in a way that does not result in recursive inclusion of -// the Boost TR1 components if boost/tr1/tr1/complex is in the -// include search path. We have to do this to avoid circular -// dependencies: -// - -#ifndef BOOST_CONFIG_COMPLEX -# define BOOST_CONFIG_COMPLEX - -# ifndef BOOST_TR1_NO_RECURSION -# define BOOST_TR1_NO_RECURSION -# define BOOST_CONFIG_NO_COMPLEX_RECURSION -# endif - -# include - -# ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION -# undef BOOST_TR1_NO_RECURSION -# undef BOOST_CONFIG_NO_COMPLEX_RECURSION -# endif - -#endif diff --git a/3rdParty/Boost/boost/config/no_tr1/functional.hpp b/3rdParty/Boost/boost/config/no_tr1/functional.hpp deleted file mode 100644 index e395efc..0000000 --- a/3rdParty/Boost/boost/config/no_tr1/functional.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2005. -// 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) -// -// The aim of this header is just to include but to do -// so in a way that does not result in recursive inclusion of -// the Boost TR1 components if boost/tr1/tr1/functional is in the -// include search path. We have to do this to avoid circular -// dependencies: -// - -#ifndef BOOST_CONFIG_FUNCTIONAL -# define BOOST_CONFIG_FUNCTIONAL - -# ifndef BOOST_TR1_NO_RECURSION -# define BOOST_TR1_NO_RECURSION -# define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION -# endif - -# include - -# ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION -# undef BOOST_TR1_NO_RECURSION -# undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION -# endif - -#endif diff --git a/3rdParty/Boost/boost/config/no_tr1/memory.hpp b/3rdParty/Boost/boost/config/no_tr1/memory.hpp deleted file mode 100644 index 2b5d208..0000000 --- a/3rdParty/Boost/boost/config/no_tr1/memory.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2005. -// 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) -// -// The aim of this header is just to include but to do -// so in a way that does not result in recursive inclusion of -// the Boost TR1 components if boost/tr1/tr1/memory is in the -// include search path. We have to do this to avoid circular -// dependencies: -// - -#ifndef BOOST_CONFIG_MEMORY -# define BOOST_CONFIG_MEMORY - -# ifndef BOOST_TR1_NO_RECURSION -# define BOOST_TR1_NO_RECURSION -# define BOOST_CONFIG_NO_MEMORY_RECURSION -# endif - -# include - -# ifdef BOOST_CONFIG_NO_MEMORY_RECURSION -# undef BOOST_TR1_NO_RECURSION -# undef BOOST_CONFIG_NO_MEMORY_RECURSION -# endif - -#endif diff --git a/3rdParty/Boost/boost/config/no_tr1/utility.hpp b/3rdParty/Boost/boost/config/no_tr1/utility.hpp deleted file mode 100644 index dea8f11..0000000 --- a/3rdParty/Boost/boost/config/no_tr1/utility.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2005. -// 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) -// -// The aim of this header is just to include but to do -// so in a way that does not result in recursive inclusion of -// the Boost TR1 components if boost/tr1/tr1/utility is in the -// include search path. We have to do this to avoid circular -// dependencies: -// - -#ifndef BOOST_CONFIG_UTILITY -# define BOOST_CONFIG_UTILITY - -# ifndef BOOST_TR1_NO_RECURSION -# define BOOST_TR1_NO_RECURSION -# define BOOST_CONFIG_NO_UTILITY_RECURSION -# endif - -# include - -# ifdef BOOST_CONFIG_NO_UTILITY_RECURSION -# undef BOOST_TR1_NO_RECURSION -# undef BOOST_CONFIG_NO_UTILITY_RECURSION -# endif - -#endif diff --git a/3rdParty/Boost/boost/config/platform/aix.hpp b/3rdParty/Boost/boost/config/platform/aix.hpp deleted file mode 100644 index 894ef42..0000000 --- a/3rdParty/Boost/boost/config/platform/aix.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// 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. - -// IBM/Aix specific config options: - -#define BOOST_PLATFORM "IBM Aix" - -#define BOOST_HAS_UNISTD_H -#define BOOST_HAS_NL_TYPES_H -#define BOOST_HAS_NANOSLEEP -#define BOOST_HAS_CLOCK_GETTIME - -// This needs support in "boost/cstdint.hpp" exactly like FreeBSD. -// This platform has header named which includes all -// the things needed. -#define BOOST_HAS_STDINT_H - -// Threading API's: -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_PTHREAD_DELAY_NP -#define BOOST_HAS_SCHED_YIELD -//#define BOOST_HAS_PTHREAD_YIELD - -// boilerplate code: -#include - - - - diff --git a/3rdParty/Boost/boost/config/platform/amigaos.hpp b/3rdParty/Boost/boost/config/platform/amigaos.hpp deleted file mode 100644 index 34bcf41..0000000 --- a/3rdParty/Boost/boost/config/platform/amigaos.hpp +++ /dev/null @@ -1,15 +0,0 @@ -// (C) Copyright John Maddock 2002. -// 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. - -#define BOOST_PLATFORM "AmigaOS" - -#define BOOST_DISABLE_THREADS -#define BOOST_NO_CWCHAR -#define BOOST_NO_STD_WSTRING -#define BOOST_NO_INTRINSIC_WCHAR_T - - diff --git a/3rdParty/Boost/boost/config/platform/beos.hpp b/3rdParty/Boost/boost/config/platform/beos.hpp deleted file mode 100644 index 48c3d8d..0000000 --- a/3rdParty/Boost/boost/config/platform/beos.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// (C) Copyright John Maddock 2001. -// 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. - -// BeOS specific config options: - -#define BOOST_PLATFORM "BeOS" - -#define BOOST_NO_CWCHAR -#define BOOST_NO_CWCTYPE -#define BOOST_HAS_UNISTD_H - -#define BOOST_HAS_BETHREADS - -#ifndef BOOST_DISABLE_THREADS -# define BOOST_HAS_THREADS -#endif - -// boilerplate code: -#include - - - diff --git a/3rdParty/Boost/boost/config/platform/bsd.hpp b/3rdParty/Boost/boost/config/platform/bsd.hpp deleted file mode 100644 index f02b0e2..0000000 --- a/3rdParty/Boost/boost/config/platform/bsd.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001. -// (C) Copyright Douglas Gregor 2002. -// 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. - -// generic BSD config options: - -#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) -#error "This platform is not BSD" -#endif - -#ifdef __FreeBSD__ -#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__) -#elif defined(__NetBSD__) -#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__) -#elif defined(__OpenBSD__) -#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__) -#elif defined(__DragonFly__) -#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__) -#endif - -// -// is this the correct version check? -// FreeBSD has but does not -// advertise the fact in : -// -#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__) -# define BOOST_HAS_NL_TYPES_H -#endif - -// -// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in -// and not in -// -#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\ - || defined(__OpenBSD__) || defined(__DragonFly__) -# define BOOST_HAS_PTHREADS -#endif - -// -// No wide character support in the BSD header files: -// -#if defined(__NetBSD__) -#define __NetBSD_GCC__ (__GNUC__ * 1000000 \ - + __GNUC_MINOR__ * 1000 \ - + __GNUC_PATCHLEVEL__) -// XXX - the following is required until c++config.h -// defines _GLIBCXX_HAVE_SWPRINTF and friends -// or the preprocessor conditionals are removed -// from the cwchar header. -#define _GLIBCXX_HAVE_SWPRINTF 1 -#endif - -#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \ - || (__NetBSD_GCC__ >= 2095003) || defined(__DragonFly__)) -# define BOOST_NO_CWCHAR -#endif -// -// The BSD has macros only, no functions: -// -#if !defined(__OpenBSD__) || defined(__DragonFly__) -# define BOOST_NO_CTYPE_FUNCTIONS -#endif - -// -// thread API's not auto detected: -// -#define BOOST_HAS_SCHED_YIELD -#define BOOST_HAS_NANOSLEEP -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -#define BOOST_HAS_SIGACTION - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - - - - - - diff --git a/3rdParty/Boost/boost/config/platform/cygwin.hpp b/3rdParty/Boost/boost/config/platform/cygwin.hpp deleted file mode 100644 index 41fcaa1..0000000 --- a/3rdParty/Boost/boost/config/platform/cygwin.hpp +++ /dev/null @@ -1,51 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// 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. - -// cygwin specific config options: - -#define BOOST_PLATFORM "Cygwin" -#define BOOST_NO_CWCTYPE -#define BOOST_NO_CWCHAR -#define BOOST_NO_SWPRINTF -#define BOOST_HAS_DIRENT_H -#define BOOST_HAS_LOG1P -#define BOOST_HAS_EXPM1 - -// -// Threading API: -// See if we have POSIX threads, if we do use them, otherwise -// revert to native Win threads. -#define BOOST_HAS_UNISTD_H -#include -#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) -# define BOOST_HAS_PTHREADS -# define BOOST_HAS_SCHED_YIELD -# define BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# define BOOST_HAS_SIGACTION -#else -# if !defined(BOOST_HAS_WINTHREADS) -# define BOOST_HAS_WINTHREADS -# endif -# define BOOST_HAS_FTIME -#endif - -// -// find out if we have a stdint.h, there should be a better way to do this: -// -#include -#ifdef _STDINT_H -#define BOOST_HAS_STDINT_H -#endif - -// boilerplate code: -#include - - - - - diff --git a/3rdParty/Boost/boost/config/platform/hpux.hpp b/3rdParty/Boost/boost/config/platform/hpux.hpp deleted file mode 100644 index 19ce68e..0000000 --- a/3rdParty/Boost/boost/config/platform/hpux.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001 - 2003. -// (C) Copyright David Abrahams 2002. -// (C) Copyright Toon Knapen 2003. -// (C) Copyright Boris Gubenko 2006 - 2007. -// 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. - -// hpux specific config options: - -#define BOOST_PLATFORM "HP-UX" - -// In principle, HP-UX has a nice under the name -// However, it has the following problem: -// Use of UINT32_C(0) results in "0u l" for the preprocessed source -// (verifyable with gcc 2.95.3) -#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC) -# define BOOST_HAS_STDINT_H -#endif - -#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE)) -# define BOOST_NO_SWPRINTF -#endif -#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE) -# define BOOST_NO_CWCTYPE -#endif - -#if defined(__GNUC__) -# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3)) - // GNU C on HP-UX does not support threads (checked up to gcc 3.3) -# define BOOST_DISABLE_THREADS -# elif !defined(BOOST_DISABLE_THREADS) - // threads supported from gcc-3.3 onwards: -# define BOOST_HAS_THREADS -# define BOOST_HAS_PTHREADS -# endif -#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS) -# define BOOST_HAS_PTHREADS -#endif - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - -// the following are always available: -#ifndef BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_GETTIMEOFDAY -#endif -#ifndef BOOST_HAS_SCHED_YIELD -# define BOOST_HAS_SCHED_YIELD -#endif -#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -#endif -#ifndef BOOST_HAS_NL_TYPES_H -# define BOOST_HAS_NL_TYPES_H -#endif -#ifndef BOOST_HAS_NANOSLEEP -# define BOOST_HAS_NANOSLEEP -#endif -#ifndef BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_GETTIMEOFDAY -#endif -#ifndef BOOST_HAS_DIRENT_H -# define BOOST_HAS_DIRENT_H -#endif -#ifndef BOOST_HAS_CLOCK_GETTIME -# define BOOST_HAS_CLOCK_GETTIME -#endif -#ifndef BOOST_HAS_SIGACTION -# define BOOST_HAS_SIGACTION -#endif -#ifndef BOOST_HAS_NRVO -# ifndef __parisc -# define BOOST_HAS_NRVO -# endif -#endif -#ifndef BOOST_HAS_LOG1P -# define BOOST_HAS_LOG1P -#endif -#ifndef BOOST_HAS_EXPM1 -# define BOOST_HAS_EXPM1 -#endif - diff --git a/3rdParty/Boost/boost/config/platform/irix.hpp b/3rdParty/Boost/boost/config/platform/irix.hpp deleted file mode 100644 index aeae49c..0000000 --- a/3rdParty/Boost/boost/config/platform/irix.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2003. -// 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. - -// SGI Irix specific config options: - -#define BOOST_PLATFORM "SGI Irix" - -#define BOOST_NO_SWPRINTF -// -// these are not auto detected by POSIX feature tests: -// -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE - -#ifdef __GNUC__ - // GNU C on IRIX does not support threads (checked up to gcc 3.3) -# define BOOST_DISABLE_THREADS -#endif - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - - - diff --git a/3rdParty/Boost/boost/config/platform/linux.hpp b/3rdParty/Boost/boost/config/platform/linux.hpp deleted file mode 100644 index 51ae133..0000000 --- a/3rdParty/Boost/boost/config/platform/linux.hpp +++ /dev/null @@ -1,98 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001 - 2003. -// 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. - -// linux specific config options: - -#define BOOST_PLATFORM "linux" - -// make sure we have __GLIBC_PREREQ if available at all -#include - -// -// added to glibc 2.1.1 -// We can only test for 2.1 though: -// -#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1))) - // defines int64_t unconditionally, but defines - // int64_t only if __GNUC__. Thus, assume a fully usable - // only when using GCC. -# if defined __GNUC__ -# define BOOST_HAS_STDINT_H -# endif -#endif - -#if defined(__LIBCOMO__) - // - // como on linux doesn't have std:: c functions: - // NOTE: versions of libcomo prior to beta28 have octal version numbering, - // e.g. version 25 is 21 (dec) - // -# if __LIBCOMO_VERSION__ <= 20 -# define BOOST_NO_STDC_NAMESPACE -# endif - -# if __LIBCOMO_VERSION__ <= 21 -# define BOOST_NO_SWPRINTF -# endif - -#endif - -// -// If glibc is past version 2 then we definitely have -// gettimeofday, earlier versions may or may not have it: -// -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -# define BOOST_HAS_GETTIMEOFDAY -#endif - -#ifdef __USE_POSIX199309 -# define BOOST_HAS_NANOSLEEP -#endif - -#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) -// __GLIBC_PREREQ is available since 2.1.2 - - // swprintf is available since glibc 2.2.0 -# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98)) -# define BOOST_NO_SWPRINTF -# endif -#else -# define BOOST_NO_SWPRINTF -#endif - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - -#ifndef __GNUC__ -// -// if the compiler is not gcc we still need to be able to parse -// the GNU system headers, some of which (mainly ) -// use GNU specific extensions: -// -# ifndef __extension__ -# define __extension__ -# endif -# ifndef __const__ -# define __const__ const -# endif -# ifndef __volatile__ -# define __volatile__ volatile -# endif -# ifndef __signed__ -# define __signed__ signed -# endif -# ifndef __typeof__ -# define __typeof__ typeof -# endif -# ifndef __inline__ -# define __inline__ inline -# endif -#endif - - diff --git a/3rdParty/Boost/boost/config/platform/macos.hpp b/3rdParty/Boost/boost/config/platform/macos.hpp deleted file mode 100644 index 2780ef9..0000000 --- a/3rdParty/Boost/boost/config/platform/macos.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001 - 2002. -// (C) Copyright Bill Kempf 2002. -// 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. - -// Mac OS specific config options: - -#define BOOST_PLATFORM "Mac OS" - -#if __MACH__ && !defined(_MSL_USING_MSL_C) - -// Using the Mac OS X system BSD-style C library. - -# ifndef BOOST_HAS_UNISTD_H -# define BOOST_HAS_UNISTD_H -# endif -// -// Begin by including our boilerplate code for POSIX -// feature detection, this is safe even when using -// the MSL as Metrowerks supply their own -// to replace the platform-native BSD one. G++ users -// should also always be able to do this on MaxOS X. -// -# include -# ifndef BOOST_HAS_STDINT_H -# define BOOST_HAS_STDINT_H -# endif - -// -// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday, -// of these only pthreads are advertised in , so set the -// other options explicitly: -// -# define BOOST_HAS_SCHED_YIELD -# define BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_SIGACTION - -# if (__GNUC__ < 3) && !defined( __APPLE_CC__) - -// GCC strange "ignore std" mode works better if you pretend everything -// is in the std namespace, for the most part. - -# define BOOST_NO_STDC_NAMESPACE -# endif - -# if (__GNUC__ == 4) - -// Both gcc and intel require these. -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# define BOOST_HAS_NANOSLEEP - -# endif - -#else - -// Using the MSL C library. - -// We will eventually support threads in non-Carbon builds, but we do -// not support this yet. -# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON ) - -# if !defined(BOOST_HAS_PTHREADS) -# define BOOST_HAS_MPTASKS -# elif ( __dest_os == __mac_os_x ) -// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the -// gettimeofday and no posix. -# define BOOST_HAS_GETTIMEOFDAY -# endif - -// The MP task implementation of Boost Threads aims to replace MP-unsafe -// parts of the MSL, so we turn on threads unconditionally. -# define BOOST_HAS_THREADS - -// The remote call manager depends on this. -# define BOOST_BIND_ENABLE_PASCAL - -# endif - -#endif - - - diff --git a/3rdParty/Boost/boost/config/platform/qnxnto.hpp b/3rdParty/Boost/boost/config/platform/qnxnto.hpp deleted file mode 100644 index b1377c8..0000000 --- a/3rdParty/Boost/boost/config/platform/qnxnto.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// (C) Copyright Jim Douglas 2005. -// 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. - -// QNX specific config options: - -#define BOOST_PLATFORM "QNX" - -#define BOOST_HAS_UNISTD_H -#include - -// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h -// or log1p and expm1: -#undef BOOST_HAS_NL_TYPES_H -#undef BOOST_HAS_LOG1P -#undef BOOST_HAS_EXPM1 - -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE - -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_CLOCK_GETTIME -#define BOOST_HAS_NANOSLEEP - - - - - diff --git a/3rdParty/Boost/boost/config/platform/solaris.hpp b/3rdParty/Boost/boost/config/platform/solaris.hpp deleted file mode 100644 index 9f92566..0000000 --- a/3rdParty/Boost/boost/config/platform/solaris.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2003. -// 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. - -// sun specific config options: - -#define BOOST_PLATFORM "Sun Solaris" - -#define BOOST_HAS_GETTIMEOFDAY - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - -// -// pthreads don't actually work with gcc unless _PTHREADS is defined: -// -#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS) -# undef BOOST_HAS_PTHREADS -#endif - - - - diff --git a/3rdParty/Boost/boost/config/platform/win32.hpp b/3rdParty/Boost/boost/config/platform/win32.hpp deleted file mode 100644 index 9344818..0000000 --- a/3rdParty/Boost/boost/config/platform/win32.hpp +++ /dev/null @@ -1,58 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Bill Kempf 2001. -// (C) Copyright Aleksey Gurtovoy 2003. -// (C) Copyright Rene Rivera 2005. -// 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. - -// Win32 specific config options: - -#define BOOST_PLATFORM "Win32" - -// Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION. -#if defined(__MINGW32__) -# include <_mingw.h> -#endif - -#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF) -# define BOOST_NO_SWPRINTF -#endif - -#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC) -# define BOOST_HAS_DECLSPEC -#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 -# define BOOST_HAS_DIRENT_H -# define BOOST_HAS_UNISTD_H -#endif - -// -// Win32 will normally be using native Win32 threads, -// but there is a pthread library avaliable as an option, -// we used to disable this when BOOST_DISABLE_WIN32 was -// defined but no longer - this should allow some -// files to be compiled in strict mode - while maintaining -// a consistent setting of BOOST_HAS_THREADS across -// all translation units (needed for shared_ptr etc). -// - -#ifdef _WIN32_WCE -# define BOOST_NO_ANSI_APIS -#endif - -#ifndef BOOST_HAS_PTHREADS -# define BOOST_HAS_WINTHREADS -#endif - -#ifndef BOOST_DISABLE_WIN32 -// WEK: Added -#define BOOST_HAS_FTIME -#define BOOST_WINDOWS 1 - -#endif diff --git a/3rdParty/Boost/boost/config/posix_features.hpp b/3rdParty/Boost/boost/config/posix_features.hpp deleted file mode 100644 index d129547..0000000 --- a/3rdParty/Boost/boost/config/posix_features.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// 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. - -// All POSIX feature tests go in this file, -// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well -// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's -// may be present but none-functional unless _POSIX_C_SOURCE and -// _XOPEN_SOURCE have been defined to the right value (it's up -// to the user to do this *before* including any header, although -// in most cases the compiler will do this for you). - -# if defined(BOOST_HAS_UNISTD_H) -# include - - // XOpen has , but is this the correct version check? -# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3) -# define BOOST_HAS_NL_TYPES_H -# endif - - // POSIX version 6 requires -# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100) -# define BOOST_HAS_STDINT_H -# endif - - // POSIX version 2 requires -# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L) -# define BOOST_HAS_DIRENT_H -# endif - - // POSIX version 3 requires to have sigaction: -# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L) -# define BOOST_HAS_SIGACTION -# endif - // POSIX defines _POSIX_THREADS > 0 for pthread support, - // however some platforms define _POSIX_THREADS without - // a value, hence the (_POSIX_THREADS+0 >= 0) check. - // Strictly speaking this may catch platforms with a - // non-functioning stub , but such occurrences should - // occur very rarely if at all. -# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS) -# define BOOST_HAS_PTHREADS -# endif - - // BOOST_HAS_NANOSLEEP: - // This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME: -# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \ - || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0)) -# define BOOST_HAS_NANOSLEEP -# endif - - // BOOST_HAS_CLOCK_GETTIME: - // This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME - // but at least one platform - linux - defines that flag without - // defining clock_gettime): -# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) -# define BOOST_HAS_CLOCK_GETTIME -# endif - - // BOOST_HAS_SCHED_YIELD: - // This is predicated on _POSIX_PRIORITY_SCHEDULING or - // on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME. -# if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\ - || (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\ - || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0)) -# define BOOST_HAS_SCHED_YIELD -# endif - - // BOOST_HAS_GETTIMEOFDAY: - // BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE: - // These are predicated on _XOPEN_VERSION, and appears to be first released - // in issue 4, version 2 (_XOPEN_VERSION > 500). - // Likewise for the functions log1p and expm1. -# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500) -# define BOOST_HAS_GETTIMEOFDAY -# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500) -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# endif -# ifndef BOOST_HAS_LOG1P -# define BOOST_HAS_LOG1P -# endif -# ifndef BOOST_HAS_EXPM1 -# define BOOST_HAS_EXPM1 -# endif -# endif - -# endif - - - - diff --git a/3rdParty/Boost/boost/config/requires_threads.hpp b/3rdParty/Boost/boost/config/requires_threads.hpp deleted file mode 100644 index cfaff23..0000000 --- a/3rdParty/Boost/boost/config/requires_threads.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// (C) Copyright John Maddock 2003. -// 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) - - -#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP -#define BOOST_CONFIG_REQUIRES_THREADS_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_DISABLE_THREADS) - -// -// special case to handle versions of gcc which don't currently support threads: -// -#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG)) -// -// this is checked up to gcc 3.3: -// -#if defined(__sgi) || defined(__hpux) -# error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)" -#endif - -#endif - -# error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS" - -#elif !defined(BOOST_HAS_THREADS) - -# if defined __COMO__ -// Comeau C++ -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)" - -#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) -// Intel -#ifdef _WIN32 -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd" -#else -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp" -#endif - -# elif defined __GNUC__ -// GNU C++: -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)" - -#elif defined __sgi -// SGI MIPSpro C++ -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE" - -#elif defined __DECCXX -// Compaq Tru64 Unix cxx -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread" - -#elif defined __BORLANDC__ -// Borland -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM" - -#elif defined __MWERKS__ -// Metrowerks CodeWarrior -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd" - -#elif defined __SUNPRO_CC -// Sun Workshop Compiler C++ -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt" - -#elif defined __HP_aCC -// HP aCC -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt" - -#elif defined(__IBMCPP__) -// IBM Visual Age -# error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler" - -#elif defined _MSC_VER -// Microsoft Visual C++ -// -// Must remain the last #elif since some other vendors (Metrowerks, for -// example) also #define _MSC_VER -# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd" - -#else - -# error "Compiler threading support is not turned on. Please consult your compiler's documentation for the appropriate options to use" - -#endif // compilers - -#endif // BOOST_HAS_THREADS - -#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP diff --git a/3rdParty/Boost/boost/config/select_compiler_config.hpp b/3rdParty/Boost/boost/config/select_compiler_config.hpp deleted file mode 100644 index 9141cd6..0000000 --- a/3rdParty/Boost/boost/config/select_compiler_config.hpp +++ /dev/null @@ -1,119 +0,0 @@ -// Boost compiler configuration selection header file - -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Martin Wille 2003. -// (C) Copyright Guillaume Melquiond 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/ for most recent version. - - -// one identification macro for each of the -// compilers we support: - -# define BOOST_CXX_GCCXML 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 - - -// locate which compiler we are using and define -// BOOST_COMPILER_CONFIG as needed: - -#if defined(__GCCXML__) -// GCC-XML emulates other compilers, it has to appear first here! -# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp" - -#elif defined __COMO__ -// Comeau C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp" - -#elif defined __DMC__ -// Digital Mars C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp" - -#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) -// Intel -# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp" - -# elif defined __GNUC__ -// GNU C++: -# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp" - -#elif defined __KCC -// Kai C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp" - -#elif defined __sgi -// SGI MIPSpro C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp" - -#elif defined __DECCXX -// Compaq Tru64 Unix cxx -# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp" - -#elif defined __ghs -// Greenhills C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp" - -#elif defined __CODEGEARC__ -// CodeGear - must be checked for before Borland -# define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp" - -#elif defined __BORLANDC__ -// Borland -# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp" - -#elif defined __MWERKS__ -// Metrowerks CodeWarrior -# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp" - -#elif defined __SUNPRO_CC -// Sun Workshop Compiler C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp" - -#elif defined __HP_aCC -// HP aCC -# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp" - -#elif defined(__MRC__) || defined(__SC__) -// MPW MrCpp or SCpp -# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp" - -#elif defined(__IBMCPP__) -// IBM Visual Age -# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp" - -#elif defined(__PGI) -// Portland Group Inc. -# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp" - -#elif defined _MSC_VER -// Microsoft Visual C++ -// -// Must remain the last #elif since some other vendors (Metrowerks, for -// example) also #define _MSC_VER -# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp" - -#elif defined (BOOST_ASSERT_CONFIG) -// this must come last - generate an error if we don't -// recognise the compiler: -# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)" - -#endif diff --git a/3rdParty/Boost/boost/config/select_platform_config.hpp b/3rdParty/Boost/boost/config/select_platform_config.hpp deleted file mode 100644 index 4ce2c01..0000000 --- a/3rdParty/Boost/boost/config/select_platform_config.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// Boost compiler configuration selection header file - -// (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Jens Maurer 2001. -// 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. - -// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed. -// Note that we define the headers to include using "header_name" not -// in order to prevent macro expansion within the header -// name (for example "linux" is a macro on linux systems). - -#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__) -// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though? -# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp" - -#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) -// BSD: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp" - -#elif defined(sun) || defined(__sun) -// solaris: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp" - -#elif defined(__sgi) -// SGI Irix: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp" - -#elif defined(__hpux) -// hp unix: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp" - -#elif defined(__CYGWIN__) -// cygwin is not win32: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp" - -#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) -// win32: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp" - -#elif defined(__BEOS__) -// BeOS -# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp" - -#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) -// MacOS -# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp" - -#elif defined(__IBMCPP__) || defined(_AIX) -// IBM -# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp" - -#elif defined(__amigaos__) -// AmigaOS -# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp" - -#elif defined(__QNXNTO__) -// QNX: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp" - -#else - -# if defined(unix) \ - || defined(__unix) \ - || defined(_XOPEN_SOURCE) \ - || defined(_POSIX_SOURCE) - - // generic unix platform: - -# ifndef BOOST_HAS_UNISTD_H -# define BOOST_HAS_UNISTD_H -# endif - -# include - -# endif - -# if defined (BOOST_ASSERT_CONFIG) - // this must come last - generate an error if we don't - // recognise the platform: -# error "Unknown platform - please configure and report the results to boost.org" -# endif - -#endif - - - diff --git a/3rdParty/Boost/boost/config/select_stdlib_config.hpp b/3rdParty/Boost/boost/config/select_stdlib_config.hpp deleted file mode 100644 index 13e5e4c..0000000 --- a/3rdParty/Boost/boost/config/select_stdlib_config.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// Boost compiler configuration selection header file - -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001 - 2002. -// 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. - -// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed: - -// we need to include a std lib header here in order to detect which -// library is in use, use as it's about the smallest -// of the std lib headers - do not rely on this header being included - -// users can short-circuit this header if they know whose std lib -// they are using. - -#include - -#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) -// STLPort library; this _must_ come first, otherwise since -// STLport typically sits on top of some other library, we -// can end up detecting that first rather than STLport: -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp" - -#elif defined(__LIBCOMO__) -// Comeau STL: -#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp" - -#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) -// Rogue Wave library: -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp" - -#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) -// GNU libstdc++ 3 -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp" - -#elif defined(__STL_CONFIG_H) -// generic SGI STL -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp" - -#elif defined(__MSL_CPP__) -// MSL standard lib: -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp" - -#elif defined(__IBMCPP__) -// take the default VACPP std lib -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp" - -#elif defined(MSIPL_COMPILE_H) -// Modena C++ standard library -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp" - -#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) -// Dinkumware Library (this has to appear after any possible replacement libraries): -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp" - -#elif defined (BOOST_ASSERT_CONFIG) -// this must come last - generate an error if we don't -// recognise the library: -# error "Unknown standard library - please configure and report the results to boost.org" - -#endif - - - diff --git a/3rdParty/Boost/boost/config/stdlib/dinkumware.hpp b/3rdParty/Boost/boost/config/stdlib/dinkumware.hpp deleted file mode 100644 index ff1aed9..0000000 --- a/3rdParty/Boost/boost/config/stdlib/dinkumware.hpp +++ /dev/null @@ -1,111 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001. -// (C) Copyright Peter Dimov 2001. -// (C) Copyright David Abrahams 2002. -// (C) Copyright Guillaume Melquiond 2003. -// 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. - -// Dinkumware standard library config: - -#if !defined(_YVALS) && !defined(_CPPLIB_VER) -#include -#if !defined(_YVALS) && !defined(_CPPLIB_VER) -#error This is not the Dinkumware lib! -#endif -#endif - - -#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306) - // full dinkumware 3.06 and above - // fully conforming provided the compiler supports it: -# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700)) // can be defined in yvals.h -# define BOOST_NO_STDC_NAMESPACE -# endif -# if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC) -# define BOOST_NO_STD_ALLOCATOR -# endif -# define BOOST_HAS_PARTIAL_STD_ALLOCATOR -# if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) - // if this lib version is set up for vc6 then there is no std::use_facet: -# define BOOST_NO_STD_USE_FACET -# define BOOST_HAS_TWO_ARG_USE_FACET - // C lib functions aren't in namespace std either: -# define BOOST_NO_STDC_NAMESPACE - // and nor is -# define BOOST_NO_EXCEPTION_STD_NAMESPACE -# endif -// There's no numeric_limits support unless _LONGLONG is defined: -# if !defined(_LONGLONG) && (_CPPLIB_VER <= 310) -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -# endif -// 3.06 appears to have (non-sgi versions of) & , -// and no at all -#else -# define BOOST_MSVC_STD_ITERATOR 1 -# define BOOST_NO_STD_ITERATOR -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -# define BOOST_NO_STD_ALLOCATOR -# define BOOST_NO_STDC_NAMESPACE -# define BOOST_NO_STD_USE_FACET -# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN -# define BOOST_HAS_MACRO_USE_FACET -# ifndef _CPPLIB_VER - // Updated Dinkum library defines this, and provides - // its own min and max definitions. -# define BOOST_NO_STD_MIN_MAX -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -# endif -#endif - -// -// std extension namespace is stdext for vc7.1 and later, -// the same applies to other compilers that sit on top -// of vc7.1 (Intel and Comeau): -// -#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__) -# define BOOST_STD_EXTENSION_NAMESPACE stdext -#endif - - -#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306) - // if we're using a dinkum lib that's - // been configured for VC6/7 then there is - // no iterator traits (true even for icl) -# define BOOST_NO_STD_ITERATOR_TRAITS -#endif - -// -// No std::unordered_* containers yet: -// -#define BOOST_NO_STD_UNORDERED - -#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310) -// Intel C++ chokes over any non-trivial use of -// this may be an overly restrictive define, but regex fails without it: -# define BOOST_NO_STD_LOCALE -#endif - -#ifdef _CPPLIB_VER -# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER -#else -# define BOOST_DINKUMWARE_STDLIB 1 -#endif - -#ifdef _CPPLIB_VER -# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER) -#else -# define BOOST_STDLIB "Dinkumware standard library version 1.x" -#endif - - - - - - - - - diff --git a/3rdParty/Boost/boost/config/stdlib/libcomo.hpp b/3rdParty/Boost/boost/config/stdlib/libcomo.hpp deleted file mode 100644 index 3114094..0000000 --- a/3rdParty/Boost/boost/config/stdlib/libcomo.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// (C) Copyright John Maddock 2002 - 2003. -// (C) Copyright Jens Maurer 2002 - 2003. -// (C) Copyright Beman Dawes 2002 - 2003. -// 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. - -// Comeau STL: - -#if !defined(__LIBCOMO__) -# include -# if !defined(__LIBCOMO__) -# error "This is not the Comeau STL!" -# endif -#endif - -// -// std::streambuf is non-standard -// NOTE: versions of libcomo prior to beta28 have octal version numbering, -// e.g. version 25 is 21 (dec) -#if __LIBCOMO_VERSION__ <= 22 -# define BOOST_NO_STD_WSTREAMBUF -#endif - -#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32) -#define BOOST_NO_SWPRINTF -#endif - -#if __LIBCOMO_VERSION__ >= 31 -# define BOOST_HAS_HASH -# define BOOST_HAS_SLIST -#endif -// -// We never have the new C++0x unordered containers: -// -#define BOOST_NO_STD_UNORDERED - -// -// Intrinsic type_traits support. -// The SGI STL has it's own __type_traits class, which -// has intrinsic compiler support with SGI's compilers. -// Whatever map SGI style type traits to boost equivalents: -// -#define BOOST_HAS_SGI_TYPE_TRAITS - -#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__) - - diff --git a/3rdParty/Boost/boost/config/stdlib/libstdcpp3.hpp b/3rdParty/Boost/boost/config/stdlib/libstdcpp3.hpp deleted file mode 100644 index 8e1c811..0000000 --- a/3rdParty/Boost/boost/config/stdlib/libstdcpp3.hpp +++ /dev/null @@ -1,83 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Jens Maurer 2001. -// 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 libstdc++ v3 -// not much to go in here: - -#ifdef __GLIBCXX__ -#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__) -#else -#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__) -#endif - -#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T) -# define BOOST_NO_CWCHAR -# define BOOST_NO_CWCTYPE -# define BOOST_NO_STD_WSTRING -# define BOOST_NO_STD_WSTREAMBUF -#endif - -#if defined(__osf__) && !defined(_REENTRANT) \ - && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) ) -// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header -// file is included, therefore for consistency we define it here as well. -# define _REENTRANT -#endif - -#ifdef __GLIBCXX__ // gcc 3.4 and greater: -# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ - || defined(_GLIBCXX__PTHREADS) - // - // If the std lib has thread support turned on, then turn it on in Boost - // as well. We do this because some gcc-3.4 std lib headers define _REENTANT - // while others do not... - // -# define BOOST_HAS_THREADS -# else -# define BOOST_DISABLE_THREADS -# endif -#elif defined(__GLIBCPP__) \ - && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \ - && !defined(_GLIBCPP__PTHREADS) - // disable thread support if the std lib was built single threaded: -# define BOOST_DISABLE_THREADS -#endif - -#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT) -// linux on arm apparently doesn't define _REENTRANT -// so just turn on threading support whenever the std lib is thread safe: -# define BOOST_HAS_THREADS -#endif - - -#if !defined(_GLIBCPP_USE_LONG_LONG) \ - && !defined(_GLIBCXX_USE_LONG_LONG)\ - && defined(BOOST_HAS_LONG_LONG) -// May have been set by compiler/*.hpp, but "long long" without library -// support is useless. -# undef BOOST_HAS_LONG_LONG -#endif - -#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0 -# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx -# define BOOST_HAS_SLIST -# define BOOST_HAS_HASH -# define BOOST_SLIST_HEADER -# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) -# define BOOST_HASH_SET_HEADER -# define BOOST_HASH_MAP_HEADER -# else -# define BOOST_HASH_SET_HEADER -# define BOOST_HASH_MAP_HEADER -# endif -#endif - -#ifndef __GXX_EXPERIMENTAL_CXX0X__ -# define BOOST_NO_STD_UNORDERED -#endif - diff --git a/3rdParty/Boost/boost/config/stdlib/modena.hpp b/3rdParty/Boost/boost/config/stdlib/modena.hpp deleted file mode 100644 index e488d13..0000000 --- a/3rdParty/Boost/boost/config/stdlib/modena.hpp +++ /dev/null @@ -1,34 +0,0 @@ -// (C) Copyright Jens Maurer 2001. -// 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. - -// Modena C++ standard library (comes with KAI C++) - -#if !defined(MSIPL_COMPILE_H) -# include -# if !defined(__MSIPL_COMPILE_H) -# error "This is not the Modena C++ library!" -# endif -#endif - -#ifndef MSIPL_NL_TYPES -#define BOOST_NO_STD_MESSAGES -#endif - -#ifndef MSIPL_WCHART -#define BOOST_NO_STD_WSTRING -#endif -// -// We never have the new C++0x unordered containers: -// -#define BOOST_NO_STD_UNORDERED - -#define BOOST_STDLIB "Modena C++ standard library" - - - - - diff --git a/3rdParty/Boost/boost/config/stdlib/msl.hpp b/3rdParty/Boost/boost/config/stdlib/msl.hpp deleted file mode 100644 index 746878d..0000000 --- a/3rdParty/Boost/boost/config/stdlib/msl.hpp +++ /dev/null @@ -1,63 +0,0 @@ -// (C) Copyright John Maddock 2001. -// (C) Copyright Darin Adler 2001. -// 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. - -// Metrowerks standard library: - -#ifndef __MSL_CPP__ -# include -# ifndef __MSL_CPP__ -# error This is not the MSL standard library! -# endif -#endif - -#if __MSL_CPP__ >= 0x6000 // Pro 6 -# define BOOST_HAS_HASH -# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks -#endif -#define BOOST_HAS_SLIST - -#if __MSL_CPP__ < 0x6209 -# define BOOST_NO_STD_MESSAGES -#endif - -// check C lib version for -#include - -#if defined(__MSL__) && (__MSL__ >= 0x5000) -# define BOOST_HAS_STDINT_H -# if !defined(__PALMOS_TRAPS__) -# define BOOST_HAS_UNISTD_H -# endif - // boilerplate code: -# include -#endif - -#if defined(_MWMT) || _MSL_THREADSAFE -# define BOOST_HAS_THREADS -#endif - -#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG -# define BOOST_NO_STD_USE_FACET -# define BOOST_HAS_TWO_ARG_USE_FACET -#endif -// -// We never have the new C++0x unordered containers: -// -#define BOOST_NO_STD_UNORDERED - - -#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) - - - - - - - - - diff --git a/3rdParty/Boost/boost/config/stdlib/roguewave.hpp b/3rdParty/Boost/boost/config/stdlib/roguewave.hpp deleted file mode 100644 index 3e58882..0000000 --- a/3rdParty/Boost/boost/config/stdlib/roguewave.hpp +++ /dev/null @@ -1,159 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Jens Maurer 2001. -// (C) Copyright David Abrahams 2003. -// (C) Copyright Boris Gubenko 2007. -// 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. - -// Rogue Wave std lib: - -#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) -# include -# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER) -# error This is not the Rogue Wave standard library -# endif -#endif -// -// figure out a consistent version number: -// -#ifndef _RWSTD_VER -# define BOOST_RWSTD_VER 0x010000 -#elif _RWSTD_VER < 0x010000 -# define BOOST_RWSTD_VER (_RWSTD_VER << 8) -#else -# define BOOST_RWSTD_VER _RWSTD_VER -#endif - -#ifndef _RWSTD_VER -# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)" -#elif _RWSTD_VER < 0x04010200 - # define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER) -#else -# ifdef _RWSTD_VER_STR -# define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR -# else -# define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER) -# endif -#endif - -// -// Prior to version 2.2.0 the primary template for std::numeric_limits -// does not have compile time constants, even though specializations of that -// template do: -// -#if BOOST_RWSTD_VER < 0x020200 -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -#endif - -// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the -// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817): -#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550)) -# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS -# endif - -// -// Borland version of numeric_limits lacks __int64 specialisation: -// -#ifdef __BORLANDC__ -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -#endif - -// -// No std::iterator if it can't figure out default template args: -// -#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000) -# define BOOST_NO_STD_ITERATOR -#endif - -// -// No iterator traits without partial specialization: -// -#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC) -# define BOOST_NO_STD_ITERATOR_TRAITS -#endif - -// -// Prior to version 2.0, std::auto_ptr was buggy, and there were no -// new-style iostreams, and no conformant std::allocator: -// -#if (BOOST_RWSTD_VER < 0x020000) -# define BOOST_NO_AUTO_PTR -# define BOOST_NO_STRINGSTREAM -# define BOOST_NO_STD_ALLOCATOR -# define BOOST_NO_STD_LOCALE -#endif - -// -// No template iterator constructors without member template support: -// -#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES) -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -#endif - -// -// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use -// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR -// on HP aCC systems even though the allocator is in fact broken): -// -#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100) -# define BOOST_NO_STD_ALLOCATOR -#endif - -// -// If we have a std::locale, we still may not have std::use_facet: -// -#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE) -# define BOOST_NO_STD_USE_FACET -# define BOOST_HAS_TWO_ARG_USE_FACET -#endif - -// -// There's no std::distance prior to version 2, or without -// partial specialization support: -// -#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) - #define BOOST_NO_STD_DISTANCE -#endif - -// -// Some versions of the rogue wave library don't have assignable -// OutputIterators: -// -#if BOOST_RWSTD_VER < 0x020100 -# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN -#endif - -// -// Disable BOOST_HAS_LONG_LONG when the library has no support for it. -// -#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG) -# undef BOOST_HAS_LONG_LONG -#endif - -// -// check that on HP-UX, the proper RW library is used -// -#if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD) -# error "Boost requires Standard RW library. Please compile and link with -AA" -#endif - -// -// Define macros specific to RW V2.2 on HP-UX -// -#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100) -# ifndef __HP_TC1_MAKE_PAIR -# define __HP_TC1_MAKE_PAIR -# endif -# ifndef _HP_INSTANTIATE_STD2_VL -# define _HP_INSTANTIATE_STD2_VL -# endif -#endif - -// -// We never have the new C++0x unordered containers: -// -#define BOOST_NO_STD_UNORDERED - diff --git a/3rdParty/Boost/boost/config/stdlib/sgi.hpp b/3rdParty/Boost/boost/config/stdlib/sgi.hpp deleted file mode 100644 index b493d49..0000000 --- a/3rdParty/Boost/boost/config/stdlib/sgi.hpp +++ /dev/null @@ -1,112 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2003. -// (C) Copyright Darin Adler 2001. -// (C) Copyright Jens Maurer 2001 - 2003. -// 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. - -// generic SGI STL: - -#if !defined(__STL_CONFIG_H) -# include -# if !defined(__STL_CONFIG_H) -# error "This is not the SGI STL!" -# endif -#endif - -// -// No std::iterator traits without partial specialisation: -// -#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) -# define BOOST_NO_STD_ITERATOR_TRAITS -#endif - -// -// No std::stringstream with gcc < 3 -// -#if defined(__GNUC__) && (__GNUC__ < 3) && \ - ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \ - !defined(__STL_USE_NEW_IOSTREAMS) || \ - defined(__APPLE_CC__) - // Note that we only set this for GNU C++ prior to 2.95 since the - // latest patches for that release do contain a minimal - // If you are running a 2.95 release prior to 2.95.3 then this will need - // setting, but there is no way to detect that automatically (other - // than by running the configure script). - // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't - // have . -# define BOOST_NO_STRINGSTREAM -#endif - -// -// Assume no std::locale without own iostreams (this may be an -// incorrect assumption in some cases): -// -#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS) -# define BOOST_NO_STD_LOCALE -#endif - -// -// Original native SGI streams have non-standard std::messages facet: -// -#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS) -# define BOOST_NO_STD_LOCALE -#endif - -// -// SGI's new iostreams have missing "const" in messages<>::open -// -#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS) -# define BOOST_NO_STD_MESSAGES -#endif - -// -// No template iterator constructors, or std::allocator -// without member templates: -// -#if !defined(__STL_MEMBER_TEMPLATES) -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -# define BOOST_NO_STD_ALLOCATOR -#endif - -// -// We always have SGI style hash_set, hash_map, and slist: -// -#define BOOST_HAS_HASH -#define BOOST_HAS_SLIST -#define BOOST_NO_STD_UNORDERED - -// -// If this is GNU libstdc++2, then no and no std::wstring: -// -#if (defined(__GNUC__) && (__GNUC__ < 3)) -# include -# if defined(__BASTRING__) -# define BOOST_NO_LIMITS -// Note: will provide compile-time constants -# undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -# define BOOST_NO_STD_WSTRING -# endif -#endif - -// -// There is no standard iterator unless we have namespace support: -// -#if !defined(__STL_USE_NAMESPACES) -# define BOOST_NO_STD_ITERATOR -#endif - -// -// Intrinsic type_traits support. -// The SGI STL has it's own __type_traits class, which -// has intrinsic compiler support with SGI's compilers. -// Whatever map SGI style type traits to boost equivalents: -// -#define BOOST_HAS_SGI_TYPE_TRAITS - -#define BOOST_STDLIB "SGI standard library" - - - diff --git a/3rdParty/Boost/boost/config/stdlib/stlport.hpp b/3rdParty/Boost/boost/config/stdlib/stlport.hpp deleted file mode 100644 index 82e4cff..0000000 --- a/3rdParty/Boost/boost/config/stdlib/stlport.hpp +++ /dev/null @@ -1,206 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// (C) Copyright Darin Adler 2001. -// (C) Copyright Jens Maurer 2001. -// 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. - -// STLPort standard library config: - -#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) -# include -# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) -# error "This is not STLPort!" -# endif -#endif - -// -// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -// for versions prior to 4.1(beta) -// -#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400) -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -#endif - -// -// If STLport thinks that there is no partial specialisation, then there is no -// std::iterator traits: -// -#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION)) -# define BOOST_NO_STD_ITERATOR_TRAITS -#endif - -// -// No new style iostreams on GCC without STLport's iostreams enabled: -// -#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS)) -# define BOOST_NO_STRINGSTREAM -#endif - -// -// No new iostreams implies no std::locale, and no std::stringstream: -// -#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS) -# define BOOST_NO_STD_LOCALE -# define BOOST_NO_STRINGSTREAM -#endif - -// -// If the streams are not native, and we have a "using ::x" compiler bug -// then the io stream facets are not available in namespace std:: -// -#ifdef _STLPORT_VERSION -# if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) -# define BOOST_NO_STD_LOCALE -# endif -#else -# if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) -# define BOOST_NO_STD_LOCALE -# endif -#endif - -#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION < 0x500) -# define BOOST_NO_STD_UNORDERED -#endif -// -// Without member template support enabled, their are no template -// iterate constructors, and no std::allocator: -// -#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES)) -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -# define BOOST_NO_STD_ALLOCATOR -#endif -// -// however we always have at least a partial allocator: -// -#define BOOST_HAS_PARTIAL_STD_ALLOCATOR - -#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) -# define BOOST_NO_STD_ALLOCATOR -#endif - -#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300) -# define BOOST_NO_STD_ALLOCATOR -#endif - -// -// If STLport thinks there is no wchar_t at all, then we have to disable -// the support for the relevant specilazations of std:: templates. -// -#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT) -# ifndef BOOST_NO_STD_WSTRING -# define BOOST_NO_STD_WSTRING -# endif -# ifndef BOOST_NO_STD_WSTREAMBUF -# define BOOST_NO_STD_WSTREAMBUF -# endif -#endif - -// -// We always have SGI style hash_set, hash_map, and slist: -// -#ifndef _STLP_NO_EXTENSIONS -#define BOOST_HAS_HASH -#define BOOST_HAS_SLIST -#endif - -// -// STLport does a good job of importing names into namespace std::, -// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our -// workaround does not conflict with STLports: -// -// -// Harold Howe says: -// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with -// BCB6 does cause problems. If we detect C++ Builder, then don't define -// BOOST_NO_STDC_NAMESPACE -// -#if !defined(__BORLANDC__) && !defined(__DMC__) -// -// If STLport is using it's own namespace, and the real names are in -// the global namespace, then we duplicate STLport's using declarations -// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't -// necessarily import all the names we need into namespace std:: -// -# if (defined(__STL_IMPORT_VENDOR_CSTD) \ - || defined(__STL_USE_OWN_NAMESPACE) \ - || defined(_STLP_IMPORT_VENDOR_CSTD) \ - || defined(_STLP_USE_OWN_NAMESPACE)) \ - && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD)) -# define BOOST_NO_STDC_NAMESPACE -# define BOOST_NO_EXCEPTION_STD_NAMESPACE -# endif -#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560 -// STLport doesn't import std::abs correctly: -#include -namespace std { using ::abs; } -// and strcmp/strcpy don't get imported either ('cos they are macros) -#include -#ifdef strcpy -# undef strcpy -#endif -#ifdef strcmp -# undef strcmp -#endif -#ifdef _STLP_VENDOR_CSTD -namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; } -#endif -#endif - -// -// std::use_facet may be non-standard, uses a class instead: -// -#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) -# define BOOST_NO_STD_USE_FACET -# define BOOST_HAS_STLP_USE_FACET -#endif - -// -// If STLport thinks there are no wide functions, etc. is not working; but -// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import -// into std:: ourselves). -// -#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE) -# define BOOST_NO_CWCHAR -# define BOOST_NO_CWCTYPE -#endif - -// -// If STLport for some reason was configured so that it thinks that wchar_t -// is not an intrinsic type, then we have to disable the support for it as -// well (we would be missing required specializations otherwise). -// -#if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT) -# undef BOOST_NO_INTRINSIC_WCHAR_T -# define BOOST_NO_INTRINSIC_WCHAR_T -#endif - -// -// Borland ships a version of STLport with C++ Builder 6 that lacks -// hashtables and the like: -// -#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560) -# undef BOOST_HAS_HASH -#endif - -// -// gcc-2.95.3/STLPort does not like the using declarations we use to get ADL with std::min/max -// -#if defined(__GNUC__) && (__GNUC__ < 3) -# include // for std::min and std::max -# define BOOST_USING_STD_MIN() ((void)0) -# define BOOST_USING_STD_MAX() ((void)0) -namespace boost { using std::min; using std::max; } -#endif - -#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) - - - - - - - - diff --git a/3rdParty/Boost/boost/config/stdlib/vacpp.hpp b/3rdParty/Boost/boost/config/stdlib/vacpp.hpp deleted file mode 100644 index c6c4566..0000000 --- a/3rdParty/Boost/boost/config/stdlib/vacpp.hpp +++ /dev/null @@ -1,19 +0,0 @@ -// (C) Copyright John Maddock 2001 - 2002. -// 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. - -#if __IBMCPP__ <= 501 -# define BOOST_NO_STD_ALLOCATOR -#endif - -#define BOOST_HAS_MACRO_USE_FACET -#define BOOST_NO_STD_MESSAGES -#define BOOST_NO_STD_UNORDERED - -#define BOOST_STDLIB "Visual Age default standard library" - - - diff --git a/3rdParty/Boost/boost/config/suffix.hpp b/3rdParty/Boost/boost/config/suffix.hpp deleted file mode 100644 index ca80330..0000000 --- a/3rdParty/Boost/boost/config/suffix.hpp +++ /dev/null @@ -1,593 +0,0 @@ -// Boost config.hpp configuration header file ------------------------------// - -// Copyright (c) 2001-2003 John Maddock -// Copyright (c) 2001 Darin Adler -// Copyright (c) 2001 Peter Dimov -// Copyright (c) 2002 Bill Kempf -// Copyright (c) 2002 Jens Maurer -// Copyright (c) 2002-2003 David Abrahams -// Copyright (c) 2003 Gennaro Prota -// Copyright (c) 2003 Eric Friedman -// -// Distributed under the 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. - -// Boost config.hpp policy and rationale documentation has been moved to -// http://www.boost.org/libs/config/ -// -// This file is intended to be stable, and relatively unchanging. -// It should contain boilerplate code only - no compiler specific -// code unless it is unavoidable - no changes unless unavoidable. - -#ifndef BOOST_CONFIG_SUFFIX_HPP -#define BOOST_CONFIG_SUFFIX_HPP - -// -// look for long long by looking for the appropriate macros in . -// Note that we use limits.h rather than climits for maximal portability, -// remember that since these just declare a bunch of macros, there should be -// no namespace issues from this. -// -#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG) \ - && !defined(BOOST_MSVC) && !defined(__BORLANDC__) -# include -# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) -# define BOOST_HAS_LONG_LONG -# else -# define BOOST_NO_LONG_LONG -# endif -#endif - -// GCC 3.x will clean up all of those nasty macro definitions that -// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine -// it under GCC 3.x. -#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS) -# undef BOOST_NO_CTYPE_FUNCTIONS -#endif - -// -// Assume any extensions are in namespace std:: unless stated otherwise: -// -# ifndef BOOST_STD_EXTENSION_NAMESPACE -# define BOOST_STD_EXTENSION_NAMESPACE std -# endif - -// -// If cv-qualified specializations are not allowed, then neither are cv-void ones: -// -# if defined(BOOST_NO_CV_SPECIALIZATIONS) \ - && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS) -# define BOOST_NO_CV_VOID_SPECIALIZATIONS -# endif - -// -// If there is no numeric_limits template, then it can't have any compile time -// constants either! -// -# if defined(BOOST_NO_LIMITS) \ - && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) -# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS -# endif - -// -// if there is no long long then there is no specialisation -// for numeric_limits either: -// -#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS) -# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS -#endif - -// -// if there is no __int64 then there is no specialisation -// for numeric_limits<__int64> either: -// -#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS) -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -#endif - -// -// if member templates are supported then so is the -// VC6 subset of member templates: -// -# if !defined(BOOST_NO_MEMBER_TEMPLATES) \ - && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) -# define BOOST_MSVC6_MEMBER_TEMPLATES -# endif - -// -// Without partial specialization, can't test for partial specialisation bugs: -// -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) -# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG -# endif - -// -// Without partial specialization, we can't have array-type partial specialisations: -// -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS -# endif - -// -// Without partial specialization, std::iterator_traits can't work: -// -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_NO_STD_ITERATOR_TRAITS) -# define BOOST_NO_STD_ITERATOR_TRAITS -# endif - -// -// Without partial specialization, partial -// specialization with default args won't work either: -// -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS) -# define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS -# endif - -// -// Without member template support, we can't have template constructors -// in the standard library either: -// -# if defined(BOOST_NO_MEMBER_TEMPLATES) \ - && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \ - && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) -# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS -# endif - -// -// Without member template support, we can't have a conforming -// std::allocator template either: -// -# if defined(BOOST_NO_MEMBER_TEMPLATES) \ - && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \ - && !defined(BOOST_NO_STD_ALLOCATOR) -# define BOOST_NO_STD_ALLOCATOR -# endif - -// -// without ADL support then using declarations will break ADL as well: -// -#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#endif - -// -// Without typeid support we have no dynamic RTTI either: -// -#if defined(BOOST_NO_TYPEID) && !defined(BOOST_NO_RTTI) -# define BOOST_NO_RTTI -#endif - -// -// If we have a standard allocator, then we have a partial one as well: -// -#if !defined(BOOST_NO_STD_ALLOCATOR) -# define BOOST_HAS_PARTIAL_STD_ALLOCATOR -#endif - -// -// We can't have a working std::use_facet if there is no std::locale: -// -# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET) -# define BOOST_NO_STD_USE_FACET -# endif - -// -// We can't have a std::messages facet if there is no std::locale: -// -# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES) -# define BOOST_NO_STD_MESSAGES -# endif - -// -// We can't have a working std::wstreambuf if there is no std::locale: -// -# if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF) -# define BOOST_NO_STD_WSTREAMBUF -# endif - -// -// We can't have a if there is no : -// -# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE) -# define BOOST_NO_CWCTYPE -# endif - -// -// We can't have a swprintf if there is no : -// -# if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF) -# define BOOST_NO_SWPRINTF -# endif - -// -// If Win32 support is turned off, then we must turn off -// threading support also, unless there is some other -// thread API enabled: -// -#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \ - && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS) -# define BOOST_DISABLE_THREADS -#endif - -// -// Turn on threading support if the compiler thinks that it's in -// multithreaded mode. We put this here because there are only a -// limited number of macros that identify this (if there's any missing -// from here then add to the appropriate compiler section): -// -#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \ - || defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \ - && !defined(BOOST_HAS_THREADS) -# define BOOST_HAS_THREADS -#endif - -// -// Turn threading support off if BOOST_DISABLE_THREADS is defined: -// -#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS) -# undef BOOST_HAS_THREADS -#endif - -// -// Turn threading support off if we don't recognise the threading API: -// -#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\ - && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\ - && !defined(BOOST_HAS_MPTASKS) -# undef BOOST_HAS_THREADS -#endif - -// -// Turn threading detail macros off if we don't (want to) use threading -// -#ifndef BOOST_HAS_THREADS -# undef BOOST_HAS_PTHREADS -# undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# undef BOOST_HAS_PTHREAD_YIELD -# undef BOOST_HAS_PTHREAD_DELAY_NP -# undef BOOST_HAS_WINTHREADS -# undef BOOST_HAS_BETHREADS -# undef BOOST_HAS_MPTASKS -#endif - -// -// If the compiler claims to be C99 conformant, then it had better -// have a : -// -# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) -# define BOOST_HAS_STDINT_H -# ifndef BOOST_HAS_LOG1P -# define BOOST_HAS_LOG1P -# endif -# ifndef BOOST_HAS_EXPM1 -# define BOOST_HAS_EXPM1 -# endif -# endif - -// -// Define BOOST_NO_SLIST and BOOST_NO_HASH if required. -// Note that this is for backwards compatibility only. -// -# if !defined(BOOST_HAS_SLIST) && !defined(BOOST_NO_SLIST) -# define BOOST_NO_SLIST -# endif - -# if !defined(BOOST_HAS_HASH) && !defined(BOOST_NO_HASH) -# define BOOST_NO_HASH -# endif - -// -// Set BOOST_SLIST_HEADER if not set already: -// -#if defined(BOOST_HAS_SLIST) && !defined(BOOST_SLIST_HEADER) -# define BOOST_SLIST_HEADER -#endif - -// -// Set BOOST_HASH_SET_HEADER if not set already: -// -#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_SET_HEADER) -# define BOOST_HASH_SET_HEADER -#endif - -// -// Set BOOST_HASH_MAP_HEADER if not set already: -// -#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_MAP_HEADER) -# define BOOST_HASH_MAP_HEADER -#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: -#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS) -# define BOOST_HAS_ABI_HEADERS -#endif - -#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS) -# undef BOOST_HAS_ABI_HEADERS -#endif - -// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------// -// Because std::size_t usage is so common, even in boost headers which do not -// otherwise use the C library, the workaround is included here so -// that ugly workaround code need not appear in many other boost headers. -// NOTE WELL: This is a workaround for non-conforming compilers; -// must still be #included in the usual places so that inclusion -// works as expected with standard conforming compilers. The resulting -// double inclusion of is harmless. - -# ifdef BOOST_NO_STDC_NAMESPACE -# include - namespace std { using ::ptrdiff_t; using ::size_t; } -# endif - -// Workaround for the unfortunate min/max macros defined by some platform headers - -#define BOOST_PREVENT_MACRO_SUBSTITUTION - -#ifndef BOOST_USING_STD_MIN -# define BOOST_USING_STD_MIN() using std::min -#endif - -#ifndef BOOST_USING_STD_MAX -# define BOOST_USING_STD_MAX() using std::max -#endif - -// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------// - -# ifdef BOOST_NO_STD_MIN_MAX - -namespace std { - template - inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) { - return __b < __a ? __b : __a; - } - template - inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) { - return __a < __b ? __b : __a; - } -} - -# endif - -// BOOST_STATIC_CONSTANT workaround --------------------------------------- // -// On compilers which don't allow in-class initialization of static integral -// constant members, we must use enums as a workaround if we want the constants -// to be available at compile-time. This macro gives us a convenient way to -// declare such constants. - -# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment } -# else -# define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment -# endif - -// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------// -// When the standard library does not have a conforming std::use_facet there -// are various workarounds available, but they differ from library to library. -// The same problem occurs with has_facet. -// These macros provide a consistent way to access a locale's facets. -// Usage: -// replace -// std::use_facet(loc); -// with -// BOOST_USE_FACET(Type, loc); -// Note do not add a std:: prefix to the front of BOOST_USE_FACET! -// Use for BOOST_HAS_FACET is analogous. - -#if defined(BOOST_NO_STD_USE_FACET) -# ifdef BOOST_HAS_TWO_ARG_USE_FACET -# define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast(0)) -# define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast(0)) -# elif defined(BOOST_HAS_MACRO_USE_FACET) -# define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type) -# define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type) -# elif defined(BOOST_HAS_STLP_USE_FACET) -# define BOOST_USE_FACET(Type, loc) (*std::_Use_facet(loc)) -# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc) -# endif -#else -# define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc) -# define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc) -#endif - -// BOOST_NESTED_TEMPLATE workaround ------------------------------------------// -// Member templates are supported by some compilers even though they can't use -// the A::template member syntax, as a workaround replace: -// -// typedef typename A::template rebind binder; -// -// with: -// -// typedef typename A::BOOST_NESTED_TEMPLATE rebind binder; - -#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD -# define BOOST_NESTED_TEMPLATE template -#else -# define BOOST_NESTED_TEMPLATE -#endif - -// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------// -// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION -// is defined, in which case it evaluates to return x; Use when you have a return -// statement that can never be reached. - -#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION -# define BOOST_UNREACHABLE_RETURN(x) return x; -#else -# define BOOST_UNREACHABLE_RETURN(x) -#endif - -// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------// -// -// Some compilers don't support the use of `typename' for dependent -// types in deduced contexts, e.g. -// -// template void f(T, typename T::type); -// ^^^^^^^^ -// Replace these declarations with: -// -// template void f(T, BOOST_DEDUCED_TYPENAME T::type); - -#ifndef BOOST_NO_DEDUCED_TYPENAME -# define BOOST_DEDUCED_TYPENAME typename -#else -# define BOOST_DEDUCED_TYPENAME -#endif - -#ifndef BOOST_NO_TYPENAME_WITH_CTOR -# define BOOST_CTOR_TYPENAME typename -#else -# define BOOST_CTOR_TYPENAME -#endif - -// long long workaround ------------------------------------------// -// On gcc (and maybe other compilers?) long long is alway supported -// but it's use may generate either warnings (with -ansi), or errors -// (with -pedantic -ansi) unless it's use is prefixed by __extension__ -// -#if defined(BOOST_HAS_LONG_LONG) -namespace boost{ -# ifdef __GNUC__ - __extension__ typedef long long long_long_type; - __extension__ typedef unsigned long long ulong_long_type; -# else - typedef long long long_long_type; - typedef unsigned long long ulong_long_type; -# endif -} -#endif - -// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------// -// -// Some compilers have problems with function templates whose template -// parameters don't appear in the function parameter list (basically -// they just link one instantiation of the template in the final -// executable). These macros provide a uniform way to cope with the -// problem with no effects on the calling syntax. - -// Example: -// -// #include -// #include -// #include -// -// template -// void f() { std::cout << n << ' '; } -// -// template -// void g() { std::cout << typeid(T).name() << ' '; } -// -// int main() { -// f<1>(); -// f<2>(); -// -// g(); -// g(); -// } -// -// With VC++ 6.0 the output is: -// -// 2 2 double double -// -// To fix it, write -// -// template -// void f(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, n)) { ... } -// -// template -// void g(BOOST_EXPLICIT_TEMPLATE_TYPE(T)) { ... } -// - - -#if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS - -# include "boost/type.hpp" -# include "boost/non_type.hpp" - -# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type* = 0 -# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type* -# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type* = 0 -# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type* - -# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \ - , BOOST_EXPLICIT_TEMPLATE_TYPE(t) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \ - , BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \ - , BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \ - , BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) - -#else - -// no workaround needed: expand to nothing - -# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) -# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) -# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) -# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) - -# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) -# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) - - -#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS - - -// ---------------------------------------------------------------------------// - -// -// Helper macro BOOST_STRINGIZE: -// Converts the parameter X to a string after macro replacement -// on X has been performed. -// -#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X) -#define BOOST_DO_STRINGIZE(X) #X - -// -// Helper macro BOOST_JOIN: -// The following piece of macro magic joins the two -// arguments together, even when one of the arguments is -// itself a macro (see 16.3.1 in C++ standard). The key -// is that macro expansion of macro arguments does not -// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN. -// -#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y ) -#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y) -#define BOOST_DO_JOIN2( X, Y ) X##Y - -// -// Set some default values for compiler/library/platform names. -// These are for debugging config setup only: -// -# ifndef BOOST_COMPILER -# define BOOST_COMPILER "Unknown ISO C++ Compiler" -# endif -# ifndef BOOST_STDLIB -# define BOOST_STDLIB "Unknown ISO standard library" -# endif -# ifndef BOOST_PLATFORM -# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \ - || defined(_POSIX_SOURCE) -# define BOOST_PLATFORM "Generic Unix" -# else -# define BOOST_PLATFORM "Unknown" -# endif -# endif - -#endif - - diff --git a/3rdParty/Boost/boost/config/user.hpp b/3rdParty/Boost/boost/config/user.hpp deleted file mode 100644 index 5a4a9d4..0000000 --- a/3rdParty/Boost/boost/config/user.hpp +++ /dev/null @@ -1,124 +0,0 @@ -// boost/config/user.hpp ---------------------------------------------------// - -// (C) Copyright John Maddock 2001. -// 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) - -// Do not check in modified versions of this file, -// This file may be customized by the end user, but not by boost. - -// -// Use this file to define a site and compiler specific -// configuration policy: -// - -// define this to locate a compiler config file: -// #define BOOST_COMPILER_CONFIG - -// define this to locate a stdlib config file: -// #define BOOST_STDLIB_CONFIG - -// define this to locate a platform config file: -// #define BOOST_PLATFORM_CONFIG - -// define this to disable compiler config, -// use if your compiler config has nothing to set: -// #define BOOST_NO_COMPILER_CONFIG - -// define this to disable stdlib config, -// use if your stdlib config has nothing to set: -// #define BOOST_NO_STDLIB_CONFIG - -// define this to disable platform config, -// use if your platform config has nothing to set: -// #define BOOST_NO_PLATFORM_CONFIG - -// define this to disable all config options, -// excluding the user config. Use if your -// setup is fully ISO compliant, and has no -// useful extensions, or for autoconf generated -// setups: -// #define BOOST_NO_CONFIG - -// define this to make the config "optimistic" -// about unknown compiler versions. Normally -// unknown compiler versions are assumed to have -// all the defects of the last known version, however -// setting this flag, causes the config to assume -// that unknown compiler versions are fully conformant -// with the standard: -// #define BOOST_STRICT_CONFIG - -// define this to cause the config to halt compilation -// with an #error if it encounters anything unknown -- -// either an unknown compiler version or an unknown -// compiler/platform/library: -// #define BOOST_ASSERT_CONFIG - - -// define if you want to disable threading support, even -// when available: -// #define BOOST_DISABLE_THREADS - -// define when you want to disable Win32 specific features -// even when available: -// #define BOOST_DISABLE_WIN32 - -// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any -// prefix/suffix headers that normally control things like struct -// packing and alignment. -// #define BOOST_DISABLE_ABI_HEADERS - -// BOOST_ABI_PREFIX: A prefix header to include in place of whatever -// boost.config would normally select, any replacement should set up -// struct packing and alignment options as required. -// #define BOOST_ABI_PREFIX my-header-name - -// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever -// boost.config would normally select, any replacement should undo -// the effects of the prefix header. -// #define BOOST_ABI_SUFFIX my-header-name - -// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source, -// to be linked as dll's rather than static libraries on Microsoft Windows -// (this macro is used to turn on __declspec(dllimport) modifiers, so that -// the compiler knows which symbols to look for in a dll rather than in a -// static library). Note that there may be some libraries that can only -// be statically linked (Boost.Test for example) and others which may only -// be dynamically linked (Boost.Threads for example), in these cases this -// macro has no effect. -// #define BOOST_ALL_DYN_LINK - -// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll -// rather than a static library on Microsoft Windows: replace the WHATEVER -// part of the macro name with the name of the library that you want to -// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or -// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport) -// modifiers, so that the compiler knows which symbols to look for in a dll -// rather than in a static library). -// Note that there may be some libraries that can only be statically linked -// (Boost.Test for example) and others which may only be dynamically linked -// (Boost.Threads for example), in these cases this macro is unsupported. -// #define BOOST_WHATEVER_DYN_LINK - -// BOOST_ALL_NO_LIB: Tells the config system not to automatically select -// which libraries to link against. -// Normally if a compiler supports #pragma lib, then the correct library -// build variant will be automatically selected and linked against, -// simply by the act of including one of that library's headers. -// This macro turns that feature off. -// #define BOOST_ALL_NO_LIB - -// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically -// select which library to link against for library "whatever", -// replace WHATEVER in the macro name with the name of the library; -// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB. -// Normally if a compiler supports #pragma lib, then the correct library -// build variant will be automatically selected and linked against, simply -// by the act of including one of that library's headers. This macro turns -// that feature off. -// #define BOOST_WHATEVER_NO_LIB - - - diff --git a/3rdParty/Boost/boost/config/warning_disable.hpp b/3rdParty/Boost/boost/config/warning_disable.hpp deleted file mode 100644 index 26ff132..0000000 --- a/3rdParty/Boost/boost/config/warning_disable.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright John Maddock 2008 -// 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) -// -// This file exists to turn off some overly-pedantic warning emitted -// by certain compilers. You should include this header only in: -// -// * A test case, before any other headers, or, -// * A library source file before any other headers. -// -// IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER. -// -// YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING. -// -// The only warnings disabled here are those that are: -// -// * Quite unreasonably pedantic. -// * Generally only emitted by a single compiler. -// * Can't easily be fixed: for example if the vendors own std lib -// code emits these warnings! -// -// Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS: -// not even std library ones! Doing so may turn the warning -// off too late to be of any use. For example the VC++ C4996 -// warning can be omitted from if that header is included -// before or by this one :-( -// - -#ifndef BOOST_CONFIG_WARNING_DISABLE_HPP -#define BOOST_CONFIG_WARNING_DISABLE_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1400) - // Error 'function': was declared deprecated - // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx - // This error is emitted when you use some perfectly conforming - // std lib functions in a perfectly correct way, and also by - // some of Microsoft's own std lib code ! -# pragma warning(disable:4996) -#endif -#if defined(__INTEL_COMPILER) || defined(__ICL) - // As above: gives warning when a "deprecated" - // std library function is encountered. -# pragma warning(disable:1786) -#endif - -#endif // BOOST_CONFIG_WARNING_DISABLE_HPP diff --git a/3rdParty/Boost/boost/cregex.hpp b/3rdParty/Boost/boost/cregex.hpp deleted file mode 100644 index b7a918e..0000000 --- a/3rdParty/Boost/boost/cregex.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - * - * Copyright (c) 1998-2002 - * John Maddock - * - * 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) - * - */ - - /* - * LOCATION: see http://www.boost.org/libs/regex for most recent version. - * FILE cregex.cpp - * VERSION see - * DESCRIPTION: Declares POSIX API functions - * + boost::RegEx high level wrapper. - */ - -#ifndef BOOST_RE_CREGEX_HPP -#define BOOST_RE_CREGEX_HPP - -#ifndef BOOST_REGEX_CONFIG_HPP -#include -#endif - -#include - -#endif /* include guard */ - - - - - - - - - - diff --git a/3rdParty/Boost/boost/cstdint.hpp b/3rdParty/Boost/boost/cstdint.hpp deleted file mode 100644 index d55a484..0000000 --- a/3rdParty/Boost/boost/cstdint.hpp +++ /dev/null @@ -1,446 +0,0 @@ -// boost cstdint.hpp header file ------------------------------------------// - -// (C) Copyright Beman Dawes 1999. -// (C) Copyright Jens Mauer 2001 -// (C) Copyright John Maddock 2001 -// Distributed under the 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/integer for documentation. - -// Revision History -// 31 Oct 01 use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.) -// 16 Apr 01 check LONGLONG_MAX when looking for "long long" (Jens Maurer) -// 23 Jan 01 prefer "long" over "int" for int32_t and intmax_t (Jens Maurer) -// 12 Nov 00 Merged (Jens Maurer) -// 23 Sep 00 Added INTXX_C macro support (John Maddock). -// 22 Sep 00 Better 64-bit support (John Maddock) -// 29 Jun 00 Reimplement to avoid including stdint.h within namespace boost -// 8 Aug 99 Initial version (Beman Dawes) - - -#ifndef BOOST_CSTDINT_HPP -#define BOOST_CSTDINT_HPP - -#include - - -#ifdef BOOST_HAS_STDINT_H - -// The following #include is an implementation artifact; not part of interface. -# ifdef __hpux -// HP-UX has a vaguely nice in a non-standard location -# include -# ifdef __STDC_32_MODE__ - // this is triggered with GCC, because it defines __cplusplus < 199707L -# define BOOST_NO_INT64_T -# endif -# elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX) -# include -# else -# include - -// There is a bug in Cygwin two _C macros -# if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__) -# undef INTMAX_C -# undef UINTMAX_C -# define INTMAX_C(c) c##LL -# define UINTMAX_C(c) c##ULL -# endif - -# endif - -#ifdef __QNX__ - -// QNX (Dinkumware stdlib) defines these as non-standard names. -// Reflect to the standard names. - -typedef ::intleast8_t int_least8_t; -typedef ::intfast8_t int_fast8_t; -typedef ::uintleast8_t uint_least8_t; -typedef ::uintfast8_t uint_fast8_t; - -typedef ::intleast16_t int_least16_t; -typedef ::intfast16_t int_fast16_t; -typedef ::uintleast16_t uint_least16_t; -typedef ::uintfast16_t uint_fast16_t; - -typedef ::intleast32_t int_least32_t; -typedef ::intfast32_t int_fast32_t; -typedef ::uintleast32_t uint_least32_t; -typedef ::uintfast32_t uint_fast32_t; - -# ifndef BOOST_NO_INT64_T - -typedef ::intleast64_t int_least64_t; -typedef ::intfast64_t int_fast64_t; -typedef ::uintleast64_t uint_least64_t; -typedef ::uintfast64_t uint_fast64_t; - -# endif - -#endif - -namespace boost -{ - - using ::int8_t; - using ::int_least8_t; - using ::int_fast8_t; - using ::uint8_t; - using ::uint_least8_t; - using ::uint_fast8_t; - - using ::int16_t; - using ::int_least16_t; - using ::int_fast16_t; - using ::uint16_t; - using ::uint_least16_t; - using ::uint_fast16_t; - - using ::int32_t; - using ::int_least32_t; - using ::int_fast32_t; - using ::uint32_t; - using ::uint_least32_t; - using ::uint_fast32_t; - -# ifndef BOOST_NO_INT64_T - - using ::int64_t; - using ::int_least64_t; - using ::int_fast64_t; - using ::uint64_t; - using ::uint_least64_t; - using ::uint_fast64_t; - -# endif - - using ::intmax_t; - using ::uintmax_t; - -} // namespace boost - -#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) -// FreeBSD and Tru64 have an that contains much of what we need. -# include - -namespace boost { - - using ::int8_t; - typedef int8_t int_least8_t; - typedef int8_t int_fast8_t; - using ::uint8_t; - typedef uint8_t uint_least8_t; - typedef uint8_t uint_fast8_t; - - using ::int16_t; - typedef int16_t int_least16_t; - typedef int16_t int_fast16_t; - using ::uint16_t; - typedef uint16_t uint_least16_t; - typedef uint16_t uint_fast16_t; - - using ::int32_t; - typedef int32_t int_least32_t; - typedef int32_t int_fast32_t; - using ::uint32_t; - typedef uint32_t uint_least32_t; - typedef uint32_t uint_fast32_t; - -# ifndef BOOST_NO_INT64_T - - using ::int64_t; - typedef int64_t int_least64_t; - typedef int64_t int_fast64_t; - using ::uint64_t; - typedef uint64_t uint_least64_t; - typedef uint64_t uint_fast64_t; - - typedef int64_t intmax_t; - typedef uint64_t uintmax_t; - -# else - - typedef int32_t intmax_t; - typedef uint32_t uintmax_t; - -# endif - -} // namespace boost - -#else // BOOST_HAS_STDINT_H - -# include // implementation artifact; not part of interface -# include // needed for limits macros - - -namespace boost -{ - -// These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit -// platforms. For other systems, they will have to be hand tailored. -// -// Because the fast types are assumed to be the same as the undecorated types, -// it may be possible to hand tailor a more efficient implementation. Such -// an optimization may be illusionary; on the Intel x86-family 386 on, for -// example, byte arithmetic and load/stores are as fast as "int" sized ones. - -// 8-bit types ------------------------------------------------------------// - -# if UCHAR_MAX == 0xff - typedef signed char int8_t; - typedef signed char int_least8_t; - typedef signed char int_fast8_t; - typedef unsigned char uint8_t; - typedef unsigned char uint_least8_t; - typedef unsigned char uint_fast8_t; -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif - -// 16-bit types -----------------------------------------------------------// - -# if USHRT_MAX == 0xffff -# if defined(__crayx1) - // The Cray X1 has a 16-bit short, however it is not recommend - // for use in performance critical code. - typedef short int16_t; - typedef short int_least16_t; - typedef int int_fast16_t; - typedef unsigned short uint16_t; - typedef unsigned short uint_least16_t; - typedef unsigned int uint_fast16_t; -# else - typedef short int16_t; - typedef short int_least16_t; - typedef short int_fast16_t; - typedef unsigned short uint16_t; - typedef unsigned short uint_least16_t; - typedef unsigned short uint_fast16_t; -# endif -# elif (USHRT_MAX == 0xffffffff) && defined(CRAY) - // no 16-bit types on Cray: - typedef short int_least16_t; - typedef short int_fast16_t; - typedef unsigned short uint_least16_t; - typedef unsigned short uint_fast16_t; -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif - -// 32-bit types -----------------------------------------------------------// - -# if ULONG_MAX == 0xffffffff - typedef long int32_t; - typedef long int_least32_t; - typedef long int_fast32_t; - typedef unsigned long uint32_t; - typedef unsigned long uint_least32_t; - typedef unsigned long uint_fast32_t; -# elif UINT_MAX == 0xffffffff - typedef int int32_t; - typedef int int_least32_t; - typedef int int_fast32_t; - typedef unsigned int uint32_t; - typedef unsigned int uint_least32_t; - typedef unsigned int uint_fast32_t; -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif - -// 64-bit types + intmax_t and uintmax_t ----------------------------------// - -# if defined(BOOST_HAS_LONG_LONG) && \ - !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \ - (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \ - (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) -# if defined(__hpux) - // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions -# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) - // 2**64 - 1 -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif - - typedef ::boost::long_long_type intmax_t; - typedef ::boost::ulong_long_type uintmax_t; - typedef ::boost::long_long_type int64_t; - typedef ::boost::long_long_type int_least64_t; - typedef ::boost::long_long_type int_fast64_t; - typedef ::boost::ulong_long_type uint64_t; - typedef ::boost::ulong_long_type uint_least64_t; - typedef ::boost::ulong_long_type uint_fast64_t; - -# elif ULONG_MAX != 0xffffffff - -# if ULONG_MAX == 18446744073709551615 // 2**64 - 1 - typedef long intmax_t; - typedef unsigned long uintmax_t; - typedef long int64_t; - typedef long int_least64_t; - typedef long int_fast64_t; - typedef unsigned long uint64_t; - typedef unsigned long uint_least64_t; - typedef unsigned long uint_fast64_t; -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif -# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG) - __extension__ typedef long long intmax_t; - __extension__ typedef unsigned long long uintmax_t; - __extension__ typedef long long int64_t; - __extension__ typedef long long int_least64_t; - __extension__ typedef long long int_fast64_t; - __extension__ typedef unsigned long long uint64_t; - __extension__ typedef unsigned long long uint_least64_t; - __extension__ typedef unsigned long long uint_fast64_t; -# elif defined(BOOST_HAS_MS_INT64) - // - // we have Borland/Intel/Microsoft __int64: - // - typedef __int64 intmax_t; - typedef unsigned __int64 uintmax_t; - typedef __int64 int64_t; - typedef __int64 int_least64_t; - typedef __int64 int_fast64_t; - typedef unsigned __int64 uint64_t; - typedef unsigned __int64 uint_least64_t; - typedef unsigned __int64 uint_fast64_t; -# else // assume no 64-bit integers -# define BOOST_NO_INT64_T - typedef int32_t intmax_t; - typedef uint32_t uintmax_t; -# endif - -} // namespace boost - - -#endif // BOOST_HAS_STDINT_H - -#endif // BOOST_CSTDINT_HPP - - -/**************************************************** - -Macro definition section: - -Define various INTXX_C macros only if -__STDC_CONSTANT_MACROS is defined. - -Undefine the macros if __STDC_CONSTANT_MACROS is -not defined and the macros are (cf ). - -Added 23rd September 2000 (John Maddock). -Modified 11th September 2001 to be excluded when -BOOST_HAS_STDINT_H is defined (John Maddock). - -******************************************************/ - -#if defined(__STDC_CONSTANT_MACROS) && !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && !defined(BOOST_HAS_STDINT_H) -# define BOOST__STDC_CONSTANT_MACROS_DEFINED -# if defined(BOOST_HAS_MS_INT64) -// -// Borland/Intel/Microsoft compilers have width specific suffixes: -// -# define INT8_C(value) value##i8 -# define INT16_C(value) value##i16 -# define INT32_C(value) value##i32 -# define INT64_C(value) value##i64 -# ifdef __BORLANDC__ - // Borland bug: appending ui8 makes the type a signed char -# define UINT8_C(value) static_cast(value##u) -# else -# define UINT8_C(value) value##ui8 -# endif -# define UINT16_C(value) value##ui16 -# define UINT32_C(value) value##ui32 -# define UINT64_C(value) value##ui64 -# define INTMAX_C(value) value##i64 -# define UINTMAX_C(value) value##ui64 - -# else -// do it the old fashioned way: - -// 8-bit types ------------------------------------------------------------// - -# if UCHAR_MAX == 0xff -# define INT8_C(value) static_cast(value) -# define UINT8_C(value) static_cast(value##u) -# endif - -// 16-bit types -----------------------------------------------------------// - -# if USHRT_MAX == 0xffff -# define INT16_C(value) static_cast(value) -# define UINT16_C(value) static_cast(value##u) -# endif - -// 32-bit types -----------------------------------------------------------// - -# if UINT_MAX == 0xffffffff -# define INT32_C(value) value -# define UINT32_C(value) value##u -# elif ULONG_MAX == 0xffffffff -# define INT32_C(value) value##L -# define UINT32_C(value) value##uL -# endif - -// 64-bit types + intmax_t and uintmax_t ----------------------------------// - -# if defined(BOOST_HAS_LONG_LONG) && \ - (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX)) - -# if defined(__hpux) - // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions -# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615U) || \ - (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615U) || \ - (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615U) - -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif -# define INT64_C(value) value##LL -# define UINT64_C(value) value##uLL -# elif ULONG_MAX != 0xffffffff - -# if ULONG_MAX == 18446744073709551615 // 2**64 - 1 -# define INT64_C(value) value##L -# define UINT64_C(value) value##uL -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif -# endif - -# ifdef BOOST_NO_INT64_T -# define INTMAX_C(value) INT32_C(value) -# define UINTMAX_C(value) UINT32_C(value) -# else -# define INTMAX_C(value) INT64_C(value) -# define UINTMAX_C(value) UINT64_C(value) -# endif - -# endif // Borland/Microsoft specific width suffixes - - -#elif defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && !defined(__STDC_CONSTANT_MACROS) && !defined(BOOST_HAS_STDINT_H) -// -// undef all the macros: -// -# undef INT8_C -# undef INT16_C -# undef INT32_C -# undef INT64_C -# undef UINT8_C -# undef UINT16_C -# undef UINT32_C -# undef UINT64_C -# undef INTMAX_C -# undef UINTMAX_C - -#endif // __STDC_CONSTANT_MACROS_DEFINED etc. - - - - diff --git a/3rdParty/Boost/boost/current_function.hpp b/3rdParty/Boost/boost/current_function.hpp deleted file mode 100644 index aa5756e..0000000 --- a/3rdParty/Boost/boost/current_function.hpp +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED -#define BOOST_CURRENT_FUNCTION_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/current_function.hpp - BOOST_CURRENT_FUNCTION -// -// Copyright (c) 2002 Peter Dimov and Multi Media Ltd. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// http://www.boost.org/libs/utility/current_function.html -// - -namespace boost -{ - -namespace detail -{ - -inline void current_function_helper() -{ - -#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) - -# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ - -#elif defined(__DMC__) && (__DMC__ >= 0x810) - -# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__ - -#elif defined(__FUNCSIG__) - -# define BOOST_CURRENT_FUNCTION __FUNCSIG__ - -#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500)) - -# define BOOST_CURRENT_FUNCTION __FUNCTION__ - -#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550) - -# define BOOST_CURRENT_FUNCTION __FUNC__ - -#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901) - -# define BOOST_CURRENT_FUNCTION __func__ - -#else - -# define BOOST_CURRENT_FUNCTION "(unknown)" - -#endif - -} - -} // namespace detail - -} // namespace boost - -#endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/date_time/adjust_functors.hpp b/3rdParty/Boost/boost/date_time/adjust_functors.hpp deleted file mode 100644 index 7854ae4..0000000 --- a/3rdParty/Boost/boost/date_time/adjust_functors.hpp +++ /dev/null @@ -1,178 +0,0 @@ -#ifndef _DATE_TIME_ADJUST_FUNCTORS_HPP___ -#define _DATE_TIME_ADJUST_FUNCTORS_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/date.hpp" -#include "boost/date_time/wrapping_int.hpp" - -namespace boost { -namespace date_time { - - - //! Functor to iterate a fixed number of days - template - class day_functor - { - public: - typedef typename date_type::duration_type duration_type; - day_functor(int f) : f_(f) {} - duration_type get_offset(const date_type& d) const - { - // why is 'd' a parameter??? - // fix compiler warnings - d.year(); - return duration_type(f_); - } - duration_type get_neg_offset(const date_type& d) const - { - // fix compiler warnings - d.year(); - return duration_type(-f_); - } - private: - int f_; - }; - - - //! Provides calculation to find next nth month given a date - /*! This adjustment function provides the logic for 'month-based' - * advancement on a ymd based calendar. The policy it uses - * to handle the non existant end of month days is to back - * up to the last day of the month. Also, if the starting - * date is the last day of a month, this functor will attempt - * to adjust to the end of the month. - - */ - template - class month_functor - { - public: - typedef typename date_type::duration_type duration_type; - typedef typename date_type::calendar_type cal_type; - typedef typename cal_type::ymd_type ymd_type; - typedef typename cal_type::day_type day_type; - - month_functor(int f) : f_(f), origDayOfMonth_(0) {} - duration_type get_offset(const date_type& d) const - { - ymd_type ymd(d.year_month_day()); - if (origDayOfMonth_ == 0) { - origDayOfMonth_ = ymd.day; - day_type endOfMonthDay(cal_type::end_of_month_day(ymd.year,ymd.month)); - if (endOfMonthDay == ymd.day) { - origDayOfMonth_ = -1; //force the value to the end of month - } - } - typedef date_time::wrapping_int2 wrap_int2; - typedef typename wrap_int2::int_type int_type; - wrap_int2 wi(ymd.month); - //calc the year wrap around, add() returns 0 or 1 if wrapped - int_type year = wi.add(static_cast(f_)); - year = static_cast(year + ymd.year); //calculate resulting year -// std::cout << "trace wi: " << wi.as_int() << std::endl; -// std::cout << "trace year: " << year << std::endl; - //find the last day for the new month - day_type resultingEndOfMonthDay(cal_type::end_of_month_day(year, wi.as_int())); - //original was the end of month -- force to last day of month - if (origDayOfMonth_ == -1) { - return date_type(year, wi.as_int(), resultingEndOfMonthDay) - d; - } - day_type dayOfMonth = origDayOfMonth_; - if (dayOfMonth > resultingEndOfMonthDay) { - dayOfMonth = resultingEndOfMonthDay; - } - return date_type(year, wi.as_int(), dayOfMonth) - d; - } - //! Returns a negative duration_type - duration_type get_neg_offset(const date_type& d) const - { - ymd_type ymd(d.year_month_day()); - if (origDayOfMonth_ == 0) { - origDayOfMonth_ = ymd.day; - day_type endOfMonthDay(cal_type::end_of_month_day(ymd.year,ymd.month)); - if (endOfMonthDay == ymd.day) { - origDayOfMonth_ = -1; //force the value to the end of month - } - } - typedef date_time::wrapping_int2 wrap_int2; - typedef typename wrap_int2::int_type int_type; - wrap_int2 wi(ymd.month); - //calc the year wrap around, add() returns 0 or 1 if wrapped - int_type year = wi.subtract(static_cast(f_)); - year = static_cast(year + ymd.year); //calculate resulting year - //find the last day for the new month - day_type resultingEndOfMonthDay(cal_type::end_of_month_day(year, wi.as_int())); - //original was the end of month -- force to last day of month - if (origDayOfMonth_ == -1) { - return date_type(year, wi.as_int(), resultingEndOfMonthDay) - d; - } - day_type dayOfMonth = origDayOfMonth_; - if (dayOfMonth > resultingEndOfMonthDay) { - dayOfMonth = resultingEndOfMonthDay; - } - return date_type(year, wi.as_int(), dayOfMonth) - d; - } - private: - int f_; - mutable short origDayOfMonth_; - }; - - - //! Functor to iterate a over weeks - template - class week_functor - { - public: - typedef typename date_type::duration_type duration_type; - typedef typename date_type::calendar_type calendar_type; - week_functor(int f) : f_(f) {} - duration_type get_offset(const date_type& d) const - { - // why is 'd' a parameter??? - // fix compiler warnings - d.year(); - return duration_type(f_*calendar_type::days_in_week()); - } - duration_type get_neg_offset(const date_type& d) const - { - // fix compiler warnings - d.year(); - return duration_type(-f_*calendar_type::days_in_week()); - } - private: - int f_; - }; - - //! Functor to iterate by a year adjusting for leap years - template - class year_functor - { - public: - //typedef typename date_type::year_type year_type; - typedef typename date_type::duration_type duration_type; - year_functor(int f) : _mf(f * 12) {} - duration_type get_offset(const date_type& d) const - { - return _mf.get_offset(d); - } - duration_type get_neg_offset(const date_type& d) const - { - return _mf.get_neg_offset(d); - } - private: - month_functor _mf; - }; - - -} }//namespace date_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/c_time.hpp b/3rdParty/Boost/boost/date_time/c_time.hpp deleted file mode 100644 index 42902a5..0000000 --- a/3rdParty/Boost/boost/date_time/c_time.hpp +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef DATE_TIME_C_TIME_HPP___ -#define DATE_TIME_C_TIME_HPP___ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - - -/*! @file c_time.hpp - Provide workarounds related to the ctime header -*/ - -#include -#include // to be able to convert from string literals to exceptions -#include -#include -#include - -//Work around libraries that don't put time_t and time in namespace std -#ifdef BOOST_NO_STDC_NAMESPACE -namespace std { using ::time_t; using ::time; using ::localtime; - using ::tm; using ::gmtime; } -#endif // BOOST_NO_STDC_NAMESPACE - -//The following is used to support high precision time clocks -#ifdef BOOST_HAS_GETTIMEOFDAY -#include -#endif - -#ifdef BOOST_HAS_FTIME -#include -#endif - -namespace boost { -namespace date_time { - //! Provides a uniform interface to some 'ctime' functions - /*! Provides a uniform interface to some ctime functions and - * their '_r' counterparts. The '_r' functions require a pointer to a - * user created std::tm struct whereas the regular functions use a - * staticly created struct and return a pointer to that. These wrapper - * functions require the user to create a std::tm struct and send in a - * pointer to it. A pointer to the user created struct will be returned. - * All functions do proper checking of the C function results and throw - * exceptions on error. Therefore the functions will never return NULL. - */ - struct c_time { - public: -#if defined(BOOST_DATE_TIME_HAS_REENTRANT_STD_FUNCTIONS) - //! requires a pointer to a user created std::tm struct - inline - static std::tm* localtime(const std::time_t* t, std::tm* result) - { - // localtime_r() not in namespace std??? - result = localtime_r(t, result); - if (!result) - boost::throw_exception(std::runtime_error("could not convert calendar time to local time")); - return result; - } - //! requires a pointer to a user created std::tm struct - inline - static std::tm* gmtime(const std::time_t* t, std::tm* result) - { - // gmtime_r() not in namespace std??? - result = gmtime_r(t, result); - if (!result) - boost::throw_exception(std::runtime_error("could not convert calendar time to UTC time")); - return result; - } -#else // BOOST_HAS_THREADS - -#if (defined(_MSC_VER) && (_MSC_VER >= 1400)) -#pragma warning(push) // preserve warning settings -#pragma warning(disable : 4996) // disable depricated localtime/gmtime warning on vc8 -#endif // _MSC_VER >= 1400 - //! requires a pointer to a user created std::tm struct - inline - static std::tm* localtime(const std::time_t* t, std::tm* result) - { - result = std::localtime(t); - if (!result) - boost::throw_exception(std::runtime_error("could not convert calendar time to local time")); - return result; - } - //! requires a pointer to a user created std::tm struct - inline - static std::tm* gmtime(const std::time_t* t, std::tm* result) - { - result = std::gmtime(t); - if (!result) - boost::throw_exception(std::runtime_error("could not convert calendar time to UTC time")); - return result; - } -#if (defined(_MSC_VER) && (_MSC_VER >= 1400)) -#pragma warning(pop) // restore warnings to previous state -#endif // _MSC_VER >= 1400 - -#endif // BOOST_HAS_THREADS - }; -}} // namespaces - -#endif // DATE_TIME_C_TIME_HPP___ diff --git a/3rdParty/Boost/boost/date_time/compiler_config.hpp b/3rdParty/Boost/boost/date_time/compiler_config.hpp deleted file mode 100644 index 0dc893f..0000000 --- a/3rdParty/Boost/boost/date_time/compiler_config.hpp +++ /dev/null @@ -1,171 +0,0 @@ -#ifndef DATE_TIME_COMPILER_CONFIG_HPP___ -#define DATE_TIME_COMPILER_CONFIG_HPP___ - -/* Copyright (c) 2002-2004 CrystalClear Software, Inc. - * Subject to the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#include -#include -#include - -// With boost release 1.33, date_time will be using a different, -// more flexible, IO system. This new system is not compatible with -// old compilers. The original date_time IO system remains for those -// compilers. They must define this macro to use the legacy IO. -// (defined(__BORLANDC__) && (__BORLANDC__ <= 0x0581) ) ) && - #if( BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) ) \ - || BOOST_WORKAROUND( __GNUC__, < 3) \ - || (BOOST_WORKAROUND( _MSC_VER, <= 1300) ) \ - ) \ - && !defined(USE_DATE_TIME_PRE_1_33_FACET_IO) -# define USE_DATE_TIME_PRE_1_33_FACET_IO -#endif - - -// This file performs some local compiler configurations - -#include //set up locale configurations - -//Set up a configuration parameter for platforms that have -//GetTimeOfDay -#if defined(BOOST_HAS_GETTIMEOFDAY) || defined(BOOST_HAS_FTIME) -#define BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK -#endif - -// To Force no default constructors for date & ptime, un-comment following -//#define DATE_TIME_NO_DEFAULT_CONSTRUCTOR - -// Include extensions to date_duration - comment out to remove this feature -#define BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES -// these extensions are known to cause problems with gcc295 -#if defined(__GNUC__) && (__GNUC__ < 3) -#undef BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES -#endif - -#if (defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) || BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) ) ) -#define BOOST_DATE_TIME_NO_MEMBER_INIT -#endif - -// include these types before we try to re-define them -#include - -//Define INT64_C for compilers that don't have it -#if (!defined(INT64_C)) -#define INT64_C(value) int64_t(value) -#endif - - -/* Workaround for Borland iterator error. Error was "Cannot convert 'istream *' to 'wistream *' in function istream_iterator<>::istream_iterator() */ -#if defined(__BORLANDC__) && defined(BOOST_BCB_WITH_RW_LIB) -#define BOOST_DATE_TIME_NO_WISTREAM_ITERATOR -#endif - - -// Borland v5.64 does not have the following in std namespace; v5.5.1 does -#if defined(__BORLANDC__) && defined(BOOST_BCB_WITH_STLPORT) -#include -namespace std { - using stlport::tolower; - using stlport::ctype; - using stlport::use_facet; -} -#endif - -// workaround for errors associated with output for date classes -// modifications and input streaming for time classes. -// Compilers affected are: -// gcc295, msvc (neither with STLPort), any borland -// -#if (((defined(__GNUC__) && (__GNUC__ < 3)) || \ - (defined(_MSC_VER) && (_MSC_VER < 1300)) ) && \ - !defined(_STLP_OWN_IOSTREAMS) ) || \ - BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) ) -#define BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS -#endif - -// The macro marks up places where compiler complains for missing return statement or -// uninitialized variables after calling to boost::throw_exception. -// BOOST_UNREACHABLE_RETURN doesn't work since even compilers that support -// unreachable statements detection emit such warnings. -#if defined(_MSC_VER) -// Use special MSVC extension to markup unreachable code -# define BOOST_DATE_TIME_UNREACHABLE_EXPRESSION(x) __assume(false) -#elif !defined(BOOST_NO_UNREACHABLE_RETURN_DETECTION) -// Call to a non-returning function should suppress the warning -# if defined(BOOST_NO_STDC_NAMESPACE) -namespace std { - using ::abort; -} -# endif // defined(BOOST_NO_STDC_NAMESPACE) -# define BOOST_DATE_TIME_UNREACHABLE_EXPRESSION(x) std::abort() -#else -// For other poor compilers the specified expression is compiled. Usually, this would be a return statement. -# define BOOST_DATE_TIME_UNREACHABLE_EXPRESSION(x) x -#endif - -/* The following handles the definition of the necessary macros - * for dll building on Win32 platforms. - * - * For code that will be placed in the date_time .dll, - * it must be properly prefixed with BOOST_DATE_TIME_DECL. - * The corresponding .cpp file must have BOOST_DATE_TIME_SOURCE - * defined before including its header. For examples see: - * greg_month.hpp & greg_month.cpp - * - */ - -#ifdef BOOST_HAS_DECLSPEC // defined in config system - // we need to import/export our code only if the user has specifically - // asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost - // libraries to be dynamically linked, or BOOST_DATE_TIME_DYN_LINK - // if they want just this one to be dynamically liked: -# if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_DATE_TIME_DYN_LINK) - // export if this is our own source, otherwise import: -# ifdef BOOST_DATE_TIME_SOURCE -# define BOOST_DATE_TIME_DECL __declspec(dllexport) -# else -# define BOOST_DATE_TIME_DECL __declspec(dllimport) -# endif // BOOST_DATE_TIME_SOURCE -# endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC -// -// if BOOST_WHATEVER_DECL isn't defined yet define it now: -#ifndef BOOST_DATE_TIME_DECL -# define BOOST_DATE_TIME_DECL -#endif - -// -// Automatically link to the correct build variant where possible. -// -#if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_DATE_TIME_NO_LIB) && !defined(BOOST_DATE_TIME_SOURCE) -// -// Set the name of our library, this will get undef'ed by auto_link.hpp -// once it's done with it: -// -#define BOOST_LIB_NAME boost_date_time -// -// If we're importing code from a dll, then tell auto_link.hpp about it: -// -#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_DATE_TIME_DYN_LINK) -# define BOOST_DYN_LINK -#endif -// -// And include the header that does the work: -// -#include -#endif // auto-linking disabled - -#if defined(BOOST_HAS_THREADS) -# if defined(_MSC_VER) || defined(__MWERKS__) || defined(__MINGW32__) || defined(__BORLANDC__) - //no reentrant posix functions (eg: localtime_r) -# elif (!defined(__hpux) || (defined(__hpux) && defined(_REENTRANT))) -# define BOOST_DATE_TIME_HAS_REENTRANT_STD_FUNCTIONS -# endif -#endif - - -#endif diff --git a/3rdParty/Boost/boost/date_time/constrained_value.hpp b/3rdParty/Boost/boost/date_time/constrained_value.hpp deleted file mode 100644 index b273dd5..0000000 --- a/3rdParty/Boost/boost/date_time/constrained_value.hpp +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef CONSTRAINED_VALUE_HPP___ -#define CONSTRAINED_VALUE_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#include -#include -#include -#include -#include -#include - -namespace boost { - -//! Namespace containing constrained_value template and types -namespace CV { - //! Represent a min or max violation type - enum violation_enum {min_violation, max_violation}; - - //! A template to specify a constrained basic value type - /*! This template provides a quick way to generate - * an integer type with a constrained range. The type - * provides for the ability to specify the min, max, and - * and error handling policy. - * - * value policies - * A class that provides the range limits via the min and - * max functions as well as a function on_error that - * determines how errors are handled. A common strategy - * would be to assert or throw and exception. The on_error - * is passed both the current value and the new value that - * is in error. - * - */ - template - class constrained_value { - public: - typedef typename value_policies::value_type value_type; - // typedef except_type exception_type; - constrained_value(value_type value) : value_((min)()) - { - assign(value); - } - constrained_value& operator=(value_type v) - { - assign(v); - return *this; - } - //! Return the max allowed value (traits method) - static value_type max BOOST_PREVENT_MACRO_SUBSTITUTION () {return (value_policies::max)();} - //! Return the min allowed value (traits method) - static value_type min BOOST_PREVENT_MACRO_SUBSTITUTION () {return (value_policies::min)();} - //! Coerce into the representation type - operator value_type() const {return value_;} - protected: - value_type value_; - private: - void assign(value_type value) - { - //adding 1 below gets rid of a compiler warning which occurs when the - //min_value is 0 and the type is unsigned.... - if (value+1 < (min)()+1) { - value_policies::on_error(value_, value, min_violation); - return; - } - if (value > (max)()) { - value_policies::on_error(value_, value, max_violation); - return; - } - value_ = value; - } -}; - - //! Template to shortcut the constrained_value policy creation process - template - class simple_exception_policy - { - struct exception_wrapper : public exception_type - { - // In order to support throw_exception mechanism in the BOOST_NO_EXCEPTIONS mode, - // we'll have to provide a way to acquire std::exception from the exception being thrown. - // However, we cannot derive from it, since it would make it interceptable by this class, - // which might not be what the user wanted. - operator std::out_of_range () const - { - // TODO: Make the message more descriptive by using arguments to on_error - return std::out_of_range("constrained value boundary has been violated"); - } - }; - - typedef typename mpl::if_< - is_base_of< std::exception, exception_type >, - exception_type, - exception_wrapper - >::type actual_exception_type; - - public: - typedef rep_type value_type; - static rep_type min BOOST_PREVENT_MACRO_SUBSTITUTION () { return min_value; } - static rep_type max BOOST_PREVENT_MACRO_SUBSTITUTION () { return max_value; } - static void on_error(rep_type, rep_type, violation_enum) - { - boost::throw_exception(actual_exception_type()); - } - }; - - - -} } //namespace CV - - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/date.hpp b/3rdParty/Boost/boost/date_time/date.hpp deleted file mode 100644 index beab047..0000000 --- a/3rdParty/Boost/boost/date_time/date.hpp +++ /dev/null @@ -1,197 +0,0 @@ -#ifndef DATE_TIME_DATE_HPP___ -#define DATE_TIME_DATE_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/year_month_day.hpp" -#include "boost/date_time/special_defs.hpp" -#include "boost/operators.hpp" - -namespace boost { -namespace date_time { - - //!Representation of timepoint at the one day level resolution. - /*! - The date template represents an interface shell for a date class - that is based on a year-month-day system such as the gregorian - or iso systems. It provides basic operations to enable calculation - and comparisons. - - Theory - - This date representation fundamentally departs from the C tm struct - approach. The goal for this type is to provide efficient date - operations (add, subtract) and storage (minimize space to represent) - in a concrete class. Thus, the date uses a count internally to - represent a particular date. The calendar parameter defines - the policies for converting the the year-month-day and internal - counted form here. Applications that need to perform heavy - formatting of the same date repeatedly will perform better - by using the year-month-day representation. - - Internally the date uses a day number to represent the date. - This is a monotonic time representation. This representation - allows for fast comparison as well as simplifying - the creation of writing numeric operations. Essentially, the - internal day number is like adjusted julian day. The adjustment - is determined by the Epoch date which is represented as day 1 of - the calendar. Day 0 is reserved for negative infinity so that - any actual date is automatically greater than negative infinity. - When a date is constructed from a date or formatted for output, - the appropriate conversions are applied to create the year, month, - day representations. - */ - - - template - class date : private - boost::less_than_comparable > - { - public: - typedef T date_type; - typedef calendar calendar_type; - typedef typename calendar::date_traits_type traits_type; - typedef duration_type_ duration_type; - typedef typename calendar::year_type year_type; - typedef typename calendar::month_type month_type; - typedef typename calendar::day_type day_type; - typedef typename calendar::ymd_type ymd_type; - typedef typename calendar::date_rep_type date_rep_type; - typedef typename calendar::date_int_type date_int_type; - typedef typename calendar::day_of_week_type day_of_week_type; - date(year_type y, month_type m, day_type d) - : days_(calendar::day_number(ymd_type(y, m, d))) - {} - date(const ymd_type& ymd) - : days_(calendar::day_number(ymd)) - {} - //let the compiler write copy, assignment, and destructor - year_type year() const - { - ymd_type ymd = calendar::from_day_number(days_); - return ymd.year; - } - month_type month() const - { - ymd_type ymd = calendar::from_day_number(days_); - return ymd.month; - } - day_type day() const - { - ymd_type ymd = calendar::from_day_number(days_); - return ymd.day; - } - day_of_week_type day_of_week() const - { - ymd_type ymd = calendar::from_day_number(days_); - return calendar::day_of_week(ymd); - } - ymd_type year_month_day() const - { - return calendar::from_day_number(days_); - } - bool operator<(const date_type& rhs) const - { - return days_ < rhs.days_; - } - bool operator==(const date_type& rhs) const - { - return days_ == rhs.days_; - } - //! check to see if date is a special value - bool is_special()const - { - return(is_not_a_date() || is_infinity()); - } - //! check to see if date is not a value - bool is_not_a_date() const - { - return traits_type::is_not_a_number(days_); - } - //! check to see if date is one of the infinity values - bool is_infinity() const - { - return traits_type::is_inf(days_); - } - //! check to see if date is greater than all possible dates - bool is_pos_infinity() const - { - return traits_type::is_pos_inf(days_); - } - //! check to see if date is greater than all possible dates - bool is_neg_infinity() const - { - return traits_type::is_neg_inf(days_); - } - //! return as a special value or a not_special if a normal date - special_values as_special() const - { - return traits_type::to_special(days_); - } - duration_type operator-(const date_type& d) const - { - date_rep_type val = date_rep_type(days_) - date_rep_type(d.days_); - return duration_type(val.as_number()); - } - - date_type operator-(const duration_type& dd) const - { - if(dd.is_special()) - { - return date_type(date_rep_type(days_) - dd.get_rep()); - } - return date_type(date_rep_type(days_) - dd.days()); - } - date_type operator-=(const duration_type& dd) - { - *this = *this - dd; - return date_type(days_); - } - date_rep_type day_count() const - { - return days_; - }; - //allow internal access from operators - date_type operator+(const duration_type& dd) const - { - if(dd.is_special()) - { - return date_type(date_rep_type(days_) + dd.get_rep()); - } - return date_type(date_rep_type(days_) + dd.days()); - } - date_type operator+=(const duration_type& dd) - { - *this = *this + dd; - return date_type(days_); - } - - //see reference - protected: - /*! This is a private constructor which allows for the creation of new - dates. It is not exposed to users since that would require class - users to understand the inner workings of the date class. - */ - explicit date(date_int_type days) : days_(days) {}; - explicit date(date_rep_type days) : days_(days.as_number()) {}; - date_int_type days_; - - }; - - - - -} } // namespace date_time - - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/date_clock_device.hpp b/3rdParty/Boost/boost/date_time/date_clock_device.hpp deleted file mode 100644 index 6ccb26e..0000000 --- a/3rdParty/Boost/boost/date_time/date_clock_device.hpp +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef DATE_CLOCK_DEVICE_HPP___ -#define DATE_CLOCK_DEVICE_HPP___ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/c_time.hpp" - - -namespace boost { -namespace date_time { - - //! A clock providing day level services based on C time_t capabilities - /*! This clock uses Posix interfaces as its implementation and hence - * uses the timezone settings of the operating system. Incorrect - * user settings will result in incorrect results for the calls - * to local_day. - */ - template - class day_clock - { - public: - typedef typename date_type::ymd_type ymd_type; - //! Get the local day as a date type - static date_type local_day() - { - return date_type(local_day_ymd()); - } - //! Get the local day as a ymd_type - static typename date_type::ymd_type local_day_ymd() - { - ::std::tm result; - ::std::tm* curr = get_local_time(result); - return ymd_type(curr->tm_year + 1900, - curr->tm_mon + 1, - curr->tm_mday); - } - //! Get the current day in universal date as a ymd_type - static typename date_type::ymd_type universal_day_ymd() - { - ::std::tm result; - ::std::tm* curr = get_universal_time(result); - return ymd_type(curr->tm_year + 1900, - curr->tm_mon + 1, - curr->tm_mday); - } - //! Get the UTC day as a date type - static date_type universal_day() - { - return date_type(universal_day_ymd()); - } - - private: - static ::std::tm* get_local_time(std::tm& result) - { - ::std::time_t t; - ::std::time(&t); - return c_time::localtime(&t, &result); - } - static ::std::tm* get_universal_time(std::tm& result) - { - ::std::time_t t; - ::std::time(&t); - return c_time::gmtime(&t, &result); - } - - }; - -} } //namespace date_time - - -#endif diff --git a/3rdParty/Boost/boost/date_time/date_defs.hpp b/3rdParty/Boost/boost/date_time/date_defs.hpp deleted file mode 100644 index bc25b56..0000000 --- a/3rdParty/Boost/boost/date_time/date_defs.hpp +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef DATE_TIME_DATE_DEFS_HPP -#define DATE_TIME_DATE_DEFS_HPP - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - - -namespace boost { -namespace date_time { - - //! An enumeration of weekday names - enum weekdays {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}; - - //! Simple enum to allow for nice programming with Jan, Feb, etc - enum months_of_year {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,NotAMonth,NumMonths}; - -} } //namespace date_time - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/date_duration.hpp b/3rdParty/Boost/boost/date_time/date_duration.hpp deleted file mode 100644 index 3871aac..0000000 --- a/3rdParty/Boost/boost/date_time/date_duration.hpp +++ /dev/null @@ -1,146 +0,0 @@ -#ifndef DATE_TIME_DATE_DURATION__ -#define DATE_TIME_DATE_DURATION__ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - - -#include -#include - -namespace boost { -namespace date_time { - - - //! Duration type with date level resolution - template - class date_duration : private - boost::less_than_comparable1< date_duration< duration_rep_traits > - , boost::equality_comparable1< date_duration< duration_rep_traits > - , boost::addable1< date_duration< duration_rep_traits > - , boost::subtractable1< date_duration< duration_rep_traits > - , boost::dividable2< date_duration< duration_rep_traits >, int - > > > > > - { - public: - typedef typename duration_rep_traits::int_type duration_rep_type; - typedef typename duration_rep_traits::impl_type duration_rep; - - //! Construct from a day count - explicit date_duration(duration_rep day_count) : days_(day_count) {}; - - /*! construct from special_values - only works when - * instantiated with duration_traits_adapted */ - date_duration(special_values sv) : - days_(duration_rep::from_special(sv)) - {} - - // copy constructor required for addable<> & subtractable<> - //! Construct from another date_duration (Copy Constructor) - date_duration(const date_duration& other) : - days_(other.days_) - {} - - //! returns days_ as it's instantiated type - used for streaming - duration_rep get_rep()const - { - return days_; - } - bool is_special()const - { - return days_.is_special(); - } - //! returns days as value, not object. - duration_rep_type days() const - { - return duration_rep_traits::as_number(days_); - } - //! Returns the smallest duration -- used by to calculate 'end' - static date_duration unit() - { - return date_duration(1); - } - //! Equality - bool operator==(const date_duration& rhs) const - { - return days_ == rhs.days_; - } - //! Less - bool operator<(const date_duration& rhs) const - { - return days_ < rhs.days_; - } - - /* For shortcut operators (+=, -=, etc) simply using - * "days_ += days_" may not work. If instantiated with - * an int_adapter, shortcut operators are not present, - * so this will not compile */ - - //! Subtract another duration -- result is signed - date_duration& operator-=(const date_duration& rhs) - { - //days_ -= rhs.days_; - days_ = days_ - rhs.days_; - return *this; - } - //! Add a duration -- result is signed - date_duration& operator+=(const date_duration& rhs) - { - days_ = days_ + rhs.days_; - return *this; - } - - //! unary- Allows for dd = -date_duration(2); -> dd == -2 - date_duration operator-() const - { - return date_duration(get_rep() * (-1)); - } - //! Division operations on a duration with an integer. - date_duration& operator/=(int divisor) - { - days_ = days_ / divisor; - return *this; - } - - //! return sign information - bool is_negative() const - { - return days_ < 0; - } - - private: - duration_rep days_; - }; - - - /*! Struct for instantiating date_duration with NO special values - * functionality. Allows for transparent implementation of either - * date_duration or date_duration > */ - struct duration_traits_long - { - typedef long int_type; - typedef long impl_type; - static int_type as_number(impl_type i) { return i; }; - }; - - /*! Struct for instantiating date_duration WITH special values - * functionality. Allows for transparent implementation of either - * date_duration or date_duration > */ - struct duration_traits_adapted - { - typedef long int_type; - typedef boost::date_time::int_adapter impl_type; - static int_type as_number(impl_type i) { return i.as_number(); }; - }; - - -} } //namspace date_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/date_duration_types.hpp b/3rdParty/Boost/boost/date_time/date_duration_types.hpp deleted file mode 100644 index 1512c0e..0000000 --- a/3rdParty/Boost/boost/date_time/date_duration_types.hpp +++ /dev/null @@ -1,269 +0,0 @@ -#ifndef DATE_DURATION_TYPES_HPP___ -#define DATE_DURATION_TYPES_HPP___ - -/* Copyright (c) 2004 CrystalClear Software, Inc. - * Subject to the Boost Software License, Version 1.0. - * (See accompanying file LICENSE_1_0.txt or - * http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include -#include -#include - -namespace boost { -namespace date_time { - - - //! Additional duration type that represents a number of n*7 days - template - class weeks_duration : public date_duration { - public: - weeks_duration(typename duration_config::impl_type w) - : date_duration(w * 7) {} - weeks_duration(special_values sv) - : date_duration(sv) {} - }; - - // predeclare - template - class years_duration; - - //! additional duration type that represents a logical month - /*! A logical month enables things like: "date(2002,Mar,2) + months(2) -> - * 2002-May2". If the date is a last day-of-the-month, the result will - * also be a last-day-of-the-month. - */ - template - class months_duration - { - private: - typedef typename base_config::int_rep int_rep; - typedef typename int_rep::int_type int_type; - typedef typename base_config::date_type date_type; - typedef typename date_type::duration_type duration_type; - typedef typename base_config::month_adjustor_type month_adjustor_type; - typedef months_duration months_type; - typedef years_duration years_type; - public: - months_duration(int_rep num) : _m(num) {} - months_duration(special_values sv) : _m(sv) - { - _m = int_rep::from_special(sv); - } - int_rep number_of_months() const { return _m; } - //! returns a negative duration - duration_type get_neg_offset(const date_type& d) const - { - month_adjustor_type m_adj(_m.as_number()); - return duration_type(m_adj.get_neg_offset(d)); - } - duration_type get_offset(const date_type& d) const - { - month_adjustor_type m_adj(_m.as_number()); - return duration_type(m_adj.get_offset(d)); - } - bool operator==(const months_type& rhs) const - { - return(_m == rhs._m); - } - bool operator!=(const months_type& rhs) const - { - return(_m != rhs._m); - } - months_type operator+(const months_type& rhs)const - { - return months_type(_m + rhs._m); - } - months_type& operator+=(const months_type& rhs) - { - _m = _m + rhs._m; - return *this; - } - months_type operator-(const months_type& rhs)const - { - return months_type(_m - rhs._m); - } - months_type& operator-=(const months_type& rhs) - { - _m = _m - rhs._m; - return *this; - } - months_type operator*(const int_type rhs)const - { - return months_type(_m * rhs); - } - months_type& operator*=(const int_type rhs) - { - _m = _m * rhs; - return *this; - } - months_type operator/(const int_type rhs)const - { - return months_type(_m / rhs); - } - months_type& operator/=(const int_type rhs) - { - _m = _m / rhs; - return *this; - } - months_type operator+(const years_type& y)const - { - return months_type(y.number_of_years() * 12 + _m); - } - months_type& operator+=(const years_type& y) - { - _m = y.number_of_years() * 12 + _m; - return *this; - } - months_type operator-(const years_type& y) const - { - return months_type(_m - y.number_of_years() * 12); - } - months_type& operator-=(const years_type& y) - { - _m = _m - y.number_of_years() * 12; - return *this; - } - - // - friend date_type operator+(const date_type& d, const months_type& m) - { - return d + m.get_offset(d); - } - friend date_type operator+=(date_type& d, const months_type& m) - { - return d += m.get_offset(d); - } - friend date_type operator-(const date_type& d, const months_type& m) - { - // get_neg_offset returns a negative duration, so we add - return d + m.get_neg_offset(d); - } - friend date_type operator-=(date_type& d, const months_type& m) - { - // get_neg_offset returns a negative duration, so we add - return d += m.get_neg_offset(d); - } - - private: - int_rep _m; - }; - - //! additional duration type that represents a logical year - /*! A logical year enables things like: "date(2002,Mar,2) + years(2) -> - * 2004-Mar-2". If the date is a last day-of-the-month, the result will - * also be a last-day-of-the-month (ie date(2001-Feb-28) + years(3) -> - * 2004-Feb-29). - */ - template - class years_duration - { - private: - typedef typename base_config::int_rep int_rep; - typedef typename int_rep::int_type int_type; - typedef typename base_config::date_type date_type; - typedef typename date_type::duration_type duration_type; - typedef typename base_config::month_adjustor_type month_adjustor_type; - typedef years_duration years_type; - typedef months_duration months_type; - public: - years_duration(int_rep num) : _y(num) {} - years_duration(special_values sv) : _y(sv) - { - _y = int_rep::from_special(sv); - } - int_rep number_of_years() const { return _y; } - //! returns a negative duration - duration_type get_neg_offset(const date_type& d) const - { - month_adjustor_type m_adj(_y.as_number() * 12); - return duration_type(m_adj.get_neg_offset(d)); - } - duration_type get_offset(const date_type& d) const - { - month_adjustor_type m_adj(_y.as_number() * 12); - return duration_type(m_adj.get_offset(d)); - } - bool operator==(const years_type& rhs) const - { - return(_y == rhs._y); - } - bool operator!=(const years_type& rhs) const - { - return(_y != rhs._y); - } - years_type operator+(const years_type& rhs)const - { - return years_type(_y + rhs._y); - } - years_type& operator+=(const years_type& rhs) - { - _y = _y + rhs._y; - return *this; - } - years_type operator-(const years_type& rhs)const - { - return years_type(_y - rhs._y); - } - years_type& operator-=(const years_type& rhs) - { - _y = _y - rhs._y; - return *this; - } - years_type operator*(const int_type rhs)const - { - return years_type(_y * rhs); - } - years_type& operator*=(const int_type rhs) - { - _y = _y * rhs; - return *this; - } - years_type operator/(const int_type rhs)const - { - return years_type(_y / rhs); - } - years_type& operator/=(const int_type rhs) - { - _y = _y / rhs; - return *this; - } - months_type operator+(const months_type& m) const - { - return(months_type(_y * 12 + m.number_of_months())); - } - months_type operator-(const months_type& m) const - { - return(months_type(_y * 12 - m.number_of_months())); - } - - // - friend date_type operator+(const date_type& d, const years_type& y) - { - return d + y.get_offset(d); - } - friend date_type operator+=(date_type& d, const years_type& y) - { - return d += y.get_offset(d); - } - friend date_type operator-(const date_type& d, const years_type& y) - { - // get_neg_offset returns a negative duration, so we add - return d + y.get_neg_offset(d); - } - friend date_type operator-=(date_type& d, const years_type& y) - { - // get_neg_offset returns a negative duration, so we add - return d += y.get_neg_offset(d); - } - - private: - int_rep _y; - }; - -}} // namespace boost::date_time - -#endif // DATE_DURATION_TYPES_HPP___ diff --git a/3rdParty/Boost/boost/date_time/date_facet.hpp b/3rdParty/Boost/boost/date_time/date_facet.hpp deleted file mode 100644 index a592c11..0000000 --- a/3rdParty/Boost/boost/date_time/date_facet.hpp +++ /dev/null @@ -1,781 +0,0 @@ -#ifndef _DATE_TIME_DATE_FACET__HPP___ -#define _DATE_TIME_DATE_FACET__HPP___ - -/* Copyright (c) 2004-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Martin Andrian, Jeff Garland, Bart Garst - * $Date: 2009-02-01 06:29:43 -0500 (Sun, 01 Feb 2009) $ - */ - -#include -#include -#include -#include // ostreambuf_iterator -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace date_time { - - - /*! Class that provides format based I/O facet for date types. - * - * This class allows the formatting of dates by using format string. - * Format strings are: - * - * - %A => long_weekday_format - Full name Ex: Tuesday - * - %a => short_weekday_format - Three letter abbreviation Ex: Tue - * - %B => long_month_format - Full name Ex: October - * - %b => short_month_format - Three letter abbreviation Ex: Oct - * - %x => standard_format_specifier - defined by the locale - * - %Y-%b-%d => default_date_format - YYYY-Mon-dd - * - * Default month format == %b - * Default weekday format == %a - */ - template > > - class date_facet : public std::locale::facet { - public: - typedef typename date_type::duration_type duration_type; - // greg_weekday is gregorian_calendar::day_of_week_type - typedef typename date_type::day_of_week_type day_of_week_type; - typedef typename date_type::day_type day_type; - typedef typename date_type::month_type month_type; - typedef boost::date_time::period period_type; - typedef std::basic_string string_type; - typedef CharT char_type; - typedef boost::date_time::period_formatter period_formatter_type; - typedef boost::date_time::special_values_formatter special_values_formatter_type; - typedef std::vector > input_collection_type; - // used for the output of the date_generators - typedef date_generator_formatter date_gen_formatter_type; - typedef partial_date partial_date_type; - typedef nth_kday_of_month nth_kday_type; - typedef first_kday_of_month first_kday_type; - typedef last_kday_of_month last_kday_type; - typedef first_kday_after kday_after_type; - typedef first_kday_before kday_before_type; - static const char_type long_weekday_format[3]; - static const char_type short_weekday_format[3]; - static const char_type long_month_format[3]; - static const char_type short_month_format[3]; - static const char_type default_period_separator[4]; - static const char_type standard_format_specifier[3]; - static const char_type iso_format_specifier[7]; - static const char_type iso_format_extended_specifier[9]; - static const char_type default_date_format[9]; // YYYY-Mon-DD - static std::locale::id id; - -#if defined (__SUNPRO_CC) && defined (_RWSTD_VER) - std::locale::id& __get_id (void) const { return id; } -#endif - - explicit date_facet(::size_t a_ref = 0) - : std::locale::facet(a_ref), - //m_format(standard_format_specifier) - m_format(default_date_format), - m_month_format(short_month_format), - m_weekday_format(short_weekday_format) - {} - - explicit date_facet(const char_type* format_str, - const input_collection_type& short_names, - ::size_t ref_count = 0) - : std::locale::facet(ref_count), - m_format(format_str), - m_month_format(short_month_format), - m_weekday_format(short_weekday_format), - m_month_short_names(short_names) - {} - - - explicit date_facet(const char_type* format_str, - period_formatter_type per_formatter = period_formatter_type(), - special_values_formatter_type sv_formatter = special_values_formatter_type(), - date_gen_formatter_type dg_formatter = date_gen_formatter_type(), - ::size_t ref_count = 0) - : std::locale::facet(ref_count), - m_format(format_str), - m_month_format(short_month_format), - m_weekday_format(short_weekday_format), - m_period_formatter(per_formatter), - m_date_gen_formatter(dg_formatter), - m_special_values_formatter(sv_formatter) - {} - void format(const char_type* const format_str) { - m_format = format_str; - } - virtual void set_iso_format() - { - m_format = iso_format_specifier; - } - virtual void set_iso_extended_format() - { - m_format = iso_format_extended_specifier; - } - void month_format(const char_type* const format_str) { - m_month_format = format_str; - } - void weekday_format(const char_type* const format_str) { - m_weekday_format = format_str; - } - - void period_formatter(period_formatter_type per_formatter) { - m_period_formatter= per_formatter; - } - void special_values_formatter(const special_values_formatter_type& svf) - { - m_special_values_formatter = svf; - } - void short_weekday_names(const input_collection_type& short_names) - { - m_weekday_short_names = short_names; - } - void long_weekday_names(const input_collection_type& long_names) - { - m_weekday_long_names = long_names; - } - - void short_month_names(const input_collection_type& short_names) - { - m_month_short_names = short_names; - } - - void long_month_names(const input_collection_type& long_names) - { - m_month_long_names = long_names; - } - - void date_gen_phrase_strings(const input_collection_type& new_strings, - typename date_gen_formatter_type::phrase_elements beg_pos=date_gen_formatter_type::first) - { - m_date_gen_formatter.elements(new_strings, beg_pos); - } - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const date_type& d) const - { - if (d.is_special()) { - return do_put_special(next, a_ios, fill_char, d.as_special()); - } - //The following line of code required the date to support a to_tm function - return do_put_tm(next, a_ios, fill_char, to_tm(d), m_format); - } - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const duration_type& dd) const - { - if (dd.is_special()) { - return do_put_special(next, a_ios, fill_char, dd.get_rep().as_special()); - } - - typedef std::num_put num_put; - if (std::has_facet(a_ios.getloc())) { - return std::use_facet(a_ios.getloc()).put(next, a_ios, fill_char, dd.get_rep().as_number()); - } - else { - num_put* f = new num_put(); - std::locale l = std::locale(a_ios.getloc(), f); - a_ios.imbue(l); - return f->put(next, a_ios, fill_char, dd.get_rep().as_number()); - } - - } - - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const month_type& m) const - { - //if (d.is_special()) { - // return do_put_special(next, a_ios, fill_char, d.as_special()); - //} - //The following line of code required the date to support a to_tm function - tm dtm; - init_tm(dtm); - dtm.tm_mon = m -1; - return do_put_tm(next, a_ios, fill_char, dtm, m_month_format); - } - - //! puts the day of month - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const day_type& day) const - { - tm dtm; - init_tm(dtm); - dtm.tm_mday = day.as_number(); - char_type tmp[3] = {'%','d'}; - string_type temp_format(tmp); - return do_put_tm(next, a_ios, fill_char, dtm, temp_format); - } - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const day_of_week_type& dow) const - { - //if (d.is_special()) { - // return do_put_special(next, a_ios, fill_char, d.as_special()); - //} - //The following line of code required the date to support a to_tm function - tm dtm; - init_tm(dtm); - dtm.tm_wday = dow; - return do_put_tm(next, a_ios, fill_char, dtm, m_weekday_format); - } - - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const period_type& p) const - { - return m_period_formatter.put_period(next, a_ios, fill_char, p, *this); - } - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const partial_date_type& pd) const - { - return m_date_gen_formatter.put_partial_date(next, a_ios, fill_char, pd, *this); - } - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const nth_kday_type& nkd) const - { - return m_date_gen_formatter.put_nth_kday(next, a_ios, fill_char, nkd, *this); - } - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const first_kday_type& fkd) const - { - return m_date_gen_formatter.put_first_kday(next, a_ios, fill_char, fkd, *this); - } - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const last_kday_type& lkd) const - { - return m_date_gen_formatter.put_last_kday(next, a_ios, fill_char, lkd, *this); - } - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const kday_before_type& fkb) const - { - return m_date_gen_formatter.put_kday_before(next, a_ios, fill_char, fkb, *this); - } - - OutItrT put(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const kday_after_type& fka) const - { - return m_date_gen_formatter.put_kday_after(next, a_ios, fill_char, fka, *this); - } - - protected: - //! Helper function to initialize all fields in a tm struct - tm init_tm(tm& tm_value) const - { - tm_value.tm_sec = 0; /* seconds */ - tm_value.tm_min = 0; /* minutes */ - tm_value.tm_hour = 0; /* hours */ - tm_value.tm_mday = 0; /* day of the month */ - tm_value.tm_mon = 0; /* month */ - tm_value.tm_year = 0; /* year */ - tm_value.tm_wday = 0; /* day of the week */ - tm_value.tm_yday = 0; /* day in the year */ - tm_value.tm_isdst = 0; /* daylight saving time */ - return tm_value; - } - virtual OutItrT do_put_special(OutItrT next, - std::ios_base& /*a_ios*/, - char_type /*fill_char*/, - const boost::date_time::special_values sv) const - { - m_special_values_formatter.put_special(next, sv); - return next; - } - virtual OutItrT do_put_tm(OutItrT next, - std::ios_base& a_ios, - char_type fill_char, - const tm& tm_value, - string_type a_format) const - { - // update format string with custom names - if (m_weekday_long_names.size()) { - boost::algorithm::replace_all(a_format, - long_weekday_format, - m_weekday_long_names[tm_value.tm_wday]); - } - if (m_weekday_short_names.size()) { - boost::algorithm::replace_all(a_format, - short_weekday_format, - m_weekday_short_names[tm_value.tm_wday]); - - } - if (m_month_long_names.size()) { - boost::algorithm::replace_all(a_format, - long_month_format, - m_month_long_names[tm_value.tm_mon]); - } - if (m_month_short_names.size()) { - boost::algorithm::replace_all(a_format, - short_month_format, - m_month_short_names[tm_value.tm_mon]); - } - // use time_put facet to create final string - const char_type* p_format = a_format.c_str(); - return std::use_facet >(a_ios.getloc()).put(next, a_ios, - fill_char, - &tm_value, - p_format, - p_format + a_format.size()); - } - protected: - string_type m_format; - string_type m_month_format; - string_type m_weekday_format; - period_formatter_type m_period_formatter; - date_gen_formatter_type m_date_gen_formatter; - special_values_formatter_type m_special_values_formatter; - input_collection_type m_month_short_names; - input_collection_type m_month_long_names; - input_collection_type m_weekday_short_names; - input_collection_type m_weekday_long_names; - private: - }; - - template - std::locale::id date_facet::id; - - template - const typename date_facet::char_type - date_facet::long_weekday_format[3] = {'%','A'}; - - template - const typename date_facet::char_type - date_facet::short_weekday_format[3] = {'%','a'}; - - template - const typename date_facet::char_type - date_facet::long_month_format[3] = {'%','B'}; - - template - const typename date_facet::char_type - date_facet::short_month_format[3] = {'%','b'}; - - template - const typename date_facet::char_type - date_facet::default_period_separator[4] = { ' ', '/', ' '}; - - template - const typename date_facet::char_type - date_facet::standard_format_specifier[3] = - {'%', 'x' }; - - template - const typename date_facet::char_type - date_facet::iso_format_specifier[7] = - {'%', 'Y', '%', 'm', '%', 'd' }; - - template - const typename date_facet::char_type - date_facet::iso_format_extended_specifier[9] = - {'%', 'Y', '-', '%', 'm', '-', '%', 'd' }; - - template - const typename date_facet::char_type - date_facet::default_date_format[9] = - {'%','Y','-','%','b','-','%','d'}; - - - - //! Input facet - template > > - class date_input_facet : public std::locale::facet { - public: - typedef typename date_type::duration_type duration_type; - // greg_weekday is gregorian_calendar::day_of_week_type - typedef typename date_type::day_of_week_type day_of_week_type; - typedef typename date_type::day_type day_type; - typedef typename date_type::month_type month_type; - typedef typename date_type::year_type year_type; - typedef boost::date_time::period period_type; - typedef std::basic_string string_type; - typedef CharT char_type; - typedef boost::date_time::period_parser period_parser_type; - typedef boost::date_time::special_values_parser special_values_parser_type; - typedef std::vector > input_collection_type; - typedef format_date_parser format_date_parser_type; - // date_generators stuff goes here - typedef date_generator_parser date_gen_parser_type; - typedef partial_date partial_date_type; - typedef nth_kday_of_month nth_kday_type; - typedef first_kday_of_month first_kday_type; - typedef last_kday_of_month last_kday_type; - typedef first_kday_after kday_after_type; - typedef first_kday_before kday_before_type; - - static const char_type long_weekday_format[3]; - static const char_type short_weekday_format[3]; - static const char_type long_month_format[3]; - static const char_type short_month_format[3]; - static const char_type four_digit_year_format[3]; - static const char_type two_digit_year_format[3]; - static const char_type default_period_separator[4]; - static const char_type standard_format_specifier[3]; - static const char_type iso_format_specifier[7]; - static const char_type iso_format_extended_specifier[9]; - static const char_type default_date_format[9]; // YYYY-Mon-DD - static std::locale::id id; - - explicit date_input_facet(::size_t a_ref = 0) - : std::locale::facet(a_ref), - m_format(default_date_format), - m_month_format(short_month_format), - m_weekday_format(short_weekday_format), - m_year_format(four_digit_year_format), - m_parser(m_format, std::locale::classic()) - // default period_parser & special_values_parser used - {} - - explicit date_input_facet(const string_type& format_str, - ::size_t a_ref = 0) - : std::locale::facet(a_ref), - m_format(format_str), - m_month_format(short_month_format), - m_weekday_format(short_weekday_format), - m_year_format(four_digit_year_format), - m_parser(m_format, std::locale::classic()) - // default period_parser & special_values_parser used - {} - - explicit date_input_facet(const string_type& format_str, - const format_date_parser_type& date_parser, - const special_values_parser_type& sv_parser, - const period_parser_type& per_parser, - const date_gen_parser_type& date_gen_parser, - ::size_t ref_count = 0) - : std::locale::facet(ref_count), - m_format(format_str), - m_month_format(short_month_format), - m_weekday_format(short_weekday_format), - m_year_format(four_digit_year_format), - m_parser(date_parser), - m_date_gen_parser(date_gen_parser), - m_period_parser(per_parser), - m_sv_parser(sv_parser) - {} - - - void format(const char_type* const format_str) { - m_format = format_str; - } - virtual void set_iso_format() - { - m_format = iso_format_specifier; - } - virtual void set_iso_extended_format() - { - m_format = iso_format_extended_specifier; - } - void month_format(const char_type* const format_str) { - m_month_format = format_str; - } - void weekday_format(const char_type* const format_str) { - m_weekday_format = format_str; - } - void year_format(const char_type* const format_str) { - m_year_format = format_str; - } - - void period_parser(period_parser_type per_parser) { - m_period_parser = per_parser; - } - void short_weekday_names(const input_collection_type& weekday_names) - { - m_parser.short_weekday_names(weekday_names); - } - void long_weekday_names(const input_collection_type& weekday_names) - { - m_parser.long_weekday_names(weekday_names); - } - - void short_month_names(const input_collection_type& month_names) - { - m_parser.short_month_names(month_names); - } - - void long_month_names(const input_collection_type& month_names) - { - m_parser.long_month_names(month_names); - } - - void date_gen_element_strings(const input_collection_type& col) - { - m_date_gen_parser.element_strings(col); - } - void date_gen_element_strings(const string_type& first, - const string_type& second, - const string_type& third, - const string_type& fourth, - const string_type& fifth, - const string_type& last, - const string_type& before, - const string_type& after, - const string_type& of) - - { - m_date_gen_parser.element_strings(first,second,third,fourth,fifth,last,before,after,of); - } - - void special_values_parser(special_values_parser_type sv_parser) - { - m_sv_parser = sv_parser; - } - - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& /*a_ios*/, - date_type& d) const - { - d = m_parser.parse_date(from, to, m_format, m_sv_parser); - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& /*a_ios*/, - month_type& m) const - { - m = m_parser.parse_month(from, to, m_month_format); - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& /*a_ios*/, - day_of_week_type& wd) const - { - wd = m_parser.parse_weekday(from, to, m_weekday_format); - return from; - } - //! Expects 1 or 2 digit day range: 1-31 - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& /*a_ios*/, - day_type& d) const - { - d = m_parser.parse_var_day_of_month(from, to); - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& /*a_ios*/, - year_type& y) const - { - y = m_parser.parse_year(from, to, m_year_format); - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& a_ios, - duration_type& dd) const - { - // skip leading whitespace - while(std::isspace(*from) && from != to) { ++from; } - - /* num_get.get() will always consume the first character if it - * is a sign indicator (+/-). Special value strings may begin - * with one of these signs so we'll need a copy of it - * in case num_get.get() fails. */ - char_type c = '\0'; - // TODO Are these characters somewhere in the locale? - if(*from == '-' || *from == '+') { - c = *from; - } - typedef std::num_get num_get; - typename duration_type::duration_rep_type val = 0; - std::ios_base::iostate err = std::ios_base::goodbit; - - if (std::has_facet(a_ios.getloc())) { - from = std::use_facet(a_ios.getloc()).get(from, to, a_ios, err, val); - } - else { - num_get* ng = new num_get(); - std::locale l = std::locale(a_ios.getloc(), ng); - a_ios.imbue(l); - from = ng->get(from, to, a_ios, err, val); - } - if(err & std::ios_base::failbit){ - typedef typename special_values_parser_type::match_results match_results; - match_results mr; - if(c == '-' || c == '+') { // was the first character consumed? - mr.cache += c; - } - m_sv_parser.match(from, to, mr); - if(mr.current_match == match_results::PARSE_ERROR) { - boost::throw_exception(std::ios_base::failure("Parse failed. No match found for '" + mr.cache + "'")); - BOOST_DATE_TIME_UNREACHABLE_EXPRESSION(return from); // should never reach - } - dd = duration_type(static_cast(mr.current_match)); - } - else { - dd = duration_type(val); - } - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& a_ios, - period_type& p) const - { - p = m_period_parser.get_period(from, to, a_ios, p, duration_type::unit(), *this); - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& a_ios, - nth_kday_type& nkd) const - { - nkd = m_date_gen_parser.get_nth_kday_type(from, to, a_ios, *this); - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& a_ios, - partial_date_type& pd) const - { - - pd = m_date_gen_parser.get_partial_date_type(from, to, a_ios, *this); - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& a_ios, - first_kday_type& fkd) const - { - fkd = m_date_gen_parser.get_first_kday_type(from, to, a_ios, *this); - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& a_ios, - last_kday_type& lkd) const - { - lkd = m_date_gen_parser.get_last_kday_type(from, to, a_ios, *this); - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& a_ios, - kday_before_type& fkb) const - { - fkb = m_date_gen_parser.get_kday_before_type(from, to, a_ios, *this); - return from; - } - InItrT get(InItrT& from, - InItrT& to, - std::ios_base& a_ios, - kday_after_type& fka) const - { - fka = m_date_gen_parser.get_kday_after_type(from, to, a_ios, *this); - return from; - } - - protected: - string_type m_format; - string_type m_month_format; - string_type m_weekday_format; - string_type m_year_format; - format_date_parser_type m_parser; - date_gen_parser_type m_date_gen_parser; - period_parser_type m_period_parser; - special_values_parser_type m_sv_parser; - private: - }; - - - template - std::locale::id date_input_facet::id; - - template - const typename date_input_facet::char_type - date_input_facet::long_weekday_format[3] = {'%','A'}; - - template - const typename date_input_facet::char_type - date_input_facet::short_weekday_format[3] = {'%','a'}; - - template - const typename date_input_facet::char_type - date_input_facet::long_month_format[3] = {'%','B'}; - - template - const typename date_input_facet::char_type - date_input_facet::short_month_format[3] = {'%','b'}; - - template - const typename date_input_facet::char_type - date_input_facet::four_digit_year_format[3] = {'%','Y'}; - - template - const typename date_input_facet::char_type - date_input_facet::two_digit_year_format[3] = {'%','y'}; - - template - const typename date_input_facet::char_type - date_input_facet::default_period_separator[4] = { ' ', '/', ' '}; - - template - const typename date_input_facet::char_type - date_input_facet::standard_format_specifier[3] = - {'%', 'x' }; - - template - const typename date_input_facet::char_type - date_input_facet::iso_format_specifier[7] = - {'%', 'Y', '%', 'm', '%', 'd' }; - - template - const typename date_input_facet::char_type - date_input_facet::iso_format_extended_specifier[9] = - {'%', 'Y', '-', '%', 'm', '-', '%', 'd' }; - - template - const typename date_input_facet::char_type - date_input_facet::default_date_format[9] = - {'%','Y','-','%','b','-','%','d'}; - -} } // namespaces - - -#endif diff --git a/3rdParty/Boost/boost/date_time/date_format_simple.hpp b/3rdParty/Boost/boost/date_time/date_format_simple.hpp deleted file mode 100644 index be21ce4..0000000 --- a/3rdParty/Boost/boost/date_time/date_format_simple.hpp +++ /dev/null @@ -1,159 +0,0 @@ -#ifndef DATE_TIME_SIMPLE_FORMAT_HPP___ -#define DATE_TIME_SIMPLE_FORMAT_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/parse_format_base.hpp" - -namespace boost { -namespace date_time { - -//! Class to provide simple basic formatting rules -template -class simple_format { -public: - - //! String used printed is date is invalid - static const charT* not_a_date() - { - return "not-a-date-time"; - } - //! String used to for positive infinity value - static const charT* pos_infinity() - { - return "+infinity"; - } - //! String used to for positive infinity value - static const charT* neg_infinity() - { - return "-infinity"; - } - //! Describe month format - static month_format_spec month_format() - { - return month_as_short_string; - } - static ymd_order_spec date_order() - { - return ymd_order_iso; //YYYY-MM-DD - } - //! This format uses '-' to separate date elements - static bool has_date_sep_chars() - { - return true; - } - //! Char to sep? - static charT year_sep_char() - { - return '-'; - } - //! char between year-month - static charT month_sep_char() - { - return '-'; - } - //! Char to separate month-day - static charT day_sep_char() - { - return '-'; - } - //! char between date-hours - static charT hour_sep_char() - { - return ' '; - } - //! char between hour and minute - static charT minute_sep_char() - { - return ':'; - } - //! char for second - static charT second_sep_char() - { - return ':'; - } - -}; - -#ifndef BOOST_NO_STD_WSTRING - -//! Specialization of formmating rules for wchar_t -template<> -class simple_format { -public: - - //! String used printed is date is invalid - static const wchar_t* not_a_date() - { - return L"not-a-date-time"; - } - //! String used to for positive infinity value - static const wchar_t* pos_infinity() - { - return L"+infinity"; - } - //! String used to for positive infinity value - static const wchar_t* neg_infinity() - { - return L"-infinity"; - } - //! Describe month format - static month_format_spec month_format() - { - return month_as_short_string; - } - static ymd_order_spec date_order() - { - return ymd_order_iso; //YYYY-MM-DD - } - //! This format uses '-' to separate date elements - static bool has_date_sep_chars() - { - return true; - } - //! Char to sep? - static wchar_t year_sep_char() - { - return '-'; - } - //! char between year-month - static wchar_t month_sep_char() - { - return '-'; - } - //! Char to separate month-day - static wchar_t day_sep_char() - { - return '-'; - } - //! char between date-hours - static wchar_t hour_sep_char() - { - return ' '; - } - //! char between hour and minute - static wchar_t minute_sep_char() - { - return ':'; - } - //! char for second - static wchar_t second_sep_char() - { - return ':'; - } - -}; - -#endif // BOOST_NO_STD_WSTRING -} } //namespace date_time - - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/date_formatting.hpp b/3rdParty/Boost/boost/date_time/date_formatting.hpp deleted file mode 100644 index abe547a..0000000 --- a/3rdParty/Boost/boost/date_time/date_formatting.hpp +++ /dev/null @@ -1,127 +0,0 @@ -#ifndef DATE_TIME_DATE_FORMATTING_HPP___ -#define DATE_TIME_DATE_FORMATTING_HPP___ - -/* Copyright (c) 2002-2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/iso_format.hpp" -#include "boost/date_time/compiler_config.hpp" -#include -#include -#include - -/* NOTE: "formatter" code for older compilers, ones that define - * BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS, is located in - * date_formatting_limited.hpp - */ - -namespace boost { -namespace date_time { - - //! Formats a month as as string into an ostream - template - class month_formatter - { - typedef std::basic_ostream ostream_type; - public: - //! Formats a month as as string into an ostream - /*! This function demands that month_type provide - * functions for converting to short and long strings - * if that capability is used. - */ - static ostream_type& format_month(const month_type& month, - ostream_type &os) - { - switch (format_type::month_format()) - { - case month_as_short_string: - { - os << month.as_short_string(); - break; - } - case month_as_long_string: - { - os << month.as_long_string(); - break; - } - case month_as_integer: - { - os << std::setw(2) << std::setfill(os.widen('0')) << month.as_number(); - break; - } - - } - return os; - } // format_month - }; - - - //! Convert ymd to a standard string formatting policies - template - class ymd_formatter - { - public: - //! Convert ymd to a standard string formatting policies - /*! This is standard code for handling date formatting with - * year-month-day based date information. This function - * uses the format_type to control whether the string will - * contain separator characters, and if so what the character - * will be. In addtion, it can format the month as either - * an integer or a string as controled by the formatting - * policy - */ - static std::basic_string ymd_to_string(ymd_type ymd) - { - typedef typename ymd_type::month_type month_type; - std::basic_ostringstream ss; - ss << ymd.year; - if (format_type::has_date_sep_chars()) { - ss << format_type::month_sep_char(); - } - //this name is a bit ugly, oh well.... - month_formatter::format_month(ymd.month, ss); - if (format_type::has_date_sep_chars()) { - ss << format_type::day_sep_char(); - } - ss << std::setw(2) << std::setfill(ss.widen('0')) - << ymd.day; - return ss.str(); - } - }; - - - //! Convert a date to string using format policies - template - class date_formatter - { - public: - typedef std::basic_string string_type; - //! Convert to a date to standard string using format policies - static string_type date_to_string(date_type d) - { - typedef typename date_type::ymd_type ymd_type; - if (d.is_not_a_date()) { - return string_type(format_type::not_a_date()); - } - if (d.is_neg_infinity()) { - return string_type(format_type::neg_infinity()); - } - if (d.is_pos_infinity()) { - return string_type(format_type::pos_infinity()); - } - ymd_type ymd = d.year_month_day(); - return ymd_formatter::ymd_to_string(ymd); - } - }; - - -} } //namespace date_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/date_formatting_limited.hpp b/3rdParty/Boost/boost/date_time/date_formatting_limited.hpp deleted file mode 100644 index 38fee07..0000000 --- a/3rdParty/Boost/boost/date_time/date_formatting_limited.hpp +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef DATE_TIME_DATE_FORMATTING_LIMITED_HPP___ -#define DATE_TIME_DATE_FORMATTING_LIMITED_HPP___ - -/* Copyright (c) 2002-2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/iso_format.hpp" -#include "boost/date_time/compiler_config.hpp" -#include -#include -#include - - -namespace boost { -namespace date_time { - - //! Formats a month as as string into an ostream - template - class month_formatter - { - public: - //! Formats a month as as string into an ostream - /*! This function demands that month_type provide - * functions for converting to short and long strings - * if that capability is used. - */ - static std::ostream& format_month(const month_type& month, - std::ostream& os) - { - switch (format_type::month_format()) - { - case month_as_short_string: - { - os << month.as_short_string(); - break; - } - case month_as_long_string: - { - os << month.as_long_string(); - break; - } - case month_as_integer: - { - os << std::setw(2) << std::setfill('0') << month.as_number(); - break; - } - - } - return os; - } // format_month - }; - - - //! Convert ymd to a standard string formatting policies - template - class ymd_formatter - { - public: - //! Convert ymd to a standard string formatting policies - /*! This is standard code for handling date formatting with - * year-month-day based date information. This function - * uses the format_type to control whether the string will - * contain separator characters, and if so what the character - * will be. In addtion, it can format the month as either - * an integer or a string as controled by the formatting - * policy - */ - static std::string ymd_to_string(ymd_type ymd) - { - typedef typename ymd_type::month_type month_type; - std::ostringstream ss; - ss << ymd.year; - if (format_type::has_date_sep_chars()) { - ss << format_type::month_sep_char(); - } - //this name is a bit ugly, oh well.... - month_formatter::format_month(ymd.month, ss); - if (format_type::has_date_sep_chars()) { - ss << format_type::day_sep_char(); - } - ss << std::setw(2) << std::setfill('0') - << ymd.day; - return ss.str(); - } - }; - - - //! Convert a date to string using format policies - template - class date_formatter - { - public: - //! Convert to a date to standard string using format policies - static std::string date_to_string(date_type d) - { - typedef typename date_type::ymd_type ymd_type; - if (d.is_not_a_date()) { - return format_type::not_a_date(); - } - if (d.is_neg_infinity()) { - return format_type::neg_infinity(); - } - if (d.is_pos_infinity()) { - return format_type::pos_infinity(); - } - ymd_type ymd = d.year_month_day(); - return ymd_formatter::ymd_to_string(ymd); - } - }; - - -} } //namespace date_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/date_formatting_locales.hpp b/3rdParty/Boost/boost/date_time/date_formatting_locales.hpp deleted file mode 100644 index 4ac9c4e..0000000 --- a/3rdParty/Boost/boost/date_time/date_formatting_locales.hpp +++ /dev/null @@ -1,233 +0,0 @@ -#ifndef DATE_TIME_DATE_FORMATTING_LOCALES_HPP___ -#define DATE_TIME_DATE_FORMATTING_LOCALES_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - - -#include "boost/date_time/locale_config.hpp" // set BOOST_DATE_TIME_NO_LOCALE - -#ifndef BOOST_DATE_TIME_NO_LOCALE - -#include "boost/date_time/iso_format.hpp" -#include "boost/date_time/date_names_put.hpp" -#include "boost/date_time/parse_format_base.hpp" -//#include -#include -#include - - -namespace boost { -namespace date_time { - - //! Formats a month as as string into an ostream - template - class ostream_month_formatter - { - public: - typedef typename facet_type::month_type month_type; - typedef std::basic_ostream ostream_type; - - //! Formats a month as as string into an output iterator - static void format_month(const month_type& month, - ostream_type& os, - const facet_type& f) - { - - switch (f.month_format()) - { - case month_as_short_string: - { - std::ostreambuf_iterator oitr(os); - f.put_month_short(oitr, month.as_enum()); - break; - } - case month_as_long_string: - { - std::ostreambuf_iterator oitr(os); - f.put_month_long(oitr, month.as_enum()); - break; - } - case month_as_integer: - { - charT fill_char = '0'; - os << std::setw(2) << std::setfill(fill_char) << month.as_number(); - break; - } - - } - } // format_month - - }; - - - //! Formats a weekday - template - class ostream_weekday_formatter - { - public: - typedef typename facet_type::month_type month_type; - typedef std::basic_ostream ostream_type; - - //! Formats a month as as string into an output iterator - static void format_weekday(const weekday_type& wd, - ostream_type& os, - const facet_type& f, - bool as_long_string) - { - - std::ostreambuf_iterator oitr(os); - if (as_long_string) { - f.put_weekday_long(oitr, wd.as_enum()); - } - else { - f.put_weekday_short(oitr, wd.as_enum()); - } - - } // format_weekday - - }; - - - //! Convert ymd to a standard string formatting policies - template - class ostream_ymd_formatter - { - public: - typedef typename ymd_type::month_type month_type; - typedef ostream_month_formatter month_formatter_type; - typedef std::basic_ostream ostream_type; - typedef std::basic_string foo_type; - - //! Convert ymd to a standard string formatting policies - /*! This is standard code for handling date formatting with - * year-month-day based date information. This function - * uses the format_type to control whether the string will - * contain separator characters, and if so what the character - * will be. In addtion, it can format the month as either - * an integer or a string as controled by the formatting - * policy - */ - // static string_type ymd_to_string(ymd_type ymd) -// { -// std::ostringstream ss; -// facet_type dnp; -// ymd_put(ymd, ss, dnp); -// return ss.str(); -// } - - - // Put ymd to ostream -- part of ostream refactor - static void ymd_put(ymd_type ymd, - ostream_type& os, - const facet_type& f) - { - std::ostreambuf_iterator oitr(os); - charT fill_char = '0'; - switch (f.date_order()) { - case ymd_order_iso: { - os << ymd.year; - if (f.has_date_sep_chars()) { - f.month_sep_char(oitr); - } - month_formatter_type::format_month(ymd.month, os, f); - if (f.has_date_sep_chars()) { - f.day_sep_char(oitr); - } - os << std::setw(2) << std::setfill(fill_char) - << ymd.day; - break; - } - case ymd_order_us: { - month_formatter_type::format_month(ymd.month, os, f); - if (f.has_date_sep_chars()) { - f.day_sep_char(oitr); - } - os << std::setw(2) << std::setfill(fill_char) - << ymd.day; - if (f.has_date_sep_chars()) { - f.month_sep_char(oitr); - } - os << ymd.year; - break; - } - case ymd_order_dmy: { - os << std::setw(2) << std::setfill(fill_char) - << ymd.day; - if (f.has_date_sep_chars()) { - f.day_sep_char(oitr); - } - month_formatter_type::format_month(ymd.month, os, f); - if (f.has_date_sep_chars()) { - f.month_sep_char(oitr); - } - os << ymd.year; - break; - } - } - } - }; - - - //! Convert a date to string using format policies - template - class ostream_date_formatter - { - public: - typedef std::basic_ostream ostream_type; - typedef typename date_type::ymd_type ymd_type; - - //! Put date into an ostream - static void date_put(const date_type& d, - ostream_type& os, - const facet_type& f) - { - special_values sv = d.as_special(); - if (sv == not_special) { - ymd_type ymd = d.year_month_day(); - ostream_ymd_formatter::ymd_put(ymd, os, f); - } - else { // output a special value - std::ostreambuf_iterator coi(os); - f.put_special_value(coi, sv); - } - } - - - //! Put date into an ostream - static void date_put(const date_type& d, - ostream_type& os) - { - //retrieve the local from the ostream - std::locale locale = os.getloc(); - if (std::has_facet(locale)) { - const facet_type& f = std::use_facet(locale); - date_put(d, os, f); - } - else { - //default to something sensible if no facet installed - facet_type default_facet; - date_put(d, os, default_facet); - } - } // date_to_ostream - }; //class date_formatter - - -} } //namespace date_time - -#endif - -#endif - diff --git a/3rdParty/Boost/boost/date_time/date_generator_formatter.hpp b/3rdParty/Boost/boost/date_time/date_generator_formatter.hpp deleted file mode 100644 index 88cd7e1..0000000 --- a/3rdParty/Boost/boost/date_time/date_generator_formatter.hpp +++ /dev/null @@ -1,265 +0,0 @@ -#ifndef _DATE_TIME_DATE_GENERATOR_FORMATTER__HPP___ -#define _DATE_TIME_DATE_GENERATOR_FORMATTER__HPP___ - -/* Copyright (c) 2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-13 14:05:31 -0500 (Thu, 13 Nov 2008) $ - */ - -#include -#include -#include -#include -#include "boost/date_time/date_generators.hpp" - -namespace boost { -namespace date_time { - - //! Formats date_generators for output - /*! Formatting of date_generators follows specific orders for the - * various types of date_generators. - * - partial_date => "dd Month" - * - nth_day_of_the_week_in_month => "nth weekday of month" - * - first_day_of_the_week_in_month => "first weekday of month" - * - last_day_of_the_week_in_month => "last weekday of month" - * - first_day_of_the_week_after => "weekday after" - * - first_day_of_the_week_before => "weekday before" - * While the order of the elements in these phrases cannot be changed, - * the elements themselves can be. Weekday and Month get their formats - * and names from the date_facet. The remaining elements are stored in - * the date_generator_formatter and can be customized upon construction - * or via a member function. The default elements are those shown in the - * examples above. - */ - template > > - class date_generator_formatter { - public: - typedef partial_date partial_date_type; - typedef nth_kday_of_month nth_kday_type; - typedef first_kday_of_month first_kday_type; - typedef last_kday_of_month last_kday_type; - typedef first_kday_after kday_after_type; - typedef first_kday_before kday_before_type; - - typedef CharT char_type; - typedef std::basic_string string_type; - typedef std::vector collection_type; - static const char_type first_string[6]; - static const char_type second_string[7]; - static const char_type third_string[6]; - static const char_type fourth_string[7]; - static const char_type fifth_string[6]; - static const char_type last_string[5]; - static const char_type before_string[8]; - static const char_type after_string[6]; - static const char_type of_string[3]; - - enum phrase_elements {first=0, second, third, fourth, fifth, last, - before, after, of, number_of_phrase_elements}; - - //! Default format elements used - date_generator_formatter() - { - phrase_strings.reserve(number_of_phrase_elements); - phrase_strings.push_back(string_type(first_string)); - phrase_strings.push_back(string_type(second_string)); - phrase_strings.push_back(string_type(third_string)); - phrase_strings.push_back(string_type(fourth_string)); - phrase_strings.push_back(string_type(fifth_string)); - phrase_strings.push_back(string_type(last_string)); - phrase_strings.push_back(string_type(before_string)); - phrase_strings.push_back(string_type(after_string)); - phrase_strings.push_back(string_type(of_string)); - } - - //! Constructor that allows for a custom set of phrase elements - date_generator_formatter(const string_type& first_str, - const string_type& second_str, - const string_type& third_str, - const string_type& fourth_str, - const string_type& fifth_str, - const string_type& last_str, - const string_type& before_str, - const string_type& after_str, - const string_type& of_str) - { - phrase_strings.reserve(number_of_phrase_elements); - phrase_strings.push_back(first_str); - phrase_strings.push_back(second_str); - phrase_strings.push_back(third_str); - phrase_strings.push_back(fourth_str); - phrase_strings.push_back(fifth_str); - phrase_strings.push_back(last_str); - phrase_strings.push_back(before_str); - phrase_strings.push_back(after_str); - phrase_strings.push_back(of_str); - } - - //! Replace the set of phrase elements with those contained in new_strings - /*! The order of the strings in the given collection is important. - * They must follow: - * - first, second, third, fourth, fifth, last, before, after, of. - * - * It is not necessary to send in a complete set if only a few - * elements are to be replaced as long as the correct beg_pos is used. - * - * Ex: To keep the default first through fifth elements, but replace - * the rest with a collection of: - * - "final", "prior", "following", "in". - * The beg_pos of date_generator_formatter::last would be used. - */ - void elements(const collection_type& new_strings, - phrase_elements beg_pos=first) - { - if(beg_pos < number_of_phrase_elements) { - typename collection_type::iterator itr = phrase_strings.begin(); - itr += beg_pos; - std::copy(new_strings.begin(), new_strings.end(), - itr); - //phrase_strings.begin()); - } - } - - //!Put a partial_date => "dd Month" - template - OutItrT put_partial_date(OutItrT next, std::ios_base& a_ios, - CharT a_fill, const partial_date_type& pd, - const facet_type& facet) const - { - facet.put(next, a_ios, a_fill, pd.day()); - next = a_fill; //TODO change this ??? - facet.put(next, a_ios, a_fill, pd.month()); - return next; - } - - //! Put an nth_day_of_the_week_in_month => "nth weekday of month" - template - OutItrT put_nth_kday(OutItrT next, std::ios_base& a_ios, - CharT a_fill, const nth_kday_type& nkd, - const facet_type& facet) const - { - put_string(next, phrase_strings[nkd.nth_week() -1]); - next = a_fill; //TODO change this ??? - facet.put(next, a_ios, a_fill, nkd.day_of_week()); - next = a_fill; //TODO change this ??? - put_string(next, string_type(of_string)); - next = a_fill; //TODO change this ??? - facet.put(next, a_ios, a_fill, nkd.month()); - return next; - } - - //! Put a first_day_of_the_week_in_month => "first weekday of month" - template - OutItrT put_first_kday(OutItrT next, std::ios_base& a_ios, - CharT a_fill, const first_kday_type& fkd, - const facet_type& facet) const - { - put_string(next, phrase_strings[first]); - next = a_fill; //TODO change this ??? - facet.put(next, a_ios, a_fill, fkd.day_of_week()); - next = a_fill; //TODO change this ??? - put_string(next, string_type(of_string)); - next = a_fill; //TODO change this ??? - facet.put(next, a_ios, a_fill, fkd.month()); - return next; - } - - //! Put a last_day_of_the_week_in_month => "last weekday of month" - template - OutItrT put_last_kday(OutItrT next, std::ios_base& a_ios, - CharT a_fill, const last_kday_type& lkd, - const facet_type& facet) const - { - put_string(next, phrase_strings[last]); - next = a_fill; //TODO change this ??? - facet.put(next, a_ios, a_fill, lkd.day_of_week()); - next = a_fill; //TODO change this ??? - put_string(next, string_type(of_string)); - next = a_fill; //TODO change this ??? - facet.put(next, a_ios, a_fill, lkd.month()); - return next; - } - - //! Put a first_day_of_the_week_before => "weekday before" - template - OutItrT put_kday_before(OutItrT next, std::ios_base& a_ios, - CharT a_fill, const kday_before_type& fkb, - const facet_type& facet) const - { - facet.put(next, a_ios, a_fill, fkb.day_of_week()); - next = a_fill; //TODO change this ??? - put_string(next, phrase_strings[before]); - return next; - } - - //! Put a first_day_of_the_week_after => "weekday after" - template - OutItrT put_kday_after(OutItrT next, std::ios_base& a_ios, - CharT a_fill, const kday_after_type& fka, - const facet_type& facet) const - { - facet.put(next, a_ios, a_fill, fka.day_of_week()); - next = a_fill; //TODO change this ??? - put_string(next, phrase_strings[after]); - return next; - } - - - private: - collection_type phrase_strings; - - //! helper function to put the various member string into stream - OutItrT put_string(OutItrT next, const string_type& str) const - { - typename string_type::const_iterator itr = str.begin(); - while(itr != str.end()) { - *next = *itr; - ++itr; - ++next; - } - return next; - } - }; - - template - const typename date_generator_formatter::char_type - date_generator_formatter::first_string[6] = - {'f','i','r','s','t'}; - template - const typename date_generator_formatter::char_type - date_generator_formatter::second_string[7] = - {'s','e','c','o','n','d'}; - template - const typename date_generator_formatter::char_type - date_generator_formatter::third_string[6] = - {'t','h','i','r','d'}; - template - const typename date_generator_formatter::char_type - date_generator_formatter::fourth_string[7] = - {'f','o','u','r','t','h'}; - template - const typename date_generator_formatter::char_type - date_generator_formatter::fifth_string[6] = - {'f','i','f','t','h'}; - template - const typename date_generator_formatter::char_type - date_generator_formatter::last_string[5] = - {'l','a','s','t'}; - template - const typename date_generator_formatter::char_type - date_generator_formatter::before_string[8] = - {'b','e','f','o','r','e'}; - template - const typename date_generator_formatter::char_type - date_generator_formatter::after_string[6] = - {'a','f','t','e','r'}; - template - const typename date_generator_formatter::char_type - date_generator_formatter::of_string[3] = - {'o','f'}; -} } // namespaces - -#endif // _DATE_TIME_DATE_GENERATOR_FORMATTER__HPP___ diff --git a/3rdParty/Boost/boost/date_time/date_generator_parser.hpp b/3rdParty/Boost/boost/date_time/date_generator_parser.hpp deleted file mode 100644 index f11eb42..0000000 --- a/3rdParty/Boost/boost/date_time/date_generator_parser.hpp +++ /dev/null @@ -1,330 +0,0 @@ - -#ifndef DATE_TIME_DATE_GENERATOR_PARSER_HPP__ -#define DATE_TIME_DATE_GENERATOR_PARSER_HPP__ - -/* Copyright (c) 2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#include -#include -#include // istreambuf_iterator -#include -#include -#include -#include -#include - -namespace boost { namespace date_time { - - //! Class for date_generator parsing - /*! The elements of a date_generator "phrase" are parsed from the input stream in a - * particular order. All elements are required and the order in which they appear - * cannot change, however, the elements themselves can be changed. The default - * elements and their order are as follows: - * - * - partial_date => "dd Month" - * - nth_day_of_the_week_in_month => "nth weekday of month" - * - first_day_of_the_week_in_month => "first weekday of month" - * - last_day_of_the_week_in_month => "last weekday of month" - * - first_day_of_the_week_after => "weekday after" - * - first_day_of_the_week_before => "weekday before" - * - * Weekday and Month names and formats are handled via the date_input_facet. - * - */ - template - class date_generator_parser - { - public: - typedef std::basic_string string_type; - typedef std::istreambuf_iterator stream_itr_type; - - typedef typename date_type::month_type month_type; - typedef typename date_type::day_of_week_type day_of_week_type; - typedef typename date_type::day_type day_type; - - typedef string_parse_tree parse_tree_type; - typedef typename parse_tree_type::parse_match_result_type match_results; - typedef std::vector > collection_type; - - typedef partial_date partial_date_type; - typedef nth_kday_of_month nth_kday_type; - typedef first_kday_of_month first_kday_type; - typedef last_kday_of_month last_kday_type; - typedef first_kday_after kday_after_type; - typedef first_kday_before kday_before_type; - - typedef charT char_type; - static const char_type first_string[6]; - static const char_type second_string[7]; - static const char_type third_string[6]; - static const char_type fourth_string[7]; - static const char_type fifth_string[6]; - static const char_type last_string[5]; - static const char_type before_string[8]; - static const char_type after_string[6]; - static const char_type of_string[3]; - - enum phrase_elements {first=0, second, third, fourth, fifth, last, - before, after, of, number_of_phrase_elements}; - - //! Creates a date_generator_parser with the default set of "element_strings" - date_generator_parser() - { - element_strings(string_type(first_string), - string_type(second_string), - string_type(third_string), - string_type(fourth_string), - string_type(fifth_string), - string_type(last_string), - string_type(before_string), - string_type(after_string), - string_type(of_string)); - } - - //! Creates a date_generator_parser using a user defined set of element strings - date_generator_parser(const string_type& first_str, - const string_type& second_str, - const string_type& third_str, - const string_type& fourth_str, - const string_type& fifth_str, - const string_type& last_str, - const string_type& before_str, - const string_type& after_str, - const string_type& of_str) - { - element_strings(first_str, second_str, third_str, fourth_str, fifth_str, - last_str, before_str, after_str, of_str); - } - - //! Replace strings that determine nth week for generator - void element_strings(const string_type& first_str, - const string_type& second_str, - const string_type& third_str, - const string_type& fourth_str, - const string_type& fifth_str, - const string_type& last_str, - const string_type& before_str, - const string_type& after_str, - const string_type& of_str) - { - collection_type phrases; - phrases.push_back(first_str); - phrases.push_back(second_str); - phrases.push_back(third_str); - phrases.push_back(fourth_str); - phrases.push_back(fifth_str); - phrases.push_back(last_str); - phrases.push_back(before_str); - phrases.push_back(after_str); - phrases.push_back(of_str); - m_element_strings = parse_tree_type(phrases, this->first); // enum first - } - - void element_strings(const collection_type& col) - { - m_element_strings = parse_tree_type(col, this->first); // enum first - } - - //! returns partial_date parsed from stream - template - partial_date_type - get_partial_date_type(stream_itr_type& sitr, - stream_itr_type& stream_end, - std::ios_base& a_ios, - const facet_type& facet) const - { - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - - day_type d(1); - month_type m(1); - facet.get(sitr, stream_end, a_ios, d); - facet.get(sitr, stream_end, a_ios, m); - - return partial_date_type(d,m); - } - - //! returns nth_kday_of_week parsed from stream - template - nth_kday_type - get_nth_kday_type(stream_itr_type& sitr, - stream_itr_type& stream_end, - std::ios_base& a_ios, - const facet_type& facet) const - { - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - - typename nth_kday_type::week_num wn; - day_of_week_type wd(0); // no default constructor - month_type m(1); // no default constructor - - match_results mr = m_element_strings.match(sitr, stream_end); - switch(mr.current_match) { - case first : { wn = nth_kday_type::first; break; } - case second : { wn = nth_kday_type::second; break; } - case third : { wn = nth_kday_type::third; break; } - case fourth : { wn = nth_kday_type::fourth; break; } - case fifth : { wn = nth_kday_type::fifth; break; } - default: - { - boost::throw_exception(std::ios_base::failure("Parse failed. No match found for '" + mr.cache + "'")); - BOOST_DATE_TIME_UNREACHABLE_EXPRESSION(wn = nth_kday_type::first); - } - } // week num - facet.get(sitr, stream_end, a_ios, wd); // day_of_week - extract_element(sitr, stream_end, of); // "of" element - facet.get(sitr, stream_end, a_ios, m); // month - - return nth_kday_type(wn, wd, m); - } - - //! returns first_kday_of_week parsed from stream - template - first_kday_type - get_first_kday_type(stream_itr_type& sitr, - stream_itr_type& stream_end, - std::ios_base& a_ios, - const facet_type& facet) const - { - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - - day_of_week_type wd(0); // no default constructor - month_type m(1); // no default constructor - - extract_element(sitr, stream_end, first); // "first" element - facet.get(sitr, stream_end, a_ios, wd); // day_of_week - extract_element(sitr, stream_end, of); // "of" element - facet.get(sitr, stream_end, a_ios, m); // month - - - return first_kday_type(wd, m); - } - - //! returns last_kday_of_week parsed from stream - template - last_kday_type - get_last_kday_type(stream_itr_type& sitr, - stream_itr_type& stream_end, - std::ios_base& a_ios, - const facet_type& facet) const - { - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - - day_of_week_type wd(0); // no default constructor - month_type m(1); // no default constructor - - extract_element(sitr, stream_end, last); // "last" element - facet.get(sitr, stream_end, a_ios, wd); // day_of_week - extract_element(sitr, stream_end, of); // "of" element - facet.get(sitr, stream_end, a_ios, m); // month - - - return last_kday_type(wd, m); - } - - //! returns first_kday_of_week parsed from stream - template - kday_before_type - get_kday_before_type(stream_itr_type& sitr, - stream_itr_type& stream_end, - std::ios_base& a_ios, - const facet_type& facet) const - { - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - - day_of_week_type wd(0); // no default constructor - - facet.get(sitr, stream_end, a_ios, wd); // day_of_week - extract_element(sitr, stream_end, before);// "before" element - - return kday_before_type(wd); - } - - //! returns first_kday_of_week parsed from stream - template - kday_after_type - get_kday_after_type(stream_itr_type& sitr, - stream_itr_type& stream_end, - std::ios_base& a_ios, - const facet_type& facet) const - { - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - - day_of_week_type wd(0); // no default constructor - - facet.get(sitr, stream_end, a_ios, wd); // day_of_week - extract_element(sitr, stream_end, after); // "after" element - - return kday_after_type(wd); - } - - private: - parse_tree_type m_element_strings; - - //! Extracts phrase element from input. Throws ios_base::failure on error. - void extract_element(stream_itr_type& sitr, - stream_itr_type& stream_end, - typename date_generator_parser::phrase_elements ele) const - { - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - match_results mr = m_element_strings.match(sitr, stream_end); - if(mr.current_match != ele) { - boost::throw_exception(std::ios_base::failure("Parse failed. No match found for '" + mr.cache + "'")); - } - } - - }; - - template - const typename date_generator_parser::char_type - date_generator_parser::first_string[6] = - {'f','i','r','s','t'}; - template - const typename date_generator_parser::char_type - date_generator_parser::second_string[7] = - {'s','e','c','o','n','d'}; - template - const typename date_generator_parser::char_type - date_generator_parser::third_string[6] = - {'t','h','i','r','d'}; - template - const typename date_generator_parser::char_type - date_generator_parser::fourth_string[7] = - {'f','o','u','r','t','h'}; - template - const typename date_generator_parser::char_type - date_generator_parser::fifth_string[6] = - {'f','i','f','t','h'}; - template - const typename date_generator_parser::char_type - date_generator_parser::last_string[5] = - {'l','a','s','t'}; - template - const typename date_generator_parser::char_type - date_generator_parser::before_string[8] = - {'b','e','f','o','r','e'}; - template - const typename date_generator_parser::char_type - date_generator_parser::after_string[6] = - {'a','f','t','e','r'}; - template - const typename date_generator_parser::char_type - date_generator_parser::of_string[3] = - {'o','f'}; - -} } //namespace - -#endif // DATE_TIME_DATE_GENERATOR_PARSER_HPP__ - diff --git a/3rdParty/Boost/boost/date_time/date_generators.hpp b/3rdParty/Boost/boost/date_time/date_generators.hpp deleted file mode 100644 index 1f1a34a..0000000 --- a/3rdParty/Boost/boost/date_time/date_generators.hpp +++ /dev/null @@ -1,509 +0,0 @@ -#ifndef DATE_TIME_DATE_GENERATORS_HPP__ -#define DATE_TIME_DATE_GENERATORS_HPP__ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -/*! @file date_generators.hpp - Definition and implementation of date algorithm templates -*/ - -#include -#include -#include -#include -#include - -namespace boost { -namespace date_time { - - //! Base class for all generators that take a year and produce a date. - /*! This class is a base class for polymorphic function objects that take - a year and produce a concrete date. - @param date_type The type representing a date. This type must - export a calender_type which defines a year_type. - */ - template - class year_based_generator - { - public: - typedef typename date_type::calendar_type calendar_type; - typedef typename calendar_type::year_type year_type; - year_based_generator() {}; - virtual ~year_based_generator() {}; - virtual date_type get_date(year_type y) const = 0; - //! Returns a string for use in a POSIX time_zone string - virtual std::string to_string() const =0; - }; - - //! Generates a date by applying the year to the given month and day. - /*! - Example usage: - @code - partial_date pd(1, Jan); - partial_date pd2(70); - date d = pd.get_date(2002); //2002-Jan-01 - date d2 = pd2.get_date(2002); //2002-Mar-10 - @endcode - \ingroup date_alg - */ - template - class partial_date : public year_based_generator - { - public: - typedef typename date_type::calendar_type calendar_type; - typedef typename calendar_type::day_type day_type; - typedef typename calendar_type::month_type month_type; - typedef typename calendar_type::year_type year_type; - typedef typename date_type::duration_type duration_type; - typedef typename duration_type::duration_rep duration_rep; - partial_date(day_type d, month_type m) : - day_(d), - month_(m) - {} - //! Partial date created from number of days into year. Range 1-366 - /*! Allowable values range from 1 to 366. 1=Jan1, 366=Dec31. If argument - * exceeds range, partial_date will be created with closest in-range value. - * 60 will always be Feb29, if get_date() is called with a non-leap year - * an exception will be thrown */ - partial_date(duration_rep days) : - day_(1), // default values - month_(1) - { - date_type d1(2000,1,1); - if(days > 1) { - if(days > 366) // prevents wrapping - { - days = 366; - } - days = days - 1; - duration_type dd(days); - d1 = d1 + dd; - } - day_ = d1.day(); - month_ = d1.month(); - } - //! Return a concrete date when provided with a year specific year. - /*! Will throw an 'invalid_argument' exception if a partial_date object, - * instantiated with Feb-29, has get_date called with a non-leap year. - * Example: - * @code - * partial_date pd(29, Feb); - * pd.get_date(2003); // throws invalid_argument exception - * pg.get_date(2000); // returns 2000-2-29 - * @endcode - */ - date_type get_date(year_type y) const - { - if((day_ == 29) && (month_ == 2) && !(calendar_type::is_leap_year(y))) { - std::ostringstream ss; - ss << "No Feb 29th in given year of " << y << "."; - boost::throw_exception(std::invalid_argument(ss.str())); - } - return date_type(y, month_, day_); - } - date_type operator()(year_type y) const - { - return get_date(y); - //return date_type(y, month_, day_); - } - bool operator==(const partial_date& rhs) const - { - return (month_ == rhs.month_) && (day_ == rhs.day_); - } - bool operator<(const partial_date& rhs) const - { - if (month_ < rhs.month_) return true; - if (month_ > rhs.month_) return false; - //months are equal - return (day_ < rhs.day_); - } - - // added for streaming purposes - month_type month() const - { - return month_; - } - day_type day() const - { - return day_; - } - - //! Returns string suitable for use in POSIX time zone string - /*! Returns string formatted with up to 3 digits: - * Jan-01 == "0" - * Feb-29 == "58" - * Dec-31 == "365" */ - virtual std::string to_string() const - { - std::ostringstream ss; - date_type d(2004, month_, day_); - unsigned short c = d.day_of_year(); - c--; // numbered 0-365 while day_of_year is 1 based... - ss << c; - return ss.str(); - } - private: - day_type day_; - month_type month_; - }; - - - //! Returns nth arg as string. 1 -> "first", 2 -> "second", max is 5. - BOOST_DATE_TIME_DECL const char* nth_as_str(int n); - - //! Useful generator functor for finding holidays - /*! Based on the idea in Cal. Calc. for finding holidays that are - * the 'first Monday of September'. When instantiated with - * 'fifth' kday of month, the result will be the last kday of month - * which can be the fourth or fifth depending on the structure of - * the month. - * - * The algorithm here basically guesses for the first - * day of the month. Then finds the first day of the correct - * type. That is, if the first of the month is a Tuesday - * and it needs Wenesday then we simply increment by a day - * and then we can add the length of a week until we get - * to the 'nth kday'. There are probably more efficient - * algorithms based on using a mod 7, but this one works - * reasonably well for basic applications. - * \ingroup date_alg - */ - template - class nth_kday_of_month : public year_based_generator - { - public: - typedef typename date_type::calendar_type calendar_type; - typedef typename calendar_type::day_of_week_type day_of_week_type; - typedef typename calendar_type::month_type month_type; - typedef typename calendar_type::year_type year_type; - typedef typename date_type::duration_type duration_type; - enum week_num {first=1, second, third, fourth, fifth}; - nth_kday_of_month(week_num week_no, - day_of_week_type dow, - month_type m) : - month_(m), - wn_(week_no), - dow_(dow) - {} - //! Return a concrete date when provided with a year specific year. - date_type get_date(year_type y) const - { - date_type d(y, month_, 1); //first day of month - duration_type one_day(1); - duration_type one_week(7); - while (dow_ != d.day_of_week()) { - d = d + one_day; - } - int week = 1; - while (week < wn_) { - d = d + one_week; - week++; - } - // remove wrapping to next month behavior - if(d.month() != month_) { - d = d - one_week; - } - return d; - } - // added for streaming - month_type month() const - { - return month_; - } - week_num nth_week() const - { - return wn_; - } - day_of_week_type day_of_week() const - { - return dow_; - } - const char* nth_week_as_str() const - { - return nth_as_str(wn_); - } - //! Returns string suitable for use in POSIX time zone string - /*! Returns a string formatted as "M4.3.0" ==> 3rd Sunday in April. */ - virtual std::string to_string() const - { - std::ostringstream ss; - ss << 'M' - << static_cast(month_) << '.' - << static_cast(wn_) << '.' - << static_cast(dow_); - return ss.str(); - } - private: - month_type month_; - week_num wn_; - day_of_week_type dow_; - }; - - //! Useful generator functor for finding holidays and daylight savings - /*! Similar to nth_kday_of_month, but requires less paramters - * \ingroup date_alg - */ - template - class first_kday_of_month : public year_based_generator - { - public: - typedef typename date_type::calendar_type calendar_type; - typedef typename calendar_type::day_of_week_type day_of_week_type; - typedef typename calendar_type::month_type month_type; - typedef typename calendar_type::year_type year_type; - typedef typename date_type::duration_type duration_type; - //!Specify the first 'Sunday' in 'April' spec - /*!@param dow The day of week, eg: Sunday, Monday, etc - * @param m The month of the year, eg: Jan, Feb, Mar, etc - */ - first_kday_of_month(day_of_week_type dow, month_type m) : - month_(m), - dow_(dow) - {} - //! Return a concrete date when provided with a year specific year. - date_type get_date(year_type year) const - { - date_type d(year, month_,1); - duration_type one_day(1); - while (dow_ != d.day_of_week()) { - d = d + one_day; - } - return d; - } - // added for streaming - month_type month() const - { - return month_; - } - day_of_week_type day_of_week() const - { - return dow_; - } - //! Returns string suitable for use in POSIX time zone string - /*! Returns a string formatted as "M4.1.0" ==> 1st Sunday in April. */ - virtual std::string to_string() const - { - std::ostringstream ss; - ss << 'M' - << static_cast(month_) << '.' - << 1 << '.' - << static_cast(dow_); - return ss.str(); - } - private: - month_type month_; - day_of_week_type dow_; - }; - - - - //! Calculate something like Last Sunday of January - /*! Useful generator functor for finding holidays and daylight savings - * Get the last day of the month and then calculate the difference - * to the last previous day. - * @param date_type A date class that exports day_of_week, month_type, etc. - * \ingroup date_alg - */ - template - class last_kday_of_month : public year_based_generator - { - public: - typedef typename date_type::calendar_type calendar_type; - typedef typename calendar_type::day_of_week_type day_of_week_type; - typedef typename calendar_type::month_type month_type; - typedef typename calendar_type::year_type year_type; - typedef typename date_type::duration_type duration_type; - //!Specify the date spec like last 'Sunday' in 'April' spec - /*!@param dow The day of week, eg: Sunday, Monday, etc - * @param m The month of the year, eg: Jan, Feb, Mar, etc - */ - last_kday_of_month(day_of_week_type dow, month_type m) : - month_(m), - dow_(dow) - {} - //! Return a concrete date when provided with a year specific year. - date_type get_date(year_type year) const - { - date_type d(year, month_, calendar_type::end_of_month_day(year,month_)); - duration_type one_day(1); - while (dow_ != d.day_of_week()) { - d = d - one_day; - } - return d; - } - // added for streaming - month_type month() const - { - return month_; - } - day_of_week_type day_of_week() const - { - return dow_; - } - //! Returns string suitable for use in POSIX time zone string - /*! Returns a string formatted as "M4.5.0" ==> last Sunday in April. */ - virtual std::string to_string() const - { - std::ostringstream ss; - ss << 'M' - << static_cast(month_) << '.' - << 5 << '.' - << static_cast(dow_); - return ss.str(); - } - private: - month_type month_; - day_of_week_type dow_; - }; - - - //! Calculate something like "First Sunday after Jan 1,2002 - /*! Date generator that takes a date and finds kday after - *@code - typedef boost::date_time::first_kday_after firstkdayafter; - firstkdayafter fkaf(Monday); - fkaf.get_date(date(2002,Feb,1)); - @endcode - * \ingroup date_alg - */ - template - class first_kday_after - { - public: - typedef typename date_type::calendar_type calendar_type; - typedef typename calendar_type::day_of_week_type day_of_week_type; - typedef typename date_type::duration_type duration_type; - first_kday_after(day_of_week_type dow) : - dow_(dow) - {} - //! Return next kday given. - date_type get_date(date_type start_day) const - { - duration_type one_day(1); - date_type d = start_day + one_day; - while (dow_ != d.day_of_week()) { - d = d + one_day; - } - return d; - } - // added for streaming - day_of_week_type day_of_week() const - { - return dow_; - } - private: - day_of_week_type dow_; - }; - - //! Calculate something like "First Sunday before Jan 1,2002 - /*! Date generator that takes a date and finds kday after - *@code - typedef boost::date_time::first_kday_before firstkdaybefore; - firstkdaybefore fkbf(Monday); - fkbf.get_date(date(2002,Feb,1)); - @endcode - * \ingroup date_alg - */ - template - class first_kday_before - { - public: - typedef typename date_type::calendar_type calendar_type; - typedef typename calendar_type::day_of_week_type day_of_week_type; - typedef typename date_type::duration_type duration_type; - first_kday_before(day_of_week_type dow) : - dow_(dow) - {} - //! Return next kday given. - date_type get_date(date_type start_day) const - { - duration_type one_day(1); - date_type d = start_day - one_day; - while (dow_ != d.day_of_week()) { - d = d - one_day; - } - return d; - } - // added for streaming - day_of_week_type day_of_week() const - { - return dow_; - } - private: - day_of_week_type dow_; - }; - - //! Calculates the number of days until the next weekday - /*! Calculates the number of days until the next weekday. - * If the date given falls on a Sunday and the given weekday - * is Tuesday the result will be 2 days */ - template - inline - typename date_type::duration_type days_until_weekday(const date_type& d, const weekday_type& wd) - { - typedef typename date_type::duration_type duration_type; - duration_type wks(0); - duration_type dd(wd.as_number() - d.day_of_week().as_number()); - if(dd.is_negative()){ - wks = duration_type(7); - } - return dd + wks; - } - - //! Calculates the number of days since the previous weekday - /*! Calculates the number of days since the previous weekday - * If the date given falls on a Sunday and the given weekday - * is Tuesday the result will be 5 days. The answer will be a positive - * number because Tuesday is 5 days before Sunday, not -5 days before. */ - template - inline - typename date_type::duration_type days_before_weekday(const date_type& d, const weekday_type& wd) - { - typedef typename date_type::duration_type duration_type; - duration_type wks(0); - duration_type dd(wd.as_number() - d.day_of_week().as_number()); - if(dd.days() > 0){ - wks = duration_type(7); - } - // we want a number of days, not an offset. The value returned must - // be zero or larger. - return (-dd + wks); - } - - //! Generates a date object representing the date of the following weekday from the given date - /*! Generates a date object representing the date of the following - * weekday from the given date. If the date given is 2004-May-9 - * (a Sunday) and the given weekday is Tuesday then the resulting date - * will be 2004-May-11. */ - template - inline - date_type next_weekday(const date_type& d, const weekday_type& wd) - { - return d + days_until_weekday(d, wd); - } - - //! Generates a date object representing the date of the previous weekday from the given date - /*! Generates a date object representing the date of the previous - * weekday from the given date. If the date given is 2004-May-9 - * (a Sunday) and the given weekday is Tuesday then the resulting date - * will be 2004-May-4. */ - template - inline - date_type previous_weekday(const date_type& d, const weekday_type& wd) - { - return d - days_before_weekday(d, wd); - } - -} } //namespace date_time - - - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/date_iterator.hpp b/3rdParty/Boost/boost/date_time/date_iterator.hpp deleted file mode 100644 index 284dc74..0000000 --- a/3rdParty/Boost/boost/date_time/date_iterator.hpp +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef DATE_ITERATOR_HPP___ -#define DATE_ITERATOR_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include - -namespace boost { -namespace date_time { - //! An iterator over dates with varying resolution (day, week, month, year, etc) - enum date_resolutions {day, week, months, year, decade, century, NumDateResolutions}; - - //! Base date iterator type - /*! This class provides the skeleton for the creation of iterators. - * New and interesting interators can be created by plugging in a new - * function that derives the next value from the current state. - * generation of various types of -based information. - * - * Template Parameters - * - * date_type - * - * The date_type is a concrete date_type. The date_type must - * define a duration_type and a calendar_type. - */ - template - class date_itr_base { - // works, but benefit unclear at the moment - // class date_itr_base : public std::iterator{ - public: - typedef typename date_type::duration_type duration_type; - typedef date_type value_type; - typedef std::input_iterator_tag iterator_category; - - date_itr_base(date_type d) : current_(d) {} - virtual ~date_itr_base() {}; - date_itr_base& operator++() - { - current_ = current_ + get_offset(current_); - return *this; - } - date_itr_base& operator--() - { - current_ = current_ + get_neg_offset(current_); - return *this; - } - virtual duration_type get_offset(const date_type& current) const=0; - virtual duration_type get_neg_offset(const date_type& current) const=0; - date_type operator*() {return current_;}; - date_type* operator->() {return ¤t_;}; - bool operator< (const date_type& d) {return current_ < d;} - bool operator<= (const date_type& d) {return current_ <= d;} - bool operator> (const date_type& d) {return current_ > d;} - bool operator>= (const date_type& d) {return current_ >= d;} - bool operator== (const date_type& d) {return current_ == d;} - bool operator!= (const date_type& d) {return current_ != d;} - private: - date_type current_; - }; - - //! Overrides the base date iterator providing hook for functors - /* - * offset_functor - * - * The offset functor must define a get_offset function that takes the - * current point in time and calculates and offset. - * - */ - template - class date_itr : public date_itr_base { - public: - typedef typename date_type::duration_type duration_type; - date_itr(date_type d, int factor=1) : - date_itr_base(d), - of_(factor) - {} - private: - virtual duration_type get_offset(const date_type& current) const - { - return of_.get_offset(current); - } - virtual duration_type get_neg_offset(const date_type& current) const - { - return of_.get_neg_offset(current); - } - offset_functor of_; - }; - - - -} } //namespace date_time - - -#endif diff --git a/3rdParty/Boost/boost/date_time/date_names_put.hpp b/3rdParty/Boost/boost/date_time/date_names_put.hpp deleted file mode 100644 index c6f0ce2..0000000 --- a/3rdParty/Boost/boost/date_time/date_names_put.hpp +++ /dev/null @@ -1,320 +0,0 @@ -#ifndef DATE_TIME_DATE_NAMES_PUT_HPP___ -#define DATE_TIME_DATE_NAMES_PUT_HPP___ - -/* Copyright (c) 2002-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - - -#include "boost/date_time/locale_config.hpp" // set BOOST_DATE_TIME_NO_LOCALE - -#ifndef BOOST_DATE_TIME_NO_LOCALE - -#include "boost/date_time/special_defs.hpp" -#include "boost/date_time/date_defs.hpp" -#include "boost/date_time/parse_format_base.hpp" -#include "boost/lexical_cast.hpp" -#include - - -namespace boost { -namespace date_time { - - //! Output facet base class for gregorian dates. - /*! This class is a base class for date facets used to localize the - * names of months and the names of days in the week. - * - * Requirements of Config - * - define an enumeration month_enum that enumerates the months. - * The enumeration should be '1' based eg: Jan==1 - * - define as_short_string and as_long_string - * - * (see langer & kreft p334). - * - */ - template > - class date_names_put : public std::locale::facet - { - public: - date_names_put() {}; - typedef OutputIterator iter_type; - typedef typename Config::month_type month_type; - typedef typename Config::month_enum month_enum; - typedef typename Config::weekday_enum weekday_enum; - typedef typename Config::special_value_enum special_value_enum; - //typedef typename Config::format_type format_type; - typedef std::basic_string string_type; - typedef charT char_type; - static const char_type default_special_value_names[3][17]; - static const char_type separator[2]; - - static std::locale::id id; - -#if defined (__SUNPRO_CC) && defined (_RWSTD_VER) - std::locale::id& __get_id (void) const { return id; } -#endif - - void put_special_value(iter_type& oitr, special_value_enum sv) const - { - do_put_special_value(oitr, sv); - } - void put_month_short(iter_type& oitr, month_enum moy) const - { - do_put_month_short(oitr, moy); - } - void put_month_long(iter_type& oitr, month_enum moy) const - { - do_put_month_long(oitr, moy); - } - void put_weekday_short(iter_type& oitr, weekday_enum wd) const - { - do_put_weekday_short(oitr, wd); - } - void put_weekday_long(iter_type& oitr, weekday_enum wd) const - { - do_put_weekday_long(oitr, wd); - } - bool has_date_sep_chars() const - { - return do_has_date_sep_chars(); - } - void year_sep_char(iter_type& oitr) const - { - do_year_sep_char(oitr); - } - //! char between year-month - void month_sep_char(iter_type& oitr) const - { - do_month_sep_char(oitr); - } - //! Char to separate month-day - void day_sep_char(iter_type& oitr) const - { - do_day_sep_char(oitr); - } - //! Determines the order to put the date elements - ymd_order_spec date_order() const - { - return do_date_order(); - } - //! Determines if month is displayed as integer, short or long string - month_format_spec month_format() const - { - return do_month_format(); - } - - protected: - //! Default facet implementation uses month_type defaults - virtual void do_put_month_short(iter_type& oitr, month_enum moy) const - { - month_type gm(moy); - charT c = '\0'; - put_string(oitr, gm.as_short_string(c)); - } - //! Default facet implementation uses month_type defaults - virtual void do_put_month_long(iter_type& oitr, - month_enum moy) const - { - month_type gm(moy); - charT c = '\0'; - put_string(oitr, gm.as_long_string(c)); - } - //! Default facet implementation for special value types - virtual void do_put_special_value(iter_type& oitr, special_value_enum sv) const - { - if(sv <= 2) { // only output not_a_date_time, neg_infin, or pos_infin - string_type s(default_special_value_names[sv]); - put_string(oitr, s); - } - } - virtual void do_put_weekday_short(iter_type&, weekday_enum) const - { - } - virtual void do_put_weekday_long(iter_type&, weekday_enum) const - { - } - virtual bool do_has_date_sep_chars() const - { - return true; - } - virtual void do_year_sep_char(iter_type& oitr) const - { - string_type s(separator); - put_string(oitr, s); - } - //! char between year-month - virtual void do_month_sep_char(iter_type& oitr) const - { - string_type s(separator); - put_string(oitr, s); - } - //! Char to separate month-day - virtual void do_day_sep_char(iter_type& oitr) const - { - string_type s(separator); //put in '-' - put_string(oitr, s); - } - //! Default for date order - virtual ymd_order_spec do_date_order() const - { - return ymd_order_iso; - } - //! Default month format - virtual month_format_spec do_month_format() const - { - return month_as_short_string; - } - void put_string(iter_type& oi, const charT* const s) const - { - string_type s1(boost::lexical_cast(s)); - typename string_type::iterator si,end; - for (si=s1.begin(), end=s1.end(); si!=end; si++, oi++) { - *oi = *si; - } - } - void put_string(iter_type& oi, const string_type& s1) const - { - typename string_type::const_iterator si,end; - for (si=s1.begin(), end=s1.end(); si!=end; si++, oi++) { - *oi = *si; - } - } - }; - - template - const typename date_names_put::char_type - date_names_put::default_special_value_names[3][17] = { - {'n','o','t','-','a','-','d','a','t','e','-','t','i','m','e'}, - {'-','i','n','f','i','n','i','t','y'}, - {'+','i','n','f','i','n','i','t','y'} }; - - template - const typename date_names_put::char_type - date_names_put::separator[2] = - {'-', '\0'} ; - - - //! Generate storage location for a std::locale::id - template - std::locale::id date_names_put::id; - - //! A date name output facet that takes an array of char* to define strings - template > - class all_date_names_put : public date_names_put - { - public: - all_date_names_put(const charT* const month_short_names[], - const charT* const month_long_names[], - const charT* const special_value_names[], - const charT* const weekday_short_names[], - const charT* const weekday_long_names[], - charT separator_char = '-', - ymd_order_spec order_spec = ymd_order_iso, - month_format_spec month_format = month_as_short_string) : - month_short_names_(month_short_names), - month_long_names_(month_long_names), - special_value_names_(special_value_names), - weekday_short_names_(weekday_short_names), - weekday_long_names_(weekday_long_names), - order_spec_(order_spec), - month_format_spec_(month_format) - { - separator_char_[0] = separator_char; - separator_char_[1] = '\0'; - - }; - typedef OutputIterator iter_type; - typedef typename Config::month_enum month_enum; - typedef typename Config::weekday_enum weekday_enum; - typedef typename Config::special_value_enum special_value_enum; - - const charT* const* get_short_month_names() const - { - return month_short_names_; - } - const charT* const* get_long_month_names() const - { - return month_long_names_; - } - const charT* const* get_special_value_names() const - { - return special_value_names_; - } - const charT* const* get_short_weekday_names()const - { - return weekday_short_names_; - } - const charT* const* get_long_weekday_names()const - { - return weekday_long_names_; - } - - protected: - //! Generic facet that takes array of chars - virtual void do_put_month_short(iter_type& oitr, month_enum moy) const - { - this->put_string(oitr, month_short_names_[moy-1]); - } - //! Long month names - virtual void do_put_month_long(iter_type& oitr, month_enum moy) const - { - this->put_string(oitr, month_long_names_[moy-1]); - } - //! Special values names - virtual void do_put_special_value(iter_type& oitr, special_value_enum sv) const - { - this->put_string(oitr, special_value_names_[sv]); - } - virtual void do_put_weekday_short(iter_type& oitr, weekday_enum wd) const - { - this->put_string(oitr, weekday_short_names_[wd]); - } - virtual void do_put_weekday_long(iter_type& oitr, weekday_enum wd) const - { - this->put_string(oitr, weekday_long_names_[wd]); - } - //! char between year-month - virtual void do_month_sep_char(iter_type& oitr) const - { - this->put_string(oitr, separator_char_); - } - //! Char to separate month-day - virtual void do_day_sep_char(iter_type& oitr) const - { - this->put_string(oitr, separator_char_); - } - //! Set the date ordering - virtual ymd_order_spec do_date_order() const - { - return order_spec_; - } - //! Set the date ordering - virtual month_format_spec do_month_format() const - { - return month_format_spec_; - } - - private: - const charT* const* month_short_names_; - const charT* const* month_long_names_; - const charT* const* special_value_names_; - const charT* const* weekday_short_names_; - const charT* const* weekday_long_names_; - charT separator_char_[2]; - ymd_order_spec order_spec_; - month_format_spec month_format_spec_; - }; - -} } //namespace boost::date_time - -#endif //BOOST_NO_STD_LOCALE - -#endif diff --git a/3rdParty/Boost/boost/date_time/date_parsing.hpp b/3rdParty/Boost/boost/date_time/date_parsing.hpp deleted file mode 100644 index 41b6aef..0000000 --- a/3rdParty/Boost/boost/date_time/date_parsing.hpp +++ /dev/null @@ -1,300 +0,0 @@ -#ifndef _DATE_TIME_DATE_PARSING_HPP___ -#define _DATE_TIME_DATE_PARSING_HPP___ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-23 06:13:35 -0500 (Sun, 23 Nov 2008) $ - */ - -#include -#include -#include -#include -#include -#include -#include - -#if defined(BOOST_DATE_TIME_NO_LOCALE) -#include // ::tolower(int) -#else -#include // std::tolower(char, locale) -#endif - -namespace boost { -namespace date_time { - - //! A function to replace the std::transform( , , ,tolower) construct - /*! This function simply takes a string, and changes all the characters - * in that string to lowercase (according to the default system locale). - * In the event that a compiler does not support locales, the old - * C style tolower() is used. - */ - inline - std::string - convert_to_lower(std::string inp) - { -#if !defined(BOOST_DATE_TIME_NO_LOCALE) - const std::locale loc(std::locale::classic()); -#endif - std::string::size_type i = 0, n = inp.length(); - for (; i < n; ++i) { - inp[i] = -#if defined(BOOST_DATE_TIME_NO_LOCALE) - static_cast(std::tolower(inp[i])); -#else - // tolower and others were brought in to std for borland >= v564 - // in compiler_config.hpp - std::tolower(inp[i], loc); -#endif - } - return inp; - } - - //! Helper function for parse_date. - /* Used by-value parameter because we change the string and may - * want to preserve the original argument */ - template - inline unsigned short - month_str_to_ushort(std::string const& s) { - if((s.at(0) >= '0') && (s.at(0) <= '9')) { - return boost::lexical_cast(s); - } - else { - std::string str = convert_to_lower(s); - typename month_type::month_map_ptr_type ptr = month_type::get_month_map_ptr(); - typename month_type::month_map_type::iterator iter = ptr->find(str); - if(iter != ptr->end()) { // required for STLport - return iter->second; - } - } - return 13; // intentionally out of range - name not found - } - - //! Find index of a string in either of 2 arrays - /*! find_match searches both arrays for a match to 's'. Both arrays - * must contain 'size' elements. The index of the match is returned. - * If no match is found, 'size' is returned. - * Ex. "Jan" returns 0, "Dec" returns 11, "Tue" returns 2. - * 'size' can be sent in with: greg_month::max() (which 12), - * greg_weekday::max() + 1 (which is 7) or date_time::NumSpecialValues */ - template - short find_match(const charT* const* short_names, - const charT* const* long_names, - short size, - const std::basic_string& s) { - for(short i = 0; i < size; ++i){ - if(short_names[i] == s || long_names[i] == s){ - return i; - } - } - return size; // not-found, return a value out of range - } - - //! Generic function to parse a delimited date (eg: 2002-02-10) - /*! Accepted formats are: "2003-02-10" or " 2003-Feb-10" or - * "2003-Feburary-10" - * The order in which the Month, Day, & Year appear in the argument - * string can be accomodated by passing in the appropriate ymd_order_spec - */ - template - date_type - parse_date(const std::string& s, int order_spec = ymd_order_iso) { - std::string spec_str; - if(order_spec == ymd_order_iso) { - spec_str = "ymd"; - } - else if(order_spec == ymd_order_dmy) { - spec_str = "dmy"; - } - else { // (order_spec == ymd_order_us) - spec_str = "mdy"; - } - - typedef typename date_type::year_type year_type; - typedef typename date_type::month_type month_type; - unsigned pos = 0; - unsigned short year(0), month(0), day(0); - typedef typename std::basic_string::traits_type traits_type; - typedef boost::char_separator char_separator_type; - typedef boost::tokenizer::const_iterator, - std::basic_string > tokenizer; - typedef boost::tokenizer::const_iterator, - std::basic_string >::iterator tokenizer_iterator; - // may need more delimiters, these work for the regression tests - const char sep_char[] = {',','-','.',' ','/','\0'}; - char_separator_type sep(sep_char); - tokenizer tok(s,sep); - for(tokenizer_iterator beg=tok.begin(); - beg!=tok.end() && pos < spec_str.size(); - ++beg, ++pos) { - switch(spec_str.at(pos)) { - case 'y': - { - year = boost::lexical_cast(*beg); - break; - } - case 'm': - { - month = month_str_to_ushort(*beg); - break; - } - case 'd': - { - day = boost::lexical_cast(*beg); - break; - } - } //switch - } - return date_type(year, month, day); - } - - //! Generic function to parse undelimited date (eg: 20020201) - template - date_type - parse_undelimited_date(const std::string& s) { - int offsets[] = {4,2,2}; - int pos = 0; - typedef typename date_type::year_type year_type; - //typename date_type::ymd_type ymd((year_type::min)(),1,1); - unsigned short y = 0, m = 0, d = 0; - - /* The two bool arguments state that parsing will not wrap - * (only the first 8 characters will be parsed) and partial - * strings will not be parsed. - * Ex: - * "2005121" will parse 2005 & 12, but not the "1" */ - boost::offset_separator osf(offsets, offsets+3, false, false); - - typedef typename boost::tokenizer::const_iterator, - std::basic_string > tokenizer_type; - tokenizer_type tok(s, osf); - for(typename tokenizer_type::iterator ti=tok.begin(); ti!=tok.end();++ti) { - unsigned short i = boost::lexical_cast(*ti); - switch(pos) { - case 0: y = i; break; - case 1: m = i; break; - case 2: d = i; break; - } - pos++; - } - return date_type(y,m,d); - } - - //! Helper function for 'date gregorian::from_stream()' - /*! Creates a string from the iterators that reference the - * begining & end of a char[] or string. All elements are - * used in output string */ - template - inline - date_type - from_stream_type(iterator_type& beg, - iterator_type& end, - char) - { - std::ostringstream ss; - while(beg != end) { - ss << *beg++; - } - return parse_date(ss.str()); - } - - //! Helper function for 'date gregorian::from_stream()' - /*! Returns the first string found in the stream referenced by the - * begining & end iterators */ - template - inline - date_type - from_stream_type(iterator_type& beg, - iterator_type& /* end */, - std::string) - { - return parse_date(*beg); - } - - /* I believe the wchar stuff would be best elsewhere, perhaps in - * parse_date<>()? In the mean time this gets us started... */ - //! Helper function for 'date gregorian::from_stream()' - /*! Creates a string from the iterators that reference the - * begining & end of a wstring. All elements are - * used in output string */ - template - inline - date_type from_stream_type(iterator_type& beg, - iterator_type& end, - wchar_t) - { - std::ostringstream ss; - while(beg != end) { -#if !defined(BOOST_DATE_TIME_NO_LOCALE) - ss << std::use_facet >(std::locale()).narrow(*beg++, 'X'); // 'X' will cause exception to be thrown -#else - ss << ss.narrow(*beg++, 'X'); -#endif - } - return parse_date(ss.str()); - } -#ifndef BOOST_NO_STD_WSTRING - //! Helper function for 'date gregorian::from_stream()' - /*! Creates a string from the first wstring found in the stream - * referenced by the begining & end iterators */ - template - inline - date_type - from_stream_type(iterator_type& beg, - iterator_type& /* end */, - std::wstring) { - std::wstring ws = *beg; - std::ostringstream ss; - std::wstring::iterator wsb = ws.begin(), wse = ws.end(); - while(wsb != wse) { -#if !defined(BOOST_DATE_TIME_NO_LOCALE) - ss << std::use_facet >(std::locale()).narrow(*wsb++, 'X'); // 'X' will cause exception to be thrown -#else - ss << ss.narrow(*wsb++, 'X'); // 'X' will cause exception to be thrown -#endif - } - return parse_date(ss.str()); - } -#endif // BOOST_NO_STD_WSTRING -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - // This function cannot be compiled with MSVC 6.0 due to internal compiler shorcomings -#else - //! function called by wrapper functions: date_period_from_(w)string() - template - period - from_simple_string_type(const std::basic_string& s){ - typedef typename std::basic_string::traits_type traits_type; - typedef typename boost::char_separator char_separator; - typedef typename boost::tokenizer::const_iterator, - std::basic_string > tokenizer; - const charT sep_list[4] = {'[','/',']','\0'}; - char_separator sep(sep_list); - tokenizer tokens(s, sep); - typename tokenizer::iterator tok_it = tokens.begin(); - std::basic_string date_string = *tok_it; - // get 2 string iterators and generate a date from them - typename std::basic_string::iterator date_string_start = date_string.begin(), - date_string_end = date_string.end(); - typedef typename std::iterator_traits::iterator>::value_type value_type; - date_type d1 = from_stream_type(date_string_start, date_string_end, value_type()); - date_string = *(++tok_it); // next token - date_string_start = date_string.begin(), date_string_end = date_string.end(); - date_type d2 = from_stream_type(date_string_start, date_string_end, value_type()); - return period(d1, d2); - } -#endif - -} } //namespace date_time - - - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/dst_rules.hpp b/3rdParty/Boost/boost/date_time/dst_rules.hpp deleted file mode 100644 index 20cb40b..0000000 --- a/3rdParty/Boost/boost/date_time/dst_rules.hpp +++ /dev/null @@ -1,391 +0,0 @@ -#ifndef DATE_TIME_DST_RULES_HPP__ -#define DATE_TIME_DST_RULES_HPP__ - -/* Copyright (c) 2002,2003, 2007 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -/*! @file dst_rules.hpp - Contains template class to provide static dst rule calculations -*/ - -#include "boost/date_time/date_generators.hpp" -#include "boost/date_time/period.hpp" -#include "boost/date_time/date_defs.hpp" -#include - -namespace boost { - namespace date_time { - - enum time_is_dst_result {is_not_in_dst, is_in_dst, - ambiguous, invalid_time_label}; - - - //! Dynamic class used to caluclate dst transition information - template - class dst_calculator - { - public: - typedef time_duration_type_ time_duration_type; - typedef date_type_ date_type; - - //! Check the local time offset when on dst start day - /*! On this dst transition, the time label between - * the transition boundary and the boudary + the offset - * are invalid times. If before the boundary then still - * not in dst. - *@param time_of_day Time offset in the day for the local time - *@param dst_start_offset_minutes Local day offset for start of dst - *@param dst_length_minutes Number of minutes to adjust clock forward - *@retval status of time label w.r.t. dst - */ - static time_is_dst_result - process_local_dst_start_day(const time_duration_type& time_of_day, - unsigned int dst_start_offset_minutes, - long dst_length_minutes) - { - //std::cout << "here" << std::endl; - if (time_of_day < time_duration_type(0,dst_start_offset_minutes,0)) { - return is_not_in_dst; - } - long offset = dst_start_offset_minutes + dst_length_minutes; - if (time_of_day >= time_duration_type(0,offset,0)) { - return is_in_dst; - } - return invalid_time_label; - } - - //! Check the local time offset when on the last day of dst - /*! This is the calculation for the DST end day. On that day times - * prior to the conversion time - dst_length (1 am in US) are still - * in dst. Times between the above and the switch time are - * ambiguous. Times after the start_offset are not in dst. - *@param time_of_day Time offset in the day for the local time - *@param dst_end_offset_minutes Local time of day for end of dst - *@retval status of time label w.r.t. dst - */ - static time_is_dst_result - process_local_dst_end_day(const time_duration_type& time_of_day, - unsigned int dst_end_offset_minutes, - long dst_length_minutes) - { - //in US this will be 60 so offset in day is 1,0,0 - int offset = dst_end_offset_minutes-dst_length_minutes; - if (time_of_day < time_duration_type(0,offset,0)) { - return is_in_dst; - } - if (time_of_day >= time_duration_type(0,dst_end_offset_minutes,0)) { - return is_not_in_dst; - } - return ambiguous; - } - - //! Calculates if the given local time is dst or not - /*! Determines if the time is really in DST or not. Also checks for - * invalid and ambiguous. - * @param current_day The day to check for dst - * @param time_of_day Time offset within the day to check - * @param dst_start_day Starting day of dst for the given locality - * @param dst_start_offset Time offset within day for dst boundary - * @param dst_end_day Ending day of dst for the given locality - * @param dst_end_offset Time offset within day given in dst for dst boundary - * @param dst_length lenght of dst adjusment - * @retval The time is either ambiguous, invalid, in dst, or not in dst - */ - static time_is_dst_result - local_is_dst(const date_type& current_day, - const time_duration_type& time_of_day, - const date_type& dst_start_day, - const time_duration_type& dst_start_offset, - const date_type& dst_end_day, - const time_duration_type& dst_end_offset, - const time_duration_type& dst_length_minutes) - { - unsigned int start_minutes = - dst_start_offset.hours() * 60 + dst_start_offset.minutes(); - unsigned int end_minutes = - dst_end_offset.hours() * 60 + dst_end_offset.minutes(); - long length_minutes = - dst_length_minutes.hours() * 60 + dst_length_minutes.minutes(); - - return local_is_dst(current_day, time_of_day, - dst_start_day, start_minutes, - dst_end_day, end_minutes, - length_minutes); - } - - //! Calculates if the given local time is dst or not - /*! Determines if the time is really in DST or not. Also checks for - * invalid and ambiguous. - * @param current_day The day to check for dst - * @param time_of_day Time offset within the day to check - * @param dst_start_day Starting day of dst for the given locality - * @param dst_start_offset_minutes Offset within day for dst - * boundary (eg 120 for US which is 02:00:00) - * @param dst_end_day Ending day of dst for the given locality - * @param dst_end_offset_minutes Offset within day given in dst for dst - * boundary (eg 120 for US which is 02:00:00) - * @param dst_length_minutes Length of dst adjusment (eg: 60 for US) - * @retval The time is either ambiguous, invalid, in dst, or not in dst - */ - static time_is_dst_result - local_is_dst(const date_type& current_day, - const time_duration_type& time_of_day, - const date_type& dst_start_day, - unsigned int dst_start_offset_minutes, - const date_type& dst_end_day, - unsigned int dst_end_offset_minutes, - long dst_length_minutes) - { - //in northern hemisphere dst is in the middle of the year - if (dst_start_day < dst_end_day) { - if ((current_day > dst_start_day) && (current_day < dst_end_day)) { - return is_in_dst; - } - if ((current_day < dst_start_day) || (current_day > dst_end_day)) { - return is_not_in_dst; - } - } - else {//southern hemisphere dst is at begining /end of year - if ((current_day < dst_start_day) && (current_day > dst_end_day)) { - return is_not_in_dst; - } - if ((current_day > dst_start_day) || (current_day < dst_end_day)) { - return is_in_dst; - } - } - - if (current_day == dst_start_day) { - return process_local_dst_start_day(time_of_day, - dst_start_offset_minutes, - dst_length_minutes); - } - - if (current_day == dst_end_day) { - return process_local_dst_end_day(time_of_day, - dst_end_offset_minutes, - dst_length_minutes); - } - //you should never reach this statement - return invalid_time_label; - } - - }; - - - //! Compile-time configurable daylight savings time calculation engine - /* This template provides the ability to configure a daylight savings - * calculation at compile time covering all the cases. Unfortunately - * because of the number of dimensions related to daylight savings - * calculation the number of parameters is high. In addition, the - * start and end transition rules are complex types that specify - * an algorithm for calculation of the starting day and ending - * day of daylight savings time including the month and day - * specifications (eg: last sunday in October). - * - * @param date_type A type that represents dates, typically gregorian::date - * @param time_duration_type Used for the offset in the day calculations - * @param dst_traits A set of traits that define the rules of dst - * calculation. The dst_trait must include the following: - * start_rule_functor - Rule to calculate the starting date of a - * dst transition (eg: last_kday_of_month). - * start_day - static function that returns month of dst start for - * start_rule_functor - * start_month -static function that returns day or day of week for - * dst start of dst - * end_rule_functor - Rule to calculate the end of dst day. - * end_day - static fucntion that returns end day for end_rule_functor - * end_month - static function that returns end month for end_rule_functor - * dst_start_offset_minutes - number of minutes from start of day to transition to dst -- 120 (or 2:00 am) is typical for the U.S. and E.U. - * dst_start_offset_minutes - number of minutes from start of day to transition off of dst -- 180 (or 3:00 am) is typical for E.U. - * dst_length_minutes - number of minutes that dst shifts clock - */ - template - class dst_calc_engine - { - public: - typedef typename date_type::year_type year_type; - typedef typename date_type::calendar_type calendar_type; - typedef dst_calculator dstcalc; - - //! Calculates if the given local time is dst or not - /*! Determines if the time is really in DST or not. Also checks for - * invalid and ambiguous. - * @retval The time is either ambiguous, invalid, in dst, or not in dst - */ - static time_is_dst_result local_is_dst(const date_type& d, - const time_duration_type& td) - { - - year_type y = d.year(); - date_type dst_start = local_dst_start_day(y); - date_type dst_end = local_dst_end_day(y); - return dstcalc::local_is_dst(d,td, - dst_start, - dst_traits::dst_start_offset_minutes(), - dst_end, - dst_traits::dst_end_offset_minutes(), - dst_traits::dst_shift_length_minutes()); - - } - - static bool is_dst_boundary_day(date_type d) - { - year_type y = d.year(); - return ((d == local_dst_start_day(y)) || - (d == local_dst_end_day(y))); - } - - //! The time of day for the dst transition (eg: typically 01:00:00 or 02:00:00) - static time_duration_type dst_offset() - { - return time_duration_type(0,dst_traits::dst_shift_length_minutes(),0); - } - - static date_type local_dst_start_day(year_type year) - { - return dst_traits::local_dst_start_day(year); - } - - static date_type local_dst_end_day(year_type year) - { - return dst_traits::local_dst_end_day(year); - } - - - }; - - //! Depricated: Class to calculate dst boundaries for US time zones - /* Use dst_calc_engine instead. - * In 2007 US/Canada DST rules changed - * (http://en.wikipedia.org/wiki/Energy_Policy_Act_of_2005#Change_to_daylight_saving_time). - */ - template //1 hour == 60 min in US - class us_dst_rules - { - public: - typedef time_duration_type_ time_duration_type; - typedef date_type_ date_type; - typedef typename date_type::year_type year_type; - typedef typename date_type::calendar_type calendar_type; - typedef date_time::last_kday_of_month lkday; - typedef date_time::first_kday_of_month fkday; - typedef date_time::nth_kday_of_month nkday; - typedef dst_calculator dstcalc; - - //! Calculates if the given local time is dst or not - /*! Determines if the time is really in DST or not. Also checks for - * invalid and ambiguous. - * @retval The time is either ambiguous, invalid, in dst, or not in dst - */ - static time_is_dst_result local_is_dst(const date_type& d, - const time_duration_type& td) - { - - year_type y = d.year(); - date_type dst_start = local_dst_start_day(y); - date_type dst_end = local_dst_end_day(y); - return dstcalc::local_is_dst(d,td, - dst_start,dst_start_offset_minutes, - dst_end, dst_start_offset_minutes, - dst_length_minutes); - - } - - - static bool is_dst_boundary_day(date_type d) - { - year_type y = d.year(); - return ((d == local_dst_start_day(y)) || - (d == local_dst_end_day(y))); - } - - static date_type local_dst_start_day(year_type year) - { - if (year >= year_type(2007)) { - //second sunday in march - nkday ssim(nkday::second, Sunday, gregorian::Mar); - return ssim.get_date(year); - } else { - //first sunday in april - fkday fsia(Sunday, gregorian::Apr); - return fsia.get_date(year); - } - } - - static date_type local_dst_end_day(year_type year) - { - if (year >= year_type(2007)) { - //first sunday in november - fkday fsin(Sunday, gregorian::Nov); - return fsin.get_date(year); - } else { - //last sunday in october - lkday lsio(Sunday, gregorian::Oct); - return lsio.get_date(year); - } - } - - static time_duration_type dst_offset() - { - return time_duration_type(0,dst_length_minutes,0); - } - - private: - - - }; - - //! Used for local time adjustments in places that don't use dst - template - class null_dst_rules - { - public: - typedef time_duration_type_ time_duration_type; - typedef date_type_ date_type; - - - //! Calculates if the given local time is dst or not - /*! @retval Always is_not_in_dst since this is for zones without dst - */ - static time_is_dst_result local_is_dst(const date_type&, - const time_duration_type&) - { - return is_not_in_dst; - } - - //! Calculates if the given utc time is in dst - static time_is_dst_result utc_is_dst(const date_type&, - const time_duration_type&) - { - return is_not_in_dst; - } - - static bool is_dst_boundary_day(date_type d) - { - return false; - } - - static time_duration_type dst_offset() - { - return time_duration_type(0,0,0); - } - - }; - - - } } //namespace date_time - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/filetime_functions.hpp b/3rdParty/Boost/boost/date_time/filetime_functions.hpp deleted file mode 100644 index 79a3d4c..0000000 --- a/3rdParty/Boost/boost/date_time/filetime_functions.hpp +++ /dev/null @@ -1,172 +0,0 @@ -#ifndef DATE_TIME_FILETIME_FUNCTIONS_HPP__ -#define DATE_TIME_FILETIME_FUNCTIONS_HPP__ - -/* Copyright (c) 2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2009-02-01 06:29:43 -0500 (Sun, 01 Feb 2009) $ - */ - -/*! @file filetime_functions.hpp - * Function(s) for converting between a FILETIME structure and a - * time object. This file is only available on systems that have - * BOOST_HAS_FTIME defined. - */ - -#include - -#if defined(BOOST_HAS_FTIME) // skip this file if no FILETIME - -#if defined(BOOST_USE_WINDOWS_H) -# include -#endif - -#include -#include -#include - -namespace boost { - -namespace date_time { - -namespace winapi { - -#if !defined(BOOST_USE_WINDOWS_H) - - extern "C" { - - struct FILETIME - { - boost::uint32_t dwLowDateTime; - boost::uint32_t dwHighDateTime; - }; - struct SYSTEMTIME - { - boost::uint16_t wYear; - boost::uint16_t wMonth; - boost::uint16_t wDayOfWeek; - boost::uint16_t wDay; - boost::uint16_t wHour; - boost::uint16_t wMinute; - boost::uint16_t wSecond; - boost::uint16_t wMilliseconds; - }; - - __declspec(dllimport) void __stdcall GetSystemTimeAsFileTime(FILETIME* lpFileTime); - __declspec(dllimport) int __stdcall FileTimeToLocalFileTime(const FILETIME* lpFileTime, FILETIME* lpLocalFileTime); - __declspec(dllimport) void __stdcall GetSystemTime(SYSTEMTIME* lpSystemTime); - __declspec(dllimport) int __stdcall SystemTimeToFileTime(const SYSTEMTIME* lpSystemTime, FILETIME* lpFileTime); - - } // extern "C" - -#endif // defined(BOOST_USE_WINDOWS_H) - - typedef FILETIME file_time; - typedef SYSTEMTIME system_time; - - inline void get_system_time_as_file_time(file_time& ft) - { -#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3205)) - // Some runtime library implementations expect local times as the norm for ctime. - file_time ft_utc; - GetSystemTimeAsFileTime(&ft_utc); - FileTimeToLocalFileTime(&ft_utc, &ft); -#elif defined(BOOST_NO_GETSYSTEMTIMEASFILETIME) - system_time st; - GetSystemTime(&st); - SystemTimeToFileTime(&st, &ft); -#else - GetSystemTimeAsFileTime(&ft); -#endif - } - - /*! - * The function converts file_time into number of microseconds elapsed since 1970-Jan-01 - * - * \note Only dates after 1970-Jan-01 are supported. Dates before will be wrapped. - * - * \note The function is templated on the FILETIME type, so that - * it can be used with both native FILETIME and the ad-hoc - * boost::date_time::winapi::file_time type. - */ - template< typename FileTimeT > - inline boost::uint64_t file_time_to_microseconds(FileTimeT const& ft) - { - /* shift is difference between 1970-Jan-01 & 1601-Jan-01 - * in 100-nanosecond intervals */ - const uint64_t c1 = 27111902UL; - const uint64_t c2 = 3577643008UL; // issues warning without 'UL' - const uint64_t shift = (c1 << 32) + c2; - - union { - FileTimeT as_file_time; - uint64_t as_integer; // 100-nanos since 1601-Jan-01 - } caster; - caster.as_file_time = ft; - - caster.as_integer -= shift; // filetime is now 100-nanos since 1970-Jan-01 - return (caster.as_integer / 10); // truncate to microseconds - } - -} // namespace winapi - -//! Create a time object from an initialized FILETIME struct. -/*! - * Create a time object from an initialized FILETIME struct. - * A FILETIME struct holds 100-nanosecond units (0.0000001). When - * built with microsecond resolution the file_time's sub second value - * will be truncated. Nanosecond resolution has no truncation. - * - * \note The function is templated on the FILETIME type, so that - * it can be used with both native FILETIME and the ad-hoc - * boost::date_time::winapi::file_time type. - */ -template< typename TimeT, typename FileTimeT > -inline -TimeT time_from_ftime(const FileTimeT& ft) -{ - typedef typename TimeT::date_type date_type; - typedef typename TimeT::date_duration_type date_duration_type; - typedef typename TimeT::time_duration_type time_duration_type; - - // https://svn.boost.org/trac/boost/ticket/2523 - // Since this function can be called with arbitrary times, including ones that - // are before 1970-Jan-01, we'll have to cast the time a bit differently, - // than it is done in the file_time_to_microseconds function. This allows to - // avoid integer wrapping for dates before 1970-Jan-01. - union { - FileTimeT as_file_time; - uint64_t as_integer; // 100-nanos since 1601-Jan-01 - } caster; - caster.as_file_time = ft; - - uint64_t sec = caster.as_integer / 10000000UL; - uint32_t sub_sec = (caster.as_integer % 10000000UL) // 100-nanoseconds since the last second -#if !defined(BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG) - / 10; // microseconds since the last second -#else - * 100; // nanoseconds since the last second -#endif - - // split sec into usable chunks: days, hours, minutes, & seconds - const uint32_t sec_per_day = 86400; // seconds per day - uint32_t days = static_cast< uint32_t >(sec / sec_per_day); - uint32_t tmp = static_cast< uint32_t >(sec % sec_per_day); - uint32_t hours = tmp / 3600; // sec_per_hour - tmp %= 3600; - uint32_t minutes = tmp / 60; // sec_per_min - tmp %= 60; - uint32_t seconds = tmp; // seconds - - date_duration_type dd(days); - date_type d = date_type(1601, Jan, 01) + dd; - return TimeT(d, time_duration_type(hours, minutes, seconds, sub_sec)); -} - -}} // boost::date_time - -#endif // BOOST_HAS_FTIME - -#endif // DATE_TIME_FILETIME_FUNCTIONS_HPP__ diff --git a/3rdParty/Boost/boost/date_time/format_date_parser.hpp b/3rdParty/Boost/boost/date_time/format_date_parser.hpp deleted file mode 100644 index 21e4a49..0000000 --- a/3rdParty/Boost/boost/date_time/format_date_parser.hpp +++ /dev/null @@ -1,743 +0,0 @@ - -#ifndef DATE_TIME_FORMAT_DATE_PARSER_HPP__ -#define DATE_TIME_FORMAT_DATE_PARSER_HPP__ - -/* Copyright (c) 2004-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - - -#include "boost/lexical_cast.hpp" -#include "boost/date_time/string_parse_tree.hpp" -#include "boost/date_time/strings_from_facet.hpp" -#include "boost/date_time/special_values_parser.hpp" -#include -#include -#include -#include -#ifndef BOOST_NO_STDC_NAMESPACE -# include -#else -# include -#endif - -#ifdef BOOST_NO_STDC_NAMESPACE -namespace std { - using ::isspace; - using ::isdigit; -} -#endif -namespace boost { namespace date_time { - -//! Helper function for parsing fixed length strings into integers -/*! Will consume 'length' number of characters from stream. Consumed - * character are transfered to parse_match_result struct. - * Returns '-1' if no number can be parsed or incorrect number of - * digits in stream. */ -template -inline -int_type -fixed_string_to_int(std::istreambuf_iterator& itr, - std::istreambuf_iterator& stream_end, - parse_match_result& mr, - unsigned int length, - const charT& fill_char) -{ - //typedef std::basic_string string_type; - unsigned int j = 0; - //string_type s; - while (j < length && itr != stream_end && - (std::isdigit(*itr) || *itr == fill_char)) { - if(*itr == fill_char) { - /* Since a fill_char can be anything, we convert it to a zero. - * lexical_cast will behave predictably when zero is used as fill. */ - mr.cache += ('0'); - } - else { - mr.cache += (*itr); - } - itr++; - j++; - } - int_type i = -1; - // mr.cache will hold leading zeros. size() tells us when input is too short. - if(mr.cache.size() < length) { - return i; - } - try { - i = boost::lexical_cast(mr.cache); - }catch(bad_lexical_cast&){ - // we want to return -1 if the cast fails so nothing to do here - } - return i; -} - -//! Helper function for parsing fixed length strings into integers -/*! Will consume 'length' number of characters from stream. Consumed - * character are transfered to parse_match_result struct. - * Returns '-1' if no number can be parsed or incorrect number of - * digits in stream. */ -template -inline -int_type -fixed_string_to_int(std::istreambuf_iterator& itr, - std::istreambuf_iterator& stream_end, - parse_match_result& mr, - unsigned int length) -{ - return fixed_string_to_int(itr, stream_end, mr, length, '0'); -} - -//! Helper function for parsing varied length strings into integers -/*! Will consume 'max_length' characters from stream only if those - * characters are digits. Returns '-1' if no number can be parsed. - * Will not parse a number preceeded by a '+' or '-'. */ -template -inline -int_type -var_string_to_int(std::istreambuf_iterator& itr, - std::istreambuf_iterator& /* stream_end */, - unsigned int max_length) -{ - typedef std::basic_string string_type; - unsigned int j = 0; - string_type s; - while ((j < max_length) && std::isdigit(*itr)) { - s += (*itr); - itr++; - j++; - } - int_type i = -1; - if(s.length() != 0) { - i = boost::lexical_cast(s); - } - return i; -} - - -//! Class with generic date parsing using a format string -/*! The following is the set of recognized format specifiers - - %a - Short weekday name - - %A - Long weekday name - - %b - Abbreviated month name - - %B - Full month name - - %d - Day of the month as decimal 01 to 31 - - %j - Day of year as decimal from 001 to 366 - - %m - Month name as a decimal 01 to 12 - - %U - Week number 00 to 53 with first Sunday as the first day of week 1? - - %w - Weekday as decimal number 0 to 6 where Sunday == 0 - - %W - Week number 00 to 53 where Monday is first day of week 1 - - %x - facet default date representation - - %y - Year without the century - eg: 04 for 2004 - - %Y - Year with century - - The weekday specifiers (%a and %A) do not add to the date construction, - but they provide a way to skip over the weekday names for formats that - provide them. - - todo -- Another interesting feature that this approach could provide is - an option to fill in any missing fields with the current values - from the clock. So if you have %m-%d the parser would detect - the missing year value and fill it in using the clock. - - todo -- What to do with the %x. %x in the classic facet is just bad... - - */ -template -class format_date_parser -{ - public: - typedef std::basic_string string_type; - typedef std::basic_istringstream stringstream_type; - typedef std::istreambuf_iterator stream_itr_type; - typedef typename string_type::const_iterator const_itr; - typedef typename date_type::year_type year_type; - typedef typename date_type::month_type month_type; - typedef typename date_type::day_type day_type; - typedef typename date_type::duration_type duration_type; - typedef typename date_type::day_of_week_type day_of_week_type; - typedef typename date_type::day_of_year_type day_of_year_type; - typedef string_parse_tree parse_tree_type; - typedef typename parse_tree_type::parse_match_result_type match_results; - typedef std::vector > input_collection_type; - - // TODO sv_parser uses its default constructor - write the others - - format_date_parser(const string_type& format_str, - const input_collection_type& month_short_names, - const input_collection_type& month_long_names, - const input_collection_type& weekday_short_names, - const input_collection_type& weekday_long_names) : - m_format(format_str), - m_month_short_names(month_short_names, 1), - m_month_long_names(month_long_names, 1), - m_weekday_short_names(weekday_short_names), - m_weekday_long_names(weekday_long_names) - {} - - format_date_parser(const string_type& format_str, - const std::locale& locale) : - m_format(format_str), - m_month_short_names(gather_month_strings(locale), 1), - m_month_long_names(gather_month_strings(locale, false), 1), - m_weekday_short_names(gather_weekday_strings(locale)), - m_weekday_long_names(gather_weekday_strings(locale, false)) - {} - - format_date_parser(const format_date_parser& fdp) - { - this->m_format = fdp.m_format; - this->m_month_short_names = fdp.m_month_short_names; - this->m_month_long_names = fdp.m_month_long_names; - this->m_weekday_short_names = fdp.m_weekday_short_names; - this->m_weekday_long_names = fdp.m_weekday_long_names; - } - - string_type format() const - { - return m_format; - } - - void format(string_type format_str) - { - m_format = format_str; - } - - void short_month_names(const input_collection_type& month_names) - { - m_month_short_names = parse_tree_type(month_names, 1); - } - void long_month_names(const input_collection_type& month_names) - { - m_month_long_names = parse_tree_type(month_names, 1); - } - void short_weekday_names(const input_collection_type& weekday_names) - { - m_weekday_short_names = parse_tree_type(weekday_names); - } - void long_weekday_names(const input_collection_type& weekday_names) - { - m_weekday_long_names = parse_tree_type(weekday_names); - } - - date_type - parse_date(const string_type& value, - const string_type& format_str, - const special_values_parser& sv_parser) const - { - stringstream_type ss(value); - stream_itr_type sitr(ss); - stream_itr_type stream_end; - return parse_date(sitr, stream_end, format_str, sv_parser); - } - - date_type - parse_date(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end, - const special_values_parser& sv_parser) const - { - return parse_date(sitr, stream_end, m_format, sv_parser); - } - - /*! Of all the objects that the format_date_parser can parse, only a - * date can be a special value. Therefore, only parse_date checks - * for special_values. */ - date_type - parse_date(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end, - string_type format_str, - const special_values_parser& sv_parser) const - { - bool use_current_char = false; - - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - charT current_char = *sitr; - - short year(0), month(0), day(0), day_of_year(0);// wkday(0); - /* Initialized the following to their minimum values. These intermediate - * objects are used so we get specific exceptions when part of the input - * is unparsable. - * Ex: "205-Jan-15" will throw a bad_year, "2005-Jsn-15"- bad_month, etc.*/ - year_type t_year(1400); - month_type t_month(1); - day_type t_day(1); - day_of_week_type wkday(0); - - - const_itr itr(format_str.begin()); - while (itr != format_str.end() && (sitr != stream_end)) { - if (*itr == '%') { - itr++; - if (*itr != '%') { - switch(*itr) { - case 'a': - { - //this value is just throw away. It could be used for - //error checking potentially, but it isn't helpful in - //actually constructing the date - we just need to get it - //out of the stream - match_results mr = m_weekday_short_names.match(sitr, stream_end); - if(mr.current_match == match_results::PARSE_ERROR) { - // check special_values - if(sv_parser.match(sitr, stream_end, mr)) { - return date_type(static_cast(mr.current_match)); - } - } - wkday = mr.current_match; - if (mr.has_remaining()) { - current_char = mr.last_char(); - use_current_char = true; - } - break; - } - case 'A': - { - //this value is just throw away. It could be used for - //error checking potentially, but it isn't helpful in - //actually constructing the date - we just need to get it - //out of the stream - match_results mr = m_weekday_long_names.match(sitr, stream_end); - if(mr.current_match == match_results::PARSE_ERROR) { - // check special_values - if(sv_parser.match(sitr, stream_end, mr)) { - return date_type(static_cast(mr.current_match)); - } - } - wkday = mr.current_match; - if (mr.has_remaining()) { - current_char = mr.last_char(); - use_current_char = true; - } - break; - } - case 'b': - { - match_results mr = m_month_short_names.match(sitr, stream_end); - if(mr.current_match == match_results::PARSE_ERROR) { - // check special_values - if(sv_parser.match(sitr, stream_end, mr)) { - return date_type(static_cast(mr.current_match)); - } - } - t_month = month_type(mr.current_match); - if (mr.has_remaining()) { - current_char = mr.last_char(); - use_current_char = true; - } - break; - } - case 'B': - { - match_results mr = m_month_long_names.match(sitr, stream_end); - if(mr.current_match == match_results::PARSE_ERROR) { - // check special_values - if(sv_parser.match(sitr, stream_end, mr)) { - return date_type(static_cast(mr.current_match)); - } - } - t_month = month_type(mr.current_match); - if (mr.has_remaining()) { - current_char = mr.last_char(); - use_current_char = true; - } - break; - } - case 'd': - { - match_results mr; - day = fixed_string_to_int(sitr, stream_end, mr, 2); - if(day == -1) { - if(sv_parser.match(sitr, stream_end, mr)) { - return date_type(static_cast(mr.current_match)); - } - } - t_day = day_type(day); - break; - } - case 'e': - { - match_results mr; - day = fixed_string_to_int(sitr, stream_end, mr, 2, ' '); - if(day == -1) { - if(sv_parser.match(sitr, stream_end, mr)) { - return date_type(static_cast(mr.current_match)); - } - } - t_day = day_type(day); - break; - } - case 'j': - { - match_results mr; - day_of_year = fixed_string_to_int(sitr, stream_end, mr, 3); - if(day_of_year == -1) { - if(sv_parser.match(sitr, stream_end, mr)) { - return date_type(static_cast(mr.current_match)); - } - } - // these next two lines are so we get an exception with bad input - day_of_year_type t_day_of_year(1); - t_day_of_year = day_of_year_type(day_of_year); - break; - } - case 'm': - { - match_results mr; - month = fixed_string_to_int(sitr, stream_end, mr, 2); - if(month == -1) { - if(sv_parser.match(sitr, stream_end, mr)) { - return date_type(static_cast(mr.current_match)); - } - } - t_month = month_type(month); - break; - } - case 'Y': - { - match_results mr; - year = fixed_string_to_int(sitr, stream_end, mr, 4); - if(year == -1) { - if(sv_parser.match(sitr, stream_end, mr)) { - return date_type(static_cast(mr.current_match)); - } - } - t_year = year_type(year); - break; - } - case 'y': - { - match_results mr; - year = fixed_string_to_int(sitr, stream_end, mr, 2); - if(year == -1) { - if(sv_parser.match(sitr, stream_end, mr)) { - return date_type(static_cast(mr.current_match)); - } - } - year += 2000; //make 2 digit years in this century - t_year = year_type(year); - break; - } - default: - {} //ignore those we don't understand - - }//switch - - } - else { // itr == '%', second consecutive - sitr++; - } - - itr++; //advance past format specifier - } - else { //skip past chars in format and in buffer - itr++; - if (use_current_char) { - use_current_char = false; - current_char = *sitr; - } - else { - sitr++; - } - } - } - - if (day_of_year > 0) { - date_type d(static_cast(year-1),12,31); //end of prior year - return d + duration_type(day_of_year); - } - - return date_type(t_year, t_month, t_day); // exceptions were thrown earlier - // if input was no good - } - - //! Throws bad_month if unable to parse - month_type - parse_month(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end, - string_type format_str) const - { - match_results mr; - return parse_month(sitr, stream_end, format_str, mr); - } - - //! Throws bad_month if unable to parse - month_type - parse_month(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end, - string_type format_str, - match_results& mr) const - { - bool use_current_char = false; - - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - charT current_char = *sitr; - - short month(0); - - const_itr itr(format_str.begin()); - while (itr != format_str.end() && (sitr != stream_end)) { - if (*itr == '%') { - itr++; - if (*itr != '%') { - switch(*itr) { - case 'b': - { - mr = m_month_short_names.match(sitr, stream_end); - month = mr.current_match; - if (mr.has_remaining()) { - current_char = mr.last_char(); - use_current_char = true; - } - break; - } - case 'B': - { - mr = m_month_long_names.match(sitr, stream_end); - month = mr.current_match; - if (mr.has_remaining()) { - current_char = mr.last_char(); - use_current_char = true; - } - break; - } - case 'm': - { - month = var_string_to_int(sitr, stream_end, 2); - // var_string_to_int returns -1 if parse failed. That will - // cause a bad_month exception to be thrown so we do nothing here - break; - } - default: - {} //ignore those we don't understand - - }//switch - - } - else { // itr == '%', second consecutive - sitr++; - } - - itr++; //advance past format specifier - } - else { //skip past chars in format and in buffer - itr++; - if (use_current_char) { - use_current_char = false; - current_char = *sitr; - } - else { - sitr++; - } - } - } - - return month_type(month); // throws bad_month exception when values are zero - } - - //! Expects 1 or 2 digits 1-31. Throws bad_day_of_month if unable to parse - day_type - parse_var_day_of_month(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end) const - { - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - - return day_type(var_string_to_int(sitr, stream_end, 2)); - } - //! Expects 2 digits 01-31. Throws bad_day_of_month if unable to parse - day_type - parse_day_of_month(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end) const - { - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - - //return day_type(var_string_to_int(sitr, stream_end, 2)); - match_results mr; - return day_type(fixed_string_to_int(sitr, stream_end, mr, 2)); - } - - day_of_week_type - parse_weekday(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end, - string_type format_str) const - { - match_results mr; - return parse_weekday(sitr, stream_end, format_str, mr); - } - day_of_week_type - parse_weekday(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end, - string_type format_str, - match_results& mr) const - { - bool use_current_char = false; - - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - charT current_char = *sitr; - - short wkday(0); - - const_itr itr(format_str.begin()); - while (itr != format_str.end() && (sitr != stream_end)) { - if (*itr == '%') { - itr++; - if (*itr != '%') { - switch(*itr) { - case 'a': - { - //this value is just throw away. It could be used for - //error checking potentially, but it isn't helpful in - //actually constructing the date - we just need to get it - //out of the stream - mr = m_weekday_short_names.match(sitr, stream_end); - wkday = mr.current_match; - if (mr.has_remaining()) { - current_char = mr.last_char(); - use_current_char = true; - } - break; - } - case 'A': - { - //this value is just throw away. It could be used for - //error checking potentially, but it isn't helpful in - //actually constructing the date - we just need to get it - //out of the stream - mr = m_weekday_long_names.match(sitr, stream_end); - wkday = mr.current_match; - if (mr.has_remaining()) { - current_char = mr.last_char(); - use_current_char = true; - } - break; - } - case 'w': - { - // weekday as number 0-6, Sunday == 0 - wkday = var_string_to_int(sitr, stream_end, 2); - break; - } - default: - {} //ignore those we don't understand - - }//switch - - } - else { // itr == '%', second consecutive - sitr++; - } - - itr++; //advance past format specifier - } - else { //skip past chars in format and in buffer - itr++; - if (use_current_char) { - use_current_char = false; - current_char = *sitr; - } - else { - sitr++; - } - } - } - - return day_of_week_type(wkday); // throws bad_day_of_month exception - // when values are zero - } - - //! throws bad_year if unable to parse - year_type - parse_year(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end, - string_type format_str) const - { - match_results mr; - return parse_year(sitr, stream_end, format_str, mr); - } - - //! throws bad_year if unable to parse - year_type - parse_year(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end, - string_type format_str, - match_results& mr) const - { - bool use_current_char = false; - - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - charT current_char = *sitr; - - unsigned short year(0); - - const_itr itr(format_str.begin()); - while (itr != format_str.end() && (sitr != stream_end)) { - if (*itr == '%') { - itr++; - if (*itr != '%') { - //match_results mr; - switch(*itr) { - case 'Y': - { - // year from 4 digit string - year = fixed_string_to_int(sitr, stream_end, mr, 4); - break; - } - case 'y': - { - // year from 2 digit string (no century) - year = fixed_string_to_int(sitr, stream_end, mr, 2); - year += 2000; //make 2 digit years in this century - break; - } - default: - {} //ignore those we don't understand - - }//switch - - } - else { // itr == '%', second consecutive - sitr++; - } - - itr++; //advance past format specifier - } - else { //skip past chars in format and in buffer - itr++; - if (use_current_char) { - use_current_char = false; - current_char = *sitr; - } - else { - sitr++; - } - } - } - - return year_type(year); // throws bad_year exception when values are zero - } - - - private: - string_type m_format; - parse_tree_type m_month_short_names; - parse_tree_type m_month_long_names; - parse_tree_type m_weekday_short_names; - parse_tree_type m_weekday_long_names; - -}; - -} } //namespace - -#endif - - - diff --git a/3rdParty/Boost/boost/date_time/gregorian/conversion.hpp b/3rdParty/Boost/boost/date_time/gregorian/conversion.hpp deleted file mode 100644 index 4428c05..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/conversion.hpp +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef _GREGORIAN__CONVERSION_HPP___ -#define _GREGORIAN__CONVERSION_HPP___ - -/* Copyright (c) 2004-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#include -#include -#include -#include -#include -#if defined(USE_DATE_TIME_PRE_1_33_FACET_IO) -# if defined(BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS) -# include -# else -# include -# endif // BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS -#else -# include -# include -#endif // USE_DATE_TIME_PRE_1_33_FACET_IO - -namespace boost { - -namespace gregorian { - - - //! Converts a date to a tm struct. Throws out_of_range exception if date is a special value - inline - std::tm to_tm(const date& d) - { - if(d.is_pos_infinity() || d.is_neg_infinity() || d.is_not_a_date()){ - std::string s = "tm unable to handle date value of "; -#if defined(USE_DATE_TIME_PRE_1_33_FACET_IO) - s += to_simple_string(d); -#else - std::ostringstream ss; - ss << d; - s += ss.str(); -#endif // USE_DATE_TIME_PRE_1_33_FACET_IO - boost::throw_exception(std::out_of_range(s)); - } - std::tm datetm; - boost::gregorian::date::ymd_type ymd = d.year_month_day(); - datetm.tm_year = ymd.year-1900; - datetm.tm_mon = ymd.month-1; - datetm.tm_mday = ymd.day; - datetm.tm_wday = d.day_of_week(); - datetm.tm_yday = d.day_of_year()-1; - datetm.tm_hour = datetm.tm_min = datetm.tm_sec = 0; - datetm.tm_isdst = -1; // negative because not enough info to set tm_isdst - return datetm; - } - - //! Converts a tm structure into a date dropping the any time values. - inline - date date_from_tm(const std::tm& datetm) - { - return date(static_cast(datetm.tm_year+1900), - static_cast(datetm.tm_mon+1), - static_cast(datetm.tm_mday)); - } - - -} } //namespace boost::gregorian - - - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/gregorian/formatters.hpp b/3rdParty/Boost/boost/date_time/gregorian/formatters.hpp deleted file mode 100644 index 786e79f..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/formatters.hpp +++ /dev/null @@ -1,162 +0,0 @@ -#ifndef GREGORIAN_FORMATTERS_HPP___ -#define GREGORIAN_FORMATTERS_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/compiler_config.hpp" -#include "boost/date_time/gregorian/gregorian_types.hpp" -#if defined(BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS) -#include "boost/date_time/date_formatting_limited.hpp" -#else -#include "boost/date_time/date_formatting.hpp" -#endif -#include "boost/date_time/iso_format.hpp" -#include "boost/date_time/date_format_simple.hpp" - -/* NOTE: "to_*_string" code for older compilers, ones that define - * BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS, is located in - * formatters_limited.hpp - */ - -namespace boost { -namespace gregorian { - - // wrapper function for to_simple_(w)string(date) - template - inline - std::basic_string to_simple_string_type(const date& d) { - return date_time::date_formatter,charT>::date_to_string(d); - } - //! To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01 - /*!\ingroup date_format - */ - inline std::string to_simple_string(const date& d) { - return to_simple_string_type(d); - } - - - // wrapper function for to_simple_(w)string(date_period) - template - inline std::basic_string to_simple_string_type(const date_period& d) { - typedef std::basic_string string_type; - charT b = '[', m = '/', e=']'; - - string_type d1(date_time::date_formatter,charT>::date_to_string(d.begin())); - string_type d2(date_time::date_formatter,charT>::date_to_string(d.last())); - return string_type(b + d1 + m + d2 + e); - } - //! Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02] - /*!\ingroup date_format - */ - inline std::string to_simple_string(const date_period& d) { - return to_simple_string_type(d); - } - - // wrapper function for to_iso_(w)string(date_period) - template - inline std::basic_string to_iso_string_type(const date_period& d) { - charT sep = '/'; - std::basic_string s(date_time::date_formatter,charT>::date_to_string(d.begin())); - return s + sep + date_time::date_formatter,charT>::date_to_string(d.last()); - } - //! Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231 - /*!\ingroup date_format - */ - inline std::string to_iso_string(const date_period& d) { - return to_iso_string_type(d); - } - - - // wrapper function for to_iso_extended_(w)string(date) - template - inline std::basic_string to_iso_extended_string_type(const date& d) { - return date_time::date_formatter,charT>::date_to_string(d); - } - //! Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31 - /*!\ingroup date_format - */ - inline std::string to_iso_extended_string(const date& d) { - return to_iso_extended_string_type(d); - } - - // wrapper function for to_iso_(w)string(date) - template - inline std::basic_string to_iso_string_type(const date& d) { - return date_time::date_formatter,charT>::date_to_string(d); - } - //! Convert to iso standard string YYYYMMDD. Example: 20021231 - /*!\ingroup date_format - */ - inline std::string to_iso_string(const date& d) { - return to_iso_string_type(d); - } - - - - - // wrapper function for to_sql_(w)string(date) - template - inline std::basic_string to_sql_string_type(const date& d) - { - date::ymd_type ymd = d.year_month_day(); - std::basic_ostringstream ss; - ss << ymd.year << "-" - << std::setw(2) << std::setfill(ss.widen('0')) - << ymd.month.as_number() //solves problem with gcc 3.1 hanging - << "-" - << std::setw(2) << std::setfill(ss.widen('0')) - << ymd.day; - return ss.str(); - } - inline std::string to_sql_string(const date& d) { - return to_sql_string_type(d); - } - - -#if !defined(BOOST_NO_STD_WSTRING) - //! Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02] - /*!\ingroup date_format - */ - inline std::wstring to_simple_wstring(const date_period& d) { - return to_simple_string_type(d); - } - //! To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01 - /*!\ingroup date_format - */ - inline std::wstring to_simple_wstring(const date& d) { - return to_simple_string_type(d); - } - //! Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231 - /*!\ingroup date_format - */ - inline std::wstring to_iso_wstring(const date_period& d) { - return to_iso_string_type(d); - } - //! Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31 - /*!\ingroup date_format - */ - inline std::wstring to_iso_extended_wstring(const date& d) { - return to_iso_extended_string_type(d); - } - //! Convert to iso standard string YYYYMMDD. Example: 20021231 - /*!\ingroup date_format - */ - inline std::wstring to_iso_wstring(const date& d) { - return to_iso_string_type(d); - } - inline std::wstring to_sql_wstring(const date& d) { - return to_sql_string_type(d); - } -#endif // BOOST_NO_STD_WSTRING - -} } //namespace gregorian - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/gregorian/formatters_limited.hpp b/3rdParty/Boost/boost/date_time/gregorian/formatters_limited.hpp deleted file mode 100644 index 4531ebe..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/formatters_limited.hpp +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef GREGORIAN_FORMATTERS_LIMITED_HPP___ -#define GREGORIAN_FORMATTERS_LIMITED_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/gregorian/gregorian_types.hpp" -#include "boost/date_time/date_formatting_limited.hpp" -#include "boost/date_time/iso_format.hpp" -#include "boost/date_time/date_format_simple.hpp" -#include "boost/date_time/compiler_config.hpp" - -namespace boost { -namespace gregorian { - - //! To YYYY-mmm-DD string where mmm 3 char month name. Example: 2002-Jan-01 - /*!\ingroup date_format - */ - inline std::string to_simple_string(const date& d) { - return date_time::date_formatter >::date_to_string(d); - } - - //! Convert date period to simple string. Example: [2002-Jan-01/2002-Jan-02] - /*!\ingroup date_format - */ - inline std::string to_simple_string(const date_period& d) { - std::string s("["); - std::string d1(date_time::date_formatter >::date_to_string(d.begin())); - std::string d2(date_time::date_formatter >::date_to_string(d.last())); - return std::string("[" + d1 + "/" + d2 + "]"); - } - - //! Date period to iso standard format CCYYMMDD/CCYYMMDD. Example: 20021225/20021231 - /*!\ingroup date_format - */ - inline std::string to_iso_string(const date_period& d) { - std::string s(date_time::date_formatter >::date_to_string(d.begin())); - return s + "/" + date_time::date_formatter >::date_to_string(d.last()); - } - - - //! Convert to iso extended format string CCYY-MM-DD. Example 2002-12-31 - /*!\ingroup date_format - */ - inline std::string to_iso_extended_string(const date& d) { - return date_time::date_formatter >::date_to_string(d); - } - - //! Convert to iso standard string YYYYMMDD. Example: 20021231 - /*!\ingroup date_format - */ - inline std::string to_iso_string(const date& d) { - return date_time::date_formatter >::date_to_string(d); - } - - - - inline std::string to_sql_string(const date& d) - { - date::ymd_type ymd = d.year_month_day(); - std::ostringstream ss; - ss << ymd.year << "-" - << std::setw(2) << std::setfill('0') - << ymd.month.as_number() //solves problem with gcc 3.1 hanging - << "-" - << std::setw(2) << std::setfill('0') - << ymd.day; - return ss.str(); - } - - -} } //namespace gregorian - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_calendar.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_calendar.hpp deleted file mode 100644 index b8b1f5a..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_calendar.hpp +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef GREGORIAN_GREGORIAN_CALENDAR_HPP__ -#define GREGORIAN_GREGORIAN_CALENDAR_HPP__ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/gregorian/greg_weekday.hpp" -#include "boost/date_time/gregorian/greg_day_of_year.hpp" -#include "boost/date_time/gregorian_calendar.hpp" -#include "boost/date_time/gregorian/greg_ymd.hpp" -#include "boost/date_time/int_adapter.hpp" - -namespace boost { -namespace gregorian { - - //!An internal date representation that includes infinities, not a date - typedef date_time::int_adapter fancy_date_rep; - - //! Gregorian calendar for this implementation, hard work in the base - class gregorian_calendar : - public date_time::gregorian_calendar_base { - public: - //! Type to hold a weekday (eg: Sunday, Monday,...) - typedef greg_weekday day_of_week_type; - //! Counter type from 1 to 366 for gregorian dates. - typedef greg_day_of_year_rep day_of_year_type; - //! Internal date representation that handles infinity, not a date - typedef fancy_date_rep date_rep_type; - //! Date rep implements the traits stuff as well - typedef fancy_date_rep date_traits_type; - - - private: - }; - -} } //namespace gregorian - - - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_date.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_date.hpp deleted file mode 100644 index 56d576f..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_date.hpp +++ /dev/null @@ -1,136 +0,0 @@ -#ifndef GREG_DATE_HPP___ -#define GREG_DATE_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#include -#include -#include -#include -#include - -namespace boost { -namespace gregorian { - - //bring special enum values into the namespace - using date_time::special_values; - using date_time::not_special; - using date_time::neg_infin; - using date_time::pos_infin; - using date_time::not_a_date_time; - using date_time::max_date_time; - using date_time::min_date_time; - - //! A date type based on gregorian_calendar - /*! This class is the primary interface for programming with - greogorian dates. The is a lightweight type that can be - freely passed by value. All comparison operators are - supported. - \ingroup date_basics - */ - class date : public date_time::date - { - public: - typedef gregorian_calendar::year_type year_type; - typedef gregorian_calendar::month_type month_type; - typedef gregorian_calendar::day_type day_type; - typedef gregorian_calendar::day_of_year_type day_of_year_type; - typedef gregorian_calendar::ymd_type ymd_type; - typedef gregorian_calendar::date_rep_type date_rep_type; - typedef gregorian_calendar::date_int_type date_int_type; - typedef date_duration duration_type; -#if !defined(DATE_TIME_NO_DEFAULT_CONSTRUCTOR) - //! Default constructor constructs with not_a_date_time - date(): - date_time::date(date_rep_type::from_special(not_a_date_time)) - {} -#endif // DATE_TIME_NO_DEFAULT_CONSTRUCTOR - //! Main constructor with year, month, day - date(year_type y, month_type m, day_type d) - : date_time::date(y, m, d) - { - if (gregorian_calendar::end_of_month_day(y, m) < d) { - boost::throw_exception(bad_day_of_month(std::string("Day of month is not valid for year"))); - } - } - //! Constructor from a ymd_type structure - explicit date(const ymd_type& ymd) - : date_time::date(ymd) - {} - //! Needed copy constructor - explicit date(const date_int_type& rhs): - date_time::date(rhs) - {} - //! Needed copy constructor - explicit date(date_rep_type rhs): - date_time::date(rhs) - {} - //! Constructor for infinities, not a date, max and min date - explicit date(special_values sv): - date_time::date(date_rep_type::from_special(sv)) - { - if (sv == min_date_time) - { - *this = date(1400, 1, 1); - } - if (sv == max_date_time) - { - *this = date(9999, 12, 31); - } - - } - //!Return the Julian Day number for the date. - date_int_type julian_day() const - { - ymd_type ymd = year_month_day(); - return gregorian_calendar::julian_day_number(ymd); - } - //!Return the day of year 1..365 or 1..366 (for leap year) - day_of_year_type day_of_year() const - { - date start_of_year(year(), 1, 1); - unsigned short doy = static_cast((*this-start_of_year).days() + 1); - return day_of_year_type(doy); - } - //!Return the Modified Julian Day number for the date. - long modjulian_day() const - { - ymd_type ymd = year_month_day(); - return gregorian_calendar::modjulian_day_number(ymd); - } - //!Return the iso 8601 week number 1..53 - int week_number() const - { - ymd_type ymd = year_month_day(); - return gregorian_calendar::week_number(ymd); - } - //! Return the day number from the calendar - date_int_type day_number() const - { - return days_; - } - //! Return the last day of the current month - date end_of_month() const - { - ymd_type ymd = year_month_day(); - short eom_day = gregorian_calendar::end_of_month_day(ymd.year, ymd.month); - return date(ymd.year, ymd.month, eom_day); - } - - private: - - }; - - - -} } //namespace gregorian - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_day.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_day.hpp deleted file mode 100644 index 92ea6ab..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_day.hpp +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef GREG_DAY_HPP___ -#define GREG_DAY_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/constrained_value.hpp" -#include -#include - -namespace boost { -namespace gregorian { - - //! Exception type for gregorian day of month (1..31) - struct bad_day_of_month : public std::out_of_range - { - bad_day_of_month() : - std::out_of_range(std::string("Day of month value is out of range 1..31")) - {} - //! Allow other classes to throw with unique string for bad day like Feb 29 - bad_day_of_month(const std::string& s) : - std::out_of_range(s) - {} - }; - //! Policy class that declares error handling and day of month ranges - typedef CV::simple_exception_policy greg_day_policies; - - //! Generated represetation for gregorian day of month - typedef CV::constrained_value greg_day_rep; - - //! Represent a day of the month (range 1 - 31) - /*! This small class allows for simple conversion an integer value into - a day of the month for a standard gregorian calendar. The type - is automatically range checked so values outside of the range 1-31 - will cause a bad_day_of_month exception - */ - class greg_day : public greg_day_rep { - public: - greg_day(unsigned short day_of_month) : greg_day_rep(day_of_month) {} - unsigned short as_number() const {return value_;} - operator unsigned short() const {return value_;} - private: - - }; - - - -} } //namespace gregorian - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_day_of_year.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_day_of_year.hpp deleted file mode 100644 index 36b22c2..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_day_of_year.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef GREG_DAY_OF_YEAR_HPP___ -#define GREG_DAY_OF_YEAR_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/constrained_value.hpp" -#include -#include - -namespace boost { -namespace gregorian { - - //! Exception type for day of year (1..366) - struct bad_day_of_year : public std::out_of_range - { - bad_day_of_year() : - std::out_of_range(std::string("Day of year value is out of range 1..366")) - {} - }; - - //! A day of the year range (1..366) - typedef CV::simple_exception_policy greg_day_of_year_policies; - - //! Define a range representation type for the day of the year 1..366 - typedef CV::constrained_value greg_day_of_year_rep; - - -} } //namespace gregorian - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_duration.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_duration.hpp deleted file mode 100644 index fd75542..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_duration.hpp +++ /dev/null @@ -1,134 +0,0 @@ -#ifndef GREG_DURATION_HPP___ -#define GREG_DURATION_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#include -#include -#include - -namespace boost { -namespace gregorian { - - //!An internal date representation that includes infinities, not a date - typedef boost::date_time::duration_traits_adapted date_duration_rep; - - //! Durations in days for gregorian system - /*! \ingroup date_basics - */ - class date_duration : - public boost::date_time::date_duration< date_duration_rep > - { - typedef boost::date_time::date_duration< date_duration_rep > base_type; - - public: - typedef base_type::duration_rep duration_rep; - - //! Construct from a day count - explicit date_duration(duration_rep day_count = 0) : base_type(day_count) {} - - //! construct from special_values - date_duration(date_time::special_values sv) : base_type(sv) {} - - //! Copy constructor - date_duration(const date_duration& other) : base_type(static_cast< base_type const& >(other)) - {} - - //! Construct from another date_duration - date_duration(const base_type& other) : base_type(other) - {} - - // Relational operators - // NOTE: Because of date_time::date_duration< T > design choice we don't use Boost.Operators here, - // because we need the class to be a direct base. Either lose EBO, or define operators by hand. - // The latter is more effecient. - bool operator== (const date_duration& rhs) const - { - return base_type::operator== (rhs); - } - bool operator!= (const date_duration& rhs) const - { - return !operator== (rhs); - } - bool operator< (const date_duration& rhs) const - { - return base_type::operator< (rhs); - } - bool operator> (const date_duration& rhs) const - { - return !(base_type::operator< (rhs) || base_type::operator== (rhs)); - } - bool operator<= (const date_duration& rhs) const - { - return (base_type::operator< (rhs) || base_type::operator== (rhs)); - } - bool operator>= (const date_duration& rhs) const - { - return !base_type::operator< (rhs); - } - - //! Subtract another duration -- result is signed - date_duration& operator-= (const date_duration& rhs) - { - base_type::operator-= (rhs); - return *this; - } - friend date_duration operator- (date_duration rhs, date_duration const& lhs) - { - rhs -= lhs; - return rhs; - } - - //! Add a duration -- result is signed - date_duration& operator+= (const date_duration& rhs) - { - base_type::operator+= (rhs); - return *this; - } - friend date_duration operator+ (date_duration rhs, date_duration const& lhs) - { - rhs += lhs; - return rhs; - } - - //! unary- Allows for dd = -date_duration(2); -> dd == -2 - date_duration operator- ()const - { - return date_duration(get_rep() * (-1)); - } - - //! Division operations on a duration with an integer. - date_duration& operator/= (int divisor) - { - base_type::operator/= (divisor); - return *this; - } - friend date_duration operator/ (date_duration rhs, int lhs) - { - rhs /= lhs; - return rhs; - } - - //! Returns the smallest duration -- used by to calculate 'end' - static date_duration unit() - { - return date_duration(base_type::unit().get_rep()); - } - }; - - //! Shorthand for date_duration - typedef date_duration days; - -} } //namespace gregorian - -#if defined(BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES) -#include -#endif - -#endif diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_duration_types.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_duration_types.hpp deleted file mode 100644 index 3d1ce62..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_duration_types.hpp +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef GREG_DURATION_TYPES_HPP___ -#define GREG_DURATION_TYPES_HPP___ - -/* Copyright (c) 2004 CrystalClear Software, Inc. - * Subject to Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - - -#include -#include -#include -#include -#include - -namespace boost { -namespace gregorian { - - //! config struct for additional duration types (ie months_duration<> & years_duration<>) - struct greg_durations_config { - typedef date date_type; - typedef date_time::int_adapter int_rep; - typedef date_time::month_functor month_adjustor_type; - }; - - typedef date_time::months_duration months; - typedef date_time::years_duration years; - - class weeks_duration : public date_duration { - public: - weeks_duration(duration_rep w) - : date_duration(w * 7) {} - weeks_duration(date_time::special_values sv) - : date_duration(sv) {} - }; - - typedef weeks_duration weeks; - -}} // namespace boost::gregorian - -#endif // GREG_DURATION_TYPES_HPP___ diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_facet.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_facet.hpp deleted file mode 100644 index 9c3877e..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_facet.hpp +++ /dev/null @@ -1,354 +0,0 @@ -#ifndef GREGORIAN_FACET_HPP___ -#define GREGORIAN_FACET_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-23 06:13:35 -0500 (Sun, 23 Nov 2008) $ - */ - -#include "boost/date_time/gregorian/gregorian_types.hpp" -#include "boost/date_time/date_formatting_locales.hpp" // sets BOOST_DATE_TIME_NO_LOCALE -#include "boost/date_time/gregorian/parsers.hpp" - -//This file is basically commented out if locales are not supported -#ifndef BOOST_DATE_TIME_NO_LOCALE - -#include -#include -#include -#include -#include - -namespace boost { -namespace gregorian { - - //! Configuration of the output facet template - struct greg_facet_config - { - typedef boost::gregorian::greg_month month_type; - typedef boost::date_time::special_values special_value_enum; - typedef boost::gregorian::months_of_year month_enum; - typedef boost::date_time::weekdays weekday_enum; - }; - -#if defined(USE_DATE_TIME_PRE_1_33_FACET_IO) - //! Create the base facet type for gregorian::date - typedef boost::date_time::date_names_put greg_base_facet; - - //! ostream operator for gregorian::date - /*! Uses the date facet to determine various output parameters including: - * - string values for the month (eg: Jan, Feb, Mar) (default: English) - * - string values for special values (eg: not-a-date-time) (default: English) - * - selection of long, short strings, or numerical month representation (default: short string) - * - month day year order (default yyyy-mmm-dd) - */ - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const date& d) - { - typedef boost::date_time::date_names_put facet_def; - typedef boost::date_time::ostream_date_formatter greg_ostream_formatter; - greg_ostream_formatter::date_put(d, os); - return os; - } - - //! operator<< for gregorian::greg_month typically streaming: Jan, Feb, Mar... - /*! Uses the date facet to determine output string as well as selection of long or short strings. - * Default if no facet is installed is to output a 2 wide numeric value for the month - * eg: 01 == Jan, 02 == Feb, ... 12 == Dec. - */ - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const greg_month& m) - { - typedef boost::date_time::date_names_put facet_def; - typedef boost::date_time::ostream_month_formatter greg_month_formatter; - std::locale locale = os.getloc(); - if (std::has_facet(locale)) { - const facet_def& f = std::use_facet(locale); - greg_month_formatter::format_month(m, os, f); - - } - else { //default to numeric - charT fill_char = '0'; - os << std::setw(2) << std::setfill(fill_char) << m.as_number(); - } - - return os; - } - - //! operator<< for gregorian::greg_weekday typically streaming: Sun, Mon, Tue, ... - /*! Uses the date facet to determine output string as well as selection of long or short string. - * Default if no facet is installed is to output a 3 char english string for the - * day of the week. - */ - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const greg_weekday& wd) - { - typedef boost::date_time::date_names_put facet_def; - typedef boost::date_time::ostream_weekday_formatter greg_weekday_formatter; - std::locale locale = os.getloc(); - if (std::has_facet(locale)) { - const facet_def& f = std::use_facet(locale); - greg_weekday_formatter::format_weekday(wd.as_enum(), os, f, true); - } - else { //default to short English string eg: Sun, Mon, Tue, Wed... - os << wd.as_short_string(); - } - - return os; - } - - //! operator<< for gregorian::date_period typical output: [2002-Jan-01/2002-Jan-31] - /*! Uses the date facet to determine output string as well as selection of long - * or short string fr dates. - * Default if no facet is installed is to output a 3 char english string for the - * day of the week. - */ - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const date_period& dp) - { - os << '['; //TODO: facet or manipulator for periods? - os << dp.begin(); - os << '/'; //TODO: facet or manipulator for periods? - os << dp.last(); - os << ']'; - return os; - } - - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const date_duration& dd) - { - //os << dd.days(); - os << dd.get_rep(); - return os; - } - - //! operator<< for gregorian::partial_date. Output: "Jan 1" - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const partial_date& pd) - { - os << std::setw(2) << std::setfill('0') << pd.day() << ' ' - << pd.month().as_short_string() ; - return os; - } - - //! operator<< for gregorian::nth_kday_of_month. Output: "first Mon of Jun" - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, - const nth_kday_of_month& nkd) - { - os << nkd.nth_week_as_str() << ' ' - << nkd.day_of_week() << " of " - << nkd.month().as_short_string() ; - return os; - } - - //! operator<< for gregorian::first_kday_of_month. Output: "first Mon of Jun" - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, - const first_kday_of_month& fkd) - { - os << "first " << fkd.day_of_week() << " of " - << fkd.month().as_short_string() ; - return os; - } - - //! operator<< for gregorian::last_kday_of_month. Output: "last Mon of Jun" - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, - const last_kday_of_month& lkd) - { - os << "last " << lkd.day_of_week() << " of " - << lkd.month().as_short_string() ; - return os; - } - - //! operator<< for gregorian::first_kday_after. Output: "first Mon after" - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, - const first_kday_after& fka) - { - os << fka.day_of_week() << " after"; - return os; - } - - //! operator<< for gregorian::first_kday_before. Output: "first Mon before" - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, - const first_kday_before& fkb) - { - os << fkb.day_of_week() << " before"; - return os; - } -#endif // USE_DATE_TIME_PRE_1_33_FACET_IO - /**************** Input Streaming ******************/ - -#if !defined(BOOST_NO_STD_ITERATOR_TRAITS) - //! operator>> for gregorian::date - template - inline - std::basic_istream& operator>>(std::basic_istream& is, date& d) - { - std::istream_iterator, charT> beg(is), eos; - - typedef boost::date_time::all_date_names_put facet_def; - d = from_stream(beg, eos); - return is; - } -#endif // BOOST_NO_STD_ITERATOR_TRAITS - - //! operator>> for gregorian::date_duration - template - inline - std::basic_istream& operator>>(std::basic_istream& is, - date_duration& dd) - { - long v; - is >> v; - dd = date_duration(v); - return is; - } - - //! operator>> for gregorian::date_period - template - inline - std::basic_istream& operator>>(std::basic_istream& is, - date_period& dp) - { - std::basic_string s; - is >> s; - dp = date_time::from_simple_string_type(s); - return is; - } - - //! generates a locale with the set of gregorian name-strings of type char* - BOOST_DATE_TIME_DECL std::locale generate_locale(std::locale& loc, char type); - - //! Returns a pointer to a facet with a default set of names (English) - /* Necessary in the event an exception is thrown from op>> for - * weekday or month. See comments in those functions for more info */ - BOOST_DATE_TIME_DECL boost::date_time::all_date_names_put* create_facet_def(char type); - -#ifndef BOOST_NO_STD_WSTRING - //! generates a locale with the set of gregorian name-strings of type wchar_t* - BOOST_DATE_TIME_DECL std::locale generate_locale(std::locale& loc, wchar_t type); - //! Returns a pointer to a facet with a default set of names (English) - /* Necessary in the event an exception is thrown from op>> for - * weekday or month. See comments in those functions for more info */ - BOOST_DATE_TIME_DECL boost::date_time::all_date_names_put* create_facet_def(wchar_t type); -#endif // BOOST_NO_STD_WSTRING - - //! operator>> for gregorian::greg_month - throws exception if invalid month given - template - inline - std::basic_istream& operator>>(std::basic_istream& is,greg_month& m) - { - typedef boost::date_time::all_date_names_put facet_def; - - std::basic_string s; - is >> s; - - if(!std::has_facet(is.getloc())) { - std::locale loc = is.getloc(); - charT a = '\0'; - is.imbue(generate_locale(loc, a)); - } - - short num = 0; - - try{ - const facet_def& f = std::use_facet(is.getloc()); - num = date_time::find_match(f.get_short_month_names(), - f.get_long_month_names(), - (greg_month::max)(), s); // greg_month spans 1..12, so max returns the array size, - // which is needed by find_match - } - /* bad_cast will be thrown if the desired facet is not accessible - * so we can generate the facet. This has the drawback of using english - * names as a default. */ - catch(std::bad_cast&){ - charT a = '\0'; - std::auto_ptr< const facet_def > f(create_facet_def(a)); - num = date_time::find_match(f->get_short_month_names(), - f->get_long_month_names(), - (greg_month::max)(), s); // greg_month spans 1..12, so max returns the array size, - // which is needed by find_match - } - - ++num; // months numbered 1-12 - m = greg_month(num); - - return is; - } - - //! operator>> for gregorian::greg_weekday - throws exception if invalid weekday given - template - inline - std::basic_istream& operator>>(std::basic_istream& is,greg_weekday& wd) - { - typedef boost::date_time::all_date_names_put facet_def; - - std::basic_string s; - is >> s; - - if(!std::has_facet(is.getloc())) { - std::locale loc = is.getloc(); - charT a = '\0'; - is.imbue(generate_locale(loc, a)); - } - - short num = 0; - try{ - const facet_def& f = std::use_facet(is.getloc()); - num = date_time::find_match(f.get_short_weekday_names(), - f.get_long_weekday_names(), - (greg_weekday::max)() + 1, s); // greg_weekday spans 0..6, so increment is needed - // to form the array size which is needed by find_match - } - /* bad_cast will be thrown if the desired facet is not accessible - * so we can generate the facet. This has the drawback of using english - * names as a default. */ - catch(std::bad_cast&){ - charT a = '\0'; - std::auto_ptr< const facet_def > f(create_facet_def(a)); - num = date_time::find_match(f->get_short_weekday_names(), - f->get_long_weekday_names(), - (greg_weekday::max)() + 1, s); // greg_weekday spans 0..6, so increment is needed - // to form the array size which is needed by find_match - } - - wd = greg_weekday(num); // weekdays numbered 0-6 - return is; - } - -} } //namespace gregorian - -#endif - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_month.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_month.hpp deleted file mode 100644 index fc9c861..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_month.hpp +++ /dev/null @@ -1,105 +0,0 @@ -#ifndef GREG_MONTH_HPP___ -#define GREG_MONTH_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/constrained_value.hpp" -#include "boost/date_time/date_defs.hpp" -#include "boost/shared_ptr.hpp" -#include "boost/date_time/compiler_config.hpp" -#include -#include -#include -#include -#include - -namespace boost { -namespace gregorian { - - typedef date_time::months_of_year months_of_year; - - //bring enum values into the namespace - using date_time::Jan; - using date_time::Feb; - using date_time::Mar; - using date_time::Apr; - using date_time::May; - using date_time::Jun; - using date_time::Jul; - using date_time::Aug; - using date_time::Sep; - using date_time::Oct; - using date_time::Nov; - using date_time::Dec; - using date_time::NotAMonth; - using date_time::NumMonths; - - //! Exception thrown if a greg_month is constructed with a value out of range - struct bad_month : public std::out_of_range - { - bad_month() : std::out_of_range(std::string("Month number is out of range 1..12")) {} - }; - //! Build a policy class for the greg_month_rep - typedef CV::simple_exception_policy greg_month_policies; - //! A constrained range that implements the gregorian_month rules - typedef CV::constrained_value greg_month_rep; - - - //! Wrapper class to represent months in gregorian based calendar - class BOOST_DATE_TIME_DECL greg_month : public greg_month_rep { - public: - typedef date_time::months_of_year month_enum; - typedef std::map month_map_type; - typedef boost::shared_ptr month_map_ptr_type; - //! Construct a month from the months_of_year enumeration - greg_month(month_enum theMonth) : - greg_month_rep(static_cast(theMonth)) {} - //! Construct from a short value - greg_month(unsigned short theMonth) : greg_month_rep(theMonth) {} - //! Convert the value back to a short - operator unsigned short() const {return value_;} - //! Returns month as number from 1 to 12 - unsigned short as_number() const {return value_;} - month_enum as_enum() const {return static_cast(value_);} - const char* as_short_string() const; - const char* as_long_string() const; -#ifndef BOOST_NO_STD_WSTRING - const wchar_t* as_short_wstring() const; - const wchar_t* as_long_wstring() const; -#endif // BOOST_NO_STD_WSTRING - //! Shared pointer to a map of Month strings (Names & Abbrev) & numbers - static month_map_ptr_type get_month_map_ptr(); - - /* parameterized as_*_string functions are intended to be called - * from a template function: "... as_short_string(charT c='\0');" */ - const char* as_short_string(char) const - { - return as_short_string(); - } - const char* as_long_string(char) const - { - return as_long_string(); - } -#ifndef BOOST_NO_STD_WSTRING - const wchar_t* as_short_string(wchar_t) const - { - return as_short_wstring(); - } - const wchar_t* as_long_string(wchar_t) const - { - return as_long_wstring(); - } -#endif // BOOST_NO_STD_WSTRING - }; - -} } //namespace gregorian - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_weekday.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_weekday.hpp deleted file mode 100644 index 9b566c4..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_weekday.hpp +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef GREG_WEEKDAY_HPP___ -#define GREG_WEEKDAY_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#include "boost/date_time/constrained_value.hpp" -#include "boost/date_time/date_defs.hpp" -#include "boost/date_time/compiler_config.hpp" -#include -#include - -namespace boost { -namespace gregorian { - - //bring enum values into the namespace - using date_time::Sunday; - using date_time::Monday; - using date_time::Tuesday; - using date_time::Wednesday; - using date_time::Thursday; - using date_time::Friday; - using date_time::Saturday; - - - //! Exception that flags that a weekday number is incorrect - struct bad_weekday : public std::out_of_range - { - bad_weekday() : std::out_of_range(std::string("Weekday is out of range 0..6")) {} - }; - typedef CV::simple_exception_policy greg_weekday_policies; - typedef CV::constrained_value greg_weekday_rep; - - - //! Represent a day within a week (range 0==Sun to 6==Sat) - class BOOST_DATE_TIME_DECL greg_weekday : public greg_weekday_rep { - public: - typedef boost::date_time::weekdays weekday_enum; - greg_weekday(unsigned short day_of_week_num) : - greg_weekday_rep(day_of_week_num) - {} - - unsigned short as_number() const {return value_;} - const char* as_short_string() const; - const char* as_long_string() const; -#ifndef BOOST_NO_STD_WSTRING - const wchar_t* as_short_wstring() const; - const wchar_t* as_long_wstring() const; -#endif // BOOST_NO_STD_WSTRING - weekday_enum as_enum() const {return static_cast(value_);} - - - }; - - - -} } //namespace gregorian - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_year.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_year.hpp deleted file mode 100644 index ef1735f..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_year.hpp +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef GREG_YEAR_HPP___ -#define GREG_YEAR_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/constrained_value.hpp" -#include -#include - -namespace boost { -namespace gregorian { - - //! Exception type for gregorian year - struct bad_year : public std::out_of_range - { - bad_year() : - std::out_of_range(std::string("Year is out of valid range: 1400..10000")) - {} - }; - //! Policy class that declares error handling gregorian year type - typedef CV::simple_exception_policy greg_year_policies; - - //! Generated representation for gregorian year - typedef CV::constrained_value greg_year_rep; - - //! Represent a day of the month (range 1900 - 10000) - /*! This small class allows for simple conversion an integer value into - a year for the gregorian calendar. This currently only allows a - range of 1900 to 10000. Both ends of the range are a bit arbitrary - at the moment, but they are the limits of current testing of the - library. As such they may be increased in the future. - */ - class greg_year : public greg_year_rep { - public: - greg_year(unsigned short year) : greg_year_rep(year) {} - operator unsigned short() const {return value_;} - private: - - }; - - - -} } //namespace gregorian - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/gregorian/greg_ymd.hpp b/3rdParty/Boost/boost/date_time/gregorian/greg_ymd.hpp deleted file mode 100644 index 086e73d..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/greg_ymd.hpp +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef DATE_TIME_GREG_YMD_HPP__ -#define DATE_TIME_GREG_YMD_HPP__ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/year_month_day.hpp" -#include "boost/date_time/special_defs.hpp" -#include "boost/date_time/gregorian/greg_day.hpp" -#include "boost/date_time/gregorian/greg_year.hpp" -#include "boost/date_time/gregorian/greg_month.hpp" - -namespace boost { -namespace gregorian { - - typedef date_time::year_month_day_base greg_year_month_day; - - - -} } //namespace gregorian - - - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/gregorian/gregorian.hpp b/3rdParty/Boost/boost/date_time/gregorian/gregorian.hpp deleted file mode 100644 index bfafa1b..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/gregorian.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef GREGORIAN_HPP__ -#define GREGORIAN_HPP__ - -/* Copyright (c) 2002-2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -/*! @file gregorian.hpp - Single file header that provides overall include for all elements of - the gregorian date-time system. This includes the various types - defined, but also other functions for formatting and parsing. -*/ - - -#include "boost/date_time/compiler_config.hpp" -#include "boost/date_time/gregorian/gregorian_types.hpp" -#include "boost/date_time/gregorian/conversion.hpp" -#if defined(BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS) -#include "boost/date_time/gregorian/formatters_limited.hpp" -#else -#include "boost/date_time/gregorian/formatters.hpp" -#endif - -#if defined(USE_DATE_TIME_PRE_1_33_FACET_IO) -#include "boost/date_time/gregorian/greg_facet.hpp" -#else -#include "boost/date_time/gregorian/gregorian_io.hpp" -#endif // USE_DATE_TIME_PRE_1_33_FACET_IO - -#include "boost/date_time/gregorian/parsers.hpp" - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/gregorian/gregorian_io.hpp b/3rdParty/Boost/boost/date_time/gregorian/gregorian_io.hpp deleted file mode 100644 index 62a759f..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/gregorian_io.hpp +++ /dev/null @@ -1,784 +0,0 @@ -#ifndef DATE_TIME_GREGORIAN_IO_HPP__ -#define DATE_TIME_GREGORIAN_IO_HPP__ - -/* Copyright (c) 2004-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#include -#include -#include // i/ostreambuf_iterator -#include -#include -#include -#include -#include -#include -#include -#include // to_tm will be needed in the facets - -namespace boost { -namespace gregorian { - - - typedef boost::date_time::period_formatter wperiod_formatter; - typedef boost::date_time::period_formatter period_formatter; - - typedef boost::date_time::date_facet wdate_facet; - typedef boost::date_time::date_facet date_facet; - - typedef boost::date_time::period_parser period_parser; - typedef boost::date_time::period_parser wperiod_parser; - - typedef boost::date_time::special_values_formatter special_values_formatter; - typedef boost::date_time::special_values_formatter wspecial_values_formatter; - - typedef boost::date_time::special_values_parser special_values_parser; - typedef boost::date_time::special_values_parser wspecial_values_parser; - - typedef boost::date_time::date_input_facet date_input_facet; - typedef boost::date_time::date_input_facet wdate_input_facet; - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::date& d) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), d); - else { - //instantiate a custom facet for dealing with dates since the user - //has not put one in the stream so far. This is for efficiency - //since we would always need to reconstruct for every date - //if the locale did not already exist. Of course this will be overridden - //if the user imbues at some later point. With the default settings - //for the facet the resulting format will be the same as the - //std::time_facet settings. - custom_date_facet* f = new custom_date_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), d); - } - return os; - } - - //! input operator for date - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, date& d) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, d); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, d); - } - } - catch(...) { - // mask tells us what exceptions are turned on - std::ios_base::iostate exception_mask = is.exceptions(); - // if the user wants exceptions on failbit, we'll rethrow our - // date_time exception & set the failbit - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} // ignore this one - throw; // rethrow original exception - } - else { - // if the user want's to fail quietly, we simply set the failbit - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::date_duration& dd) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), dd); - else { - custom_date_facet* f = new custom_date_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), dd); - - } - return os; - } - - //! input operator for date_duration - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, date_duration& dd) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, dd); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, dd); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::date_period& dp) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), dp); - else { - //instantiate a custom facet for dealing with date periods since the user - //has not put one in the stream so far. This is for efficiency - //since we would always need to reconstruct for every time period - //if the local did not already exist. Of course this will be overridden - //if the user imbues at some later point. With the default settings - //for the facet the resulting format will be the same as the - //std::time_facet settings. - custom_date_facet* f = new custom_date_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), dp); - - } - return os; - } - - //! input operator for date_period - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, date_period& dp) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, dp); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, dp); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - /********** small gregorian types **********/ - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::greg_month& gm) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), gm); - else { - custom_date_facet* f = new custom_date_facet();//-> 10/1074199752/32 because year & day not initialized in put(...) - //custom_date_facet* f = new custom_date_facet("%B"); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), gm); - } - return os; - } - - //! input operator for greg_month - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, greg_month& m) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, m); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, m); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::greg_weekday& gw) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), gw); - else { - custom_date_facet* f = new custom_date_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), gw); - } - return os; - } - - //! input operator for greg_weekday - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, greg_weekday& wd) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, wd); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, wd); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - //NOTE: output operator for greg_day was not necessary - - //! input operator for greg_day - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, greg_day& gd) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, gd); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, gd); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - //NOTE: output operator for greg_year was not necessary - - //! input operator for greg_year - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, greg_year& gy) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, gy); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, gy); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - /********** date generator types **********/ - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::partial_date& pd) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), pd); - else { - custom_date_facet* f = new custom_date_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), pd); - } - return os; - } - - //! input operator for partial_date - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, partial_date& pd) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, pd); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, pd); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::nth_day_of_the_week_in_month& nkd) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), nkd); - else { - custom_date_facet* f = new custom_date_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), nkd); - } - return os; - } - - //! input operator for nth_day_of_the_week_in_month - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, - nth_day_of_the_week_in_month& nday) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, nday); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, nday); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::first_day_of_the_week_in_month& fkd) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), fkd); - else { - custom_date_facet* f = new custom_date_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), fkd); - } - return os; - } - - //! input operator for first_day_of_the_week_in_month - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, - first_day_of_the_week_in_month& fkd) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, fkd); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, fkd); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::last_day_of_the_week_in_month& lkd) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), lkd); - else { - custom_date_facet* f = new custom_date_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), lkd); - } - return os; - } - - //! input operator for last_day_of_the_week_in_month - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, - last_day_of_the_week_in_month& lkd) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, lkd); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, lkd); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::first_day_of_the_week_after& fda) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) { - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), fda); - } - else { - custom_date_facet* f = new custom_date_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), fda); - } - return os; - } - - //! input operator for first_day_of_the_week_after - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, - first_day_of_the_week_after& fka) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, fka); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, fka); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - - template - inline std::basic_ostream& - operator<<(std::basic_ostream& os, const boost::gregorian::first_day_of_the_week_before& fdb) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::date_facet custom_date_facet; - std::ostreambuf_iterator output_itr(os); - if (std::has_facet(os.getloc())) { - std::use_facet(os.getloc()).put(output_itr, os, os.fill(), fdb); - } - else { - custom_date_facet* f = new custom_date_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(output_itr, os, os.fill(), fdb); - } - return os; - } - - //! input operator for first_day_of_the_week_before - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, - first_day_of_the_week_before& fkb) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::date_input_facet date_input_facet; - - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, fkb); - } - else { - date_input_facet* f = new date_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, fkb); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - - } - } - return is; - } - - -} } // namespaces - -#endif // DATE_TIME_GREGORIAN_IO_HPP__ diff --git a/3rdParty/Boost/boost/date_time/gregorian/gregorian_types.hpp b/3rdParty/Boost/boost/date_time/gregorian/gregorian_types.hpp deleted file mode 100644 index 0c74857..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/gregorian_types.hpp +++ /dev/null @@ -1,109 +0,0 @@ -#ifndef _GREGORIAN_TYPES_HPP__ -#define _GREGORIAN_TYPES_HPP__ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -/*! @file gregorian_types.hpp - Single file header that defines most of the types for the gregorian - date-time system. -*/ - -#include "boost/date_time/date.hpp" -#include "boost/date_time/period.hpp" -#include "boost/date_time/gregorian/greg_calendar.hpp" -#include "boost/date_time/gregorian/greg_duration.hpp" -#if defined(BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES) -#include "boost/date_time/gregorian/greg_duration_types.hpp" -#endif -#include "boost/date_time/gregorian/greg_date.hpp" -#include "boost/date_time/date_generators.hpp" -#include "boost/date_time/date_clock_device.hpp" -#include "boost/date_time/date_iterator.hpp" -#include "boost/date_time/adjust_functors.hpp" - -namespace boost { - -//! Gregorian date system based on date_time components -/*! This date system defines a full complement of types including - * a date, date_duration, date_period, day_clock, and a - * day_iterator. - */ -namespace gregorian { - //! Date periods for the gregorian system - /*!\ingroup date_basics - */ - typedef date_time::period date_period; - - //! A unifying date_generator base type - /*! A unifying date_generator base type for: - * partial_date, nth_day_of_the_week_in_month, - * first_day_of_the_week_in_month, and last_day_of_the_week_in_month - */ - typedef date_time::year_based_generator year_based_generator; - - //! A date generation object type - typedef date_time::partial_date partial_date; - - typedef date_time::nth_kday_of_month nth_kday_of_month; - typedef nth_kday_of_month nth_day_of_the_week_in_month; - - typedef date_time::first_kday_of_month first_kday_of_month; - typedef first_kday_of_month first_day_of_the_week_in_month; - - typedef date_time::last_kday_of_month last_kday_of_month; - typedef last_kday_of_month last_day_of_the_week_in_month; - - typedef date_time::first_kday_after first_kday_after; - typedef first_kday_after first_day_of_the_week_after; - - typedef date_time::first_kday_before first_kday_before; - typedef first_kday_before first_day_of_the_week_before; - - //! A clock to get the current day from the local computer - /*!\ingroup date_basics - */ - typedef date_time::day_clock day_clock; - - //! Base date_iterator type for gregorian types. - /*!\ingroup date_basics - */ - typedef date_time::date_itr_base date_iterator; - - //! A day level iterator - /*!\ingroup date_basics - */ - typedef date_time::date_itr, - date> day_iterator; - //! A week level iterator - /*!\ingroup date_basics - */ - typedef date_time::date_itr, - date> week_iterator; - //! A month level iterator - /*!\ingroup date_basics - */ - typedef date_time::date_itr, - date> month_iterator; - //! A year level iterator - /*!\ingroup date_basics - */ - typedef date_time::date_itr, - date> year_iterator; - - // bring in these date_generator functions from date_time namespace - using date_time::days_until_weekday; - using date_time::days_before_weekday; - using date_time::next_weekday; - using date_time::previous_weekday; - -} } //namespace gregorian - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/gregorian/parsers.hpp b/3rdParty/Boost/boost/date_time/gregorian/parsers.hpp deleted file mode 100644 index 95d4f23..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian/parsers.hpp +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef GREGORIAN_PARSERS_HPP___ -#define GREGORIAN_PARSERS_HPP___ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/gregorian/gregorian_types.hpp" -#include "boost/date_time/date_parsing.hpp" -#include "boost/date_time/compiler_config.hpp" -#include "boost/date_time/parse_format_base.hpp" -#include -#include - -namespace boost { -namespace gregorian { - - //! Return special_value from string argument - /*! Return special_value from string argument. If argument is - * not one of the special value names (defined in src/gregorian/names.hpp), - * return 'not_special' */ - BOOST_DATE_TIME_DECL special_values special_value_from_string(const std::string& s); - - //! Deprecated: Use from_simple_string - inline date from_string(std::string s) { - return date_time::parse_date(s); - } - - //! From delimited date string where with order year-month-day eg: 2002-1-25 or 2003-Jan-25 (full month name is also accepted) - inline date from_simple_string(std::string s) { - return date_time::parse_date(s, date_time::ymd_order_iso); - } - - //! From delimited date string where with order year-month-day eg: 1-25-2003 or Jan-25-2003 (full month name is also accepted) - inline date from_us_string(std::string s) { - return date_time::parse_date(s, date_time::ymd_order_us); - } - - //! From delimited date string where with order day-month-year eg: 25-1-2002 or 25-Jan-2003 (full month name is also accepted) - inline date from_uk_string(std::string s) { - return date_time::parse_date(s, date_time::ymd_order_dmy); - } - - //! From iso type date string where with order year-month-day eg: 20020125 - inline date from_undelimited_string(std::string s) { - return date_time::parse_undelimited_date(s); - } - - //! From iso type date string where with order year-month-day eg: 20020125 - inline date date_from_iso_string(const std::string& s) { - return date_time::parse_undelimited_date(s); - } - -#if !(defined(BOOST_NO_STD_ITERATOR_TRAITS)) - //! Stream should hold a date in the form of: 2002-1-25. Month number, abbrev, or name are accepted - /* Arguments passed in by-value for convertability of char[] - * to iterator_type. Calls to from_stream_type are by-reference - * since conversion is already done */ - template - inline date from_stream(iterator_type beg, iterator_type end) { - if(beg == end) - { - return date(not_a_date_time); - } - typedef typename std::iterator_traits::value_type value_type; - return date_time::from_stream_type(beg, end, value_type()); - } -#endif //BOOST_NO_STD_ITERATOR_TRAITS - -#if (defined(_MSC_VER) && (_MSC_VER < 1300)) - // This function cannot be compiled with MSVC 6.0 due to internal compiler shorcomings -#else - //! Function to parse a date_period from a string (eg: [2003-Oct-31/2003-Dec-25]) - inline date_period date_period_from_string(const std::string& s){ - return date_time::from_simple_string_type(s); - } -# if !defined(BOOST_NO_STD_WSTRING) - //! Function to parse a date_period from a wstring (eg: [2003-Oct-31/2003-Dec-25]) - inline date_period date_period_from_wstring(const std::wstring& s){ - return date_time::from_simple_string_type(s); - } -# endif // BOOST_NO_STD_WSTRING -#endif - -} } //namespace gregorian - -#endif diff --git a/3rdParty/Boost/boost/date_time/gregorian_calendar.hpp b/3rdParty/Boost/boost/date_time/gregorian_calendar.hpp deleted file mode 100644 index 6386008..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian_calendar.hpp +++ /dev/null @@ -1,70 +0,0 @@ -#ifndef DATE_TIME_GREGORIAN_CALENDAR_HPP__ -#define DATE_TIME_GREGORIAN_CALENDAR_HPP__ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - - -namespace boost { -namespace date_time { - - - //! An implementation of the Gregorian calendar - /*! This is a parameterized implementation of a proleptic Gregorian Calendar that - can be used in the creation of date systems or just to perform calculations. - All the methods of this class are static functions, so the intent is to - never create instances of this class. - @param ymd_type_ Struct type representing the year, month, day. The ymd_type must - define a of types for the year, month, and day. These types need to be - arithmetic types. - @param date_int_type_ Underlying type for the date count. Must be an arithmetic type. - */ - template - class gregorian_calendar_base { - public: - //! define a type a date split into components - typedef ymd_type_ ymd_type; - //! define a type for representing months - typedef typename ymd_type::month_type month_type; - //! define a type for representing days - typedef typename ymd_type::day_type day_type; - //! Type to hold a stand alone year value (eg: 2002) - typedef typename ymd_type::year_type year_type; - //! Define the integer type to use for internal calculations - typedef date_int_type_ date_int_type; - - - static unsigned short day_of_week(const ymd_type& ymd); - static int week_number(const ymd_type&ymd); - //static unsigned short day_of_year(date_int_type); - static date_int_type day_number(const ymd_type& ymd); - static date_int_type julian_day_number(const ymd_type& ymd); - static long modjulian_day_number(const ymd_type& ymd); - static ymd_type from_day_number(date_int_type); - static ymd_type from_julian_day_number(date_int_type); - static ymd_type from_modjulian_day_number(long); - static bool is_leap_year(year_type); - static unsigned short end_of_month_day(year_type y, month_type m); - static ymd_type epoch(); - static unsigned short days_in_week(); - - }; - - - -} } //namespace - -#ifndef NO_BOOST_DATE_TIME_INLINE -#include "boost/date_time/gregorian_calendar.ipp" -#endif - - - -#endif - - diff --git a/3rdParty/Boost/boost/date_time/gregorian_calendar.ipp b/3rdParty/Boost/boost/date_time/gregorian_calendar.ipp deleted file mode 100644 index b7628fc..0000000 --- a/3rdParty/Boost/boost/date_time/gregorian_calendar.ipp +++ /dev/null @@ -1,219 +0,0 @@ -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#ifndef NO_BOOST_DATE_TIME_INLINE - #undef BOOST_DATE_TIME_INLINE - #define BOOST_DATE_TIME_INLINE inline -#endif - -namespace boost { -namespace date_time { - //! Return the day of the week (0==Sunday, 1==Monday, etc) - /*! Converts a year-month-day into a day of the week number - */ - template - BOOST_DATE_TIME_INLINE - unsigned short - gregorian_calendar_base::day_of_week(const ymd_type& ymd) { - unsigned short a = static_cast((14-ymd.month)/12); - unsigned short y = static_cast(ymd.year - a); - unsigned short m = static_cast(ymd.month + 12*a - 2); - unsigned short d = static_cast((ymd.day + y + (y/4) - (y/100) + (y/400) + (31*m)/12) % 7); - //std::cout << year << "-" << month << "-" << day << " is day: " << d << "\n"; - return d; - } - - //!Return the iso week number for the date - /*!Implements the rules associated with the iso 8601 week number. - Basically the rule is that Week 1 of the year is the week that contains - January 4th or the week that contains the first Thursday in January. - Reference for this algorithm is the Calendar FAQ by Claus Tondering, April 2000. - */ - template - BOOST_DATE_TIME_INLINE - int - gregorian_calendar_base::week_number(const ymd_type& ymd) { - unsigned long julianbegin = julian_day_number(ymd_type(ymd.year,1,1)); - unsigned long juliantoday = julian_day_number(ymd); - unsigned long day = (julianbegin + 3) % 7; - unsigned long week = (juliantoday + day - julianbegin + 4)/7; - - if ((week >= 1) && (week <= 52)) { - return week; - } - - if ((week == 53)) { - if((day==6) ||(day == 5 && is_leap_year(ymd.year))) { - return week; //under these circumstances week == 53. - } else { - return 1; //monday - wednesday is in week 1 of next year - } - } - //if the week is not in current year recalculate using the previous year as the beginning year - else if (week == 0) { - julianbegin = julian_day_number(ymd_type(static_cast(ymd.year-1),1,1)); - juliantoday = julian_day_number(ymd); - day = (julianbegin + 3) % 7; - week = (juliantoday + day - julianbegin + 4)/7; - return week; - } - - return week; //not reachable -- well except if day == 5 and is_leap_year != true - - } - - //! Convert a ymd_type into a day number - /*! The day number is an absolute number of days since the start of count - */ - template - BOOST_DATE_TIME_INLINE - date_int_type_ - gregorian_calendar_base::day_number(const ymd_type& ymd) - { - unsigned short a = static_cast((14-ymd.month)/12); - unsigned short y = static_cast(ymd.year + 4800 - a); - unsigned short m = static_cast(ymd.month + 12*a - 3); - unsigned long d = ymd.day + ((153*m + 2)/5) + 365*y + (y/4) - (y/100) + (y/400) - 32045; - return d; - } - - //! Convert a year-month-day into the julian day number - /*! Since this implementation uses julian day internally, this is the same as the day_number. - */ - template - BOOST_DATE_TIME_INLINE - date_int_type_ - gregorian_calendar_base::julian_day_number(const ymd_type& ymd) - { - return day_number(ymd); - } - - //! Convert year-month-day into a modified julian day number - /*! The day number is an absolute number of days. - * MJD 0 thus started on 17 Nov 1858(Gregorian) at 00:00:00 UTC - */ - template - BOOST_DATE_TIME_INLINE - long - gregorian_calendar_base::modjulian_day_number(const ymd_type& ymd) - { - return julian_day_number(ymd)-2400001; //prerounded - } - - //! Change a day number into a year-month-day - template - BOOST_DATE_TIME_INLINE - ymd_type_ - gregorian_calendar_base::from_day_number(date_int_type dayNumber) - { - date_int_type a = dayNumber + 32044; - date_int_type b = (4*a + 3)/146097; - date_int_type c = a-((146097*b)/4); - date_int_type d = (4*c + 3)/1461; - date_int_type e = c - (1461*d)/4; - date_int_type m = (5*e + 2)/153; - unsigned short day = static_cast(e - ((153*m + 2)/5) + 1); - unsigned short month = static_cast(m + 3 - 12 * (m/10)); - year_type year = static_cast(100*b + d - 4800 + (m/10)); - //std::cout << year << "-" << month << "-" << day << "\n"; - - return ymd_type(static_cast(year),month,day); - } - - //! Change a day number into a year-month-day - template - BOOST_DATE_TIME_INLINE - ymd_type_ - gregorian_calendar_base::from_julian_day_number(date_int_type dayNumber) - { - date_int_type a = dayNumber + 32044; - date_int_type b = (4*a+3)/146097; - date_int_type c = a - ((146097*b)/4); - date_int_type d = (4*c + 3)/1461; - date_int_type e = c - ((1461*d)/4); - date_int_type m = (5*e + 2)/153; - unsigned short day = static_cast(e - ((153*m + 2)/5) + 1); - unsigned short month = static_cast(m + 3 - 12 * (m/10)); - year_type year = static_cast(100*b + d - 4800 + (m/10)); - //std::cout << year << "-" << month << "-" << day << "\n"; - - return ymd_type(year,month,day); - } - - //! Change a modified julian day number into a year-month-day - template - BOOST_DATE_TIME_INLINE - ymd_type_ - gregorian_calendar_base::from_modjulian_day_number(long dayNumber) { - date_int_type jd = dayNumber + 2400001; //is 2400000.5 prerounded - return from_julian_day_number(jd); - } - - //! Determine if the provided year is a leap year - /*! - *@return true if year is a leap year, false otherwise - */ - template - BOOST_DATE_TIME_INLINE - bool - gregorian_calendar_base::is_leap_year(year_type year) - { - //divisible by 4, not if divisible by 100, but true if divisible by 400 - return (!(year % 4)) && ((year % 100) || (!(year % 400))); - } - - //! Calculate the last day of the month - /*! Find the day which is the end of the month given year and month - * No error checking is performed. - */ - template - BOOST_DATE_TIME_INLINE - unsigned short - gregorian_calendar_base::end_of_month_day(year_type year, - month_type month) - { - switch (month) { - case 2: - if (is_leap_year(year)) { - return 29; - } else { - return 28; - }; - case 4: - case 6: - case 9: - case 11: - return 30; - default: - return 31; - }; - - } - - //! Provide the ymd_type specification for the calandar start - template - BOOST_DATE_TIME_INLINE - ymd_type_ - gregorian_calendar_base::epoch() - { - return ymd_type(1400,1,1); - } - - //! Defines length of a week for week calculations - template - BOOST_DATE_TIME_INLINE - unsigned short - gregorian_calendar_base::days_in_week() - { - return 7; - } - - -} } //namespace gregorian - - diff --git a/3rdParty/Boost/boost/date_time/int_adapter.hpp b/3rdParty/Boost/boost/date_time/int_adapter.hpp deleted file mode 100644 index fc98fc1..0000000 --- a/3rdParty/Boost/boost/date_time/int_adapter.hpp +++ /dev/null @@ -1,509 +0,0 @@ -#ifndef _DATE_TIME_INT_ADAPTER_HPP__ -#define _DATE_TIME_INT_ADAPTER_HPP__ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - - -#include "boost/config.hpp" -#include "boost/limits.hpp" //work around compilers without limits -#include "boost/date_time/special_defs.hpp" -#include "boost/date_time/locale_config.hpp" -#ifndef BOOST_DATE_TIME_NO_LOCALE -# include -#endif - -namespace boost { -namespace date_time { - - -//! Adapter to create integer types with +-infinity, and not a value -/*! This class is used internally in counted date/time representations. - * It adds the floating point like features of infinities and - * not a number. It also provides mathmatical operations with - * consideration to special values following these rules: - *@code - * +infinity - infinity == Not A Number (NAN) - * infinity * non-zero == infinity - * infinity * zero == NAN - * +infinity * -integer == -infinity - * infinity / infinity == NAN - * infinity * infinity == infinity - *@endcode - */ -template -class int_adapter { -public: - typedef int_type_ int_type; - int_adapter(int_type v) : - value_(v) - {} - static bool has_infinity() - { - return true; - } - static const int_adapter pos_infinity() - { - return (::std::numeric_limits::max)(); - } - static const int_adapter neg_infinity() - { - return (::std::numeric_limits::min)(); - } - static const int_adapter not_a_number() - { - return (::std::numeric_limits::max)()-1; - } - static int_adapter max BOOST_PREVENT_MACRO_SUBSTITUTION () - { - return (::std::numeric_limits::max)()-2; - } - static int_adapter min BOOST_PREVENT_MACRO_SUBSTITUTION () - { - return (::std::numeric_limits::min)()+1; - } - static int_adapter from_special(special_values sv) - { - switch (sv) { - case not_a_date_time: return not_a_number(); - case neg_infin: return neg_infinity(); - case pos_infin: return pos_infinity(); - case max_date_time: return (max)(); - case min_date_time: return (min)(); - default: return not_a_number(); - } - } - static bool is_inf(int_type v) - { - return (v == neg_infinity().as_number() || - v == pos_infinity().as_number()); - } - static bool is_neg_inf(int_type v) - { - return (v == neg_infinity().as_number()); - } - static bool is_pos_inf(int_type v) - { - return (v == pos_infinity().as_number()); - } - static bool is_not_a_number(int_type v) - { - return (v == not_a_number().as_number()); - } - //! Returns either special value type or is_not_special - static special_values to_special(int_type v) - { - if (is_not_a_number(v)) return not_a_date_time; - if (is_neg_inf(v)) return neg_infin; - if (is_pos_inf(v)) return pos_infin; - return not_special; - } - - //-3 leaves room for representations of infinity and not a date - static int_type maxcount() - { - return (::std::numeric_limits::max)()-3; - } - bool is_infinity() const - { - return (value_ == neg_infinity().as_number() || - value_ == pos_infinity().as_number()); - } - bool is_pos_infinity()const - { - return(value_ == pos_infinity().as_number()); - } - bool is_neg_infinity()const - { - return(value_ == neg_infinity().as_number()); - } - bool is_nan() const - { - return (value_ == not_a_number().as_number()); - } - bool is_special() const - { - return(is_infinity() || is_nan()); - } - bool operator==(const int_adapter& rhs) const - { - return (compare(rhs) == 0); - } - bool operator==(const int& rhs) const - { - // quiets compiler warnings - bool is_signed = std::numeric_limits::is_signed; - if(!is_signed) - { - if(is_neg_inf(value_) && rhs == 0) - { - return false; - } - } - return (compare(rhs) == 0); - } - bool operator!=(const int_adapter& rhs) const - { - return (compare(rhs) != 0); - } - bool operator!=(const int& rhs) const - { - // quiets compiler warnings - bool is_signed = std::numeric_limits::is_signed; - if(!is_signed) - { - if(is_neg_inf(value_) && rhs == 0) - { - return true; - } - } - return (compare(rhs) != 0); - } - bool operator<(const int_adapter& rhs) const - { - return (compare(rhs) == -1); - } - bool operator<(const int& rhs) const - { - // quiets compiler warnings - bool is_signed = std::numeric_limits::is_signed; - if(!is_signed) - { - if(is_neg_inf(value_) && rhs == 0) - { - return true; - } - } - return (compare(rhs) == -1); - } - bool operator>(const int_adapter& rhs) const - { - return (compare(rhs) == 1); - } - int_type as_number() const - { - return value_; - } - //! Returns either special value type or is_not_special - special_values as_special() const - { - return int_adapter::to_special(value_); - } - //creates nasty ambiguities -// operator int_type() const -// { -// return value_; -// } - - /*! Operator allows for adding dissimilar int_adapter types. - * The return type will match that of the the calling object's type */ - template - inline - int_adapter operator+(const int_adapter& rhs) const - { - if(is_special() || rhs.is_special()) - { - if (is_nan() || rhs.is_nan()) - { - return int_adapter::not_a_number(); - } - if((is_pos_inf(value_) && rhs.is_neg_inf(rhs.as_number())) || - (is_neg_inf(value_) && rhs.is_pos_inf(rhs.as_number())) ) - { - return int_adapter::not_a_number(); - } - if (is_infinity()) - { - return *this; - } - if (rhs.is_pos_inf(rhs.as_number())) - { - return int_adapter::pos_infinity(); - } - if (rhs.is_neg_inf(rhs.as_number())) - { - return int_adapter::neg_infinity(); - } - } - return int_adapter(value_ + rhs.as_number()); - } - - int_adapter operator+(const int_type rhs) const - { - if(is_special()) - { - if (is_nan()) - { - return int_adapter(not_a_number()); - } - if (is_infinity()) - { - return *this; - } - } - return int_adapter(value_ + rhs); - } - - /*! Operator allows for subtracting dissimilar int_adapter types. - * The return type will match that of the the calling object's type */ - template - inline - int_adapter operator-(const int_adapter& rhs)const - { - if(is_special() || rhs.is_special()) - { - if (is_nan() || rhs.is_nan()) - { - return int_adapter::not_a_number(); - } - if((is_pos_inf(value_) && rhs.is_pos_inf(rhs.as_number())) || - (is_neg_inf(value_) && rhs.is_neg_inf(rhs.as_number())) ) - { - return int_adapter::not_a_number(); - } - if (is_infinity()) - { - return *this; - } - if (rhs.is_pos_inf(rhs.as_number())) - { - return int_adapter::neg_infinity(); - } - if (rhs.is_neg_inf(rhs.as_number())) - { - return int_adapter::pos_infinity(); - } - } - return int_adapter(value_ - rhs.as_number()); - } - int_adapter operator-(const int_type rhs) const - { - if(is_special()) - { - if (is_nan()) - { - return int_adapter(not_a_number()); - } - if (is_infinity()) - { - return *this; - } - } - return int_adapter(value_ - rhs); - } - - // should templatize this to be consistant with op +- - int_adapter operator*(const int_adapter& rhs)const - { - if(this->is_special() || rhs.is_special()) - { - return mult_div_specials(rhs); - } - return int_adapter(value_ * rhs.value_); - } - /*! Provided for cases when automatic conversion from - * 'int' to 'int_adapter' causes incorrect results. */ - int_adapter operator*(const int rhs) const - { - if(is_special()) - { - return mult_div_specials(rhs); - } - return int_adapter(value_ * rhs); - } - - // should templatize this to be consistant with op +- - int_adapter operator/(const int_adapter& rhs)const - { - if(this->is_special() || rhs.is_special()) - { - if(is_infinity() && rhs.is_infinity()) - { - return int_adapter(not_a_number()); - } - if(rhs != 0) - { - return mult_div_specials(rhs); - } - else { // let divide by zero blow itself up - return int_adapter(value_ / rhs.value_); - } - } - return int_adapter(value_ / rhs.value_); - } - /*! Provided for cases when automatic conversion from - * 'int' to 'int_adapter' causes incorrect results. */ - int_adapter operator/(const int rhs) const - { - if(is_special() && rhs != 0) - { - return mult_div_specials(rhs); - } - return int_adapter(value_ / rhs); - } - - // should templatize this to be consistant with op +- - int_adapter operator%(const int_adapter& rhs)const - { - if(this->is_special() || rhs.is_special()) - { - if(is_infinity() && rhs.is_infinity()) - { - return int_adapter(not_a_number()); - } - if(rhs != 0) - { - return mult_div_specials(rhs); - } - else { // let divide by zero blow itself up - return int_adapter(value_ % rhs.value_); - } - } - return int_adapter(value_ % rhs.value_); - } - /*! Provided for cases when automatic conversion from - * 'int' to 'int_adapter' causes incorrect results. */ - int_adapter operator%(const int rhs) const - { - if(is_special() && rhs != 0) - { - return mult_div_specials(rhs); - } - return int_adapter(value_ % rhs); - } -private: - int_type value_; - - //! returns -1, 0, 1, or 2 if 'this' is <, ==, >, or 'nan comparison' rhs - int compare(const int_adapter& rhs)const - { - if(this->is_special() || rhs.is_special()) - { - if(this->is_nan() || rhs.is_nan()) { - if(this->is_nan() && rhs.is_nan()) { - return 0; // equal - } - else { - return 2; // nan - } - } - if((is_neg_inf(value_) && !is_neg_inf(rhs.value_)) || - (is_pos_inf(rhs.value_) && !is_pos_inf(value_)) ) - { - return -1; // less than - } - if((is_pos_inf(value_) && !is_pos_inf(rhs.value_)) || - (is_neg_inf(rhs.value_) && !is_neg_inf(value_)) ) { - return 1; // greater than - } - } - if(value_ < rhs.value_) return -1; - if(value_ > rhs.value_) return 1; - // implied-> if(value_ == rhs.value_) - return 0; - } - /* When multiplying and dividing with at least 1 special value - * very simmilar rules apply. In those cases where the rules - * are different, they are handled in the respective operator - * function. */ - //! Assumes at least 'this' or 'rhs' is a special value - int_adapter mult_div_specials(const int_adapter& rhs)const - { - int min_value; - // quiets compiler warnings - bool is_signed = std::numeric_limits::is_signed; - if(is_signed) { - min_value = 0; - } - else { - min_value = 1;// there is no zero with unsigned - } - if(this->is_nan() || rhs.is_nan()) { - return int_adapter(not_a_number()); - } - if((*this > 0 && rhs > 0) || (*this < min_value && rhs < min_value)) { - return int_adapter(pos_infinity()); - } - if((*this > 0 && rhs < min_value) || (*this < min_value && rhs > 0)) { - return int_adapter(neg_infinity()); - } - //implied -> if(this->value_ == 0 || rhs.value_ == 0) - return int_adapter(not_a_number()); - } - /* Overloaded function necessary because of special - * situation where int_adapter is instantiated with - * 'unsigned' and func is called with negative int. - * It would produce incorrect results since 'unsigned' - * wraps around when initialized with a negative value */ - //! Assumes 'this' is a special value - int_adapter mult_div_specials(const int& rhs) const - { - int min_value; - // quiets compiler warnings - bool is_signed = std::numeric_limits::is_signed; - if(is_signed) { - min_value = 0; - } - else { - min_value = 1;// there is no zero with unsigned - } - if(this->is_nan()) { - return int_adapter(not_a_number()); - } - if((*this > 0 && rhs > 0) || (*this < min_value && rhs < 0)) { - return int_adapter(pos_infinity()); - } - if((*this > 0 && rhs < 0) || (*this < min_value && rhs > 0)) { - return int_adapter(neg_infinity()); - } - //implied -> if(this->value_ == 0 || rhs.value_ == 0) - return int_adapter(not_a_number()); - } - -}; - -#ifndef BOOST_DATE_TIME_NO_LOCALE - /*! Expected output is either a numeric representation - * or a special values representation.
- * Ex. "12", "+infinity", "not-a-number", etc. */ - //template, typename int_type> - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const int_adapter& ia) - { - if(ia.is_special()) { - // switch copied from date_names_put.hpp - switch(ia.as_special()) - { - case not_a_date_time: - os << "not-a-number"; - break; - case pos_infin: - os << "+infinity"; - break; - case neg_infin: - os << "-infinity"; - break; - default: - os << ""; - } - } - else { - os << ia.as_number(); - } - return os; - } -#endif - - -} } //namespace date_time - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/iso_format.hpp b/3rdParty/Boost/boost/date_time/iso_format.hpp deleted file mode 100644 index 8262fa2..0000000 --- a/3rdParty/Boost/boost/date_time/iso_format.hpp +++ /dev/null @@ -1,303 +0,0 @@ -#ifndef ISO_FORMAT_HPP___ -#define ISO_FORMAT_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/parse_format_base.hpp" - -namespace boost { -namespace date_time { - -//! Class to provide common iso formatting spec -template -class iso_format_base { -public: - //! Describe month format -- its an integer in iso format - static month_format_spec month_format() - { - return month_as_integer; - } - - //! String used printed is date is invalid - static const charT* not_a_date() - { - return "not-a-date-time"; - } - //! String used to for positive infinity value - static const charT* pos_infinity() - { - return "+infinity"; - } - //! String used to for positive infinity value - static const charT* neg_infinity() - { - return "-infinity"; - } - - //! ISO char for a year -- used in durations - static charT year_sep_char() - { - return 'Y'; - } - //! ISO char for a month - static charT month_sep_char() - { - return '-'; - } - //! ISO char for a day - static charT day_sep_char() - { - return '-'; - } - //! char for minute - static charT hour_sep_char() - { - return ':'; - } - //! char for minute - static charT minute_sep_char() - { - return ':'; - } - //! char for second - static charT second_sep_char() - { - return ':'; - } - //! ISO char for a period - static charT period_start_char() - { - return 'P'; - } - //! Used in time in mixed strings to set start of time - static charT time_start_char() - { - return 'T'; - } - - //! Used in mixed strings to identify start of a week number - static charT week_start_char() - { - return 'W'; - } - - //! Separators for periods - static charT period_sep_char() - { - return '/'; - } - //! Separator for hh:mm:ss - static charT time_sep_char() - { - return ':'; - } - //! Preferred Separator for hh:mm:ss,decimal_fraction - static charT fractional_time_sep_char() - { - return ','; - } - - static bool is_component_sep(charT sep) - { - switch(sep) { - case 'H': - case 'M': - case 'S': - case 'W': - case 'T': - case 'Y': - case 'D':return true; - default: - return false; - } - } - - static bool is_fractional_time_sep(charT sep) - { - switch(sep) { - case ',': - case '.': return true; - default: return false; - } - } - static bool is_timezone_sep(charT sep) - { - switch(sep) { - case '+': - case '-': return true; - default: return false; - } - } - static charT element_sep_char() - { - return '-'; - } - -}; - -#ifndef BOOST_NO_STD_WSTRING - -//! Class to provide common iso formatting spec -template<> -class iso_format_base { -public: - //! Describe month format -- its an integer in iso format - static month_format_spec month_format() - { - return month_as_integer; - } - - //! String used printed is date is invalid - static const wchar_t* not_a_date() - { - return L"not-a-date-time"; - } - //! String used to for positive infinity value - static const wchar_t* pos_infinity() - { - return L"+infinity"; - } - //! String used to for positive infinity value - static const wchar_t* neg_infinity() - { - return L"-infinity"; - } - - //! ISO char for a year -- used in durations - static wchar_t year_sep_char() - { - return 'Y'; - } - //! ISO char for a month - static wchar_t month_sep_char() - { - return '-'; - } - //! ISO char for a day - static wchar_t day_sep_char() - { - return '-'; - } - //! char for minute - static wchar_t hour_sep_char() - { - return ':'; - } - //! char for minute - static wchar_t minute_sep_char() - { - return ':'; - } - //! char for second - static wchar_t second_sep_char() - { - return ':'; - } - //! ISO char for a period - static wchar_t period_start_char() - { - return 'P'; - } - //! Used in time in mixed strings to set start of time - static wchar_t time_start_char() - { - return 'T'; - } - - //! Used in mixed strings to identify start of a week number - static wchar_t week_start_char() - { - return 'W'; - } - - //! Separators for periods - static wchar_t period_sep_char() - { - return '/'; - } - //! Separator for hh:mm:ss - static wchar_t time_sep_char() - { - return ':'; - } - //! Preferred Separator for hh:mm:ss,decimal_fraction - static wchar_t fractional_time_sep_char() - { - return ','; - } - - static bool is_component_sep(wchar_t sep) - { - switch(sep) { - case 'H': - case 'M': - case 'S': - case 'W': - case 'T': - case 'Y': - case 'D':return true; - default: - return false; - } - } - - static bool is_fractional_time_sep(wchar_t sep) - { - switch(sep) { - case ',': - case '.': return true; - default: return false; - } - } - static bool is_timezone_sep(wchar_t sep) - { - switch(sep) { - case '+': - case '-': return true; - default: return false; - } - } - static wchar_t element_sep_char() - { - return '-'; - } - -}; - -#endif // BOOST_NO_STD_WSTRING - -//! Format description for iso normal YYYYMMDD -template -class iso_format : public iso_format_base { -public: - //! The ios standard format doesn't use char separators - static bool has_date_sep_chars() - { - return false; - } -}; - -//! Extended format uses seperators YYYY-MM-DD -template -class iso_extended_format : public iso_format_base { -public: - //! Extended format needs char separators - static bool has_date_sep_chars() - { - return true; - } - -}; - -} } //namespace date_time - - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/locale_config.hpp b/3rdParty/Boost/boost/date_time/locale_config.hpp deleted file mode 100644 index d01e008..0000000 --- a/3rdParty/Boost/boost/date_time/locale_config.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef DATE_TIME_LOCALE_CONFIG_HPP___ -#define DATE_TIME_LOCALE_CONFIG_HPP___ - -/* Copyright (c) 2002-2006 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -// This file configures whether the library will support locales and hence -// iostream based i/o. Even if a compiler has some support for locales, -// any failure to be compatible gets the compiler on the exclusion list. -// -// At the moment this is defined for MSVC 6 and any compiler that -// defines BOOST_NO_STD_LOCALE (gcc 2.95.x) - -#include "boost/config.hpp" //sets BOOST_NO_STD_LOCALE -#include "boost/detail/workaround.hpp" - -//This file basically becomes a noop if locales are not properly supported -#if (defined(BOOST_NO_STD_LOCALE) \ - || (BOOST_WORKAROUND( BOOST_MSVC, < 1300)) \ - || (BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x581 )) ) ) -#define BOOST_DATE_TIME_NO_LOCALE -#endif - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/microsec_time_clock.hpp b/3rdParty/Boost/boost/date_time/microsec_time_clock.hpp deleted file mode 100644 index 363af5e..0000000 --- a/3rdParty/Boost/boost/date_time/microsec_time_clock.hpp +++ /dev/null @@ -1,127 +0,0 @@ -#ifndef DATE_TIME_HIGHRES_TIME_CLOCK_HPP___ -#define DATE_TIME_HIGHRES_TIME_CLOCK_HPP___ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-23 06:13:35 -0500 (Sun, 23 Nov 2008) $ - */ - - -/*! @file microsec_time_clock.hpp - This file contains a high resolution time clock implementation. -*/ - -#include -#include -#include -#include -#include -#include -#include - -#ifdef BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK - -namespace boost { -namespace date_time { - - //! A clock providing microsecond level resolution - /*! A high precision clock that measures the local time - * at a resolution up to microseconds and adjusts to the - * resolution of the time system. For example, for the - * a library configuration with nano second resolution, - * the last 3 places of the fractional seconds will always - * be 000 since there are 1000 nano-seconds in a micro second. - */ - template - class microsec_clock - { - private: - //! Type for the function used to convert time_t to tm - typedef std::tm* (*time_converter)(const std::time_t*, std::tm*); - - public: - typedef typename time_type::date_type date_type; - typedef typename time_type::time_duration_type time_duration_type; - typedef typename time_duration_type::rep_type resolution_traits_type; - - //! return a local time object for the given zone, based on computer clock - //JKG -- looks like we could rewrite this against universal_time - template - static time_type local_time(shared_ptr tz_ptr) - { - typedef typename time_type::utc_time_type utc_time_type; - typedef second_clock second_clock; - // we'll need to know the utc_offset this machine has - // in order to get a utc_time_type set to utc - utc_time_type utc_time = second_clock::universal_time(); - time_duration_type utc_offset = second_clock::local_time() - utc_time; - // use micro clock to get a local time with sub seconds - // and adjust it to get a true utc time reading with sub seconds - utc_time = microsec_clock::local_time() - utc_offset; - return time_type(utc_time, tz_ptr); - } - - //! Returns the local time based on computer clock settings - static time_type local_time() - { - return create_time(&c_time::localtime); - } - - //! Returns the UTC time based on computer settings - static time_type universal_time() - { - return create_time(&c_time::gmtime); - } - - private: - static time_type create_time(time_converter converter) - { -#ifdef BOOST_HAS_GETTIMEOFDAY - timeval tv; - gettimeofday(&tv, 0); //gettimeofday does not support TZ adjust on Linux. - std::time_t t = tv.tv_sec; - boost::uint32_t sub_sec = tv.tv_usec; -#elif defined(BOOST_HAS_FTIME) - winapi::file_time ft; - winapi::get_system_time_as_file_time(ft); - uint64_t micros = winapi::file_time_to_microseconds(ft); // it will not wrap, since ft is the current time - // and cannot be before 1970-Jan-01 - std::time_t t = static_cast(micros / 1000000UL); // seconds since epoch - // microseconds -- static casts supress warnings - boost::uint32_t sub_sec = static_cast(micros % 1000000UL); -#else -#error Internal Boost.DateTime error: BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK is defined, however neither gettimeofday nor FILETIME support is detected. -#endif - - std::tm curr; - std::tm* curr_ptr = converter(&t, &curr); - date_type d(curr_ptr->tm_year + 1900, - curr_ptr->tm_mon + 1, - curr_ptr->tm_mday); - - //The following line will adjust the fractional second tick in terms - //of the current time system. For example, if the time system - //doesn't support fractional seconds then res_adjust returns 0 - //and all the fractional seconds return 0. - int adjust = static_cast< int >(resolution_traits_type::res_adjust() / 1000000); - - time_duration_type td(curr_ptr->tm_hour, - curr_ptr->tm_min, - curr_ptr->tm_sec, - sub_sec * adjust); - - return time_type(d,td); - } - }; - - -} } //namespace date_time - -#endif //BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/parse_format_base.hpp b/3rdParty/Boost/boost/date_time/parse_format_base.hpp deleted file mode 100644 index b17a5c8..0000000 --- a/3rdParty/Boost/boost/date_time/parse_format_base.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef DATE_TIME_PARSE_FORMAT_BASE__ -#define DATE_TIME_PARSE_FORMAT_BASE__ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -namespace boost { -namespace date_time { - - //! Enum for distinguishing parsing and formatting options - enum month_format_spec {month_as_integer, month_as_short_string, - month_as_long_string}; - - //! Enum for distinguishing the order of Month, Day, & Year. - /*! Enum for distinguishing the order in which Month, Day, & Year - * will appear in a date string */ - enum ymd_order_spec {ymd_order_iso, //order is year-month-day - ymd_order_dmy, //day-month-year - ymd_order_us}; //order is month-day-year - - -} }//namespace date_time - -#endif diff --git a/3rdParty/Boost/boost/date_time/period.hpp b/3rdParty/Boost/boost/date_time/period.hpp deleted file mode 100644 index c67bc36..0000000 --- a/3rdParty/Boost/boost/date_time/period.hpp +++ /dev/null @@ -1,377 +0,0 @@ -#ifndef DATE_TIME_PERIOD_HPP___ -#define DATE_TIME_PERIOD_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -/*! \file period.hpp - This file contain the implementation of the period abstraction. This is - basically the same idea as a range. Although this class is intended for - use in the time library, it is pretty close to general enough for other - numeric uses. - -*/ - -#include "boost/operators.hpp" - - -namespace boost { -namespace date_time { - //!Provides generalized period type useful in date-time systems - /*!This template uses a class to represent a time point within the period - and another class to represent a duration. As a result, this class is - not appropriate for use when the number and duration representation - are the same (eg: in the regular number domain). - - A period can be specified by providing either the begining point and - a duration or the begining point and the end point( end is NOT part - of the period but 1 unit past it. A period will be "invalid" if either - end_point <= begin_point or the given duration is <= 0. Any valid period - will return false for is_null(). - - Zero length periods are also considered invalid. Zero length periods are - periods where the begining and end points are the same, or, the given - duration is zero. For a zero length period, the last point will be one - unit less than the begining point. - - In the case that the begin and last are the same, the period has a - length of one unit. - - The best way to handle periods is usually to provide a begining point and - a duration. So, day1 + 7 days is a week period which includes all of the - first day and 6 more days (eg: Sun to Sat). - - */ - template - class period : private - boost::less_than_comparable - , boost::equality_comparable< period - > > - { - public: - typedef point_rep point_type; - typedef duration_rep duration_type; - - period(point_rep first_point, point_rep end_point); - period(point_rep first_point, duration_rep len); - point_rep begin() const; - point_rep end() const; - point_rep last() const; - duration_rep length() const; - bool is_null() const; - bool operator==(const period& rhs) const; - bool operator<(const period& rhs) const; - void shift(const duration_rep& d); - void expand(const duration_rep& d); - bool contains(const point_rep& point) const; - bool contains(const period& other) const; - bool intersects(const period& other) const; - bool is_adjacent(const period& other) const; - bool is_before(const point_rep& point) const; - bool is_after(const point_rep& point) const; - period intersection(const period& other) const; - period merge(const period& other) const; - period span(const period& other) const; - private: - point_rep begin_; - point_rep last_; - }; - - //! create a period from begin to last eg: [begin,end) - /*! If end <= begin then the period will be invalid - */ - template - inline - period::period(point_rep first_point, - point_rep end_point) : - begin_(first_point), - last_(end_point - duration_rep::unit()) - {} - - //! create a period as [begin, begin+len) - /*! If len is <= 0 then the period will be invalid - */ - template - inline - period::period(point_rep first_point, duration_rep len) : - begin_(first_point), - last_(first_point + len-duration_rep::unit()) - { } - - - //! Return the first element in the period - template - inline - point_rep period::begin() const - { - return begin_; - } - - //! Return one past the last element - template - inline - point_rep period::end() const - { - return last_ + duration_rep::unit(); - } - - //! Return the last item in the period - template - inline - point_rep period::last() const - { - return last_; - } - - //! True if period is ill formed (length is zero or less) - template - inline - bool period::is_null() const - { - return end() <= begin_; - } - - //! Return the length of the period - template - inline - duration_rep period::length() const - { - if(last_ < begin_){ // invalid period - return last_+duration_rep::unit() - begin_; - } - else{ - return end() - begin_; // normal case - } - } - - //! Equality operator - template - inline - bool period::operator==(const period& rhs) const - { - return ((begin_ == rhs.begin_) && - (last_ == rhs.last_)); - } - - //! Strict as defined by rhs.last <= lhs.last - template - inline - bool period::operator<(const period& rhs) const - { - return (last_ < rhs.begin_); - } - - - //! Shift the start and end by the specified amount - template - inline - void period::shift(const duration_rep& d) - { - begin_ = begin_ + d; - last_ = last_ + d; - } - - /** Expands the size of the period by the duration on both ends. - * - *So before expand - *@code - * - * [-------] - * ^ ^ ^ ^ ^ ^ ^ - * 1 2 3 4 5 6 7 - * - *@endcode - * After expand(2) - *@code - * - * [----------------------] - * ^ ^ ^ ^ ^ ^ ^ - * 1 2 3 4 5 6 7 - * - *@endcode - */ - template - inline - void period::expand(const duration_rep& d) - { - begin_ = begin_ - d; - last_ = last_ + d; - } - - //! True if the point is inside the period, zero length periods contain no points - template - inline - bool period::contains(const point_rep& point) const - { - return ((point >= begin_) && - (point <= last_)); - } - - - //! True if this period fully contains (or equals) the other period - template - inline - bool period::contains(const period& other) const - { - return ((begin_ <= other.begin_) && (last_ >= other.last_)); - } - - - //! True if periods are next to each other without a gap. - /* In the example below, p1 and p2 are adjacent, but p3 is not adjacent - * with either of p1 or p2. - *@code - * [-p1-) - * [-p2-) - * [-p3-) - *@endcode - */ - template - inline - bool - period::is_adjacent(const period& other) const - { - return (other.begin() == end() || - begin_ == other.end()); - } - - - //! True if all of the period is prior or t < start - /* In the example below only point 1 would evaluate to true. - *@code - * [---------]) - * ^ ^ ^ ^ ^ - * 1 2 3 4 5 - * - *@endcode - */ - template - inline - bool - period::is_after(const point_rep& t) const - { - if (is_null()) - { - return false; //null period isn't after - } - - return t < begin_; - } - - //! True if all of the period is prior to the passed point or end <= t - /* In the example below points 4 and 5 return true. - *@code - * [---------]) - * ^ ^ ^ ^ ^ - * 1 2 3 4 5 - * - *@endcode - */ - template - inline - bool - period::is_before(const point_rep& t) const - { - if (is_null()) - { - return false; //null period isn't before anything - } - - return last_ < t; - } - - - //! True if the periods overlap in any way - /* In the example below p1 intersects with p2, p4, and p6. - *@code - * [---p1---) - * [---p2---) - * [---p3---) - * [---p4---) - * [-p5-) - * [-p6-) - *@endcode - */ - template - inline - bool period::intersects(const period& other) const - { - return ( contains(other.begin_) || - other.contains(begin_) || - ((other.begin_ < begin_) && (other.last_ >= begin_))); - } - - //! Returns the period of intersection or invalid range no intersection - template - inline - period - period::intersection(const period& other) const - { - if (begin_ > other.begin_) { - if (last_ <= other.last_) { //case2 - return *this; - } - //case 1 - return period(begin_, other.end()); - } - else { - if (last_ <= other.last_) { //case3 - return period(other.begin_, this->end()); - } - //case4 - return other; - } - //unreachable - } - - //! Returns the union of intersecting periods -- or null period - /*! - */ - template - inline - period - period::merge(const period& other) const - { - if (this->intersects(other)) { - if (begin_ < other.begin_) { - return period(begin_, last_ > other.last_ ? this->end() : other.end()); - } - - return period(other.begin_, last_ > other.last_ ? this->end() : other.end()); - - } - return period(begin_,begin_); // no intersect return null - } - - //! Combine two periods with earliest start and latest end. - /*! Combines two periods and any gap between them such that - * start = min(p1.start, p2.start) - * end = max(p1.end , p2.end) - *@code - * [---p1---) - * [---p2---) - * result: - * [-----------p3----------) - *@endcode - */ - template - inline - period - period::span(const period& other) const - { - point_rep start((begin_ < other.begin_) ? begin() : other.begin()); - point_rep newend((last_ < other.last_) ? other.end() : this->end()); - return period(start, newend); - } - - -} } //namespace date_time - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/period_formatter.hpp b/3rdParty/Boost/boost/date_time/period_formatter.hpp deleted file mode 100644 index 08082e1..0000000 --- a/3rdParty/Boost/boost/date_time/period_formatter.hpp +++ /dev/null @@ -1,196 +0,0 @@ - -#ifndef DATETIME_PERIOD_FORMATTER_HPP___ -#define DATETIME_PERIOD_FORMATTER_HPP___ - -/* Copyright (c) 2002-2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - - - -namespace boost { namespace date_time { - - - //! Not a facet, but a class used to specify and control period formats - /*! Provides settings for the following: - * - period_separator -- default '/' - * - period_open_start_delimeter -- default '[' - * - period_open_range_end_delimeter -- default ')' - * - period_closed_range_end_delimeter -- default ']' - * - display_as_open_range, display_as_closed_range -- default closed_range - * - * Thus the default formatting for a period is as follows: - *@code - * [period.start()/period.last()] - *@endcode - * So for a typical date_period this would be - *@code - * [2004-Jan-04/2004-Feb-01] - *@endcode - * where the date formatting is controlled by the date facet - */ - template > > - class period_formatter { - public: - typedef std::basic_string string_type; - typedef CharT char_type; - typedef typename std::basic_string::const_iterator const_itr_type; - typedef std::vector > collection_type; - - static const char_type default_period_separator[2]; - static const char_type default_period_start_delimeter[2]; - static const char_type default_period_open_range_end_delimeter[2]; - static const char_type default_period_closed_range_end_delimeter[2]; - - enum range_display_options { AS_OPEN_RANGE, AS_CLOSED_RANGE }; - - //! Constructor that sets up period formatter options -- default should suffice most cases. - period_formatter(range_display_options range_option_in = AS_CLOSED_RANGE, - const char_type* const period_separator = default_period_separator, - const char_type* const period_start_delimeter = default_period_start_delimeter, - const char_type* const period_open_range_end_delimeter = default_period_open_range_end_delimeter, - const char_type* const period_closed_range_end_delimeter = default_period_closed_range_end_delimeter) : - m_range_option(range_option_in), - m_period_separator(period_separator), - m_period_start_delimeter(period_start_delimeter), - m_open_range_end_delimeter(period_open_range_end_delimeter), - m_closed_range_end_delimeter(period_closed_range_end_delimeter) - {} - - //! Puts the characters between period elements into stream -- default is / - OutItrT put_period_separator(OutItrT& oitr) const - { - const_itr_type ci = m_period_separator.begin(); - while (ci != m_period_separator.end()) { - *oitr = *ci; - ci++; - } - return oitr; - } - - //! Puts the period start characters into stream -- default is [ - OutItrT put_period_start_delimeter(OutItrT& oitr) const - { - const_itr_type ci = m_period_start_delimeter.begin(); - while (ci != m_period_start_delimeter.end()) { - *oitr = *ci; - ci++; - } - return oitr; - } - - //! Puts the period end characters into stream as controled by open/closed range setting. - OutItrT put_period_end_delimeter(OutItrT& oitr) const - { - - const_itr_type ci, end; - if (m_range_option == AS_OPEN_RANGE) { - ci = m_open_range_end_delimeter.begin(); - end = m_open_range_end_delimeter.end(); - } - else { - ci = m_closed_range_end_delimeter.begin(); - end = m_closed_range_end_delimeter.end(); - } - while (ci != end) { - *oitr = *ci; - ci++; - } - return oitr; - } - - range_display_options range_option() const - { - return m_range_option; - } - - //! Reset the range_option control - void - range_option(range_display_options option) const - { - m_range_option = option; - } - void delimiter_strings(const string_type& separator, - const string_type& start_delim, - const string_type& open_end_delim, - const string_type& closed_end_delim) - { - m_period_separator; - m_period_start_delimeter; - m_open_range_end_delimeter; - m_closed_range_end_delimeter; - } - - - //! Generic code to output a period -- no matter the period type. - /*! This generic code will output any period using a facet to - * to output the 'elements'. For example, in the case of a date_period - * the elements will be instances of a date which will be formatted - * according the to setup in the passed facet parameter. - * - * The steps for formatting a period are always the same: - * - put the start delimiter - * - put start element - * - put the separator - * - put either last or end element depending on range settings - * - put end delimeter depending on range settings - * - * Thus for a typical date period the result might look like this: - *@code - * - * [March 01, 2004/June 07, 2004] <-- closed range - * [March 01, 2004/June 08, 2004) <-- open range - * - *@endcode - */ - template - OutItrT put_period(OutItrT next, - std::ios_base& a_ios, - char_type a_fill, - const period_type& p, - const facet_type& facet) const { - put_period_start_delimeter(next); - next = facet.put(next, a_ios, a_fill, p.begin()); - put_period_separator(next); - if (m_range_option == AS_CLOSED_RANGE) { - facet.put(next, a_ios, a_fill, p.last()); - } - else { - facet.put(next, a_ios, a_fill, p.end()); - } - put_period_end_delimeter(next); - return next; - } - - - private: - range_display_options m_range_option; - string_type m_period_separator; - string_type m_period_start_delimeter; - string_type m_open_range_end_delimeter; - string_type m_closed_range_end_delimeter; - }; - - template - const typename period_formatter::char_type - period_formatter::default_period_separator[2] = {'/'}; - - template - const typename period_formatter::char_type - period_formatter::default_period_start_delimeter[2] = {'['}; - - template - const typename period_formatter::char_type - period_formatter::default_period_open_range_end_delimeter[2] = {')'}; - - template - const typename period_formatter::char_type - period_formatter::default_period_closed_range_end_delimeter[2] = {']'}; - - } } //namespace boost::date_time - -#endif diff --git a/3rdParty/Boost/boost/date_time/period_parser.hpp b/3rdParty/Boost/boost/date_time/period_parser.hpp deleted file mode 100644 index 9cd57e1..0000000 --- a/3rdParty/Boost/boost/date_time/period_parser.hpp +++ /dev/null @@ -1,198 +0,0 @@ - -#ifndef DATETIME_PERIOD_PARSER_HPP___ -#define DATETIME_PERIOD_PARSER_HPP___ - -/* Copyright (c) 2002-2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-13 15:10:23 -0500 (Thu, 13 Nov 2008) $ - */ - -#include -#include -#include - - -namespace boost { namespace date_time { - - - //! Not a facet, but a class used to specify and control period parsing - /*! Provides settings for the following: - * - period_separator -- default '/' - * - period_open_start_delimeter -- default '[' - * - period_open_range_end_delimeter -- default ')' - * - period_closed_range_end_delimeter -- default ']' - * - display_as_open_range, display_as_closed_range -- default closed_range - * - * For a typical date_period, the contents of the input stream would be - *@code - * [2004-Jan-04/2004-Feb-01] - *@endcode - * where the date format is controlled by the date facet - */ - template - class period_parser { - public: - typedef std::basic_string string_type; - typedef CharT char_type; - //typedef typename std::basic_string::const_iterator const_itr_type; - typedef std::istreambuf_iterator stream_itr_type; - typedef string_parse_tree parse_tree_type; - typedef typename parse_tree_type::parse_match_result_type match_results; - typedef std::vector > collection_type; - - static const char_type default_period_separator[2]; - static const char_type default_period_start_delimeter[2]; - static const char_type default_period_open_range_end_delimeter[2]; - static const char_type default_period_closed_range_end_delimeter[2]; - - enum period_range_option { AS_OPEN_RANGE, AS_CLOSED_RANGE }; - - //! Constructor that sets up period parser options - period_parser(period_range_option range_opt = AS_CLOSED_RANGE, - const char_type* const period_separator = default_period_separator, - const char_type* const period_start_delimeter = default_period_start_delimeter, - const char_type* const period_open_range_end_delimeter = default_period_open_range_end_delimeter, - const char_type* const period_closed_range_end_delimeter = default_period_closed_range_end_delimeter) - : m_range_option(range_opt) - { - delimiters.push_back(string_type(period_separator)); - delimiters.push_back(string_type(period_start_delimeter)); - delimiters.push_back(string_type(period_open_range_end_delimeter)); - delimiters.push_back(string_type(period_closed_range_end_delimeter)); - } - - period_parser(const period_parser& p_parser) - { - this->delimiters = p_parser.delimiters; - this->m_range_option = p_parser.m_range_option; - } - - period_range_option range_option() const - { - return m_range_option; - } - void range_option(period_range_option option) - { - m_range_option = option; - } - collection_type delimiter_strings() const - { - return delimiters; - } - void delimiter_strings(const string_type& separator, - const string_type& start_delim, - const string_type& open_end_delim, - const string_type& closed_end_delim) - { - delimiters.clear(); - delimiters.push_back(separator); - delimiters.push_back(start_delim); - delimiters.push_back(open_end_delim); - delimiters.push_back(closed_end_delim); - } - - //! Generic code to parse a period -- no matter the period type. - /*! This generic code will parse any period using a facet to - * to get the 'elements'. For example, in the case of a date_period - * the elements will be instances of a date which will be parsed - * according the to setup in the passed facet parameter. - * - * The steps for parsing a period are always the same: - * - consume the start delimiter - * - get start element - * - consume the separator - * - get either last or end element depending on range settings - * - consume the end delimeter depending on range settings - * - * Thus for a typical date period the contents of the input stream - * might look like this: - *@code - * - * [March 01, 2004/June 07, 2004] <-- closed range - * [March 01, 2004/June 08, 2004) <-- open range - * - *@endcode - */ - template - period_type get_period(stream_itr_type& sitr, - stream_itr_type& stream_end, - std::ios_base& a_ios, - const period_type& /* p */, - const duration_type& dur_unit, - const facet_type& facet) const - { - // skip leading whitespace - while(std::isspace(*sitr) && sitr != stream_end) { ++sitr; } - - typedef typename period_type::point_type point_type; - point_type p1(not_a_date_time), p2(not_a_date_time); - - - consume_delim(sitr, stream_end, delimiters[START]); // start delim - facet.get(sitr, stream_end, a_ios, p1); // first point - consume_delim(sitr, stream_end, delimiters[SEPARATOR]); // separator - facet.get(sitr, stream_end, a_ios, p2); // second point - - // period construction parameters are always open range [begin, end) - if (m_range_option == AS_CLOSED_RANGE) { - consume_delim(sitr, stream_end, delimiters[CLOSED_END]);// end delim - // add 1 duration unit to p2 to make range open - p2 += dur_unit; - } - else { - consume_delim(sitr, stream_end, delimiters[OPEN_END]); // end delim - } - - return period_type(p1, p2); - } - - private: - collection_type delimiters; - period_range_option m_range_option; - - enum delim_ids { SEPARATOR, START, OPEN_END, CLOSED_END }; - - //! throws ios_base::failure if delimiter and parsed data do not match - void consume_delim(stream_itr_type& sitr, - stream_itr_type& stream_end, - const string_type& delim) const - { - /* string_parse_tree will not parse a string of punctuation characters - * without knowing exactly how many characters to process - * Ex [2000. Will not parse out the '[' string without knowing - * to process only one character. By using length of the delimiter - * string we can safely iterate past it. */ - string_type s; - for(unsigned int i = 0; i < delim.length() && sitr != stream_end; ++i) { - s += *sitr; - ++sitr; - } - if(s != delim) { - boost::throw_exception(std::ios_base::failure("Parse failed. Expected '" - + convert_string_type(delim) + "' but found '" + convert_string_type(s) + "'")); - } - } - }; - - template - const typename period_parser::char_type - period_parser::default_period_separator[2] = {'/'}; - - template - const typename period_parser::char_type - period_parser::default_period_start_delimeter[2] = {'['}; - - template - const typename period_parser::char_type - period_parser::default_period_open_range_end_delimeter[2] = {')'}; - - template - const typename period_parser::char_type - period_parser::default_period_closed_range_end_delimeter[2] = {']'}; - - } } //namespace boost::date_time - -#endif // DATETIME_PERIOD_PARSER_HPP___ diff --git a/3rdParty/Boost/boost/date_time/posix_time/conversion.hpp b/3rdParty/Boost/boost/date_time/posix_time/conversion.hpp deleted file mode 100644 index 82f8dca..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/conversion.hpp +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef POSIX_TIME_CONVERSION_HPP___ -#define POSIX_TIME_CONVERSION_HPP___ - -/* Copyright (c) 2002-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#include "boost/date_time/posix_time/ptime.hpp" -#include "boost/date_time/posix_time/posix_time_duration.hpp" -#include "boost/date_time/filetime_functions.hpp" -#include "boost/date_time/c_time.hpp" -#include "boost/date_time/gregorian/conversion.hpp" - -namespace boost { - -namespace posix_time { - - - //! Function that converts a time_t into a ptime. - inline - ptime from_time_t(std::time_t t) - { - ptime start(gregorian::date(1970,1,1)); - return start + seconds(static_cast(t)); - } - - //! Convert a time to a tm structure truncating any fractional seconds - inline - std::tm to_tm(const boost::posix_time::ptime& t) { - std::tm timetm = boost::gregorian::to_tm(t.date()); - boost::posix_time::time_duration td = t.time_of_day(); - timetm.tm_hour = td.hours(); - timetm.tm_min = td.minutes(); - timetm.tm_sec = td.seconds(); - timetm.tm_isdst = -1; // -1 used when dst info is unknown - return timetm; - } - //! Convert a time_duration to a tm structure truncating any fractional seconds and zeroing fields for date components - inline - std::tm to_tm(const boost::posix_time::time_duration& td) { - std::tm timetm; - timetm.tm_year = 0; - timetm.tm_mon = 0; - timetm.tm_mday = 0; - timetm.tm_wday = 0; - timetm.tm_yday = 0; - - timetm.tm_hour = date_time::absolute_value(td.hours()); - timetm.tm_min = date_time::absolute_value(td.minutes()); - timetm.tm_sec = date_time::absolute_value(td.seconds()); - timetm.tm_isdst = -1; // -1 used when dst info is unknown - return timetm; - } - - //! Convert a tm struct to a ptime ignoring is_dst flag - inline - ptime ptime_from_tm(const std::tm& timetm) { - boost::gregorian::date d = boost::gregorian::date_from_tm(timetm); - return ptime(d, time_duration(timetm.tm_hour, timetm.tm_min, timetm.tm_sec)); - } - - -#if defined(BOOST_HAS_FTIME) - - //! Function to create a time object from an initialized FILETIME struct. - /*! Function to create a time object from an initialized FILETIME struct. - * A FILETIME struct holds 100-nanosecond units (0.0000001). When - * built with microsecond resolution the FILETIME's sub second value - * will be truncated. Nanosecond resolution has no truncation. - * - * \note FILETIME is part of the Win32 API, so it is not portable to non-windows - * platforms. - * - * \note The function is templated on the FILETIME type, so that - * it can be used with both native FILETIME and the ad-hoc - * boost::date_time::winapi::file_time type. - */ - template< typename TimeT, typename FileTimeT > - inline - TimeT from_ftime(const FileTimeT& ft) - { - return boost::date_time::time_from_ftime(ft); - } - -#endif // BOOST_HAS_FTIME - -} } //namespace boost::posix_time - - - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/posix_time/date_duration_operators.hpp b/3rdParty/Boost/boost/date_time/posix_time/date_duration_operators.hpp deleted file mode 100644 index e6899ba..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/date_duration_operators.hpp +++ /dev/null @@ -1,114 +0,0 @@ -#ifndef DATE_DURATION_OPERATORS_HPP___ -#define DATE_DURATION_OPERATORS_HPP___ - -/* Copyright (c) 2004 CrystalClear Software, Inc. - * Subject to the Boost Software License, Version 1.0. - * (See accompanying file LICENSE_1_0.txt or - * http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/gregorian/greg_duration_types.hpp" -#include "boost/date_time/posix_time/ptime.hpp" - -namespace boost { -namespace posix_time { - - /*!@file date_duration_operators.hpp Operators for ptime and - * optional gregorian types. Operators use snap-to-end-of-month behavior. - * Further details on this behavior can be found in reference for - * date_time/date_duration_types.hpp and documentation for - * month and year iterators. - */ - - - /*! Adds a months object and a ptime. Result will be same - * day-of-month as ptime unless original day was the last day of month. - * see date_time::months_duration for more details */ - inline - ptime - operator+(const ptime& t, const boost::gregorian::months& m) - { - return t + m.get_offset(t.date()); - } - - /*! Adds a months object to a ptime. Result will be same - * day-of-month as ptime unless original day was the last day of month. - * see date_time::months_duration for more details */ - inline - ptime - operator+=(ptime& t, const boost::gregorian::months& m) - { - // get_neg_offset returns a negative duration, so we add - return t += m.get_offset(t.date()); - } - - /*! Subtracts a months object and a ptime. Result will be same - * day-of-month as ptime unless original day was the last day of month. - * see date_time::months_duration for more details */ - inline - ptime - operator-(const ptime& t, const boost::gregorian::months& m) - { - // get_neg_offset returns a negative duration, so we add - return t + m.get_neg_offset(t.date()); - } - - /*! Subtracts a months object from a ptime. Result will be same - * day-of-month as ptime unless original day was the last day of month. - * see date_time::months_duration for more details */ - inline - ptime - operator-=(ptime& t, const boost::gregorian::months& m) - { - return t += m.get_neg_offset(t.date()); - } - - // ptime & years - - /*! Adds a years object and a ptime. Result will be same - * month and day-of-month as ptime unless original day was the - * last day of month. see date_time::years_duration for more details */ - inline - ptime - operator+(const ptime& t, const boost::gregorian::years& y) - { - return t + y.get_offset(t.date()); - } - - /*! Adds a years object to a ptime. Result will be same - * month and day-of-month as ptime unless original day was the - * last day of month. see date_time::years_duration for more details */ - inline - ptime - operator+=(ptime& t, const boost::gregorian::years& y) - { - return t += y.get_offset(t.date()); - } - - /*! Subtracts a years object and a ptime. Result will be same - * month and day-of-month as ptime unless original day was the - * last day of month. see date_time::years_duration for more details */ - inline - ptime - operator-(const ptime& t, const boost::gregorian::years& y) - { - // get_neg_offset returns a negative duration, so we add - return t + y.get_neg_offset(t.date()); - } - - /*! Subtracts a years object from a ptime. Result will be same - * month and day-of-month as ptime unless original day was the - * last day of month. see date_time::years_duration for more details */ - inline - ptime - operator-=(ptime& t, const boost::gregorian::years& y) - { - // get_neg_offset returns a negative duration, so we add - return t += y.get_neg_offset(t.date()); - } - -}} // namespaces - -#endif // DATE_DURATION_OPERATORS_HPP___ diff --git a/3rdParty/Boost/boost/date_time/posix_time/posix_time.hpp b/3rdParty/Boost/boost/date_time/posix_time/posix_time.hpp deleted file mode 100644 index 4e9294c..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/posix_time.hpp +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef POSIX_TIME_HPP___ -#define POSIX_TIME_HPP___ - -/* Copyright (c) 2002-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ -/*!@file posix_time.hpp Global header file to get all of posix time types - */ - -#include "boost/date_time/compiler_config.hpp" -#include "boost/date_time/posix_time/ptime.hpp" -#if defined(BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES) -#include "boost/date_time/posix_time/date_duration_operators.hpp" -#endif - -// output functions -#if defined(BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS) -#include "boost/date_time/posix_time/time_formatters_limited.hpp" -#else -#include "boost/date_time/posix_time/time_formatters.hpp" -#endif // BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS - -// streaming operators -#if defined(USE_DATE_TIME_PRE_1_33_FACET_IO) -#include "boost/date_time/posix_time/posix_time_legacy_io.hpp" -#else -#include "boost/date_time/posix_time/posix_time_io.hpp" -#endif // USE_DATE_TIME_PRE_1_33_FACET_IO - -#include "boost/date_time/posix_time/time_parsers.hpp" -#include "boost/date_time/posix_time/conversion.hpp" - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/posix_time/posix_time_config.hpp b/3rdParty/Boost/boost/date_time/posix_time/posix_time_config.hpp deleted file mode 100644 index c40a15c..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/posix_time_config.hpp +++ /dev/null @@ -1,178 +0,0 @@ -#ifndef POSIX_TIME_CONFIG_HPP___ -#define POSIX_TIME_CONFIG_HPP___ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-10-13 05:00:03 -0400 (Mon, 13 Oct 2008) $ - */ - -#include "boost/date_time/time_duration.hpp" -#include "boost/date_time/time_resolution_traits.hpp" -#include "boost/date_time/gregorian/gregorian_types.hpp" -#include "boost/date_time/wrapping_int.hpp" -#include "boost/limits.hpp" -#include "boost/date_time/compiler_config.hpp" -#include "boost/cstdint.hpp" -#include -#include //for MCW 7.2 std::abs(long long) - -namespace boost { -namespace posix_time { - -//Remove the following line if you want 64 bit millisecond resolution time -//#define BOOST_GDTL_POSIX_TIME_STD_CONFIG - -#ifdef BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG - // set up conditional test compilations -#define BOOST_DATE_TIME_HAS_MILLISECONDS -#define BOOST_DATE_TIME_HAS_MICROSECONDS -#define BOOST_DATE_TIME_HAS_NANOSECONDS - typedef date_time::time_resolution_traits time_res_traits; -#else - // set up conditional test compilations -#define BOOST_DATE_TIME_HAS_MILLISECONDS -#define BOOST_DATE_TIME_HAS_MICROSECONDS -#undef BOOST_DATE_TIME_HAS_NANOSECONDS - typedef date_time::time_resolution_traits< - boost::date_time::time_resolution_traits_adapted64_impl, boost::date_time::micro, - 1000000, 6 > time_res_traits; - - -// #undef BOOST_DATE_TIME_HAS_MILLISECONDS -// #undef BOOST_DATE_TIME_HAS_MICROSECONDS -// #undef BOOST_DATE_TIME_HAS_NANOSECONDS -// typedef date_time::time_resolution_traits time_res_traits; - -#endif - - - //! Base time duration type - /*! \ingroup time_basics - */ - class time_duration : - public date_time::time_duration - { - public: - typedef time_res_traits rep_type; - typedef time_res_traits::day_type day_type; - typedef time_res_traits::hour_type hour_type; - typedef time_res_traits::min_type min_type; - typedef time_res_traits::sec_type sec_type; - typedef time_res_traits::fractional_seconds_type fractional_seconds_type; - typedef time_res_traits::tick_type tick_type; - typedef time_res_traits::impl_type impl_type; - time_duration(hour_type hour, - min_type min, - sec_type sec, - fractional_seconds_type fs=0) : - date_time::time_duration(hour,min,sec,fs) - {} - time_duration() : - date_time::time_duration(0,0,0) - {} - //! Construct from special_values - time_duration(boost::date_time::special_values sv) : - date_time::time_duration(sv) - {} - //Give duration access to ticks constructor -- hide from users - friend class date_time::time_duration; - private: - explicit time_duration(impl_type ticks) : - date_time::time_duration(ticks) - {} - }; - -#ifdef BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG - - //! Simple implementation for the time rep - struct simple_time_rep - { - typedef gregorian::date date_type; - typedef time_duration time_duration_type; - simple_time_rep(date_type d, time_duration_type tod) : - day(d), - time_of_day(tod) - { - // make sure we have sane values for date & time - if(!day.is_special() && !time_of_day.is_special()){ - if(time_of_day >= time_duration_type(24,0,0)) { - while(time_of_day >= time_duration_type(24,0,0)) { - day += date_type::duration_type(1); - time_of_day -= time_duration_type(24,0,0); - } - } - else if(time_of_day.is_negative()) { - while(time_of_day.is_negative()) { - day -= date_type::duration_type(1); - time_of_day += time_duration_type(24,0,0); - } - } - } - } - date_type day; - time_duration_type time_of_day; - bool is_special()const - { - return(is_pos_infinity() || is_neg_infinity() || is_not_a_date_time()); - } - bool is_pos_infinity()const - { - return(day.is_pos_infinity() || time_of_day.is_pos_infinity()); - } - bool is_neg_infinity()const - { - return(day.is_neg_infinity() || time_of_day.is_neg_infinity()); - } - bool is_not_a_date_time()const - { - return(day.is_not_a_date() || time_of_day.is_not_a_date_time()); - } - }; - - class posix_time_system_config - { - public: - typedef simple_time_rep time_rep_type; - typedef gregorian::date date_type; - typedef gregorian::date_duration date_duration_type; - typedef time_duration time_duration_type; - typedef time_res_traits::tick_type int_type; - typedef time_res_traits resolution_traits; -#if (defined(BOOST_DATE_TIME_NO_MEMBER_INIT)) //help bad compilers -#else - BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000000); -#endif - }; - -#else - - class millisec_posix_time_system_config - { - public: - typedef boost::int64_t time_rep_type; - //typedef time_res_traits::tick_type time_rep_type; - typedef gregorian::date date_type; - typedef gregorian::date_duration date_duration_type; - typedef time_duration time_duration_type; - typedef time_res_traits::tick_type int_type; - typedef time_res_traits::impl_type impl_type; - typedef time_res_traits resolution_traits; -#if (defined(BOOST_DATE_TIME_NO_MEMBER_INIT)) //help bad compilers -#else - BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000); -#endif - }; - -#endif - -} }//namespace posix_time - - -#endif - - diff --git a/3rdParty/Boost/boost/date_time/posix_time/posix_time_duration.hpp b/3rdParty/Boost/boost/date_time/posix_time/posix_time_duration.hpp deleted file mode 100644 index db3b85f..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/posix_time_duration.hpp +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef POSIX_TIME_DURATION_HPP___ -#define POSIX_TIME_DURATION_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/posix_time/posix_time_config.hpp" - -namespace boost { -namespace posix_time { - - //! Allows expression of durations as an hour count - /*! \ingroup time_basics - */ - class hours : public time_duration - { - public: - explicit hours(long h) : - time_duration(h,0,0) - {} - }; - - //! Allows expression of durations as a minute count - /*! \ingroup time_basics - */ - class minutes : public time_duration - { - public: - explicit minutes(long m) : - time_duration(0,m,0) - {} - }; - - //! Allows expression of durations as a seconds count - /*! \ingroup time_basics - */ - class seconds : public time_duration - { - public: - explicit seconds(long s) : - time_duration(0,0,s) - {} - }; - - - //! Allows expression of durations as milli seconds - /*! \ingroup time_basics - */ - typedef date_time::subsecond_duration millisec; - typedef date_time::subsecond_duration milliseconds; - - //! Allows expression of durations as micro seconds - /*! \ingroup time_basics - */ - typedef date_time::subsecond_duration microsec; - typedef date_time::subsecond_duration microseconds; - - //This is probably not needed anymore... -#if defined(BOOST_DATE_TIME_HAS_NANOSECONDS) - - //! Allows expression of durations as nano seconds - /*! \ingroup time_basics - */ - typedef date_time::subsecond_duration nanosec; - typedef date_time::subsecond_duration nanoseconds; - - -#endif - - - - -} }//namespace posix_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/posix_time/posix_time_io.hpp b/3rdParty/Boost/boost/date_time/posix_time/posix_time_io.hpp deleted file mode 100644 index 9a80737..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/posix_time_io.hpp +++ /dev/null @@ -1,239 +0,0 @@ -#ifndef DATE_TIME_POSIX_TIME_IO_HPP__ -#define DATE_TIME_POSIX_TIME_IO_HPP__ - -/* Copyright (c) 2004-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-13 14:05:31 -0500 (Thu, 13 Nov 2008) $ - */ - -#include -#include -#include // i/ostreambuf_iterator -#include -#include -#include -#include -#include -#include -#include // to_tm will be needed in the facets - -namespace boost { -namespace posix_time { - - - //! wptime_facet is depricated and will be phased out. use wtime_facet instead - //typedef boost::date_time::time_facet wptime_facet; - //! ptime_facet is depricated and will be phased out. use time_facet instead - //typedef boost::date_time::time_facet ptime_facet; - - //! wptime_input_facet is depricated and will be phased out. use wtime_input_facet instead - //typedef boost::date_time::time_input_facet wptime_input_facet; - //! ptime_input_facet is depricated and will be phased out. use time_input_facet instead - //typedef boost::date_time::time_input_facet ptime_input_facet; - - typedef boost::date_time::time_facet wtime_facet; - typedef boost::date_time::time_facet time_facet; - - typedef boost::date_time::time_input_facet wtime_input_facet; - typedef boost::date_time::time_input_facet time_input_facet; - - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, - const ptime& p) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::time_facet custom_ptime_facet; - typedef std::time_put std_ptime_facet; - std::ostreambuf_iterator oitr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(oitr, os, os.fill(), p); - else { - //instantiate a custom facet for dealing with times since the user - //has not put one in the stream so far. This is for efficiency - //since we would always need to reconstruct for every time period - //if the locale did not already exist. Of course this will be overridden - //if the user imbues as some later point. - custom_ptime_facet* f = new custom_ptime_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(oitr, os, os.fill(), p); - } - return os; - } - - //! input operator for ptime - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, ptime& pt) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::time_input_facet time_input_facet; - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, pt); - } - else { - time_input_facet* f = new time_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, pt); - } - } - catch(...) { - // mask tells us what exceptions are turned on - std::ios_base::iostate exception_mask = is.exceptions(); - // if the user wants exceptions on failbit, we'll rethrow our - // date_time exception & set the failbit - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} // ignore this one - throw; // rethrow original exception - } - else { - // if the user want's to fail quietly, we simply set the failbit - is.setstate(std::ios_base::failbit); - } - } - } - return is; - } - - - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, - const boost::posix_time::time_period& p) { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::time_facet custom_ptime_facet; - typedef std::time_put std_time_facet; - std::ostreambuf_iterator oitr(os); - if (std::has_facet(os.getloc())) { - std::use_facet(os.getloc()).put(oitr, os, os.fill(), p); - } - else { - //instantiate a custom facet for dealing with periods since the user - //has not put one in the stream so far. This is for efficiency - //since we would always need to reconstruct for every time period - //if the local did not already exist. Of course this will be overridden - //if the user imbues as some later point. - custom_ptime_facet* f = new custom_ptime_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(oitr, os, os.fill(), p); - } - return os; - } - - //! input operator for time_period - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, time_period& tp) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::time_input_facet time_input_facet; - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, tp); - } - else { - time_input_facet* f = new time_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, tp); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - } - } - return is; - } - - - //! ostream operator for posix_time::time_duration - // todo fix to use facet -- place holder for now... - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const time_duration& td) - { - boost::io::ios_flags_saver iflags(os); - typedef boost::date_time::time_facet custom_ptime_facet; - typedef std::time_put std_ptime_facet; - std::ostreambuf_iterator oitr(os); - if (std::has_facet(os.getloc())) - std::use_facet(os.getloc()).put(oitr, os, os.fill(), td); - else { - //instantiate a custom facet for dealing with times since the user - //has not put one in the stream so far. This is for efficiency - //since we would always need to reconstruct for every time period - //if the locale did not already exist. Of course this will be overridden - //if the user imbues as some later point. - custom_ptime_facet* f = new custom_ptime_facet(); - std::locale l = std::locale(os.getloc(), f); - os.imbue(l); - f->put(oitr, os, os.fill(), td); - } - return os; - } - - //! input operator for time_duration - template - inline - std::basic_istream& - operator>>(std::basic_istream& is, time_duration& td) - { - boost::io::ios_flags_saver iflags(is); - typename std::basic_istream::sentry strm_sentry(is, false); - if (strm_sentry) { - try { - typedef typename date_time::time_input_facet time_input_facet; - std::istreambuf_iterator sit(is), str_end; - if(std::has_facet(is.getloc())) { - std::use_facet(is.getloc()).get(sit, str_end, is, td); - } - else { - time_input_facet* f = new time_input_facet(); - std::locale l = std::locale(is.getloc(), f); - is.imbue(l); - f->get(sit, str_end, is, td); - } - } - catch(...) { - std::ios_base::iostate exception_mask = is.exceptions(); - if(std::ios_base::failbit & exception_mask) { - try { is.setstate(std::ios_base::failbit); } - catch(std::ios_base::failure&) {} - throw; // rethrow original exception - } - else { - is.setstate(std::ios_base::failbit); - } - } - } - return is; - } - -} } // namespaces -#endif // DATE_TIME_POSIX_TIME_IO_HPP__ diff --git a/3rdParty/Boost/boost/date_time/posix_time/posix_time_legacy_io.hpp b/3rdParty/Boost/boost/date_time/posix_time/posix_time_legacy_io.hpp deleted file mode 100644 index f5b20a8..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/posix_time_legacy_io.hpp +++ /dev/null @@ -1,153 +0,0 @@ -#ifndef POSIX_TIME_PRE133_OPERATORS_HPP___ -#define POSIX_TIME_PRE133_OPERATORS_HPP___ - -/* Copyright (c) 2002-2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -/*! @file posix_time_pre133_operators.hpp - * These input and output operators are for use with the - * pre 1.33 version of the date_time libraries io facet code. - * The operators used in version 1.33 and later can be found - * in posix_time_io.hpp */ - -#include -#include -#include -#include "boost/date_time/compiler_config.hpp" -#include "boost/date_time/gregorian/gregorian.hpp" -#include "boost/date_time/posix_time/posix_time_duration.hpp" -#include "boost/date_time/posix_time/ptime.hpp" -#include "boost/date_time/posix_time/time_period.hpp" -#include "boost/date_time/time_parsing.hpp" - -namespace boost { -namespace posix_time { - - -//The following code is removed for configurations with poor std::locale support (eg: MSVC6, gcc 2.9x) -#ifndef BOOST_DATE_TIME_NO_LOCALE -#if defined(USE_DATE_TIME_PRE_1_33_FACET_IO) - //! ostream operator for posix_time::time_duration - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const time_duration& td) - { - typedef boost::date_time::ostream_time_duration_formatter duration_formatter; - duration_formatter::duration_put(td, os); - return os; - } - - //! ostream operator for posix_time::ptime - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const ptime& t) - { - typedef boost::date_time::ostream_time_formatter time_formatter; - time_formatter::time_put(t, os); - return os; - } - - //! ostream operator for posix_time::time_period - template - inline - std::basic_ostream& - operator<<(std::basic_ostream& os, const time_period& tp) - { - typedef boost::date_time::ostream_time_period_formatter period_formatter; - period_formatter::period_put(tp, os); - return os; - } -#endif // USE_DATE_TIME_PRE_1_33_FACET_IO -/******** input streaming ********/ - template - inline - std::basic_istream& operator>>(std::basic_istream& is, time_duration& td) - { - // need to create a std::string and parse it - std::basic_string inp_s; - std::stringstream out_ss; - is >> inp_s; - typename std::basic_string::iterator b = inp_s.begin(); - // need to use both iterators because there is no requirement - // for the data held by a std::basic_string<> be terminated with - // any marker (such as '\0'). - typename std::basic_string::iterator e = inp_s.end(); - while(b != e){ - out_ss << out_ss.narrow(*b, 0); - ++b; - } - - td = date_time::parse_delimited_time_duration(out_ss.str()); - return is; - } - - template - inline - std::basic_istream& operator>>(std::basic_istream& is, ptime& pt) - { - gregorian::date d(not_a_date_time); - time_duration td(0,0,0); - is >> d >> td; - pt = ptime(d, td); - - return is; - } - - /** operator>> for time_period. time_period must be in - * "[date time_duration/date time_duration]" format. */ - template - inline - std::basic_istream& operator>>(std::basic_istream& is, time_period& tp) - { - gregorian::date d(not_a_date_time); - time_duration td(0,0,0); - ptime beg(d, td); - ptime end(beg); - std::basic_string s; - // get first date string and remove leading '[' - is >> s; - { - std::basic_stringstream ss; - ss << s.substr(s.find('[')+1); - ss >> d; - } - // get first time_duration & second date string, remove the '/' - // and split into 2 strings - is >> s; - { - std::basic_stringstream ss; - ss << s.substr(0, s.find('/')); - ss >> td; - } - beg = ptime(d, td); - { - std::basic_stringstream ss; - ss << s.substr(s.find('/')+1); - ss >> d; - } - // get last time_duration and remove the trailing ']' - is >> s; - { - std::basic_stringstream ss; - ss << s.substr(0, s.find(']')); - ss >> td; - } - end = ptime(d, td); - - tp = time_period(beg,end); - return is; - } - - -#endif //BOOST_DATE_TIME_NO_LOCALE - -} } // namespaces - -#endif // POSIX_TIME_PRE133_OPERATORS_HPP___ diff --git a/3rdParty/Boost/boost/date_time/posix_time/posix_time_system.hpp b/3rdParty/Boost/boost/date_time/posix_time/posix_time_system.hpp deleted file mode 100644 index 3d44e0f..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/posix_time_system.hpp +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef POSIX_TIME_SYSTEM_HPP___ -#define POSIX_TIME_SYSTEM_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - - -#include "boost/date_time/posix_time/posix_time_config.hpp" -#include "boost/date_time/time_system_split.hpp" -#include "boost/date_time/time_system_counted.hpp" -#include "boost/date_time/compiler_config.hpp" - - -namespace boost { -namespace posix_time { - -#ifdef BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG - -#if (defined(BOOST_DATE_TIME_NO_MEMBER_INIT)) //help bad compilers - typedef date_time::split_timedate_system posix_time_system; -#else - typedef date_time::split_timedate_system posix_time_system; -#endif - -#else - - typedef date_time::counted_time_rep int64_time_rep; - typedef date_time::counted_time_system posix_time_system; - -#endif - -} }//namespace posix_time - - -#endif - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/3rdParty/Boost/boost/date_time/posix_time/posix_time_types.hpp b/3rdParty/Boost/boost/date_time/posix_time/posix_time_types.hpp deleted file mode 100644 index f2488f8..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/posix_time_types.hpp +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - */ -#ifndef POSIX_TIME_TYPES_HPP___ -#define POSIX_TIME_TYPES_HPP___ - -#include "boost/date_time/time_clock.hpp" -#include "boost/date_time/microsec_time_clock.hpp" -#include "boost/date_time/posix_time/ptime.hpp" -#if defined(BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES) -#include "boost/date_time/posix_time/date_duration_operators.hpp" -#endif -#include "boost/date_time/posix_time/posix_time_duration.hpp" -#include "boost/date_time/posix_time/posix_time_system.hpp" -#include "boost/date_time/posix_time/time_period.hpp" -#include "boost/date_time/time_iterator.hpp" -#include "boost/date_time/dst_rules.hpp" - -namespace boost { - -//!Defines a non-adjusted time system with nano-second resolution and stable calculation properties -namespace posix_time { - - //! Iterator over a defined time duration - /*! \ingroup time_basics - */ - typedef date_time::time_itr time_iterator; - //! A time clock that has a resolution of one second - /*! \ingroup time_basics - */ - typedef date_time::second_clock second_clock; - -#ifdef BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK - //! A time clock that has a resolution of one microsecond - /*! \ingroup time_basics - */ - typedef date_time::microsec_clock microsec_clock; -#endif - - //! Define a dst null dst rule for the posix_time system - typedef date_time::null_dst_rules no_dst; - //! Define US dst rule calculator for the posix_time system - typedef date_time::us_dst_rules us_dst; - - -} } //namespace posix_time - - - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/posix_time/ptime.hpp b/3rdParty/Boost/boost/date_time/posix_time/ptime.hpp deleted file mode 100644 index 2abc02d..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/ptime.hpp +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef POSIX_PTIME_HPP___ -#define POSIX_PTIME_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/posix_time/posix_time_system.hpp" -#include "boost/date_time/time.hpp" - -namespace boost { - -namespace posix_time { - - //bring special enum values into the namespace - using date_time::special_values; - using date_time::not_special; - using date_time::neg_infin; - using date_time::pos_infin; - using date_time::not_a_date_time; - using date_time::max_date_time; - using date_time::min_date_time; - - //! Time type with no timezone or other adjustments - /*! \ingroup time_basics - */ - class ptime : public date_time::base_time - { - public: - typedef posix_time_system time_system_type; - typedef time_system_type::time_rep_type time_rep_type; - typedef time_system_type::time_duration_type time_duration_type; - typedef ptime time_type; - //! Construct with date and offset in day - ptime(gregorian::date d,time_duration_type td) : date_time::base_time(d,td) - {} - //! Construct a time at start of the given day (midnight) - explicit ptime(gregorian::date d) : date_time::base_time(d,time_duration_type(0,0,0)) - {} - //! Copy from time_rep - ptime(const time_rep_type& rhs): - date_time::base_time(rhs) - {} - //! Construct from special value - ptime(const special_values sv) : date_time::base_time(sv) - {} -#if !defined(DATE_TIME_NO_DEFAULT_CONSTRUCTOR) - // Default constructor constructs to not_a_date_time - ptime() : date_time::base_time(gregorian::date(not_a_date_time), time_duration_type(not_a_date_time)) - {} -#endif // DATE_TIME_NO_DEFAULT_CONSTRUCTOR - - }; - - - -} }//namespace posix_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/posix_time/time_formatters.hpp b/3rdParty/Boost/boost/date_time/posix_time/time_formatters.hpp deleted file mode 100644 index dc8facf..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/time_formatters.hpp +++ /dev/null @@ -1,289 +0,0 @@ -#ifndef POSIXTIME_FORMATTERS_HPP___ -#define POSIXTIME_FORMATTERS_HPP___ - -/* Copyright (c) 2002-2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/gregorian/gregorian.hpp" -#include "boost/date_time/compiler_config.hpp" -#include "boost/date_time/iso_format.hpp" -#include "boost/date_time/date_format_simple.hpp" -#include "boost/date_time/posix_time/posix_time_types.hpp" -#include "boost/date_time/time_formatting_streams.hpp" - -#include "boost/date_time/time_parsing.hpp" - -/* NOTE: The "to_*_string" code for older compilers, ones that define - * BOOST_DATE_TIME_INCLUDE_LIMITED_HEADERS, is located in - * formatters_limited.hpp - */ - -namespace boost { - -namespace posix_time { - - // template function called by wrapper functions: - // to_*_string(time_duration) & to_*_wstring(time_duration) - template - inline std::basic_string to_simple_string_type(time_duration td) { - std::basic_ostringstream ss; - if(td.is_special()) { - /* simply using 'ss << td.get_rep()' won't work on compilers - * that don't support locales. This way does. */ - // switch copied from date_names_put.hpp - switch(td.get_rep().as_special()) - { - case not_a_date_time: - //ss << "not-a-number"; - ss << "not-a-date-time"; - break; - case pos_infin: - ss << "+infinity"; - break; - case neg_infin: - ss << "-infinity"; - break; - default: - ss << ""; - } - } - else { - charT fill_char = '0'; - if(td.is_negative()) { - ss << '-'; - } - ss << std::setw(2) << std::setfill(fill_char) - << date_time::absolute_value(td.hours()) << ":"; - ss << std::setw(2) << std::setfill(fill_char) - << date_time::absolute_value(td.minutes()) << ":"; - ss << std::setw(2) << std::setfill(fill_char) - << date_time::absolute_value(td.seconds()); - //TODO the following is totally non-generic, yelling FIXME -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - boost::int64_t frac_sec = - date_time::absolute_value(td.fractional_seconds()); - // JDG [7/6/02 VC++ compatibility] - charT buff[32]; - _i64toa(frac_sec, buff, 10); -#else - time_duration::fractional_seconds_type frac_sec = - date_time::absolute_value(td.fractional_seconds()); -#endif - if (frac_sec != 0) { - ss << "." << std::setw(time_duration::num_fractional_digits()) - << std::setfill(fill_char) - - // JDG [7/6/02 VC++ compatibility] -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - << buff; -#else - << frac_sec; -#endif - } - }// else - return ss.str(); - } - //! Time duration to string -hh::mm::ss.fffffff. Example: 10:09:03.0123456 - /*!\ingroup time_format - */ - inline std::string to_simple_string(time_duration td) { - return to_simple_string_type(td); - } - - - // template function called by wrapper functions: - // to_*_string(time_duration) & to_*_wstring(time_duration) - template - inline std::basic_string to_iso_string_type(time_duration td) - { - std::basic_ostringstream ss; - if(td.is_special()) { - /* simply using 'ss << td.get_rep()' won't work on compilers - * that don't support locales. This way does. */ - // switch copied from date_names_put.hpp - switch(td.get_rep().as_special()) { - case not_a_date_time: - //ss << "not-a-number"; - ss << "not-a-date-time"; - break; - case pos_infin: - ss << "+infinity"; - break; - case neg_infin: - ss << "-infinity"; - break; - default: - ss << ""; - } - } - else { - charT fill_char = '0'; - if(td.is_negative()) { - ss << '-'; - } - ss << std::setw(2) << std::setfill(fill_char) - << date_time::absolute_value(td.hours()); - ss << std::setw(2) << std::setfill(fill_char) - << date_time::absolute_value(td.minutes()); - ss << std::setw(2) << std::setfill(fill_char) - << date_time::absolute_value(td.seconds()); - //TODO the following is totally non-generic, yelling FIXME -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - boost::int64_t frac_sec = - date_time::absolute_value(td.fractional_seconds()); - // JDG [7/6/02 VC++ compatibility] - charT buff[32]; - _i64toa(frac_sec, buff, 10); -#else - time_duration::fractional_seconds_type frac_sec = - date_time::absolute_value(td.fractional_seconds()); -#endif - if (frac_sec != 0) { - ss << "." << std::setw(time_duration::num_fractional_digits()) - << std::setfill(fill_char) - - // JDG [7/6/02 VC++ compatibility] -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - << buff; -#else - << frac_sec; -#endif - } - }// else - return ss.str(); - } - //! Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456 - /*!\ingroup time_format - */ - inline std::string to_iso_string(time_duration td){ - return to_iso_string_type(td); - } - - //! Time to simple format CCYY-mmm-dd hh:mm:ss.fffffff - /*!\ingroup time_format - */ - template - inline std::basic_string to_simple_string_type(ptime t) - { - // can't use this w/gcc295, no to_simple_string_type<>(td) available - std::basic_string ts = gregorian::to_simple_string_type(t.date());// + " "; - if(!t.time_of_day().is_special()) { - charT space = ' '; - return ts + space + to_simple_string_type(t.time_of_day()); - } - else { - return ts; - } - } - inline std::string to_simple_string(ptime t){ - return to_simple_string_type(t); - } - - // function called by wrapper functions to_*_string(time_period) - // & to_*_wstring(time_period) - template - inline std::basic_string to_simple_string_type(time_period tp) - { - charT beg = '[', mid = '/', end = ']'; - std::basic_string d1(to_simple_string_type(tp.begin())); - std::basic_string d2(to_simple_string_type(tp.last())); - return std::basic_string(beg + d1 + mid + d2 + end); - } - //! Convert to string of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff] - /*!\ingroup time_format - */ - inline std::string to_simple_string(time_period tp){ - return to_simple_string_type(tp); - } - - // function called by wrapper functions to_*_string(time_period) - // & to_*_wstring(time_period) - template - inline std::basic_string to_iso_string_type(ptime t) - { - std::basic_string ts = gregorian::to_iso_string_type(t.date());// + "T"; - if(!t.time_of_day().is_special()) { - charT sep = 'T'; - return ts + sep + to_iso_string_type(t.time_of_day()); - } - else { - return ts; - } - } - //! Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator - /*!\ingroup time_format - */ - inline std::string to_iso_string(ptime t){ - return to_iso_string_type(t); - } - - - // function called by wrapper functions to_*_string(time_period) - // & to_*_wstring(time_period) - template - inline std::basic_string to_iso_extended_string_type(ptime t) - { - std::basic_string ts = gregorian::to_iso_extended_string_type(t.date());// + "T"; - if(!t.time_of_day().is_special()) { - charT sep = 'T'; - return ts + sep + to_simple_string_type(t.time_of_day()); - } - else { - return ts; - } - } - //! Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator - /*!\ingroup time_format - */ - inline std::string to_iso_extended_string(ptime t){ - return to_iso_extended_string_type(t); - } - -#if !defined(BOOST_NO_STD_WSTRING) - //! Time duration to wstring -hh::mm::ss.fffffff. Example: 10:09:03.0123456 - /*!\ingroup time_format - */ - inline std::wstring to_simple_wstring(time_duration td) { - return to_simple_string_type(td); - } - //! Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456 - /*!\ingroup time_format - */ - inline std::wstring to_iso_wstring(time_duration td){ - return to_iso_string_type(td); - } - inline std::wstring to_simple_wstring(ptime t){ - return to_simple_string_type(t); - } - //! Convert to wstring of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff] - /*!\ingroup time_format - */ - inline std::wstring to_simple_wstring(time_period tp){ - return to_simple_string_type(tp); - } - //! Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator - /*!\ingroup time_format - */ - inline std::wstring to_iso_wstring(ptime t){ - return to_iso_string_type(t); - } - //! Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator - /*!\ingroup time_format - */ - inline std::wstring to_iso_extended_wstring(ptime t){ - return to_iso_extended_string_type(t); - } - -#endif // BOOST_NO_STD_WSTRING - - -} } //namespace posix_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/posix_time/time_formatters_limited.hpp b/3rdParty/Boost/boost/date_time/posix_time/time_formatters_limited.hpp deleted file mode 100644 index def5169..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/time_formatters_limited.hpp +++ /dev/null @@ -1,211 +0,0 @@ -#ifndef POSIXTIME_FORMATTERS_LIMITED_HPP___ -#define POSIXTIME_FORMATTERS_LIMITED_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/gregorian/gregorian.hpp" -#include "boost/date_time/compiler_config.hpp" -#include "boost/date_time/iso_format.hpp" -#include "boost/date_time/date_format_simple.hpp" -#include "boost/date_time/posix_time/posix_time_types.hpp" -#include "boost/date_time/time_formatting_streams.hpp" - -namespace boost { - -namespace posix_time { - - //! Time duration to string -hh::mm::ss.fffffff. Example: 10:09:03.0123456 - /*!\ingroup time_format - */ - inline std::string to_simple_string(time_duration td) { - std::ostringstream ss; - if(td.is_special()) { - /* simply using 'ss << td.get_rep()' won't work on compilers - * that don't support locales. This way does. */ - // switch copied from date_names_put.hpp - switch(td.get_rep().as_special()) - { - case not_a_date_time: - //ss << "not-a-number"; - ss << "not-a-date-time"; - break; - case pos_infin: - ss << "+infinity"; - break; - case neg_infin: - ss << "-infinity"; - break; - default: - ss << ""; - } - } - else { - if(td.is_negative()) { - ss << '-'; - } - ss << std::setw(2) << std::setfill('0') - << date_time::absolute_value(td.hours()) << ":"; - ss << std::setw(2) << std::setfill('0') - << date_time::absolute_value(td.minutes()) << ":"; - ss << std::setw(2) << std::setfill('0') - << date_time::absolute_value(td.seconds()); - //TODO the following is totally non-generic, yelling FIXME -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - boost::int64_t frac_sec = - date_time::absolute_value(td.fractional_seconds()); - // JDG [7/6/02 VC++ compatibility] - char buff[32]; - _i64toa(frac_sec, buff, 10); -#else - time_duration::fractional_seconds_type frac_sec = - date_time::absolute_value(td.fractional_seconds()); -#endif - if (frac_sec != 0) { - ss << "." << std::setw(time_duration::num_fractional_digits()) - << std::setfill('0') - - // JDG [7/6/02 VC++ compatibility] -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - << buff; -#else - << frac_sec; -#endif - } - }// else - return ss.str(); - } - - //! Time duration in iso format -hhmmss,fffffff Example: 10:09:03,0123456 - /*!\ingroup time_format - */ - inline - std::string - to_iso_string(time_duration td) - { - std::ostringstream ss; - if(td.is_special()) { - /* simply using 'ss << td.get_rep()' won't work on compilers - * that don't support locales. This way does. */ - // switch copied from date_names_put.hpp - switch(td.get_rep().as_special()) { - case not_a_date_time: - //ss << "not-a-number"; - ss << "not-a-date-time"; - break; - case pos_infin: - ss << "+infinity"; - break; - case neg_infin: - ss << "-infinity"; - break; - default: - ss << ""; - } - } - else { - if(td.is_negative()) { - ss << '-'; - } - ss << std::setw(2) << std::setfill('0') - << date_time::absolute_value(td.hours()); - ss << std::setw(2) << std::setfill('0') - << date_time::absolute_value(td.minutes()); - ss << std::setw(2) << std::setfill('0') - << date_time::absolute_value(td.seconds()); - //TODO the following is totally non-generic, yelling FIXME -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - boost::int64_t frac_sec = - date_time::absolute_value(td.fractional_seconds()); - // JDG [7/6/02 VC++ compatibility] - char buff[32]; - _i64toa(frac_sec, buff, 10); -#else - time_duration::fractional_seconds_type frac_sec = - date_time::absolute_value(td.fractional_seconds()); -#endif - if (frac_sec != 0) { - ss << "." << std::setw(time_duration::num_fractional_digits()) - << std::setfill('0') - - // JDG [7/6/02 VC++ compatibility] -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - << buff; -#else - << frac_sec; -#endif - } - }// else - return ss.str(); - } - - //! Time to simple format CCYY-mmm-dd hh:mm:ss.fffffff - /*!\ingroup time_format - */ - inline - std::string - to_simple_string(ptime t) - { - std::string ts = gregorian::to_simple_string(t.date());// + " "; - if(!t.time_of_day().is_special()) { - return ts + " " + to_simple_string(t.time_of_day()); - } - else { - return ts; - } - } - - //! Convert to string of form [YYYY-mmm-DD HH:MM::SS.ffffff/YYYY-mmm-DD HH:MM::SS.fffffff] - /*!\ingroup time_format - */ - inline - std::string - to_simple_string(time_period tp) - { - std::string d1(to_simple_string(tp.begin())); - std::string d2(to_simple_string(tp.last())); - return std::string("[" + d1 + "/" + d2 +"]"); - } - - //! Convert iso short form YYYYMMDDTHHMMSS where T is the date-time separator - /*!\ingroup time_format - */ - inline - std::string to_iso_string(ptime t) - { - std::string ts = gregorian::to_iso_string(t.date());// + "T"; - if(!t.time_of_day().is_special()) { - return ts + "T" + to_iso_string(t.time_of_day()); - } - else { - return ts; - } - } - - //! Convert to form YYYY-MM-DDTHH:MM:SS where T is the date-time separator - /*!\ingroup time_format - */ - inline - std::string - to_iso_extended_string(ptime t) - { - std::string ts = gregorian::to_iso_extended_string(t.date());// + "T"; - if(!t.time_of_day().is_special()) { - return ts + "T" + to_simple_string(t.time_of_day()); - } - else { - return ts; - } - } - - -} } //namespace posix_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/posix_time/time_parsers.hpp b/3rdParty/Boost/boost/date_time/posix_time/time_parsers.hpp deleted file mode 100644 index 8a352f6..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/time_parsers.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef POSIXTIME_PARSERS_HPP___ -#define POSIXTIME_PARSERS_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/gregorian/gregorian.hpp" -#include "boost/date_time/time_parsing.hpp" -#include "boost/date_time/posix_time/posix_time_types.hpp" - - -namespace boost { - -namespace posix_time { - - //! Creates a time_duration object from a delimited string - /*! Expected format for string is "[-]h[h][:mm][:ss][.fff]". - * A negative duration will be created if the first character in - * string is a '-', all other '-' will be treated as delimiters. - * Accepted delimiters are "-:,.". */ - inline time_duration duration_from_string(const std::string& s) { - return date_time::parse_delimited_time_duration(s); - } - - inline ptime time_from_string(const std::string& s) { - return date_time::parse_delimited_time(s, ' '); - } - - inline ptime from_iso_string(const std::string& s) { - return date_time::parse_iso_time(s, 'T'); - } - - - -} } //namespace posix_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/posix_time/time_period.hpp b/3rdParty/Boost/boost/date_time/posix_time/time_period.hpp deleted file mode 100644 index cb7bf07..0000000 --- a/3rdParty/Boost/boost/date_time/posix_time/time_period.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef POSIX_TIME_PERIOD_HPP___ -#define POSIX_TIME_PERIOD_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/period.hpp" -#include "boost/date_time/posix_time/posix_time_duration.hpp" -#include "boost/date_time/posix_time/ptime.hpp" - -namespace boost { -namespace posix_time { - - //! Time period type - /*! \ingroup time_basics - */ - typedef date_time::period time_period; - - -} }//namespace posix_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/special_defs.hpp b/3rdParty/Boost/boost/date_time/special_defs.hpp deleted file mode 100644 index 56eb6fe..0000000 --- a/3rdParty/Boost/boost/date_time/special_defs.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef DATE_TIME_SPECIAL_DEFS_HPP__ -#define DATE_TIME_SPECIAL_DEFS_HPP__ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -namespace boost { -namespace date_time { - - enum special_values {not_a_date_time, - neg_infin, pos_infin, - min_date_time, max_date_time, - not_special, NumSpecialValues}; - - -} } //namespace date_time - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/special_values_formatter.hpp b/3rdParty/Boost/boost/date_time/special_values_formatter.hpp deleted file mode 100644 index 33542b6..0000000 --- a/3rdParty/Boost/boost/date_time/special_values_formatter.hpp +++ /dev/null @@ -1,96 +0,0 @@ - -#ifndef DATETIME_SPECIAL_VALUE_FORMATTER_HPP___ -#define DATETIME_SPECIAL_VALUE_FORMATTER_HPP___ - -/* Copyright (c) 2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include -#include -#include "boost/date_time/special_defs.hpp" - -namespace boost { namespace date_time { - - - //! Class that provides generic formmatting ostream formatting for special values - /*! This class provides for the formmating of special values to an output stream. - * In particular, it produces strings for the values of negative and positive - * infinity as well as not_a_date_time. - * - * While not a facet, this class is used by the date and time facets for formatting - * special value types. - * - */ - template > > - class special_values_formatter - { - public: - typedef std::basic_string string_type; - typedef CharT char_type; - typedef std::vector collection_type; - static const char_type default_special_value_names[3][17]; - - //! Construct special values formatter using default strings. - /*! Default strings are not-a-date-time -infinity +infinity - */ - special_values_formatter() - { - std::copy(&default_special_value_names[0], - &default_special_value_names[3], - std::back_inserter(m_special_value_names)); - } - - //! Construct special values formatter from array of strings - /*! This constructor will take pair of iterators from an array of strings - * that represent the special values and copy them for use in formatting - * special values. - *@code - * const char* const special_value_names[]={"nadt","-inf","+inf" }; - * - * special_value_formatter svf(&special_value_names[0], &special_value_names[3]); - *@endcode - */ - special_values_formatter(const char_type* const* begin, const char_type* const* end) - { - std::copy(begin, end, std::back_inserter(m_special_value_names)); - } - special_values_formatter(typename collection_type::iterator beg, typename collection_type::iterator end) - { - std::copy(beg, end, std::back_inserter(m_special_value_names)); - } - - OutItrT put_special(OutItrT next, - const boost::date_time::special_values& value) const - { - - unsigned int index = value; - if (index < m_special_value_names.size()) { - std::copy(m_special_value_names[index].begin(), - m_special_value_names[index].end(), - next); - } - return next; - } - protected: - collection_type m_special_value_names; - }; - - //! Storage for the strings used to indicate special values - /* using c_strings to initialize these worked fine in testing, however, - * a project that compiled its objects separately, then linked in a separate - * step wound up with redefinition errors for the values in this array. - * Initializing individual characters eliminated this problem */ - template - const typename special_values_formatter::char_type special_values_formatter::default_special_value_names[3][17] = { - {'n','o','t','-','a','-','d','a','t','e','-','t','i','m','e'}, - {'-','i','n','f','i','n','i','t','y'}, - {'+','i','n','f','i','n','i','t','y'} }; - - } } //namespace boost::date_time - -#endif diff --git a/3rdParty/Boost/boost/date_time/special_values_parser.hpp b/3rdParty/Boost/boost/date_time/special_values_parser.hpp deleted file mode 100644 index e48ec5f..0000000 --- a/3rdParty/Boost/boost/date_time/special_values_parser.hpp +++ /dev/null @@ -1,159 +0,0 @@ - -#ifndef DATE_TIME_SPECIAL_VALUES_PARSER_HPP__ -#define DATE_TIME_SPECIAL_VALUES_PARSER_HPP__ - -/* Copyright (c) 2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: - */ - - -#include "boost/date_time/string_parse_tree.hpp" -#include "boost/date_time/special_defs.hpp" -#include -#include - -namespace boost { namespace date_time { - - //! Class for special_value parsing - /*! - * TODO: add doc-comments for which elements can be changed - * Parses input stream for strings representing special_values. - * Special values parsed are: - * - not_a_date_time - * - neg_infin - * - pod_infin - * - min_date_time - * - max_date_time - */ - template - class special_values_parser - { - public: - typedef std::basic_string string_type; - //typedef std::basic_stringstream stringstream_type; - typedef std::istreambuf_iterator stream_itr_type; - //typedef typename string_type::const_iterator const_itr; - //typedef typename date_type::year_type year_type; - //typedef typename date_type::month_type month_type; - typedef typename date_type::duration_type duration_type; - //typedef typename date_type::day_of_week_type day_of_week_type; - //typedef typename date_type::day_type day_type; - typedef string_parse_tree parse_tree_type; - typedef typename parse_tree_type::parse_match_result_type match_results; - typedef std::vector > collection_type; - - typedef charT char_type; - static const char_type nadt_string[16]; - static const char_type neg_inf_string[10]; - static const char_type pos_inf_string[10]; - static const char_type min_date_time_string[18]; - static const char_type max_date_time_string[18]; - - //! Creates a special_values_parser with the default set of "sv_strings" - special_values_parser() - { - sv_strings(string_type(nadt_string), - string_type(neg_inf_string), - string_type(pos_inf_string), - string_type(min_date_time_string), - string_type(max_date_time_string)); - } - - //! Creates a special_values_parser using a user defined set of element strings - special_values_parser(const string_type& nadt_str, - const string_type& neg_inf_str, - const string_type& pos_inf_str, - const string_type& min_dt_str, - const string_type& max_dt_str) - { - sv_strings(nadt_str, neg_inf_str, pos_inf_str, min_dt_str, max_dt_str); - } - - special_values_parser(typename collection_type::iterator beg, typename collection_type::iterator end) - { - collection_type phrases; - std::copy(beg, end, std::back_inserter(phrases)); - m_sv_strings = parse_tree_type(phrases, static_cast(not_a_date_time)); - } - - special_values_parser(const special_values_parser& svp) - { - this->m_sv_strings = svp.m_sv_strings; - } - - //! Replace special value strings - void sv_strings(const string_type& nadt_str, - const string_type& neg_inf_str, - const string_type& pos_inf_str, - const string_type& min_dt_str, - const string_type& max_dt_str) - { - collection_type phrases; - phrases.push_back(nadt_str); - phrases.push_back(neg_inf_str); - phrases.push_back(pos_inf_str); - phrases.push_back(min_dt_str); - phrases.push_back(max_dt_str); - m_sv_strings = parse_tree_type(phrases, static_cast(not_a_date_time)); - } - - /* Does not return a special_value because if the parsing fails, - * the return value will always be not_a_date_time - * (mr.current_match retains its default value of -1 on a failed - * parse and that casts to not_a_date_time). */ - //! Sets match_results.current_match to the corresponding special_value or -1 - bool match(stream_itr_type& sitr, - stream_itr_type& str_end, - match_results& mr) const - { - unsigned int level = 0; - m_sv_strings.match(sitr, str_end, mr, level); - return (mr.current_match != match_results::PARSE_ERROR); - } - /*special_values match(stream_itr_type& sitr, - stream_itr_type& str_end, - match_results& mr) const - { - unsigned int level = 0; - m_sv_strings.match(sitr, str_end, mr, level); - if(mr.current_match == match_results::PARSE_ERROR) { - throw std::ios_base::failure("Parse failed. No match found for '" + mr.cache + "'"); - } - return static_cast(mr.current_match); - }*/ - - - private: - parse_tree_type m_sv_strings; - - }; - - template - const typename special_values_parser::char_type - special_values_parser::nadt_string[16] = - {'n','o','t','-','a','-','d','a','t','e','-','t','i','m','e'}; - template - const typename special_values_parser::char_type - special_values_parser::neg_inf_string[10] = - {'-','i','n','f','i','n','i','t','y'}; - template - const typename special_values_parser::char_type - special_values_parser::pos_inf_string[10] = - {'+','i','n','f','i','n','i','t','y'}; - template - const typename special_values_parser::char_type - special_values_parser::min_date_time_string[18] = - {'m','i','n','i','m','u','m','-','d','a','t','e','-','t','i','m','e'}; - template - const typename special_values_parser::char_type - special_values_parser::max_date_time_string[18] = - {'m','a','x','i','m','u','m','-','d','a','t','e','-','t','i','m','e'}; - -} } //namespace - -#endif // DATE_TIME_SPECIAL_VALUES_PARSER_HPP__ - diff --git a/3rdParty/Boost/boost/date_time/string_convert.hpp b/3rdParty/Boost/boost/date_time/string_convert.hpp deleted file mode 100644 index 54a979c..0000000 --- a/3rdParty/Boost/boost/date_time/string_convert.hpp +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef _STRING_CONVERT_HPP___ -#define _STRING_CONVERT_HPP___ - -/* Copyright (c) 2005 CrystalClear Software, Inc. - * Subject to the Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/date_time/compiler_config.hpp" -#include - -namespace boost { -namespace date_time { - - //! Converts a string from one value_type to another - /*! Converts a wstring to a string (or a string to wstring). If both template parameters - * are of same type, a copy of the input string is returned. */ - template - inline - std::basic_string convert_string_type(const std::basic_string& inp_str) - { - typedef std::basic_string input_type; - typedef std::basic_string output_type; - output_type result; - result.insert(result.begin(), inp_str.begin(), inp_str.end()); - return result; - } - -}} // namespace boost::date_time - -#endif // _STRING_CONVERT_HPP___ diff --git a/3rdParty/Boost/boost/date_time/string_parse_tree.hpp b/3rdParty/Boost/boost/date_time/string_parse_tree.hpp deleted file mode 100644 index 0d515ff..0000000 --- a/3rdParty/Boost/boost/date_time/string_parse_tree.hpp +++ /dev/null @@ -1,278 +0,0 @@ -#ifndef BOOST_DATE_TIME_STRING_PARSE_TREE___HPP__ -#define BOOST_DATE_TIME_STRING_PARSE_TREE___HPP__ - -/* Copyright (c) 2004-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - - -#include "boost/lexical_cast.hpp" //error without? -#include "boost/algorithm/string/case_conv.hpp" -#include -#include -#include -#include - -namespace boost { namespace date_time { - - -template -struct parse_match_result -{ - parse_match_result() : - match_depth(0), - current_match(-1)// -1 is match_not-found value - {} - typedef std::basic_string string_type; - string_type remaining() const - { - if (match_depth == cache.size()) { - return string_type(); - } - if (current_match == -1) { - return cache; - } - //some of the cache was used return the rest - return string_type(cache, match_depth); - } - charT last_char() const - { - return cache[cache.size()-1]; - } - //! Returns true if more characters were parsed than was necessary - /*! Should be used in conjunction with last_char() - * to get the remaining character. - */ - bool has_remaining() const - { - return (cache.size() > match_depth); - } - - // cache will hold characters that have been read from the stream - string_type cache; - unsigned short match_depth; - short current_match; - enum PARSE_STATE { PARSE_ERROR= -1 }; -}; - - //for debug -- really only char streams... -template -std::basic_ostream& -operator<<(std::basic_ostream& os, parse_match_result& mr) -{ - os << "cm: " << mr.current_match - << " C: '" << mr.cache - << "' md: " << mr.match_depth - << " R: " << mr.remaining(); - return os; -} - - - -//! Recursive data structure to allow efficient parsing of various strings -/*! This class provides a quick lookup by building what amounts to a - * tree data structure. It also features a match function which can - * can handle nasty input interators by caching values as it recurses - * the tree so that it can backtrack as needed. - */ -template -struct string_parse_tree -{ -#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) ) - typedef std::multimap > ptree_coll; -#else - typedef std::multimap ptree_coll; -#endif - typedef typename ptree_coll::value_type value_type; - typedef typename ptree_coll::iterator iterator; - typedef typename ptree_coll::const_iterator const_iterator; - typedef std::basic_string string_type; - typedef std::vector > collection_type; - typedef parse_match_result parse_match_result_type; - - /*! Parameter "starting_point" designates where the numbering begins. - * A starting_point of zero will start the numbering at zero - * (Sun=0, Mon=1, ...) were a starting_point of one starts the - * numbering at one (Jan=1, Feb=2, ...). The default is zero, - * negative vaules are not allowed */ - string_parse_tree(collection_type names, unsigned int starting_point=0) - { - // iterate thru all the elements and build the tree - unsigned short index = 0; - while (index != names.size() ) { - string_type s = boost::algorithm::to_lower_copy(names[index]); - insert(s, static_cast(index + starting_point)); - index++; - } - //set the last tree node = index+1 indicating a value - index++; - } - - - string_parse_tree(short value = -1) : - m_value(value) - {} - ptree_coll m_next_chars; - short m_value; - - void insert(const string_type& s, unsigned short value) - { - unsigned int i = 0; - iterator ti; - while(i < s.size()) { - if (i==0) { - if (i == (s.size()-1)) { - ti = m_next_chars.insert(value_type(s[i], - string_parse_tree(value))); - } - else { - ti = m_next_chars.insert(value_type(s[i], - string_parse_tree())); - } - } - else { - if (i == (s.size()-1)) { - ti = ti->second.m_next_chars.insert(value_type(s[i], - string_parse_tree(value))); - } - - else { - ti = ti->second.m_next_chars.insert(value_type(s[i], - string_parse_tree())); - } - - } - i++; - } - } - - - //! Recursive function that finds a matching string in the tree. - /*! Must check match_results::has_remaining() after match() is - * called. This is required so the user can determine if - * stream iterator is already pointing to the expected - * character or not (match() might advance sitr to next char in stream). - * - * A parse_match_result that has been returned from a failed match - * attempt can be sent in to the match function of a different - * string_parse_tree to attempt a match there. Use the iterators - * for the partially consumed stream, the parse_match_result object, - * and '0' for the level parameter. */ - short - match(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end, - parse_match_result_type& result, - unsigned int& level) const - { - - level++; - charT c; - // if we conditionally advance sitr, we won't have - // to consume the next character past the input - bool adv_itr = true; - if (level > result.cache.size()) { - if (sitr == stream_end) return 0; //bail - input exhausted - c = static_cast(std::tolower(*sitr)); - //result.cache += c; - //sitr++; - } - else { - // if we're looking for characters from the cache, - // we don't want to increment sitr - adv_itr = false; - c = static_cast(std::tolower(result.cache[level-1])); - } - const_iterator litr = m_next_chars.lower_bound(c); - const_iterator uitr = m_next_chars.upper_bound(c); - while (litr != uitr) { // equal if not found - if(adv_itr) { - sitr++; - result.cache += c; - } - if (litr->second.m_value != -1) { // -1 is default value - if (result.match_depth < level) { - result.current_match = litr->second.m_value; - result.match_depth = static_cast(level); - } - litr->second.match(sitr, stream_end, - result, level); - level--; - } - else { - litr->second.match(sitr, stream_end, - result, level); - level--; - } - - if(level <= result.cache.size()) { - adv_itr = false; - } - - litr++; - } - return result.current_match; - - } - - /*! Must check match_results::has_remaining() after match() is - * called. This is required so the user can determine if - * stream iterator is already pointing to the expected - * character or not (match() might advance sitr to next char in stream). - */ - parse_match_result_type - match(std::istreambuf_iterator& sitr, - std::istreambuf_iterator& stream_end) const - { - // lookup to_lower of char in tree. - unsigned int level = 0; - // string_type cache; - parse_match_result_type result; - match(sitr, stream_end, result, level); - return result; - } - - void printme(std::ostream& os, int& level) - { - level++; - iterator itr = m_next_chars.begin(); - iterator end = m_next_chars.end(); - // os << "starting level: " << level << std::endl; - while (itr != end) { - os << "level: " << level - << " node: " << itr->first - << " value: " << itr->second.m_value - << std::endl; - itr->second.printme(os, level); - itr++; - } - level--; - } - - void print(std::ostream& os) - { - int level = 0; - printme(os, level); - } - - void printmatch(std::ostream& os, charT c) - { - iterator litr = m_next_chars.lower_bound(c); - iterator uitr = m_next_chars.upper_bound(c); - os << "matches for: " << c << std::endl; - while (litr != uitr) { - os << " node: " << litr->first - << " value: " << litr->second.m_value - << std::endl; - litr++; - } - } - -}; - - -} } //namespace -#endif diff --git a/3rdParty/Boost/boost/date_time/strings_from_facet.hpp b/3rdParty/Boost/boost/date_time/strings_from_facet.hpp deleted file mode 100644 index 2bc26fb..0000000 --- a/3rdParty/Boost/boost/date_time/strings_from_facet.hpp +++ /dev/null @@ -1,125 +0,0 @@ -#ifndef DATE_TIME_STRINGS_FROM_FACET__HPP___ -#define DATE_TIME_STRINGS_FROM_FACET__HPP___ - -/* Copyright (c) 2004 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2009-02-01 06:29:43 -0500 (Sun, 01 Feb 2009) $ - */ - -#include -#include -#include -#include - -namespace boost { namespace date_time { - -//! This function gathers up all the month strings from a std::locale -/*! Using the time_put facet, this function creates a collection of - * all the month strings from a locale. This is handy when building - * custom date parsers or formatters that need to be localized. - * - *@param charT The type of char to use when gathering typically char - * or wchar_t. - *@param locale The locale to use when gathering the strings - *@param short_strings True(default) to gather short strings, - * false for long strings. - *@return A vector of strings containing the strings in order. eg: - * Jan, Feb, Mar, etc. - */ -template -std::vector > -gather_month_strings(const std::locale& locale, bool short_strings=true) -{ - typedef std::basic_string string_type; - typedef std::vector collection_type; - typedef std::basic_ostringstream ostream_type; - typedef std::ostreambuf_iterator ostream_iter_type; - typedef std::basic_ostringstream stringstream_type; - typedef std::time_put time_put_facet_type; - charT short_fmt[3] = { '%', 'b' }; - charT long_fmt[3] = { '%', 'B' }; - collection_type months; - string_type outfmt(short_fmt); - if (!short_strings) { - outfmt = long_fmt; - } - { - //grab the needed strings by using the locale to - //output each month - const charT* p_outfmt = outfmt.c_str(), *p_outfmt_end = p_outfmt + outfmt.size(); - for (int m=0; m < 12; m++) { - tm tm_value; - tm_value.tm_mon = m; - stringstream_type ss; - ostream_iter_type oitr(ss); - std::use_facet(locale).put(oitr, ss, ss.fill(), - &tm_value, - p_outfmt, - p_outfmt_end); - months.push_back(ss.str()); - } - } - return months; -} - -//! This function gathers up all the weekday strings from a std::locale -/*! Using the time_put facet, this function creates a collection of - * all the weekday strings from a locale starting with the string for - * 'Sunday'. This is handy when building custom date parsers or - * formatters that need to be localized. - * - *@param charT The type of char to use when gathering typically char - * or wchar_t. - *@param locale The locale to use when gathering the strings - *@param short_strings True(default) to gather short strings, - * false for long strings. - *@return A vector of strings containing the weekdays in order. eg: - * Sun, Mon, Tue, Wed, Thu, Fri, Sat - */ -template -std::vector > -gather_weekday_strings(const std::locale& locale, bool short_strings=true) -{ - typedef std::basic_string string_type; - typedef std::vector collection_type; - typedef std::basic_ostringstream ostream_type; - typedef std::ostreambuf_iterator ostream_iter_type; - typedef std::basic_ostringstream stringstream_type; - typedef std::time_put time_put_facet_type; - charT short_fmt[3] = { '%', 'a' }; - charT long_fmt[3] = { '%', 'A' }; - - collection_type weekdays; - - - string_type outfmt(short_fmt); - if (!short_strings) { - outfmt = long_fmt; - } - { - //grab the needed strings by using the locale to - //output each month / weekday - const charT* p_outfmt = outfmt.c_str(), *p_outfmt_end = p_outfmt + outfmt.size(); - for (int i=0; i < 7; i++) { - tm tm_value; - tm_value.tm_wday = i; - stringstream_type ss; - ostream_iter_type oitr(ss); - std::use_facet(locale).put(oitr, ss, ss.fill(), - &tm_value, - p_outfmt, - p_outfmt_end); - - weekdays.push_back(ss.str()); - } - } - return weekdays; -} - -} } //namespace - - -#endif diff --git a/3rdParty/Boost/boost/date_time/time.hpp b/3rdParty/Boost/boost/date_time/time.hpp deleted file mode 100644 index 6a6cbe1..0000000 --- a/3rdParty/Boost/boost/date_time/time.hpp +++ /dev/null @@ -1,191 +0,0 @@ -#ifndef DATE_TIME_TIME_HPP___ -#define DATE_TIME_TIME_HPP___ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - - -/*! @file time.hpp - This file contains the interface for the time associated classes. -*/ -#include -#include -#include -#include - -namespace boost { -namespace date_time { - - //! Representation of a precise moment in time, including the date. - /*! - This class is a skeleton for the interface of a temporal type - with a resolution that is higher than a day. It is intended that - this class be the base class and that the actual time - class be derived using the BN pattern. In this way, the derived - class can make decisions such as 'should there be a default constructor' - and what should it set its value to, should there be optional constructors - say allowing only an time_durations that generate a time from a clock,etc. - So, in fact multiple time types can be created for a time_system with - different construction policies, and all of them can perform basic - operations by only writing a copy constructor. Finally, compiler - errors are also shorter. - - The real behavior of the time class is provided by the time_system - template parameter. This class must provide all the logic - for addition, subtraction, as well as define all the interface - types. - - */ - - template - class base_time : private - boost::less_than_comparable > - { - public: - typedef T time_type; - typedef typename time_system::time_rep_type time_rep_type; - typedef typename time_system::date_type date_type; - typedef typename time_system::date_duration_type date_duration_type; - typedef typename time_system::time_duration_type time_duration_type; - //typedef typename time_system::hms_type hms_type; - - base_time(const date_type& day, - const time_duration_type& td, - dst_flags dst=not_dst) : - time_(time_system::get_time_rep(day, td, dst)) - {} - base_time(special_values sv) : - time_(time_system::get_time_rep(sv)) - {} - base_time(const time_rep_type& rhs) : - time_(rhs) - {} - date_type date() const - { - return time_system::get_date(time_); - } - time_duration_type time_of_day() const - { - return time_system::get_time_of_day(time_); - } - /*! Optional bool parameter will return time zone as an offset - * (ie "+07:00"). Empty string is returned for classes that do - * not use a time_zone */ - std::string zone_name(bool /*as_offset*/=false) const - { - return time_system::zone_name(time_); - } - /*! Optional bool parameter will return time zone as an offset - * (ie "+07:00"). Empty string is returned for classes that do - * not use a time_zone */ - std::string zone_abbrev(bool /*as_offset*/=false) const - { - return time_system::zone_name(time_); - } - //! An empty string is returned for classes that do not use a time_zone - std::string zone_as_posix_string() const - { - return std::string(); - } - - //! check to see if date is not a value - bool is_not_a_date_time() const - { - return time_.is_not_a_date_time(); - } - //! check to see if date is one of the infinity values - bool is_infinity() const - { - return (is_pos_infinity() || is_neg_infinity()); - } - //! check to see if date is greater than all possible dates - bool is_pos_infinity() const - { - return time_.is_pos_infinity(); - } - //! check to see if date is greater than all possible dates - bool is_neg_infinity() const - { - return time_.is_neg_infinity(); - } - //! check to see if time is a special value - bool is_special() const - { - return(is_not_a_date_time() || is_infinity()); - } - //!Equality operator -- others generated by boost::equality_comparable - bool operator==(const time_type& rhs) const - { - return time_system::is_equal(time_,rhs.time_); - } - //!Equality operator -- others generated by boost::less_than_comparable - bool operator<(const time_type& rhs) const - { - return time_system::is_less(time_,rhs.time_); - } - //! difference between two times - time_duration_type operator-(const time_type& rhs) const - { - return time_system::subtract_times(time_, rhs.time_); - } - //! add date durations - time_type operator+(const date_duration_type& dd) const - { - return time_system::add_days(time_, dd); - } - time_type operator+=(const date_duration_type& dd) - { - time_ = (time_system::get_time_rep(date() + dd, time_of_day())); - return time_type(time_); - } - //! subtract date durations - time_type operator-(const date_duration_type& dd) const - { - return time_system::subtract_days(time_, dd); - } - time_type operator-=(const date_duration_type& dd) - { - time_ = (time_system::get_time_rep(date() - dd, time_of_day())); - return time_type(time_); - } - //! add time durations - time_type operator+(const time_duration_type& td) const - { - return time_type(time_system::add_time_duration(time_, td)); - } - time_type operator+=(const time_duration_type& td) - { - time_ = (time_system::get_time_rep(date(), time_of_day() + td)); - return time_type(time_); - } - //! subtract time durations - time_type operator-(const time_duration_type& rhs) const - { - return time_system::subtract_time_duration(time_, rhs); - } - time_type operator-=(const time_duration_type& td) - { - time_ = (time_system::get_time_rep(date(), time_of_day() - td)); - return time_type(time_); - } - - protected: - time_rep_type time_; - }; - - - - - -} } //namespace date_time::boost - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/time_clock.hpp b/3rdParty/Boost/boost/date_time/time_clock.hpp deleted file mode 100644 index 1ea5d2e8..0000000 --- a/3rdParty/Boost/boost/date_time/time_clock.hpp +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef DATE_TIME_TIME_CLOCK_HPP___ -#define DATE_TIME_TIME_CLOCK_HPP___ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -/*! @file time_clock.hpp - This file contains the interface for clock devices. -*/ - -#include "boost/date_time/c_time.hpp" -#include "boost/shared_ptr.hpp" - -namespace boost { -namespace date_time { - - - //! A clock providing time level services based on C time_t capabilities - /*! This clock provides resolution to the 1 second level - */ - template - class second_clock - { - public: - typedef typename time_type::date_type date_type; - typedef typename time_type::time_duration_type time_duration_type; - - static time_type local_time() - { - ::std::time_t t; - ::std::time(&t); - ::std::tm curr, *curr_ptr; - //curr_ptr = ::std::localtime(&t); - curr_ptr = c_time::localtime(&t, &curr); - return create_time(curr_ptr); - } - - - //! Get the current day in universal date as a ymd_type - static time_type universal_time() - { - - ::std::time_t t; - ::std::time(&t); - ::std::tm curr, *curr_ptr; - //curr_ptr = ::std::gmtime(&t); - curr_ptr = c_time::gmtime(&t, &curr); - return create_time(curr_ptr); - } - - template - static time_type local_time(boost::shared_ptr tz_ptr) - { - typedef typename time_type::utc_time_type utc_time_type; - utc_time_type utc_time = second_clock::universal_time(); - return time_type(utc_time, tz_ptr); - } - - - private: - static time_type create_time(::std::tm* current) - { - date_type d(static_cast(current->tm_year + 1900), - static_cast(current->tm_mon + 1), - static_cast(current->tm_mday)); - time_duration_type td(current->tm_hour, - current->tm_min, - current->tm_sec); - return time_type(d,td); - } - - }; - - -} } //namespace date_time - - -#endif diff --git a/3rdParty/Boost/boost/date_time/time_defs.hpp b/3rdParty/Boost/boost/date_time/time_defs.hpp deleted file mode 100644 index 55fe42a..0000000 --- a/3rdParty/Boost/boost/date_time/time_defs.hpp +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef DATE_TIME_TIME_PRECISION_LIMITS_HPP -#define DATE_TIME_TIME_PRECISION_LIMITS_HPP - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - - - -/*! \file time_defs.hpp - This file contains nice definitions for handling the resoluion of various time - reprsentations. -*/ - -namespace boost { -namespace date_time { - - //!Defines some nice types for handling time level resolutions - enum time_resolutions { - sec, - tenth, - hundreth, // deprecated misspelled version of hundredth - hundredth = hundreth, - milli, - ten_thousandth, - micro, - nano, - NumResolutions - }; - - //! Flags for daylight savings or summer time - enum dst_flags {not_dst, is_dst, calculate}; - - -} } //namespace date_time - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/time_duration.hpp b/3rdParty/Boost/boost/date_time/time_duration.hpp deleted file mode 100644 index 4004125..0000000 --- a/3rdParty/Boost/boost/date_time/time_duration.hpp +++ /dev/null @@ -1,281 +0,0 @@ -#ifndef DATE_TIME_TIME_DURATION_HPP___ -#define DATE_TIME_TIME_DURATION_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/operators.hpp" -#include "boost/date_time/time_defs.hpp" -#include "boost/date_time/special_defs.hpp" -#include "boost/date_time/compiler_config.hpp" - -namespace boost { -namespace date_time { - - - //! Represents some amount of elapsed time measure to a given resolution - /*! This class represents a standard set of capabilities for all - counted time durations. Time duration implementations should derive - from this class passing their type as the first template parameter. - This design allows the subclass duration types to provide custom - construction policies or other custom features not provided here. - - @param T The subclass type - @param rep_type The time resolution traits for this duration type. - */ - template - class time_duration : private - boost::less_than_comparable > - /* dividable, addable, and subtractable operator templates - * won't work with this class (MSVC++ 6.0). return type - * from '+=' is different than expected return type - * from '+'. multipliable probably wont work - * either (haven't tried) */ - { - public: - typedef T duration_type; //the subclass - typedef rep_type traits_type; - typedef typename rep_type::day_type day_type; - typedef typename rep_type::hour_type hour_type; - typedef typename rep_type::min_type min_type; - typedef typename rep_type::sec_type sec_type; - typedef typename rep_type::fractional_seconds_type fractional_seconds_type; - typedef typename rep_type::tick_type tick_type; - typedef typename rep_type::impl_type impl_type; - - time_duration() : ticks_(0) {} - time_duration(hour_type hours_in, - min_type minutes_in, - sec_type seconds_in=0, - fractional_seconds_type frac_sec_in = 0) : - ticks_(rep_type::to_tick_count(hours_in,minutes_in,seconds_in,frac_sec_in)) - {} - // copy constructor required for dividable<> - //! Construct from another time_duration (Copy constructor) - time_duration(const time_duration& other) - : ticks_(other.ticks_) - {} - //! Construct from special_values - time_duration(special_values sv) : ticks_(impl_type::from_special(sv)) - {} - //! Returns smallest representable duration - static duration_type unit() - { - return duration_type(0,0,0,1); - } - //! Return the number of ticks in a second - static tick_type ticks_per_second() - { - return rep_type::res_adjust(); - } - //! Provide the resolution of this duration type - static time_resolutions resolution() - { - return rep_type::resolution(); - } - //! Returns number of hours in the duration - hour_type hours() const - { - return static_cast(ticks() / (3600*ticks_per_second())); - } - //! Returns normalized number of minutes - min_type minutes() const - { - return static_cast((ticks() / (60*ticks_per_second())) % 60); - } - //! Returns normalized number of seconds (0..60) - sec_type seconds() const - { - return static_cast((ticks()/ticks_per_second()) % 60); - } - //! Returns total number of seconds truncating any fractional seconds - sec_type total_seconds() const - { - return static_cast(ticks() / ticks_per_second()); - } - //! Returns total number of milliseconds truncating any fractional seconds - tick_type total_milliseconds() const - { - if (ticks_per_second() < 1000) { - return ticks() * (static_cast(1000) / ticks_per_second()); - } - return ticks() / (ticks_per_second() / static_cast(1000)) ; - } - //! Returns total number of nanoseconds truncating any sub millisecond values - tick_type total_nanoseconds() const - { - if (ticks_per_second() < 1000000000) { - return ticks() * (static_cast(1000000000) / ticks_per_second()); - } - return ticks() / (ticks_per_second() / static_cast(1000000000)) ; - } - //! Returns total number of microseconds truncating any sub microsecond values - tick_type total_microseconds() const - { - if (ticks_per_second() < 1000000) { - return ticks() * (static_cast(1000000) / ticks_per_second()); - } - return ticks() / (ticks_per_second() / static_cast(1000000)) ; - } - //! Returns count of fractional seconds at given resolution - fractional_seconds_type fractional_seconds() const - { - return (ticks() % ticks_per_second()); - } - //! Returns number of possible digits in fractional seconds - static unsigned short num_fractional_digits() - { - return rep_type::num_fractional_digits(); - } - duration_type invert_sign() const - { - return duration_type(ticks_ * (-1)); - } - bool is_negative() const - { - return ticks_ < 0; - } - bool operator<(const time_duration& rhs) const - { - return ticks_ < rhs.ticks_; - } - bool operator==(const time_duration& rhs) const - { - return ticks_ == rhs.ticks_; - } - //! unary- Allows for time_duration td = -td1 - duration_type operator-()const - { - return duration_type(ticks_ * (-1)); - } - duration_type operator-(const duration_type& d) const - { - return duration_type(ticks_ - d.ticks_); - } - duration_type operator+(const duration_type& d) const - { - return duration_type(ticks_ + d.ticks_); - } - duration_type operator/(int divisor) const - { - return duration_type(ticks_ / divisor); - } - duration_type operator-=(const duration_type& d) - { - ticks_ = ticks_ - d.ticks_; - return duration_type(ticks_); - } - duration_type operator+=(const duration_type& d) - { - ticks_ = ticks_ + d.ticks_; - return duration_type(ticks_); - } - //! Division operations on a duration with an integer. - duration_type operator/=(int divisor) - { - ticks_ = ticks_ / divisor; - return duration_type(ticks_); - } - //! Multiplication operations an a duration with an integer - duration_type operator*(int rhs) const - { - return duration_type(ticks_ * rhs); - } - duration_type operator*=(int divisor) - { - ticks_ = ticks_ * divisor; - return duration_type(ticks_); - } - tick_type ticks() const - { - return traits_type::as_number(ticks_); - } - - //! Is ticks_ a special value? - bool is_special()const - { - if(traits_type::is_adapted()) - { - return ticks_.is_special(); - } - else{ - return false; - } - } - //! Is duration pos-infinity - bool is_pos_infinity()const - { - if(traits_type::is_adapted()) - { - return ticks_.is_pos_infinity(); - } - else{ - return false; - } - } - //! Is duration neg-infinity - bool is_neg_infinity()const - { - if(traits_type::is_adapted()) - { - return ticks_.is_neg_infinity(); - } - else{ - return false; - } - } - //! Is duration not-a-date-time - bool is_not_a_date_time()const - { - if(traits_type::is_adapted()) - { - return ticks_.is_nan(); - } - else{ - return false; - } - } - - //! Used for special_values output - impl_type get_rep()const - { - return ticks_; - } - - protected: - explicit time_duration(impl_type in) : ticks_(in) {}; - impl_type ticks_; - }; - - - - //! Template for instantiating derived adjusting durations - /* These templates are designed to work with multiples of - * 10 for frac_of_second and resoultion adjustment - */ - template - class subsecond_duration : public base_duration - { - public: - typedef typename base_duration::traits_type traits_type; - explicit subsecond_duration(boost::int64_t ss) : - base_duration(0,0,0,ss*traits_type::res_adjust()/frac_of_second) - {} - }; - - - -} } //namespace date_time - - - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/time_facet.hpp b/3rdParty/Boost/boost/date_time/time_facet.hpp deleted file mode 100644 index c1a2f8e..0000000 --- a/3rdParty/Boost/boost/date_time/time_facet.hpp +++ /dev/null @@ -1,1327 +0,0 @@ - -#ifndef _DATE_TIME_FACET__HPP__ -#define _DATE_TIME_FACET__HPP__ - -/* Copyright (c) 2004-2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Martin Andrian, Jeff Garland, Bart Garst - * $Date: 2008-11-23 06:13:35 -0500 (Sun, 23 Nov 2008) $ - */ - -#include -#include -#include -#include -#include -#include -#include // i/ostreambuf_iterator -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { -namespace date_time { - - template - struct time_formats { - public: - typedef CharT char_type; - static const char_type fractional_seconds_format[3]; // f - static const char_type fractional_seconds_or_none_format[3]; // F - static const char_type seconds_with_fractional_seconds_format[3]; // s - static const char_type seconds_format[3]; // S - static const char_type hours_format[3]; // H - static const char_type unrestricted_hours_format[3]; // O - static const char_type standard_format[9]; // x X - static const char_type zone_abbrev_format[3]; // z - static const char_type zone_name_format[3]; // Z - static const char_type zone_iso_format[3]; // q - static const char_type zone_iso_extended_format[3]; // Q - static const char_type posix_zone_string_format[4]; // ZP - static const char_type duration_sign_negative_only[3]; // - - static const char_type duration_sign_always[3]; // + - static const char_type duration_seperator[2]; - static const char_type negative_sign[2]; //- - static const char_type positive_sign[2]; //+ - static const char_type iso_time_format_specifier[18]; - static const char_type iso_time_format_extended_specifier[22]; - //default ptime format is YYYY-Mon-DD HH:MM:SS[.fff...][ zzz] - static const char_type default_time_format[23]; - // default_time_input_format uses a posix_time_zone_string instead of a time zone abbrev - static const char_type default_time_input_format[24]; - //default time_duration format is HH:MM:SS[.fff...] - static const char_type default_time_duration_format[11]; - }; - - template - const typename time_formats::char_type - time_formats::fractional_seconds_format[3] = {'%','f'}; - - template - const typename time_formats::char_type - time_formats::fractional_seconds_or_none_format[3] = {'%','F'}; - - template - const typename time_formats::char_type - time_formats::seconds_with_fractional_seconds_format[3] = - {'%','s'}; - - template - const typename time_formats::char_type - time_formats::seconds_format[3] = {'%','S'}; - - template - const typename time_formats::char_type - time_formats::hours_format[3] = {'%','H'}; - - template - const typename time_formats::char_type - time_formats::unrestricted_hours_format[3] = {'%','O'}; - - template - const typename time_formats::char_type - //time_formats::standard_format[5] = {'%','c',' ','%','z'}; - time_formats::standard_format[9] = {'%','x',' ','%','X',' ','%','z'}; - - template - const typename time_formats::char_type - time_formats::zone_abbrev_format[3] = {'%','z'}; - - template - const typename time_formats::char_type - time_formats::zone_name_format[3] = {'%','Z'}; - - template - const typename time_formats::char_type - time_formats::zone_iso_format[3] = {'%','q'}; - - template - const typename time_formats::char_type - time_formats::zone_iso_extended_format[3] ={'%','Q'}; - - template - const typename time_formats::char_type - time_formats::posix_zone_string_format[4] ={'%','Z','P'}; - - template - const typename time_formats::char_type - time_formats::duration_seperator[2] = {':'}; - - template - const typename time_formats::char_type - time_formats::negative_sign[2] = {'-'}; - - template - const typename time_formats::char_type - time_formats::positive_sign[2] = {'+'}; - - template - const typename time_formats::char_type - time_formats::duration_sign_negative_only[3] ={'%','-'}; - - template - const typename time_formats::char_type - time_formats::duration_sign_always[3] ={'%','+'}; - - template - const typename time_formats::char_type - time_formats::iso_time_format_specifier[18] = - {'%', 'Y', '%', 'm', '%', 'd', 'T', - '%', 'H', '%', 'M', '%', 'S', '%', 'F', '%','q' }; - - template - const typename time_formats::char_type - time_formats::iso_time_format_extended_specifier[22] = - {'%', 'Y', '-', '%', 'm', '-', '%', 'd', ' ', - '%', 'H', ':', '%', 'M', ':', '%', 'S', '%', 'F','%','Q'}; - - template - const typename time_formats::char_type - time_formats::default_time_format[23] = - {'%','Y','-','%','b','-','%','d',' ', - '%','H',':','%','M',':','%','S','%','F',' ','%','z'}; - - template - const typename time_formats::char_type - time_formats::default_time_input_format[24] = - {'%','Y','-','%','b','-','%','d',' ', - '%','H',':','%','M',':','%','S','%','F',' ','%','Z','P'}; - - template - const typename time_formats::char_type - time_formats::default_time_duration_format[11] = - {'%','H',':','%','M',':','%','S','%','F'}; - - - - /*! Facet used for format-based output of time types - * This class provides for the use of format strings to output times. In addition - * to the flags for formatting date elements, the following are the allowed format flags: - * - %x %X => default format - enables addition of more flags to default (ie. "%x %X %z") - * - %f => fractional seconds ".123456" - * - %F => fractional seconds or none: like frac sec but empty if frac sec == 0 - * - %s => seconds w/ fractional sec "02.123" (this is the same as "%S%f) - * - %S => seconds "02" - * - %z => abbreviated time zone "EDT" - * - %Z => full time zone name "Eastern Daylight Time" - */ - template > > - class time_facet : - public boost::date_time::date_facet { - public: - typedef typename time_type::date_type date_type; - typedef typename time_type::time_duration_type time_duration_type; - typedef boost::date_time::period period_type; - typedef boost::date_time::date_facet base_type; - typedef typename base_type::string_type string_type; - typedef typename base_type::char_type char_type; - typedef typename base_type::period_formatter_type period_formatter_type; - typedef typename base_type::special_values_formatter_type special_values_formatter_type; - typedef typename base_type::date_gen_formatter_type date_gen_formatter_type; - static const char_type* fractional_seconds_format; // %f - static const char_type* fractional_seconds_or_none_format; // %F - static const char_type* seconds_with_fractional_seconds_format; // %s - static const char_type* seconds_format; // %S - static const char_type* hours_format; // %H - static const char_type* unrestricted_hours_format; // %O - static const char_type* standard_format; // %x X - static const char_type* zone_abbrev_format; // %z - static const char_type* zone_name_format; // %Z - static const char_type* zone_iso_format; // %q - static const char_type* zone_iso_extended_format; // %Q - static const char_type* posix_zone_string_format; // %ZP - static const char_type* duration_seperator; - static const char_type* duration_sign_always; // %+ - static const char_type* duration_sign_negative_only; // %- - static const char_type* negative_sign; //- - static const char_type* positive_sign; //+ - static const char_type* iso_time_format_specifier; - static const char_type* iso_time_format_extended_specifier; - - //default ptime format is YYYY-Mon-DD HH:MM:SS[.fff...][ zzz] - static const char_type* default_time_format; - //default time_duration format is HH:MM:SS[.fff...] - static const char_type* default_time_duration_format; - static std::locale::id id; - -#if defined (__SUNPRO_CC) && defined (_RWSTD_VER) - std::locale::id& __get_id (void) const { return id; } -#endif - - //! sets default formats for ptime, local_date_time, and time_duration - explicit time_facet(::size_t a_ref = 0) - : base_type(default_time_format, period_formatter_type(), special_values_formatter_type(), date_gen_formatter_type(), a_ref), - m_time_duration_format(string_type(duration_sign_negative_only) + default_time_duration_format) - {} - - //! Construct the facet with an explicitly specified format - explicit time_facet(const char_type* a_format, - period_formatter_type period_formatter = period_formatter_type(), - const special_values_formatter_type& special_value_formatter = special_values_formatter_type(), - date_gen_formatter_type dg_formatter = date_gen_formatter_type(), - ::size_t a_ref = 0) - : base_type(a_format, - period_formatter, - special_value_formatter, - dg_formatter, - a_ref), - m_time_duration_format(string_type(duration_sign_negative_only) + default_time_duration_format) - {} - - //! Changes format for time_duration - void time_duration_format(const char_type* const format) - { - m_time_duration_format = format; - } - - virtual void set_iso_format() - { - this->m_format = iso_time_format_specifier; - } - virtual void set_iso_extended_format() - { - this->m_format = iso_time_format_extended_specifier; - } - - OutItrT put(OutItrT a_next, - std::ios_base& a_ios, - char_type a_fill, - const time_type& a_time) const - { - if (a_time.is_special()) { - return this->do_put_special(a_next, a_ios, a_fill, - a_time.date().as_special()); - } - string_type format(this->m_format); - - string_type frac_str; - if (format.find(seconds_with_fractional_seconds_format) != string_type::npos) { - // replace %s with %S.nnn - frac_str = - fractional_seconds_as_string(a_time.time_of_day(), false); - char_type sep = std::use_facet >(a_ios.getloc()).decimal_point(); - - string_type replace_string(seconds_format); - replace_string += sep; - replace_string += frac_str; - boost::algorithm::replace_all(format, - seconds_with_fractional_seconds_format, - replace_string); - } - /* NOTE: replacing posix_zone_string_format must be done BEFORE - * zone_name_format: "%ZP" & "%Z", if Z is checked first it will - * incorrectly replace a zone_name where a posix_string should go */ - if (format.find(posix_zone_string_format) != string_type::npos) { - if(a_time.zone_abbrev().empty()) { - // if zone_abbrev() returns an empty string, we want to - // erase posix_zone_string_format from format - boost::algorithm::erase_all(format, posix_zone_string_format); - } - else{ - boost::algorithm::replace_all(format, - posix_zone_string_format, - a_time.zone_as_posix_string()); - } - } - if (format.find(zone_name_format) != string_type::npos) { - if(a_time.zone_name().empty()) { - /* TODO: this'll probably create problems if a user places - * the zone_*_format flag in the format with a ptime. This - * code removes the flag from the default formats */ - - // if zone_name() returns an empty string, we want to - // erase zone_name_format & one preceeding space - std::basic_ostringstream ss; - ss << ' ' << zone_name_format; - boost::algorithm::erase_all(format, ss.str()); - } - else{ - boost::algorithm::replace_all(format, - zone_name_format, - a_time.zone_name()); - } - } - if (format.find(zone_abbrev_format) != string_type::npos) { - if(a_time.zone_abbrev(false).empty()) { - /* TODO: this'll probably create problems if a user places - * the zone_*_format flag in the format with a ptime. This - * code removes the flag from the default formats */ - - // if zone_abbrev() returns an empty string, we want to - // erase zone_abbrev_format & one preceeding space - std::basic_ostringstream ss; - ss << ' ' << zone_abbrev_format; - boost::algorithm::erase_all(format, ss.str()); - } - else{ - boost::algorithm::replace_all(format, - zone_abbrev_format, - a_time.zone_abbrev(false)); - } - } - if (format.find(zone_iso_extended_format) != string_type::npos) { - if(a_time.zone_name(true).empty()) { - /* TODO: this'll probably create problems if a user places - * the zone_*_format flag in the format with a ptime. This - * code removes the flag from the default formats */ - - // if zone_name() returns an empty string, we want to - // erase zone_iso_extended_format from format - boost::algorithm::erase_all(format, zone_iso_extended_format); - } - else{ - boost::algorithm::replace_all(format, - zone_iso_extended_format, - a_time.zone_name(true)); - } - } - - if (format.find(zone_iso_format) != string_type::npos) { - if(a_time.zone_abbrev(true).empty()) { - /* TODO: this'll probably create problems if a user places - * the zone_*_format flag in the format with a ptime. This - * code removes the flag from the default formats */ - - // if zone_abbrev() returns an empty string, we want to - // erase zone_iso_format from format - boost::algorithm::erase_all(format, zone_iso_format); - } - else{ - boost::algorithm::replace_all(format, - zone_iso_format, - a_time.zone_abbrev(true)); - } - } - if (format.find(fractional_seconds_format) != string_type::npos) { - // replace %f with nnnnnnn - if (!frac_str.size()) { - frac_str = fractional_seconds_as_string(a_time.time_of_day(), false); - } - boost::algorithm::replace_all(format, - fractional_seconds_format, - frac_str); - } - - if (format.find(fractional_seconds_or_none_format) != string_type::npos) { - // replace %F with nnnnnnn or nothing if fs == 0 - frac_str = - fractional_seconds_as_string(a_time.time_of_day(), true); - if (frac_str.size()) { - char_type sep = std::use_facet >(a_ios.getloc()).decimal_point(); - string_type replace_string; - replace_string += sep; - replace_string += frac_str; - boost::algorithm::replace_all(format, - fractional_seconds_or_none_format, - replace_string); - } - else { - boost::algorithm::erase_all(format, - fractional_seconds_or_none_format); - } - } - - return this->do_put_tm(a_next, a_ios, a_fill, - to_tm(a_time), format); - } - - //! put function for time_duration - OutItrT put(OutItrT a_next, - std::ios_base& a_ios, - char_type a_fill, - const time_duration_type& a_time_dur) const - { - if (a_time_dur.is_special()) { - return this->do_put_special(a_next, a_ios, a_fill, - a_time_dur.get_rep().as_special()); - } - - string_type format(m_time_duration_format); - if (a_time_dur.is_negative()) { - // replace %- with minus sign. Should we use the numpunct facet? - boost::algorithm::replace_all(format, - duration_sign_negative_only, - negative_sign); - // remove all the %+ in the string with '-' - boost::algorithm::replace_all(format, - duration_sign_always, - negative_sign); - } - else { //duration is positive - // remove all the %- combos from the string - boost::algorithm::erase_all(format, duration_sign_negative_only); - // remove all the %+ in the string with '+' - boost::algorithm::replace_all(format, - duration_sign_always, - positive_sign); - } - - /* - * It is possible for a time duration to span more then 24 hours. - * Standard time_put::put is obliged to behave the same as strftime - * (See ISO 14882-2003 22.2.5.3.1 par. 1) and strftime's behavior is - * unspecified for the case when tm_hour field is outside 0-23 range - * (See ISO 9899-1999 7.23.3.5 par. 3). So we must output %H and %O - * here ourself. - */ - string_type hours_str; - if (format.find(unrestricted_hours_format) != string_type::npos) { - hours_str = hours_as_string(a_time_dur); - boost::algorithm::replace_all(format, unrestricted_hours_format, hours_str); - } - // We still have to process restricted hours format specifier. In order to - // support parseability of durations in ISO format (%H%M%S), we'll have to - // restrict the stringified hours length to 2 characters. - if (format.find(hours_format) != string_type::npos) { - if (hours_str.empty()) - hours_str = hours_as_string(a_time_dur); - BOOST_ASSERT(hours_str.length() <= 2); - boost::algorithm::replace_all(format, hours_format, hours_str); - } - - string_type frac_str; - if (format.find(seconds_with_fractional_seconds_format) != string_type::npos) { - // replace %s with %S.nnn - frac_str = - fractional_seconds_as_string(a_time_dur, false); - char_type sep = std::use_facet >(a_ios.getloc()).decimal_point(); - - string_type replace_string(seconds_format); - replace_string += sep; - replace_string += frac_str; - boost::algorithm::replace_all(format, - seconds_with_fractional_seconds_format, - replace_string); - } - if (format.find(fractional_seconds_format) != string_type::npos) { - // replace %f with nnnnnnn - if (!frac_str.size()) { - frac_str = fractional_seconds_as_string(a_time_dur, false); - } - boost::algorithm::replace_all(format, - fractional_seconds_format, - frac_str); - } - - if (format.find(fractional_seconds_or_none_format) != string_type::npos) { - // replace %F with nnnnnnn or nothing if fs == 0 - frac_str = - fractional_seconds_as_string(a_time_dur, true); - if (frac_str.size()) { - char_type sep = std::use_facet >(a_ios.getloc()).decimal_point(); - string_type replace_string; - replace_string += sep; - replace_string += frac_str; - boost::algorithm::replace_all(format, - fractional_seconds_or_none_format, - replace_string); - } - else { - boost::algorithm::erase_all(format, - fractional_seconds_or_none_format); - } - } - - return this->do_put_tm(a_next, a_ios, a_fill, - to_tm(a_time_dur), format); - } - - OutItrT put(OutItrT next, std::ios_base& a_ios, - char_type fill, const period_type& p) const - { - return this->m_period_formatter.put_period(next, a_ios, fill,p,*this); - } - - - protected: - - static - string_type - fractional_seconds_as_string(const time_duration_type& a_time, - bool null_when_zero) - { - typename time_duration_type::fractional_seconds_type frac_sec = - a_time.fractional_seconds(); - - if (null_when_zero && (frac_sec == 0)) { - return string_type(); - } - - //make sure there is no sign - return integral_as_string( - date_time::absolute_value(frac_sec), - time_duration_type::num_fractional_digits()); - } - - static - string_type - hours_as_string(const time_duration_type& a_time, int width = 2) - { - return integral_as_string(date_time::absolute_value(a_time.hours()), width); - } - - template< typename IntT > - static - string_type - integral_as_string(IntT val, int width = 2) - { - std::basic_ostringstream ss; - ss.imbue(std::locale::classic()); // don't want any formatting - ss << std::setw(width) - << std::setfill(static_cast('0')); -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - // JDG [7/6/02 VC++ compatibility] - char_type buff[34]; - ss << _i64toa(static_cast(val), buff, 10); -#else - ss << val; -#endif - return ss.str(); - } - - private: - string_type m_time_duration_format; - - }; - - template - std::locale::id time_facet::id; - - template - const typename time_facet::char_type* - time_facet::fractional_seconds_format = time_formats::fractional_seconds_format; - - template - const typename time_facet::char_type* - time_facet::fractional_seconds_or_none_format = time_formats::fractional_seconds_or_none_format; - - template - const typename time_facet::char_type* - time_facet::seconds_with_fractional_seconds_format = - time_formats::seconds_with_fractional_seconds_format; - - - template - const typename time_facet::char_type* - time_facet::zone_name_format = time_formats::zone_name_format; - - template - const typename time_facet::char_type* - time_facet::zone_abbrev_format = time_formats::zone_abbrev_format; - - template - const typename time_facet::char_type* - time_facet::zone_iso_extended_format =time_formats::zone_iso_extended_format; - - template - const typename time_facet::char_type* - time_facet::posix_zone_string_format =time_formats::posix_zone_string_format; - - template - const typename time_facet::char_type* - time_facet::zone_iso_format = time_formats::zone_iso_format; - - template - const typename time_facet::char_type* - time_facet::seconds_format = time_formats::seconds_format; - - template - const typename time_facet::char_type* - time_facet::hours_format = time_formats::hours_format; - - template - const typename time_facet::char_type* - time_facet::unrestricted_hours_format = time_formats::unrestricted_hours_format; - - template - const typename time_facet::char_type* - time_facet::standard_format = time_formats::standard_format; - - template - const typename time_facet::char_type* - time_facet::duration_seperator = time_formats::duration_seperator; - - template - const typename time_facet::char_type* - time_facet::negative_sign = time_formats::negative_sign; - - template - const typename time_facet::char_type* - time_facet::positive_sign = time_formats::positive_sign; - - template - const typename time_facet::char_type* - time_facet::duration_sign_negative_only = time_formats::duration_sign_negative_only; - - template - const typename time_facet::char_type* - time_facet::duration_sign_always = time_formats::duration_sign_always; - - template - const typename time_facet::char_type* - time_facet::iso_time_format_specifier = time_formats::iso_time_format_specifier; - - template - const typename time_facet::char_type* - time_facet::iso_time_format_extended_specifier = time_formats::iso_time_format_extended_specifier; - - template - const typename time_facet::char_type* - time_facet::default_time_format = - time_formats::default_time_format; - - template - const typename time_facet::char_type* - time_facet::default_time_duration_format = - time_formats::default_time_duration_format; - - - //! Facet for format-based input. - /*! - */ - template > > - class time_input_facet : - public boost::date_time::date_input_facet { - public: - typedef typename time_type::date_type date_type; - typedef typename time_type::time_duration_type time_duration_type; - typedef typename time_duration_type::fractional_seconds_type fracional_seconds_type; - typedef boost::date_time::period period_type; - typedef boost::date_time::date_input_facet base_type; - typedef typename base_type::duration_type date_duration_type; - typedef typename base_type::year_type year_type; - typedef typename base_type::month_type month_type; - typedef typename base_type::day_type day_type; - typedef typename base_type::string_type string_type; - typedef typename string_type::const_iterator const_itr; - typedef typename base_type::char_type char_type; - typedef typename base_type::format_date_parser_type format_date_parser_type; - typedef typename base_type::period_parser_type period_parser_type; - typedef typename base_type::special_values_parser_type special_values_parser_type; - typedef typename base_type::date_gen_parser_type date_gen_parser_type; - typedef typename base_type::special_values_parser_type::match_results match_results; - - static const char_type* fractional_seconds_format; // f - static const char_type* fractional_seconds_or_none_format; // F - static const char_type* seconds_with_fractional_seconds_format; // s - static const char_type* seconds_format; // S - static const char_type* standard_format; // x X - static const char_type* zone_abbrev_format; // z - static const char_type* zone_name_format; // Z - static const char_type* zone_iso_format; // q - static const char_type* zone_iso_extended_format; // Q - static const char_type* duration_seperator; - static const char_type* iso_time_format_specifier; - static const char_type* iso_time_format_extended_specifier; - static const char_type* default_time_input_format; - static const char_type* default_time_duration_format; - static std::locale::id id; - - //! Constructor that takes a format string for a ptime - explicit time_input_facet(const string_type& format, ::size_t a_ref = 0) - : base_type(format, a_ref), - m_time_duration_format(default_time_duration_format) - { } - - explicit time_input_facet(const string_type& format, - const format_date_parser_type& date_parser, - const special_values_parser_type& sv_parser, - const period_parser_type& per_parser, - const date_gen_parser_type& date_gen_parser, - ::size_t a_ref = 0) - : base_type(format, - date_parser, - sv_parser, - per_parser, - date_gen_parser, - a_ref), - m_time_duration_format(default_time_duration_format) - {} - - //! sets default formats for ptime, local_date_time, and time_duration - explicit time_input_facet(::size_t a_ref = 0) - : base_type(default_time_input_format, a_ref), - m_time_duration_format(default_time_duration_format) - { } - - //! Set the format for time_duration - void time_duration_format(const char_type* const format) { - m_time_duration_format = format; - } - virtual void set_iso_format() - { - this->m_format = iso_time_format_specifier; - } - virtual void set_iso_extended_format() - { - this->m_format = iso_time_format_extended_specifier; - } - - InItrT get(InItrT& sitr, - InItrT& stream_end, - std::ios_base& a_ios, - period_type& p) const - { - p = this->m_period_parser.get_period(sitr, - stream_end, - a_ios, - p, - time_duration_type::unit(), - *this); - return sitr; - } - - //default ptime format is YYYY-Mon-DD HH:MM:SS[.fff...][ zzz] - //default time_duration format is %H:%M:%S%F HH:MM:SS[.fff...] - - InItrT get(InItrT& sitr, - InItrT& stream_end, - std::ios_base& a_ios, - time_duration_type& td) const - { - // skip leading whitespace - while((sitr != stream_end) && std::isspace(*sitr)) { ++sitr; } - - bool use_current_char = false; - - // num_get will consume the +/-, we may need a copy if special_value - char_type c = '\0'; - if((sitr != stream_end) && (*sitr == '-' || *sitr == '+')) { - c = *sitr; - } - - typedef typename time_duration_type::hour_type hour_type; - typedef typename time_duration_type::min_type min_type; - typedef typename time_duration_type::sec_type sec_type; - - hour_type hour = 0; - min_type min = 0; - sec_type sec = 0; - typename time_duration_type::fractional_seconds_type frac(0); - - typedef std::num_get num_get; - if(!std::has_facet(a_ios.getloc())) { - num_get* ng = new num_get(); - std::locale loc = std::locale(a_ios.getloc(), ng); - a_ios.imbue(loc); - } - - const_itr itr(m_time_duration_format.begin()); - while (itr != m_time_duration_format.end() && (sitr != stream_end)) { - if (*itr == '%') { - ++itr; - if (*itr != '%') { - switch(*itr) { - case 'O': - { - // A period may span more than 24 hours. In that case the format - // string should be composed with the unrestricted hours specifier. - hour = var_string_to_int(sitr, stream_end, - std::numeric_limits::digits10 + 1); - if(hour == -1){ - return check_special_value(sitr, stream_end, td, c); - } - break; - } - case 'H': - { - match_results mr; - hour = fixed_string_to_int(sitr, stream_end, mr, 2); - if(hour == -1){ - return check_special_value(sitr, stream_end, td, c); - } - break; - } - case 'M': - { - match_results mr; - min = fixed_string_to_int(sitr, stream_end, mr, 2); - if(min == -1){ - return check_special_value(sitr, stream_end, td, c); - } - break; - } - case 's': - case 'S': - { - match_results mr; - sec = fixed_string_to_int(sitr, stream_end, mr, 2); - if(sec == -1){ - return check_special_value(sitr, stream_end, td, c); - } - if (*itr == 'S') - break; - // %s is the same as %S%f so we drop through into %f - } - case 'f': - { - // check for decimal, check special_values if missing - if(*sitr == '.') { - ++sitr; - parse_frac_type(sitr, stream_end, frac); - // sitr will point to next expected char after this parsing - // is complete so no need to advance it - use_current_char = true; - } - else { - return check_special_value(sitr, stream_end, td, c); - } - break; - } - case 'F': - { - // check for decimal, skip if missing - if(*sitr == '.') { - ++sitr; - parse_frac_type(sitr, stream_end, frac); - // sitr will point to next expected char after this parsing - // is complete so no need to advance it - use_current_char = true; - } - else { - // nothing was parsed so we don't want to advance sitr - use_current_char = true; - } - break; - } - default: - {} // ignore what we don't understand? - }// switch - } - else { // itr == '%', second consecutive - ++sitr; - } - - ++itr; //advance past format specifier - } - else { //skip past chars in format and in buffer - ++itr; - // set use_current_char when sitr is already - // pointing at the next character to process - if (use_current_char) { - use_current_char = false; - } - else { - ++sitr; - } - } - } - - td = time_duration_type(hour, min, sec, frac); - return sitr; - } - - - //! Parses a time object from the input stream - InItrT get(InItrT& sitr, - InItrT& stream_end, - std::ios_base& a_ios, - time_type& t) const - { - string_type tz_str; - return get(sitr, stream_end, a_ios, t, tz_str, false); - } - //! Expects a time_zone in the input stream - InItrT get_local_time(InItrT& sitr, - InItrT& stream_end, - std::ios_base& a_ios, - time_type& t, - string_type& tz_str) const - { - return get(sitr, stream_end, a_ios, t, tz_str, true); - } - - protected: - - InItrT get(InItrT& sitr, - InItrT& stream_end, - std::ios_base& a_ios, - time_type& t, - string_type& tz_str, - bool time_is_local) const - { - // skip leading whitespace - while((sitr != stream_end) && std::isspace(*sitr)) { ++sitr; } - - bool use_current_char = false; - bool use_current_format_char = false; // used whith two character flags - - // num_get will consume the +/-, we may need a copy if special_value - char_type c = '\0'; - if((sitr != stream_end) && (*sitr == '-' || *sitr == '+')) { - c = *sitr; - } - - typedef typename time_duration_type::hour_type hour_type; - typedef typename time_duration_type::min_type min_type; - typedef typename time_duration_type::sec_type sec_type; - - // time elements - hour_type hour = 0; - min_type min = 0; - sec_type sec = 0; - typename time_duration_type::fractional_seconds_type frac(0); - // date elements - short day_of_year(0); - /* Initialized the following to their minimum values. These intermediate - * objects are used so we get specific exceptions when part of the input - * is unparsable. - * Ex: "205-Jan-15" will throw a bad_year, "2005-Jsn-15"- bad_month, etc.*/ - year_type t_year(1400); - month_type t_month(1); - day_type t_day(1); - - typedef std::num_get num_get; - if(!std::has_facet(a_ios.getloc())) { - num_get* ng = new num_get(); - std::locale loc = std::locale(a_ios.getloc(), ng); - a_ios.imbue(loc); - } - - const_itr itr(this->m_format.begin()); - while (itr != this->m_format.end() && (sitr != stream_end)) { - if (*itr == '%') { - ++itr; - if (*itr != '%') { - // the cases are grouped by date & time flags - not alphabetical order - switch(*itr) { - // date flags - case 'Y': - case 'y': - { - char_type cs[3] = { '%', *itr }; - string_type s(cs); - match_results mr; - try { - t_year = this->m_parser.parse_year(sitr, stream_end, s, mr); - } - catch(std::out_of_range&) { // base class for bad_year exception - if(this->m_sv_parser.match(sitr, stream_end, mr)) { - t = time_type(static_cast(mr.current_match)); - return sitr; - } - else { - throw; // rethrow bad_year - } - } - break; - } - case 'B': - case 'b': - case 'm': - { - char_type cs[3] = { '%', *itr }; - string_type s(cs); - match_results mr; - try { - t_month = this->m_parser.parse_month(sitr, stream_end, s, mr); - } - catch(std::out_of_range&) { // base class for bad_month exception - if(this->m_sv_parser.match(sitr, stream_end, mr)) { - t = time_type(static_cast(mr.current_match)); - return sitr; - } - else { - throw; // rethrow bad_month - } - } - // did m_parser already advance sitr to next char? - if(mr.has_remaining()) { - use_current_char = true; - } - break; - } - case 'a': - case 'A': - case 'w': - { - // weekday is not used in construction but we need to get it out of the stream - char_type cs[3] = { '%', *itr }; - string_type s(cs); - match_results mr; - typename date_type::day_of_week_type wd(0); - try { - wd = this->m_parser.parse_weekday(sitr, stream_end, s, mr); - } - catch(std::out_of_range&) { // base class for bad_weekday exception - if(this->m_sv_parser.match(sitr, stream_end, mr)) { - t = time_type(static_cast(mr.current_match)); - return sitr; - } - else { - throw; // rethrow bad_weekday - } - } - // did m_parser already advance sitr to next char? - if(mr.has_remaining()) { - use_current_char = true; - } - break; - } - case 'j': - { - // code that gets julian day (from format_date_parser) - match_results mr; - day_of_year = fixed_string_to_int(sitr, stream_end, mr, 3); - if(day_of_year == -1) { - if(this->m_sv_parser.match(sitr, stream_end, mr)) { - t = time_type(static_cast(mr.current_match)); - return sitr; - } - } - // these next two lines are so we get an exception with bad input - typedef typename time_type::date_type::day_of_year_type day_of_year_type; - day_of_year_type t_day_of_year(day_of_year); - break; - } - case 'd': - { - try { - t_day = this->m_parser.parse_day_of_month(sitr, stream_end); - } - catch(std::out_of_range&) { // base class for exception bad_day_of_month - match_results mr; - if(this->m_sv_parser.match(sitr, stream_end, mr)) { - t = time_type(static_cast(mr.current_match)); - return sitr; - } - else { - throw; // rethrow bad_day_of_month - } - } - break; - } - // time flags - case 'H': - { - match_results mr; - hour = fixed_string_to_int(sitr, stream_end, mr, 2); - if(hour == -1){ - return check_special_value(sitr, stream_end, t, c); - } - break; - } - case 'M': - { - match_results mr; - min = fixed_string_to_int(sitr, stream_end, mr, 2); - if(min == -1){ - return check_special_value(sitr, stream_end, t, c); - } - break; - } - case 's': - case 'S': - { - match_results mr; - sec = fixed_string_to_int(sitr, stream_end, mr, 2); - if(sec == -1){ - return check_special_value(sitr, stream_end, t, c); - } - if (*itr == 'S') - break; - // %s is the same as %S%f so we drop through into %f - } - case 'f': - { - // check for decimal, check SV if missing - if(*sitr == '.') { - ++sitr; - parse_frac_type(sitr, stream_end, frac); - // sitr will point to next expected char after this parsing - // is complete so no need to advance it - use_current_char = true; - } - else { - return check_special_value(sitr, stream_end, t, c); - } - break; - } - case 'F': - { - // check for decimal, skip if missing - if(*sitr == '.') { - ++sitr; - parse_frac_type(sitr, stream_end, frac); - // sitr will point to next expected char after this parsing - // is complete so no need to advance it - use_current_char = true; - } - else { - // nothing was parsed so we don't want to advance sitr - use_current_char = true; - } - break; - } - // time_zone flags - //case 'q': - //case 'Q': - //case 'z': - case 'Z': - { - if(time_is_local) { // skip if 't' is a ptime - ++itr; - if(*itr == 'P') { - // skip leading whitespace - while((sitr != stream_end) && std::isspace(*sitr)) { ++sitr; } - // parse zone - while((sitr != stream_end) && (!std::isspace(*sitr))) { - tz_str += *sitr; - ++sitr; - } - } - else { - use_current_format_char = true; - } - - } - else { - // nothing was parsed so we don't want to advance sitr - use_current_char = true; - } - - break; - } - default: - {} // ignore what we don't understand? - }// switch - } - else { // itr == '%', second consecutive - ++sitr; - } - - if(use_current_format_char) { - use_current_format_char = false; - } - else { - ++itr; //advance past format specifier - } - - } - else { //skip past chars in format and in buffer - ++itr; - // set use_current_char when sitr is already - // pointing at the next character to process - if (use_current_char) { - use_current_char = false; - } - else { - ++sitr; - } - } - } - - date_type d(not_a_date_time); - if (day_of_year > 0) { - d = date_type(static_cast(t_year-1),12,31) + date_duration_type(day_of_year); - } - else { - d = date_type(t_year, t_month, t_day); - } - - time_duration_type td(hour, min, sec, frac); - t = time_type(d, td); - return sitr; - } - - //! Helper function to check for special_value - /*! First character may have been consumed during original parse - * attempt. Parameter 'c' should be a copy of that character. - * Throws ios_base::failure if parse fails. */ - template - inline - InItrT check_special_value(InItrT& sitr,InItrT& stream_end, temporal_type& tt, char_type c='\0') const - { - match_results mr; - if((c == '-' || c == '+') && (*sitr != c)) { // was the first character consumed? - mr.cache += c; - } - this->m_sv_parser.match(sitr, stream_end, mr); - if(mr.current_match == match_results::PARSE_ERROR) { - std::string tmp = convert_string_type(mr.cache); - boost::throw_exception(std::ios_base::failure("Parse failed. No match found for '" + tmp + "'")); - BOOST_DATE_TIME_UNREACHABLE_EXPRESSION(return sitr); // should never reach - } - tt = temporal_type(static_cast(mr.current_match)); - return sitr; - } - - //! Helper function for parsing a fractional second type from the stream - void parse_frac_type(InItrT& sitr, - InItrT& stream_end, - fracional_seconds_type& frac) const - { - string_type cache; - while((sitr != stream_end) && std::isdigit(*sitr)) { - cache += *sitr; - ++sitr; - } - if(cache.size() > 0) { - unsigned short precision = time_duration_type::num_fractional_digits(); - // input may be only the first few decimal places - if(cache.size() < precision) { - frac = lexical_cast(cache); - frac = decimal_adjust(frac, static_cast(precision - cache.size())); - } - else { - // if input has too many decimal places, drop excess digits - frac = lexical_cast(cache.substr(0, precision)); - } - } - } - - private: - string_type m_time_duration_format; - - //! Helper function to adjust trailing zeros when parsing fractional digits - template - inline - int_type decimal_adjust(int_type val, const unsigned short places) const - { - unsigned long factor = 1; - for(int i = 0; i < places; ++i){ - factor *= 10; // shift decimal to the right - } - return val * factor; - } - - }; - -template - std::locale::id time_input_facet::id; - -template - const typename time_input_facet::char_type* - time_input_facet::fractional_seconds_format = time_formats::fractional_seconds_format; - - template - const typename time_input_facet::char_type* - time_input_facet::fractional_seconds_or_none_format = time_formats::fractional_seconds_or_none_format; - - template - const typename time_input_facet::char_type* - time_input_facet::seconds_with_fractional_seconds_format = time_formats::seconds_with_fractional_seconds_format; - - template - const typename time_input_facet::char_type* - time_input_facet::seconds_format = time_formats::seconds_format; - - template - const typename time_input_facet::char_type* - time_input_facet::standard_format = time_formats::standard_format; - - template - const typename time_input_facet::char_type* - time_input_facet::zone_abbrev_format = time_formats::zone_abbrev_format; - - template - const typename time_input_facet::char_type* - time_input_facet::zone_name_format = time_formats::zone_name_format; - - template - const typename time_input_facet::char_type* - time_input_facet::zone_iso_format = time_formats::zone_iso_format; - - template - const typename time_input_facet::char_type* - time_input_facet::zone_iso_extended_format = time_formats::zone_iso_extended_format; - - template - const typename time_input_facet::char_type* - time_input_facet::duration_seperator = time_formats::duration_seperator; - - template - const typename time_input_facet::char_type* - time_input_facet::iso_time_format_specifier = time_formats::iso_time_format_specifier; - - template - const typename time_input_facet::char_type* - time_input_facet::iso_time_format_extended_specifier = time_formats::iso_time_format_extended_specifier; - - template - const typename time_input_facet::char_type* - time_input_facet::default_time_input_format = time_formats::default_time_input_format; - - template - const typename time_input_facet::char_type* - time_input_facet::default_time_duration_format = time_formats::default_time_duration_format; - - -} } // namespaces - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/time_formatting_streams.hpp b/3rdParty/Boost/boost/date_time/time_formatting_streams.hpp deleted file mode 100644 index 3537c10..0000000 --- a/3rdParty/Boost/boost/date_time/time_formatting_streams.hpp +++ /dev/null @@ -1,122 +0,0 @@ -#ifndef DATE_TIME_TIME_FORMATTING_STREAMS_HPP___ -#define DATE_TIME_TIME_FORMATTING_STREAMS_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - -#include - -#ifndef BOOST_DATE_TIME_NO_LOCALE - -#include -#include -#include -#include -#include - -namespace boost { -namespace date_time { - - - //! Put a time type into a stream using appropriate facets - template - class ostream_time_duration_formatter - { - public: - typedef std::basic_ostream ostream_type; - typedef typename time_duration_type::fractional_seconds_type fractional_seconds_type; - - //! Put time into an ostream - static void duration_put(const time_duration_type& td, - ostream_type& os) - { - if(td.is_special()) { - os << td.get_rep(); - } - else { - charT fill_char = '0'; - if(td.is_negative()) { - os << '-'; - } - os << std::setw(2) << std::setfill(fill_char) - << absolute_value(td.hours()) << ":"; - os << std::setw(2) << std::setfill(fill_char) - << absolute_value(td.minutes()) << ":"; - os << std::setw(2) << std::setfill(fill_char) - << absolute_value(td.seconds()); - fractional_seconds_type frac_sec = - absolute_value(td.fractional_seconds()); - if (frac_sec != 0) { - os << "." - << std::setw(time_duration_type::num_fractional_digits()) - << std::setfill(fill_char) - << frac_sec; - } - } // else - } // duration_put - }; //class ostream_time_duration_formatter - - //! Put a time type into a stream using appropriate facets - template - class ostream_time_formatter - { - public: - typedef std::basic_ostream ostream_type; - typedef typename time_type::date_type date_type; - typedef typename time_type::time_duration_type time_duration_type; - typedef ostream_time_duration_formatter duration_formatter; - - //! Put time into an ostream - static void time_put(const time_type& t, - ostream_type& os) - { - date_type d = t.date(); - os << d; - if(!d.is_infinity() && !d.is_not_a_date()) - { - os << " "; //TODO: fix the separator here. - duration_formatter::duration_put(t.time_of_day(), os); - } - - } // time_to_ostream - }; //class ostream_time_formatter - - - //! Put a time period into a stream using appropriate facets - template - class ostream_time_period_formatter - { - public: - typedef std::basic_ostream ostream_type; - typedef typename time_period_type::point_type time_type; - typedef ostream_time_formatter time_formatter; - - //! Put time into an ostream - static void period_put(const time_period_type& tp, - ostream_type& os) - { - os << '['; //TODO: facet or manipulator for periods? - time_formatter::time_put(tp.begin(), os); - os << '/'; //TODO: facet or manipulator for periods? - time_formatter::time_put(tp.last(), os); - os << ']'; - - } // period_put - - }; //class ostream_time_period_formatter - - - -} } //namespace date_time - -#endif //BOOST_DATE_TIME_NO_LOCALE - -#endif diff --git a/3rdParty/Boost/boost/date_time/time_iterator.hpp b/3rdParty/Boost/boost/date_time/time_iterator.hpp deleted file mode 100644 index 2258a33..0000000 --- a/3rdParty/Boost/boost/date_time/time_iterator.hpp +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef DATE_TIME_TIME_ITERATOR_HPP___ -#define DATE_TIME_TIME_ITERATOR_HPP___ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - - -namespace boost { -namespace date_time { - - - //! Simple time iterator skeleton class - template - class time_itr { - public: - typedef typename time_type::time_duration_type time_duration_type; - time_itr(time_type t, time_duration_type d) : current_(t), offset_(d) {}; - time_itr& operator++() - { - current_ = current_ + offset_; - return *this; - } - time_itr& operator--() - { - current_ = current_ - offset_; - return *this; - } - time_type operator*() {return current_;}; - time_type* operator->() {return ¤t_;}; - bool operator< (const time_type& t) {return current_ < t;}; - bool operator<= (const time_type& t) {return current_ <= t;}; - bool operator!= (const time_type& t) {return current_ != t;}; - bool operator== (const time_type& t) {return current_ == t;}; - bool operator> (const time_type& t) {return current_ > t;}; - bool operator>= (const time_type& t) {return current_ >= t;}; - - private: - time_type current_; - time_duration_type offset_; - }; - - - -} }//namespace date_time - - -#endif diff --git a/3rdParty/Boost/boost/date_time/time_parsing.hpp b/3rdParty/Boost/boost/date_time/time_parsing.hpp deleted file mode 100644 index dfccf6a..0000000 --- a/3rdParty/Boost/boost/date_time/time_parsing.hpp +++ /dev/null @@ -1,321 +0,0 @@ -#ifndef _DATE_TIME_TIME_PARSING_HPP___ -#define _DATE_TIME_TIME_PARSING_HPP___ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -#include "boost/tokenizer.hpp" -#include "boost/lexical_cast.hpp" -#include "boost/date_time/date_parsing.hpp" -#include "boost/cstdint.hpp" -#include - -namespace boost { -namespace date_time { - - //! computes exponential math like 2^8 => 256, only works with positive integers - //Not general purpose, but needed b/c std::pow is not available - //everywehere. Hasn't been tested with negatives and zeros - template - inline - int_type power(int_type base, int_type exponent) - { - int_type result = 1; - for(int i = 0; i < exponent; ++i){ - result *= base; - } - return result; - } - - //! Creates a time_duration object from a delimited string - /*! Expected format for string is "[-]h[h][:mm][:ss][.fff]". - * If the number of fractional digits provided is greater than the - * precision of the time duration type then the extra digits are - * truncated. - * - * A negative duration will be created if the first character in - * string is a '-', all other '-' will be treated as delimiters. - * Accepted delimiters are "-:,.". - */ - template - inline - time_duration - str_from_delimited_time_duration(const std::basic_string& s) - { - unsigned short min=0, sec =0; - int hour =0; - bool is_neg = (s.at(0) == '-'); - boost::int64_t fs=0; - int pos = 0; - - typedef typename std::basic_string::traits_type traits_type; - typedef boost::char_separator char_separator_type; - typedef boost::tokenizer::const_iterator, - std::basic_string > tokenizer; - typedef typename boost::tokenizer::const_iterator, - typename std::basic_string >::iterator tokenizer_iterator; - - char_type sep_chars[5] = {'-',':',',','.'}; - char_separator_type sep(sep_chars); - tokenizer tok(s,sep); - for(tokenizer_iterator beg=tok.begin(); beg!=tok.end();++beg){ - switch(pos) { - case 0: { - hour = boost::lexical_cast(*beg); - break; - } - case 1: { - min = boost::lexical_cast(*beg); - break; - } - case 2: { - sec = boost::lexical_cast(*beg); - break; - }; - case 3: { - int digits = static_cast(beg->length()); - //Works around a bug in MSVC 6 library that does not support - //operator>> thus meaning lexical_cast will fail to compile. -#if (defined(BOOST_MSVC) && (_MSC_VER < 1300)) - // msvc wouldn't compile 'time_duration::num_fractional_digits()' - // (required template argument list) as a workaround a temp - // time_duration object was used - time_duration td(hour,min,sec,fs); - int precision = td.num_fractional_digits(); - // _atoi64 is an MS specific function - if(digits >= precision) { - // drop excess digits - fs = _atoi64(beg->substr(0, precision).c_str()); - } - else { - fs = _atoi64(beg->c_str()); - } -#else - int precision = time_duration::num_fractional_digits(); - if(digits >= precision) { - // drop excess digits - fs = boost::lexical_cast(beg->substr(0, precision)); - } - else { - fs = boost::lexical_cast(*beg); - } -#endif - if(digits < precision){ - // trailing zeros get dropped from the string, - // "1:01:01.1" would yield .000001 instead of .100000 - // the power() compensates for the missing decimal places - fs *= power(10, precision - digits); - } - - break; - } - }//switch - pos++; - } - if(is_neg) { - return -time_duration(hour, min, sec, fs); - } - else { - return time_duration(hour, min, sec, fs); - } - } - - //! Creates a time_duration object from a delimited string - /*! Expected format for string is "[-]h[h][:mm][:ss][.fff]". - * If the number of fractional digits provided is greater than the - * precision of the time duration type then the extra digits are - * truncated. - * - * A negative duration will be created if the first character in - * string is a '-', all other '-' will be treated as delimiters. - * Accepted delimiters are "-:,.". - */ - template - inline - time_duration - parse_delimited_time_duration(const std::string& s) - { - return str_from_delimited_time_duration(s); - } - - //! Utility function to split appart string - inline - bool - split(const std::string& s, - char sep, - std::string& first, - std::string& second) - { - int sep_pos = static_cast(s.find(sep)); - first = s.substr(0,sep_pos); - second = s.substr(sep_pos+1); - return true; - } - - - template - inline - time_type - parse_delimited_time(const std::string& s, char sep) - { - typedef typename time_type::time_duration_type time_duration; - typedef typename time_type::date_type date_type; - - //split date/time on a unique delimiter char such as ' ' or 'T' - std::string date_string, tod_string; - split(s, sep, date_string, tod_string); - //call parse_date with first string - date_type d = parse_date(date_string); - //call parse_time_duration with remaining string - time_duration td = parse_delimited_time_duration(tod_string); - //construct a time - return time_type(d, td); - - } - - //! Parse time duration part of an iso time of form: [-]hhmmss[.fff...] (eg: 120259.123 is 12 hours, 2 min, 59 seconds, 123000 microseconds) - template - inline - time_duration - parse_undelimited_time_duration(const std::string& s) - { - int precision = 0; - { - // msvc wouldn't compile 'time_duration::num_fractional_digits()' - // (required template argument list) as a workaround, a temp - // time_duration object was used - time_duration tmp(0,0,0,1); - precision = tmp.num_fractional_digits(); - } - // 'precision+1' is so we grab all digits, plus the decimal - int offsets[] = {2,2,2, precision+1}; - int pos = 0, sign = 0; - int hours = 0; - short min=0, sec=0; - boost::int64_t fs=0; - // increment one position if the string was "signed" - if(s.at(sign) == '-') - { - ++sign; - } - // stlport choked when passing s.substr() to tokenizer - // using a new string fixed the error - std::string remain = s.substr(sign); - /* We do not want the offset_separator to wrap the offsets, we - * will never want to process more than: - * 2 char, 2 char, 2 char, frac_sec length. - * We *do* want the offset_separator to give us a partial for the - * last characters if there were not enough provided in the input string. */ - bool wrap_off = false; - bool ret_part = true; - boost::offset_separator osf(offsets, offsets+4, wrap_off, ret_part); - typedef boost::tokenizer::const_iterator, - std::basic_string > tokenizer; - typedef boost::tokenizer::const_iterator, - std::basic_string >::iterator tokenizer_iterator; - tokenizer tok(remain, osf); - for(tokenizer_iterator ti=tok.begin(); ti!=tok.end();++ti){ - switch(pos) { - case 0: - { - hours = boost::lexical_cast(*ti); - break; - } - case 1: - { - min = boost::lexical_cast(*ti); - break; - } - case 2: - { - sec = boost::lexical_cast(*ti); - break; - } - case 3: - { - std::string char_digits(ti->substr(1)); // digits w/no decimal - int digits = static_cast(char_digits.length()); - - //Works around a bug in MSVC 6 library that does not support - //operator>> thus meaning lexical_cast will fail to compile. -#if (defined(BOOST_MSVC) && (_MSC_VER <= 1200)) // 1200 == VC++ 6.0 - // _atoi64 is an MS specific function - if(digits >= precision) { - // drop excess digits - fs = _atoi64(char_digits.substr(0, precision).c_str()); - } - else if(digits == 0) { - fs = 0; // just in case _atoi64 doesn't like an empty string - } - else { - fs = _atoi64(char_digits.c_str()); - } -#else - if(digits >= precision) { - // drop excess digits - fs = boost::lexical_cast(char_digits.substr(0, precision)); - } - else if(digits == 0) { - fs = 0; // lexical_cast doesn't like empty strings - } - else { - fs = boost::lexical_cast(char_digits); - } -#endif - if(digits < precision){ - // trailing zeros get dropped from the string, - // "1:01:01.1" would yield .000001 instead of .100000 - // the power() compensates for the missing decimal places - fs *= power(10, precision - digits); - } - - break; - } - }; - pos++; - } - if(sign) { - return -time_duration(hours, min, sec, fs); - } - else { - return time_duration(hours, min, sec, fs); - } - } - - //! Parse time string of form YYYYMMDDThhmmss where T is delimeter between date and time - template - inline - time_type - parse_iso_time(const std::string& s, char sep) - { - typedef typename time_type::time_duration_type time_duration; - typedef typename time_type::date_type date_type; - - //split date/time on a unique delimiter char such as ' ' or 'T' - std::string date_string, tod_string; - split(s, sep, date_string, tod_string); - //call parse_date with first string - date_type d = parse_undelimited_date(date_string); - //call parse_time_duration with remaining string - time_duration td = parse_undelimited_time_duration(tod_string); - //construct a time - return time_type(d, td); - } - - - -} }//namespace date_time - - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/time_resolution_traits.hpp b/3rdParty/Boost/boost/date_time/time_resolution_traits.hpp deleted file mode 100644 index 1487911..0000000 --- a/3rdParty/Boost/boost/date_time/time_resolution_traits.hpp +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef DATE_TIME_TIME_RESOLUTION_TRAITS_HPP -#define DATE_TIME_TIME_RESOLUTION_TRAITS_HPP - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - - -#include "boost/date_time/time_defs.hpp" -#include "boost/date_time/int_adapter.hpp" -#include "boost/cstdint.hpp" - -namespace boost { -namespace date_time { - - //! Simple function to calculate absolute value of a numeric type - template - // JDG [7/6/02 made a template], - // moved here from time_duration.hpp 2003-Sept-4. - inline T absolute_value(T x) - { - return x < 0 ? -x : x; - } - - //! traits struct for time_resolution_traits implementation type - struct time_resolution_traits_bi32_impl { - typedef boost::int32_t int_type; - typedef boost::int32_t impl_type; - static int_type as_number(impl_type i){ return i;} - //! Used to determine if implemented type is int_adapter or int - static bool is_adapted() { return false;} - }; - //! traits struct for time_resolution_traits implementation type - struct time_resolution_traits_adapted32_impl { - typedef boost::int32_t int_type; - typedef boost::date_time::int_adapter impl_type; - static int_type as_number(impl_type i){ return i.as_number();} - //! Used to determine if implemented type is int_adapter or int - static bool is_adapted() { return true;} - }; - //! traits struct for time_resolution_traits implementation type - struct time_resolution_traits_bi64_impl { - typedef boost::int64_t int_type; - typedef boost::int64_t impl_type; - static int_type as_number(impl_type i){ return i;} - //! Used to determine if implemented type is int_adapter or int - static bool is_adapted() { return false;} - }; - //! traits struct for time_resolution_traits implementation type - struct time_resolution_traits_adapted64_impl { - typedef boost::int64_t int_type; - typedef boost::date_time::int_adapter impl_type; - static int_type as_number(impl_type i){ return i.as_number();} - //! Used to determine if implemented type is int_adapter or int - static bool is_adapted() { return true;} - }; - - template - class time_resolution_traits { - public: - typedef typename frac_sec_type::int_type fractional_seconds_type; - typedef typename frac_sec_type::int_type tick_type; - typedef typename frac_sec_type::impl_type impl_type; - typedef v_type day_type; - typedef v_type hour_type; - typedef v_type min_type; - typedef v_type sec_type; - - // bring in function from frac_sec_type traits structs - static typename frac_sec_type::int_type as_number(typename frac_sec_type::impl_type i) - { - return frac_sec_type::as_number(i); - } - static bool is_adapted() - { - return frac_sec_type::is_adapted(); - } - - //Would like this to be frac_sec_type, but some compilers complain - BOOST_STATIC_CONSTANT(int, ticks_per_second = resolution_adjust); - // static const boost::int32_t ticks_per_second = resolution_adjust; - - static time_resolutions resolution() - { - return res; - } - static unsigned short num_fractional_digits() - { - return frac_digits; - } - static fractional_seconds_type res_adjust() - { - return resolution_adjust; - } - //! Any negative argument results in a negative tick_count - static tick_type to_tick_count(hour_type hours, - min_type minutes, - sec_type seconds, - fractional_seconds_type fs) - { - if(hours < 0 || minutes < 0 || seconds < 0 || fs < 0) - { - hours = absolute_value(hours); - minutes = absolute_value(minutes); - seconds = absolute_value(seconds); - fs = absolute_value(fs); - return (((((fractional_seconds_type(hours)*3600) - + (fractional_seconds_type(minutes)*60) - + seconds)*res_adjust()) + fs) * -1); - } - - return (((fractional_seconds_type(hours)*3600) - + (fractional_seconds_type(minutes)*60) - + seconds)*res_adjust()) + fs; - } - - }; - - typedef time_resolution_traits milli_res; - typedef time_resolution_traits micro_res; - typedef time_resolution_traits nano_res; - - -} } //namespace date_time - - - -#endif diff --git a/3rdParty/Boost/boost/date_time/time_system_counted.hpp b/3rdParty/Boost/boost/date_time/time_system_counted.hpp deleted file mode 100644 index fa88390..0000000 --- a/3rdParty/Boost/boost/date_time/time_system_counted.hpp +++ /dev/null @@ -1,254 +0,0 @@ -#ifndef DATE_TIME_TIME_SYSTEM_COUNTED_HPP -#define DATE_TIME_TIME_SYSTEM_COUNTED_HPP - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - - - -#include "boost/date_time/time_defs.hpp" -#include - - -namespace boost { -namespace date_time { - - //! Time representation that uses a single integer count - template - struct counted_time_rep - { - typedef typename config::int_type int_type; - typedef typename config::date_type date_type; - typedef typename config::impl_type impl_type; - typedef typename date_type::duration_type date_duration_type; - typedef typename date_type::calendar_type calendar_type; - typedef typename date_type::ymd_type ymd_type; - typedef typename config::time_duration_type time_duration_type; - typedef typename config::resolution_traits resolution_traits; - - counted_time_rep(const date_type& d, const time_duration_type& time_of_day) - : time_count_(1) - { - if(d.is_infinity() || d.is_not_a_date() || time_of_day.is_special()) { - time_count_ = time_of_day.get_rep() + d.day_count(); - //std::cout << time_count_ << std::endl; - } - else { - time_count_ = (d.day_number() * frac_sec_per_day()) + time_of_day.ticks(); - } - } - explicit counted_time_rep(int_type count) : - time_count_(count) - {} - explicit counted_time_rep(impl_type count) : - time_count_(count) - {} - date_type date() const - { - if(time_count_.is_special()) { - return date_type(time_count_.as_special()); - } - else { - typename calendar_type::date_int_type dc = day_count(); - //std::cout << "time_rep here:" << dc << std::endl; - ymd_type ymd = calendar_type::from_day_number(dc); - return date_type(ymd); - } - } - //int_type day_count() const - unsigned long day_count() const - { - /* resolution_traits::as_number returns a boost::int64_t & - * frac_sec_per_day is also a boost::int64_t so, naturally, - * the division operation returns a boost::int64_t. - * The static_cast to an unsigned long is ok (results in no data loss) - * because frac_sec_per_day is either the number of - * microseconds per day, or the number of nanoseconds per day. - * Worst case scenario: resolution_traits::as_number returns the - * maximum value an int64_t can hold and frac_sec_per_day - * is microseconds per day (lowest possible value). - * The division operation will then return a value of 106751991 - - * easily fitting in an unsigned long. - */ - return static_cast(resolution_traits::as_number(time_count_) / frac_sec_per_day()); - } - int_type time_count() const - { - return resolution_traits::as_number(time_count_); - } - int_type tod() const - { - return resolution_traits::as_number(time_count_) % frac_sec_per_day(); - } - static int_type frac_sec_per_day() - { - int_type seconds_per_day = 60*60*24; - int_type fractional_sec_per_sec(resolution_traits::res_adjust()); - return seconds_per_day*fractional_sec_per_sec; - } - bool is_pos_infinity()const - { - return impl_type::is_pos_inf(time_count_.as_number()); - } - bool is_neg_infinity()const - { - return impl_type::is_neg_inf(time_count_.as_number()); - } - bool is_not_a_date_time()const - { - return impl_type::is_not_a_number(time_count_.as_number()); - } - bool is_special()const - { - return time_count_.is_special(); - } - impl_type get_rep()const - { - return time_count_; - } - private: - impl_type time_count_; - }; - - //! An unadjusted time system implementation. - template - class counted_time_system - { - public: - typedef time_rep time_rep_type; - typedef typename time_rep_type::impl_type impl_type; - typedef typename time_rep_type::time_duration_type time_duration_type; - typedef typename time_duration_type::fractional_seconds_type fractional_seconds_type; - typedef typename time_rep_type::date_type date_type; - typedef typename time_rep_type::date_duration_type date_duration_type; - - - template static void unused_var(const T&) {} - - static time_rep_type get_time_rep(const date_type& day, - const time_duration_type& tod, - date_time::dst_flags dst=not_dst) - { - unused_var(dst); - return time_rep_type(day, tod); - } - - static time_rep_type get_time_rep(special_values sv) - { - switch (sv) { - case not_a_date_time: - return time_rep_type(date_type(not_a_date_time), - time_duration_type(not_a_date_time)); - case pos_infin: - return time_rep_type(date_type(pos_infin), - time_duration_type(pos_infin)); - case neg_infin: - return time_rep_type(date_type(neg_infin), - time_duration_type(neg_infin)); - case max_date_time: { - time_duration_type td = time_duration_type(24,0,0,0) - time_duration_type(0,0,0,1); - return time_rep_type(date_type(max_date_time), td); - } - case min_date_time: - return time_rep_type(date_type(min_date_time), time_duration_type(0,0,0,0)); - - default: - return time_rep_type(date_type(not_a_date_time), - time_duration_type(not_a_date_time)); - - } - - } - - static date_type get_date(const time_rep_type& val) - { - return val.date(); - } - static time_duration_type get_time_of_day(const time_rep_type& val) - { - if(val.is_special()) { - return time_duration_type(val.get_rep().as_special()); - } - else{ - return time_duration_type(0,0,0,val.tod()); - } - } - static std::string zone_name(const time_rep_type&) - { - return ""; - } - static bool is_equal(const time_rep_type& lhs, const time_rep_type& rhs) - { - return (lhs.time_count() == rhs.time_count()); - } - static bool is_less(const time_rep_type& lhs, const time_rep_type& rhs) - { - return (lhs.time_count() < rhs.time_count()); - } - static time_rep_type add_days(const time_rep_type& base, - const date_duration_type& dd) - { - if(base.is_special() || dd.is_special()) { - return(time_rep_type(base.get_rep() + dd.get_rep())); - } - else { - return time_rep_type(base.time_count() + (dd.days() * time_rep_type::frac_sec_per_day())); - } - } - static time_rep_type subtract_days(const time_rep_type& base, - const date_duration_type& dd) - { - if(base.is_special() || dd.is_special()) { - return(time_rep_type(base.get_rep() - dd.get_rep())); - } - else{ - return time_rep_type(base.time_count() - (dd.days() * time_rep_type::frac_sec_per_day())); - } - } - static time_rep_type subtract_time_duration(const time_rep_type& base, - const time_duration_type& td) - { - if(base.is_special() || td.is_special()) { - return(time_rep_type(base.get_rep() - td.get_rep())); - } - else { - return time_rep_type(base.time_count() - td.ticks()); - } - } - static time_rep_type add_time_duration(const time_rep_type& base, - time_duration_type td) - { - if(base.is_special() || td.is_special()) { - return(time_rep_type(base.get_rep() + td.get_rep())); - } - else { - return time_rep_type(base.time_count() + td.ticks()); - } - } - static time_duration_type subtract_times(const time_rep_type& lhs, - const time_rep_type& rhs) - { - if(lhs.is_special() || rhs.is_special()) { - return(time_duration_type( - impl_type::to_special((lhs.get_rep() - rhs.get_rep()).as_number()))); - } - else { - fractional_seconds_type fs = lhs.time_count() - rhs.time_count(); - return time_duration_type(0,0,0,fs); - } - } - - }; - - -} } //namespace date_time - - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/time_system_split.hpp b/3rdParty/Boost/boost/date_time/time_system_split.hpp deleted file mode 100644 index 08ea1ec..0000000 --- a/3rdParty/Boost/boost/date_time/time_system_split.hpp +++ /dev/null @@ -1,207 +0,0 @@ -#ifndef DATE_TIME_TIME_SYSTEM_SPLIT_HPP -#define DATE_TIME_TIME_SYSTEM_SPLIT_HPP - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-13 15:10:23 -0500 (Thu, 13 Nov 2008) $ - */ - - -#include -#include "boost/date_time/compiler_config.hpp" -#include "boost/date_time/special_defs.hpp" - -namespace boost { -namespace date_time { - - //! An unadjusted time system implementation. -#if (defined(BOOST_DATE_TIME_NO_MEMBER_INIT)) - template -#else - template -#endif - class split_timedate_system - { - public: - typedef typename config::time_rep_type time_rep_type; - typedef typename config::date_type date_type; - typedef typename config::time_duration_type time_duration_type; - typedef typename config::date_duration_type date_duration_type; - typedef typename config::int_type int_type; - typedef typename config::resolution_traits resolution_traits; - - //86400 is number of seconds in a day... -#if (defined(BOOST_DATE_TIME_NO_MEMBER_INIT)) - typedef date_time::wrapping_int wrap_int_type; -#else - private: - BOOST_STATIC_CONSTANT(int_type, ticks_per_day = INT64_C(86400) * config::tick_per_second); - public: -# if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0X581) ) - typedef date_time::wrapping_int< split_timedate_system::int_type, split_timedate_system::ticks_per_day> wrap_int_type; -# else - typedef date_time::wrapping_int wrap_int_type; -#endif -#endif - - static time_rep_type get_time_rep(special_values sv) - { - switch (sv) { - case not_a_date_time: - return time_rep_type(date_type(not_a_date_time), - time_duration_type(not_a_date_time)); - case pos_infin: - return time_rep_type(date_type(pos_infin), - time_duration_type(pos_infin)); - case neg_infin: - return time_rep_type(date_type(neg_infin), - time_duration_type(neg_infin)); - case max_date_time: { - time_duration_type td = time_duration_type(24,0,0,0) - time_duration_type(0,0,0,1); - return time_rep_type(date_type(max_date_time), td); - } - case min_date_time: - return time_rep_type(date_type(min_date_time), time_duration_type(0,0,0,0)); - - default: - return time_rep_type(date_type(not_a_date_time), - time_duration_type(not_a_date_time)); - - } - - } - - static time_rep_type get_time_rep(const date_type& day, - const time_duration_type& tod, - date_time::dst_flags /* dst */ = not_dst) - { - if(day.is_special() || tod.is_special()) { - if(day.is_not_a_date() || tod.is_not_a_date_time()) { - return time_rep_type(date_type(not_a_date_time), - time_duration_type(not_a_date_time)); - } - else if(day.is_pos_infinity()) { - if(tod.is_neg_infinity()) { - return time_rep_type(date_type(not_a_date_time), - time_duration_type(not_a_date_time)); - } - else { - return time_rep_type(day, time_duration_type(pos_infin)); - } - } - else if(day.is_neg_infinity()) { - if(tod.is_pos_infinity()) { - return time_rep_type(date_type(not_a_date_time), - time_duration_type(not_a_date_time)); - } - else { - return time_rep_type(day, time_duration_type(neg_infin)); - } - } - else if(tod.is_pos_infinity()) { - if(day.is_neg_infinity()) { - return time_rep_type(date_type(not_a_date_time), - time_duration_type(not_a_date_time)); - } - else { - return time_rep_type(date_type(pos_infin), tod); - } - } - else if(tod.is_neg_infinity()) { - if(day.is_pos_infinity()) { - return time_rep_type(date_type(not_a_date_time), - time_duration_type(not_a_date_time)); - } - else { - return time_rep_type(date_type(neg_infin), tod); - } - } - } - return time_rep_type(day, tod); - } - static date_type get_date(const time_rep_type& val) - { - return date_type(val.day); - } - static time_duration_type get_time_of_day(const time_rep_type& val) - { - return time_duration_type(val.time_of_day); - } - static std::string zone_name(const time_rep_type&) - { - return std::string(); - } - static bool is_equal(const time_rep_type& lhs, const time_rep_type& rhs) - { - return ((lhs.day == rhs.day) && (lhs.time_of_day == rhs.time_of_day)); - } - static bool is_less(const time_rep_type& lhs, const time_rep_type& rhs) - { - if (lhs.day < rhs.day) return true; - if (lhs.day > rhs.day) return false; - return (lhs.time_of_day < rhs.time_of_day); - } - static time_rep_type add_days(const time_rep_type& base, - const date_duration_type& dd) - { - return time_rep_type(base.day+dd, base.time_of_day); - } - static time_rep_type subtract_days(const time_rep_type& base, - const date_duration_type& dd) - { - return split_timedate_system::get_time_rep(base.day-dd, base.time_of_day); - } - static time_rep_type subtract_time_duration(const time_rep_type& base, - const time_duration_type& td) - { - if(base.day.is_special() || td.is_special()) - { - return split_timedate_system::get_time_rep(base.day, -td); - } - if (td.is_negative()) { - time_duration_type td1 = td.invert_sign(); - return add_time_duration(base,td1); - } - - wrap_int_type day_offset(base.time_of_day.ticks()); - date_duration_type day_overflow(static_cast(day_offset.subtract(td.ticks()))); - - return time_rep_type(base.day-day_overflow, - time_duration_type(0,0,0,day_offset.as_int())); - } - static time_rep_type add_time_duration(const time_rep_type& base, - time_duration_type td) - { - if(base.day.is_special() || td.is_special()) { - return split_timedate_system::get_time_rep(base.day, td); - } - if (td.is_negative()) { - time_duration_type td1 = td.invert_sign(); - return subtract_time_duration(base,td1); - } - - wrap_int_type day_offset(base.time_of_day.ticks()); - date_duration_type day_overflow(static_cast< typename date_duration_type::duration_rep_type >(day_offset.add(td.ticks()))); - - return time_rep_type(base.day+day_overflow, - time_duration_type(0,0,0,day_offset.as_int())); - } - static time_duration_type subtract_times(const time_rep_type& lhs, - const time_rep_type& rhs) - { - date_duration_type dd = lhs.day - rhs.day; - time_duration_type td(dd.days()*24,0,0); //days * 24 hours - time_duration_type td2 = lhs.time_of_day - rhs.time_of_day; - return td+td2; - // return time_rep_type(base.day-dd, base.time_of_day); - } - - }; - -} } //namespace date_time - - -#endif diff --git a/3rdParty/Boost/boost/date_time/wrapping_int.hpp b/3rdParty/Boost/boost/date_time/wrapping_int.hpp deleted file mode 100644 index 969b078..0000000 --- a/3rdParty/Boost/boost/date_time/wrapping_int.hpp +++ /dev/null @@ -1,169 +0,0 @@ -#ifndef _DATE_TIME_WRAPPING_INT_HPP__ -#define _DATE_TIME_WRAPPING_INT_HPP__ - -/* Copyright (c) 2002,2003,2005 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland, Bart Garst - * $Date: 2008-11-12 14:37:53 -0500 (Wed, 12 Nov 2008) $ - */ - - -namespace boost { -namespace date_time { - -//! A wrapping integer used to support time durations (WARNING: only instantiate with a signed type) -/*! In composite date and time types this type is used to - * wrap at the day boundary. - * Ex: - * A wrapping_int will roll over after nine, and - * roll under below zero. This gives a range of [0,9] - * - * NOTE: it is strongly recommended that wrapping_int2 be used - * instead of wrapping_int as wrapping_int is to be depricated - * at some point soon. - * - * Also Note that warnings will occur if instantiated with an - * unsigned type. Only a signed type should be used! - */ -template -class wrapping_int { -public: - typedef int_type_ int_type; - //typedef overflow_type_ overflow_type; - static int_type wrap_value() {return wrap_val;} - //!Add, return true if wrapped - wrapping_int(int_type v) : value_(v) {}; - //! Explicit converion method - int_type as_int() const {return value_;} - operator int_type() const {return value_;} - //!Add, return number of wraps performed - /*! The sign of the returned value will indicate which direction the - * wraps went. Ex: add a negative number and wrapping under could occur, - * this would be indicated by a negative return value. If wrapping over - * took place, a positive value would be returned */ - template< typename IntT > - IntT add(IntT v) - { - int_type remainder = static_cast(v % (wrap_val)); - IntT overflow = static_cast(v / (wrap_val)); - value_ = static_cast(value_ + remainder); - return calculate_wrap(overflow); - } - //! Subtract will return '+d' if wrapping under took place ('d' is the number of wraps) - /*! The sign of the returned value will indicate which direction the - * wraps went (positive indicates wrap under, negative indicates wrap over). - * Ex: subtract a negative number and wrapping over could - * occur, this would be indicated by a negative return value. If - * wrapping under took place, a positive value would be returned. */ - template< typename IntT > - IntT subtract(IntT v) - { - int_type remainder = static_cast(v % (wrap_val)); - IntT underflow = static_cast(-(v / (wrap_val))); - value_ = static_cast(value_ - remainder); - return calculate_wrap(underflow) * -1; - } -private: - int_type value_; - - template< typename IntT > - IntT calculate_wrap(IntT wrap) - { - if ((value_) >= wrap_val) - { - ++wrap; - value_ -= (wrap_val); - } - else if(value_ < 0) - { - --wrap; - value_ += (wrap_val); - } - return wrap; - } - -}; - - -//! A wrapping integer used to wrap around at the top (WARNING: only instantiate with a signed type) -/*! Bad name, quick impl to fix a bug -- fix later!! - * This allows the wrap to restart at a value other than 0. - */ -template -class wrapping_int2 { -public: - typedef int_type_ int_type; - static int_type wrap_value() {return wrap_max;} - static int_type min_value() {return wrap_min;} - /*! If initializing value is out of range of [wrap_min, wrap_max], - * value will be initialized to closest of min or max */ - wrapping_int2(int_type v) : value_(v) { - if(value_ < wrap_min) - { - value_ = wrap_min; - } - if(value_ > wrap_max) - { - value_ = wrap_max; - } - } - //! Explicit converion method - int_type as_int() const {return value_;} - operator int_type() const {return value_;} - //!Add, return number of wraps performed - /*! The sign of the returned value will indicate which direction the - * wraps went. Ex: add a negative number and wrapping under could occur, - * this would be indicated by a negative return value. If wrapping over - * took place, a positive value would be returned */ - template< typename IntT > - IntT add(IntT v) - { - int_type remainder = static_cast(v % (wrap_max - wrap_min + 1)); - IntT overflow = static_cast(v / (wrap_max - wrap_min + 1)); - value_ = static_cast(value_ + remainder); - return calculate_wrap(overflow); - } - //! Subtract will return '-d' if wrapping under took place ('d' is the number of wraps) - /*! The sign of the returned value will indicate which direction the - * wraps went. Ex: subtract a negative number and wrapping over could - * occur, this would be indicated by a positive return value. If - * wrapping under took place, a negative value would be returned */ - template< typename IntT > - IntT subtract(IntT v) - { - int_type remainder = static_cast(v % (wrap_max - wrap_min + 1)); - IntT underflow = static_cast(-(v / (wrap_max - wrap_min + 1))); - value_ = static_cast(value_ - remainder); - return calculate_wrap(underflow); - } - -private: - int_type value_; - - template< typename IntT > - IntT calculate_wrap(IntT wrap) - { - if ((value_) > wrap_max) - { - ++wrap; - value_ -= (wrap_max - wrap_min + 1); - } - else if((value_) < wrap_min) - { - --wrap; - value_ += (wrap_max - wrap_min + 1); - } - return wrap; - } -}; - - - -} } //namespace date_time - - - -#endif - diff --git a/3rdParty/Boost/boost/date_time/year_month_day.hpp b/3rdParty/Boost/boost/date_time/year_month_day.hpp deleted file mode 100644 index 802ce42..0000000 --- a/3rdParty/Boost/boost/date_time/year_month_day.hpp +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef YearMonthDayBase_HPP__ -#define YearMonthDayBase_HPP__ - -/* Copyright (c) 2002,2003 CrystalClear Software, Inc. - * Use, modification and distribution is subject to the - * Boost Software License, Version 1.0. (See accompanying - * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) - * Author: Jeff Garland - * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ - */ - -namespace boost { -namespace date_time { - - //! Allow rapid creation of ymd triples of different types - template - struct year_month_day_base { - year_month_day_base(YearType year, - MonthType month, - DayType day); - YearType year; - MonthType month; - DayType day; - typedef YearType year_type; - typedef MonthType month_type; - typedef DayType day_type; - }; - - - //! A basic constructor - template - inline - year_month_day_base::year_month_day_base(YearType y, - MonthType m, - DayType d) : - year(y), - month(m), - day(d) - {} - -} }//namespace date_time - - -#endif - diff --git a/3rdParty/Boost/boost/detail/atomic_count.hpp b/3rdParty/Boost/boost/detail/atomic_count.hpp deleted file mode 100644 index 5411c7a..0000000 --- a/3rdParty/Boost/boost/detail/atomic_count.hpp +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED -#define BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/atomic_count.hpp - thread/SMP safe reference counter -// -// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. -// -// Distributed under the 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 - -#endif // #ifndef BOOST_DETAIL_ATOMIC_COUNT_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/detail/call_traits.hpp b/3rdParty/Boost/boost/detail/call_traits.hpp deleted file mode 100644 index 6ad646e..0000000 --- a/3rdParty/Boost/boost/detail/call_traits.hpp +++ /dev/null @@ -1,164 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Use, modification and distribution are subject to the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt). -// -// See http://www.boost.org/libs/utility for most recent version including documentation. - -// call_traits: defines typedefs for function usage -// (see libs/utility/call_traits.htm) - -/* Release notes: - 23rd July 2000: - Fixed array specialization. (JM) - Added Borland specific fixes for reference types - (issue raised by Steve Cleary). -*/ - -#ifndef BOOST_DETAIL_CALL_TRAITS_HPP -#define BOOST_DETAIL_CALL_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -#include -#endif -#include - -#include -#include -#include - -namespace boost{ - -namespace detail{ - -template -struct ct_imp2 -{ - typedef const T& param_type; -}; - -template -struct ct_imp2 -{ - typedef const T param_type; -}; - -template -struct ct_imp -{ - typedef const T& param_type; -}; - -template -struct ct_imp -{ - typedef typename ct_imp2::param_type param_type; -}; - -template -struct ct_imp -{ - typedef const T param_type; -}; - -} - -template -struct call_traits -{ -public: - typedef T value_type; - typedef T& reference; - typedef const T& const_reference; - // - // C++ Builder workaround: we should be able to define a compile time - // constant and pass that as a single template parameter to ct_imp, - // however compiler bugs prevent this - instead pass three bool's to - // ct_imp and add an extra partial specialisation - // of ct_imp to handle the logic. (JM) - typedef typename boost::detail::ct_imp< - T, - ::boost::is_pointer::value, - ::boost::is_arithmetic::value - >::param_type param_type; -}; - -template -struct call_traits -{ - typedef T& value_type; - typedef T& reference; - typedef const T& const_reference; - typedef T& param_type; // hh removed const -}; - -#if BOOST_WORKAROUND( __BORLANDC__, < 0x5A0 ) -// these are illegal specialisations; cv-qualifies applied to -// references have no effect according to [8.3.2p1], -// C++ Builder requires them though as it treats cv-qualified -// references as distinct types... -template -struct call_traits -{ - typedef T& value_type; - typedef T& reference; - typedef const T& const_reference; - typedef T& param_type; // hh removed const -}; -template -struct call_traits -{ - typedef T& value_type; - typedef T& reference; - typedef const T& const_reference; - typedef T& param_type; // hh removed const -}; -template -struct call_traits -{ - typedef T& value_type; - typedef T& reference; - typedef const T& const_reference; - typedef T& param_type; // hh removed const -}; - -template -struct call_traits< T * > -{ - typedef T * value_type; - typedef T * & reference; - typedef T * const & const_reference; - typedef T * const param_type; // hh removed const -}; -#endif -#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) -template -struct call_traits -{ -private: - typedef T array_type[N]; -public: - // degrades array to pointer: - typedef const T* value_type; - typedef array_type& reference; - typedef const array_type& const_reference; - typedef const T* const param_type; -}; - -template -struct call_traits -{ -private: - typedef const T array_type[N]; -public: - // degrades array to pointer: - typedef const T* value_type; - typedef array_type& reference; - typedef const array_type& const_reference; - typedef const T* const param_type; -}; -#endif - -} - -#endif // BOOST_DETAIL_CALL_TRAITS_HPP diff --git a/3rdParty/Boost/boost/detail/container_fwd.hpp b/3rdParty/Boost/boost/detail/container_fwd.hpp deleted file mode 100644 index f54dedb..0000000 --- a/3rdParty/Boost/boost/detail/container_fwd.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright 2005-2008 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#if !defined(BOOST_DETAIL_CONTAINER_FWD_HPP) -#define BOOST_DETAIL_CONTAINER_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include -#include - -#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) -#define BOOST_HASH_CHAR_TRAITS string_char_traits -#else -#define BOOST_HASH_CHAR_TRAITS char_traits -#endif - -#if ((defined(__GLIBCPP__) || defined(__GLIBCXX__)) && defined(_GLIBCXX_DEBUG)) \ - || BOOST_WORKAROUND(__BORLANDC__, > 0x551) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x842)) \ - || (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) - -#include -#include -#include -#include -#include -#include -#include -#include - -#else - -#include - -#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && \ - defined(__STL_CONFIG_H) - -#define BOOST_CONTAINER_FWD_BAD_BITSET - -#if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG) -#define BOOST_CONTAINER_FWD_BAD_DEQUE -#endif - -#endif - -#if defined(BOOST_CONTAINER_FWD_BAD_DEQUE) -#include -#endif - -#if defined(BOOST_CONTAINER_FWD_BAD_BITSET) -#include -#endif - -#if defined(BOOST_MSVC) -#pragma warning(push) -#pragma warning(disable:4099) // struct/class mismatch in fwd declarations -#endif - -namespace std -{ - template class allocator; - template class basic_string; - template struct BOOST_HASH_CHAR_TRAITS; - template class complex; -} - -// gcc 3.4 and greater -namespace std -{ -#if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE) - template class deque; -#endif - - template class list; - template class vector; - template class map; - template - class multimap; - template class set; - template class multiset; - -#if !defined(BOOST_CONTAINER_FWD_BAD_BITSET) - template class bitset; -#endif - template struct pair; -} - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif - -#endif - -#endif diff --git a/3rdParty/Boost/boost/detail/endian.hpp b/3rdParty/Boost/boost/detail/endian.hpp deleted file mode 100644 index 803d7e2..0000000 --- a/3rdParty/Boost/boost/detail/endian.hpp +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2005 Caleb Epstein -// Copyright 2006 John Maddock -// Distributed under the Boost Software License, Version 1.0. (See accompany- -// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -/* - * Copyright (c) 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 notice reproduced from , from - * which this code was originally taken. - * - * Modified by Caleb Epstein to use with GNU libc and to - * defined the BOOST_ENDIAN macro. - */ - -#ifndef BOOST_DETAIL_ENDIAN_HPP -#define BOOST_DETAIL_ENDIAN_HPP - -// GNU libc offers the helpful header which defines -// __BYTE_ORDER - -#if defined (__GLIBC__) -# include -# if (__BYTE_ORDER == __LITTLE_ENDIAN) -# define BOOST_LITTLE_ENDIAN -# elif (__BYTE_ORDER == __BIG_ENDIAN) -# define BOOST_BIG_ENDIAN -# elif (__BYTE_ORDER == __PDP_ENDIAN) -# define BOOST_PDP_ENDIAN -# else -# error Unknown machine endianness detected. -# endif -# define BOOST_BYTE_ORDER __BYTE_ORDER -#elif defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) -# define BOOST_BIG_ENDIAN -# define BOOST_BYTE_ORDER 4321 -#elif defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN) -# define BOOST_LITTLE_ENDIAN -# define BOOST_BYTE_ORDER 1234 -#elif defined(__sparc) || defined(__sparc__) \ - || defined(_POWER) || defined(__powerpc__) \ - || defined(__ppc__) || defined(__hpux) \ - || defined(_MIPSEB) || defined(_POWER) \ - || defined(__s390__) -# define BOOST_BIG_ENDIAN -# define BOOST_BYTE_ORDER 4321 -#elif defined(__i386__) || defined(__alpha__) \ - || defined(__ia64) || defined(__ia64__) \ - || defined(_M_IX86) || defined(_M_IA64) \ - || defined(_M_ALPHA) || defined(__amd64) \ - || defined(__amd64__) || defined(_M_AMD64) \ - || defined(__x86_64) || defined(__x86_64__) \ - || defined(_M_X64) || defined(__bfin__) - -# define BOOST_LITTLE_ENDIAN -# define BOOST_BYTE_ORDER 1234 -#else -# error The file boost/detail/endian.hpp needs to be set up for your CPU type. -#endif - - -#endif diff --git a/3rdParty/Boost/boost/detail/indirect_traits.hpp b/3rdParty/Boost/boost/detail/indirect_traits.hpp deleted file mode 100644 index f9c0cd6..0000000 --- a/3rdParty/Boost/boost/detail/indirect_traits.hpp +++ /dev/null @@ -1,487 +0,0 @@ -// Copyright David Abrahams 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) -#ifndef INDIRECT_TRAITS_DWA2002131_HPP -# define INDIRECT_TRAITS_DWA2002131_HPP -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include - -# include -# include -# include -# include -# include -# include - -# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# include -# endif - -namespace boost { namespace detail { - -namespace indirect_traits { - -# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct is_reference_to_const : mpl::false_ -{ -}; - -template -struct is_reference_to_const : mpl::true_ -{ -}; - -# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround -template -struct is_reference_to_const : mpl::true_ -{ -}; -# endif - -template -struct is_reference_to_function : mpl::false_ -{ -}; - -template -struct is_reference_to_function : is_function -{ -}; - -template -struct is_pointer_to_function : mpl::false_ -{ -}; - -// There's no such thing as a pointer-to-cv-function, so we don't need -// specializations for those -template -struct is_pointer_to_function : is_function -{ -}; - -template -struct is_reference_to_member_function_pointer_impl : mpl::false_ -{ -}; - -template -struct is_reference_to_member_function_pointer_impl - : is_member_function_pointer::type> -{ -}; - - -template -struct is_reference_to_member_function_pointer - : is_reference_to_member_function_pointer_impl -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T)) -}; - -template -struct is_reference_to_function_pointer_aux - : mpl::and_< - is_reference - , is_pointer_to_function< - typename remove_cv< - typename remove_reference::type - >::type - > - > -{ - // There's no such thing as a pointer-to-cv-function, so we don't need specializations for those -}; - -template -struct is_reference_to_function_pointer - : mpl::if_< - is_reference_to_function - , mpl::false_ - , is_reference_to_function_pointer_aux - >::type -{ -}; - -template -struct is_reference_to_non_const - : mpl::and_< - is_reference - , mpl::not_< - is_reference_to_const - > - > -{ -}; - -template -struct is_reference_to_volatile : mpl::false_ -{ -}; - -template -struct is_reference_to_volatile : mpl::true_ -{ -}; - -# if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround -template -struct is_reference_to_volatile : mpl::true_ -{ -}; -# endif - - -template -struct is_reference_to_pointer : mpl::false_ -{ -}; - -template -struct is_reference_to_pointer : mpl::true_ -{ -}; - -template -struct is_reference_to_pointer : mpl::true_ -{ -}; - -template -struct is_reference_to_pointer : mpl::true_ -{ -}; - -template -struct is_reference_to_pointer : mpl::true_ -{ -}; - -template -struct is_reference_to_class - : mpl::and_< - is_reference - , is_class< - typename remove_cv< - typename remove_reference::type - >::type - > - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T)) -}; - -template -struct is_pointer_to_class - : mpl::and_< - is_pointer - , is_class< - typename remove_cv< - typename remove_pointer::type - >::type - > - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_class,(T)) -}; - -# else - -using namespace boost::detail::is_function_ref_tester_; - -typedef char (&inner_yes_type)[3]; -typedef char (&inner_no_type)[2]; -typedef char (&outer_no_type)[1]; - -template -struct is_const_help -{ - typedef typename mpl::if_< - is_const - , inner_yes_type - , inner_no_type - >::type type; -}; - -template -struct is_volatile_help -{ - typedef typename mpl::if_< - is_volatile - , inner_yes_type - , inner_no_type - >::type type; -}; - -template -struct is_pointer_help -{ - typedef typename mpl::if_< - is_pointer - , inner_yes_type - , inner_no_type - >::type type; -}; - -template -struct is_class_help -{ - typedef typename mpl::if_< - is_class - , inner_yes_type - , inner_no_type - >::type type; -}; - -template -struct is_reference_to_function_aux -{ - static T t; - BOOST_STATIC_CONSTANT( - bool, value = sizeof(detail::is_function_ref_tester(t,0)) == sizeof(::boost::type_traits::yes_type)); - typedef mpl::bool_ type; - }; - -template -struct is_reference_to_function - : mpl::if_, is_reference_to_function_aux, mpl::bool_ >::type -{ -}; - -template -struct is_pointer_to_function_aux -{ - static T t; - BOOST_STATIC_CONSTANT( - bool, value - = sizeof(::boost::type_traits::is_function_ptr_tester(t)) == sizeof(::boost::type_traits::yes_type)); - typedef mpl::bool_ type; -}; - -template -struct is_pointer_to_function - : mpl::if_, is_pointer_to_function_aux, mpl::bool_ >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_function,(T)) -}; - -struct false_helper1 -{ - template - struct apply : mpl::false_ - { - }; -}; - -template -typename is_const_help::type reference_to_const_helper(V&); -outer_no_type -reference_to_const_helper(...); - -struct true_helper1 -{ - template - struct apply - { - static T t; - BOOST_STATIC_CONSTANT( - bool, value - = sizeof(reference_to_const_helper(t)) == sizeof(inner_yes_type)); - typedef mpl::bool_ type; - }; -}; - -template -struct is_reference_to_const_helper1 : true_helper1 -{ -}; - -template <> -struct is_reference_to_const_helper1 : false_helper1 -{ -}; - - -template -struct is_reference_to_const - : is_reference_to_const_helper1::value>::template apply -{ -}; - - -template -struct is_reference_to_non_const_helper1 -{ - template - struct apply - { - static T t; - BOOST_STATIC_CONSTANT( - bool, value - = sizeof(reference_to_const_helper(t)) == sizeof(inner_no_type)); - - typedef mpl::bool_ type; - }; -}; - -template <> -struct is_reference_to_non_const_helper1 : false_helper1 -{ -}; - - -template -struct is_reference_to_non_const - : is_reference_to_non_const_helper1::value>::template apply -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_non_const,(T)) -}; - - -template -typename is_volatile_help::type reference_to_volatile_helper(V&); -outer_no_type -reference_to_volatile_helper(...); - -template -struct is_reference_to_volatile_helper1 -{ - template - struct apply - { - static T t; - BOOST_STATIC_CONSTANT( - bool, value - = sizeof(reference_to_volatile_helper(t)) == sizeof(inner_yes_type)); - typedef mpl::bool_ type; - }; -}; - -template <> -struct is_reference_to_volatile_helper1 : false_helper1 -{ -}; - - -template -struct is_reference_to_volatile - : is_reference_to_volatile_helper1::value>::template apply -{ -}; - -template -typename is_pointer_help::type reference_to_pointer_helper(V&); -outer_no_type reference_to_pointer_helper(...); - -template -struct reference_to_pointer_impl -{ - static T t; - BOOST_STATIC_CONSTANT( - bool, value - = (sizeof((reference_to_pointer_helper)(t)) == sizeof(inner_yes_type)) - ); - - typedef mpl::bool_ type; -}; - -template -struct is_reference_to_pointer - : mpl::eval_if, reference_to_pointer_impl, mpl::false_>::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_pointer,(T)) -}; - -template -struct is_reference_to_function_pointer - : mpl::eval_if, is_pointer_to_function_aux, mpl::false_>::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_function_pointer,(T)) -}; - - -template -struct is_member_function_pointer_help - : mpl::if_, inner_yes_type, inner_no_type> -{}; - -template -typename is_member_function_pointer_help::type member_function_pointer_helper(V&); -outer_no_type member_function_pointer_helper(...); - -template -struct is_pointer_to_member_function_aux -{ - static T t; - BOOST_STATIC_CONSTANT( - bool, value - = sizeof((member_function_pointer_helper)(t)) == sizeof(inner_yes_type)); - typedef mpl::bool_ type; -}; - -template -struct is_reference_to_member_function_pointer - : mpl::if_< - is_reference - , is_pointer_to_member_function_aux - , mpl::bool_ - >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T)) -}; - -template -typename is_class_help::type reference_to_class_helper(V const volatile&); -outer_no_type reference_to_class_helper(...); - -template -struct is_reference_to_class -{ - static T t; - BOOST_STATIC_CONSTANT( - bool, value - = (is_reference::value - & (sizeof(reference_to_class_helper(t)) == sizeof(inner_yes_type))) - ); - typedef mpl::bool_ type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T)) -}; - -template -typename is_class_help::type pointer_to_class_helper(V const volatile*); -outer_no_type pointer_to_class_helper(...); - -template -struct is_pointer_to_class -{ - static T t; - BOOST_STATIC_CONSTANT( - bool, value - = (is_pointer::value - && sizeof(pointer_to_class_helper(t)) == sizeof(inner_yes_type)) - ); - typedef mpl::bool_ type; -}; -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} - -using namespace indirect_traits; - -}} // namespace boost::python::detail - -#endif // INDIRECT_TRAITS_DWA2002131_HPP diff --git a/3rdParty/Boost/boost/detail/interlocked.hpp b/3rdParty/Boost/boost/detail/interlocked.hpp deleted file mode 100644 index b6c8d75..0000000 --- a/3rdParty/Boost/boost/detail/interlocked.hpp +++ /dev/null @@ -1,130 +0,0 @@ -#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED -#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/interlocked.hpp -// -// Copyright 2005 Peter Dimov -// -// Distributed under the 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 - -#if defined( BOOST_USE_WINDOWS_H ) - -# include - -# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER InterlockedCompareExchangePointer -# define BOOST_INTERLOCKED_EXCHANGE_POINTER InterlockedExchangePointer - -#elif defined(_WIN32_WCE) - -// under Windows CE we still have old-style Interlocked* functions - -extern "C" long __cdecl InterlockedIncrement( long* ); -extern "C" long __cdecl InterlockedDecrement( long* ); -extern "C" long __cdecl InterlockedCompareExchange( long*, long, long ); -extern "C" long __cdecl InterlockedExchange( long*, long ); -extern "C" long __cdecl InterlockedExchangeAdd( long*, long ); - -# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange))) - -#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) - -extern "C" long __cdecl _InterlockedIncrement( long volatile * ); -extern "C" long __cdecl _InterlockedDecrement( long volatile * ); -extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long ); -extern "C" long __cdecl _InterlockedExchange( long volatile *, long); -extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long); - -# pragma intrinsic( _InterlockedIncrement ) -# pragma intrinsic( _InterlockedDecrement ) -# pragma intrinsic( _InterlockedCompareExchange ) -# pragma intrinsic( _InterlockedExchange ) -# pragma intrinsic( _InterlockedExchangeAdd ) - -# if defined(_M_IA64) || defined(_M_AMD64) - -extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* ); -extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* ); - -# pragma intrinsic( _InterlockedCompareExchangePointer ) -# pragma intrinsic( _InterlockedExchangePointer ) - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer -# define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer - -# else - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange))) - -# endif - -# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd - -#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ ) - -namespace boost -{ - -namespace detail -{ - -extern "C" __declspec(dllimport) long __stdcall InterlockedIncrement( long volatile * ); -extern "C" __declspec(dllimport) long __stdcall InterlockedDecrement( long volatile * ); -extern "C" __declspec(dllimport) long __stdcall InterlockedCompareExchange( long volatile *, long, long ); -extern "C" __declspec(dllimport) long __stdcall InterlockedExchange( long volatile *, long ); -extern "C" __declspec(dllimport) long __stdcall InterlockedExchangeAdd( long volatile *, long ); - -} // namespace detail - -} // namespace boost - -# define BOOST_INTERLOCKED_INCREMENT ::boost::detail::InterlockedIncrement -# define BOOST_INTERLOCKED_DECREMENT ::boost::detail::InterlockedDecrement -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE ::boost::detail::InterlockedCompareExchange -# define BOOST_INTERLOCKED_EXCHANGE ::boost::detail::InterlockedExchange -# define BOOST_INTERLOCKED_EXCHANGE_ADD ::boost::detail::InterlockedExchangeAdd - -# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ - ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare))) -# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ - ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange))) - -#else - -# error "Interlocked intrinsics not available" - -#endif - -#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/detail/is_function_ref_tester.hpp b/3rdParty/Boost/boost/detail/is_function_ref_tester.hpp deleted file mode 100644 index 5f367ea..0000000 --- a/3rdParty/Boost/boost/detail/is_function_ref_tester.hpp +++ /dev/null @@ -1,135 +0,0 @@ - -// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, -// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED -#define BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED - -#include "boost/type_traits/detail/yes_no_type.hpp" -#include "boost/type_traits/config.hpp" - -#if defined(BOOST_TT_PREPROCESSING_MODE) -# include "boost/preprocessor/iterate.hpp" -# include "boost/preprocessor/enum_params.hpp" -# include "boost/preprocessor/comma_if.hpp" -#endif - -namespace boost { -namespace detail { -namespace is_function_ref_tester_ { - -template -boost::type_traits::no_type BOOST_TT_DECL is_function_ref_tester(T& ...); - -#if !defined(BOOST_TT_PREPROCESSING_MODE) -// preprocessor-generated part, don't edit by hand! - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23), int); - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24), int); - -#else - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3, (0, 25, "boost/type_traits/detail/is_function_ref_tester.hpp")) -#include BOOST_PP_ITERATE() - -#endif // BOOST_TT_PREPROCESSING_MODE - -} // namespace detail -} // namespace python -} // namespace boost - -#endif // BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED - -///// iteration - -#else -#define i BOOST_PP_FRAME_ITERATION(1) - -template -boost::type_traits::yes_type is_function_ref_tester(R (&)(BOOST_PP_ENUM_PARAMS(i,T)), int); - -#undef i -#endif // BOOST_PP_IS_ITERATING diff --git a/3rdParty/Boost/boost/detail/iterator.hpp b/3rdParty/Boost/boost/detail/iterator.hpp deleted file mode 100644 index 5bb9c62..0000000 --- a/3rdParty/Boost/boost/detail/iterator.hpp +++ /dev/null @@ -1,494 +0,0 @@ -// (C) Copyright David Abrahams 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) - -// Boost versions of -// -// std::iterator_traits<>::iterator_category -// std::iterator_traits<>::difference_type -// std::distance() -// -// ...for all compilers and iterators -// -// Additionally, if X is a pointer -// std::iterator_traits::pointer - -// Otherwise, if partial specialization is supported or X is not a pointer -// std::iterator_traits::value_type -// std::iterator_traits::pointer -// std::iterator_traits::reference -// -// See http://www.boost.org for most recent version including documentation. - -// Revision History -// 04 Mar 2001 - More attempted fixes for Intel C++ (David Abrahams) -// 03 Mar 2001 - Put all implementation into namespace -// boost::detail::iterator_traits_. Some progress made on fixes -// for Intel compiler. (David Abrahams) -// 02 Mar 2001 - Changed BOOST_MSVC to BOOST_MSVC_STD_ITERATOR in a few -// places. (Jeremy Siek) -// 19 Feb 2001 - Improved workarounds for stock MSVC6; use yes_type and -// no_type from type_traits.hpp; stopped trying to remove_cv -// before detecting is_pointer, in honor of the new type_traits -// semantics. (David Abrahams) -// 13 Feb 2001 - Make it work with nearly all standard-conforming iterators -// under raw VC6. The one category remaining which will fail is -// that of iterators derived from std::iterator but not -// boost::iterator and which redefine difference_type. -// 11 Feb 2001 - Clean away code which can never be used (David Abrahams) -// 09 Feb 2001 - Always have a definition for each traits member, even if it -// can't be properly deduced. These will be incomplete types in -// some cases (undefined), but it helps suppress MSVC errors -// elsewhere (David Abrahams) -// 07 Feb 2001 - Support for more of the traits members where possible, making -// this useful as a replacement for std::iterator_traits when -// used as a default template parameter. -// 06 Feb 2001 - Removed useless #includes of standard library headers -// (David Abrahams) - -#ifndef ITERATOR_DWA122600_HPP_ -# define ITERATOR_DWA122600_HPP_ - -# include -# include - -// STLPort 4.0 and betas have a bug when debugging is enabled and there is no -// partial specialization: instead of an iterator_category typedef, the standard -// container iterators have _Iterator_category. -// -// Also, whether debugging is enabled or not, there is a broken specialization -// of std::iterator which has no -// typedefs but iterator_category. -# if defined(__SGI_STL_PORT) - -# if (__SGI_STL_PORT <= 0x410) && !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) && defined(__STL_DEBUG) -# define BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF -# endif - -# define BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION - -# endif // STLPort <= 4.1b4 && no partial specialization - -# if !defined(BOOST_NO_STD_ITERATOR_TRAITS) \ - && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MSVC_STD_ITERATOR) - -namespace boost { namespace detail { - -// Define a new template so it can be specialized -template -struct iterator_traits - : std::iterator_traits -{}; -using std::distance; - -}} // namespace boost::detail - -# else - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && !defined(BOOST_MSVC_STD_ITERATOR) - -// This is the case where everything conforms except BOOST_NO_STD_ITERATOR_TRAITS - -namespace boost { namespace detail { - -// Rogue Wave Standard Library fools itself into thinking partial -// specialization is missing on some platforms (e.g. Sun), so fails to -// supply iterator_traits! -template -struct iterator_traits -{ - typedef typename Iterator::value_type value_type; - typedef typename Iterator::reference reference; - typedef typename Iterator::pointer pointer; - typedef typename Iterator::difference_type difference_type; - typedef typename Iterator::iterator_category iterator_category; -}; - -template -struct iterator_traits -{ - typedef T value_type; - typedef T& reference; - typedef T* pointer; - typedef std::ptrdiff_t difference_type; - typedef std::random_access_iterator_tag iterator_category; -}; - -template -struct iterator_traits -{ - typedef T value_type; - typedef T const& reference; - typedef T const* pointer; - typedef std::ptrdiff_t difference_type; - typedef std::random_access_iterator_tag iterator_category; -}; - -}} // namespace boost::detail - -# else - -# include -# include -# include - -# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# include -# include -# endif -# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION -# include -# endif - -# include -# include -# include - -// should be the last #include -# include "boost/type_traits/detail/bool_trait_def.hpp" - -namespace boost { namespace detail { - -BOOST_MPL_HAS_XXX_TRAIT_DEF(value_type) -BOOST_MPL_HAS_XXX_TRAIT_DEF(reference) -BOOST_MPL_HAS_XXX_TRAIT_DEF(pointer) -BOOST_MPL_HAS_XXX_TRAIT_DEF(difference_type) -BOOST_MPL_HAS_XXX_TRAIT_DEF(iterator_category) - -// is_mutable_iterator -- -// -// A metafunction returning true iff T is a mutable iterator type -// with a nested value_type. Will only work portably with iterators -// whose operator* returns a reference, but that seems to be OK for -// the iterators supplied by Dinkumware. Some input iterators may -// compile-time if they arrive here, and if the compiler is strict -// about not taking the address of an rvalue. - -// This one detects ordinary mutable iterators - the result of -// operator* is convertible to the value_type. -template -type_traits::yes_type is_mutable_iterator_helper(T const*, BOOST_DEDUCED_TYPENAME T::value_type*); - -// Since you can't take the address of an rvalue, the guts of -// is_mutable_iterator_impl will fail if we use &*t directly. This -// makes sure we can still work with non-lvalue iterators. -template T* mutable_iterator_lvalue_helper(T& x); -int mutable_iterator_lvalue_helper(...); - - -// This one detects output iterators such as ostream_iterator which -// return references to themselves. -template -type_traits::yes_type is_mutable_iterator_helper(T const*, T const*); - -type_traits::no_type is_mutable_iterator_helper(...); - -template -struct is_mutable_iterator_impl -{ - static T t; - - BOOST_STATIC_CONSTANT( - bool, value = sizeof( - detail::is_mutable_iterator_helper( - (T*)0 - , mutable_iterator_lvalue_helper(*t) // like &*t - )) - == sizeof(type_traits::yes_type) - ); -}; - -BOOST_TT_AUX_BOOL_TRAIT_DEF1( - is_mutable_iterator,T,::boost::detail::is_mutable_iterator_impl::value) - - -// is_full_iterator_traits -- -// -// A metafunction returning true iff T has all the requisite nested -// types to satisfy the requirements for a fully-conforming -// iterator_traits implementation. -template -struct is_full_iterator_traits_impl -{ - enum { value = - has_value_type::value - & has_reference::value - & has_pointer::value - & has_difference_type::value - & has_iterator_category::value - }; -}; - -BOOST_TT_AUX_BOOL_TRAIT_DEF1( - is_full_iterator_traits,T,::boost::detail::is_full_iterator_traits_impl::value) - - -# ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF -BOOST_MPL_HAS_XXX_TRAIT_DEF(_Iterator_category) - -// is_stlport_40_debug_iterator -- -// -// A metafunction returning true iff T has all the requisite nested -// types to satisfy the requirements of an STLPort 4.0 debug iterator -// iterator_traits implementation. -template -struct is_stlport_40_debug_iterator_impl -{ - enum { value = - has_value_type::value - & has_reference::value - & has_pointer::value - & has_difference_type::value - & has__Iterator_category::value - }; -}; - -BOOST_TT_AUX_BOOL_TRAIT_DEF1( - is_stlport_40_debug_iterator,T,::boost::detail::is_stlport_40_debug_iterator_impl::value) - -template -struct stlport_40_debug_iterator_traits -{ - typedef typename T::value_type value_type; - typedef typename T::reference reference; - typedef typename T::pointer pointer; - typedef typename T::difference_type difference_type; - typedef typename T::_Iterator_category iterator_category; -}; -# endif // BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF - -template struct pointer_iterator_traits; - -# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -template -struct pointer_iterator_traits -{ - typedef typename remove_const::type value_type; - typedef T* pointer; - typedef T& reference; - typedef std::random_access_iterator_tag iterator_category; - typedef std::ptrdiff_t difference_type; -}; -# else - -// In case of no template partial specialization, and if T is a -// pointer, iterator_traits::value_type can still be computed. For -// some basic types, remove_pointer is manually defined in -// type_traits/broken_compiler_spec.hpp. For others, do it yourself. - -template class please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee; - -template -struct pointer_value_type - : mpl::if_< - is_same::type> - , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee

- , typename remove_const< - typename remove_pointer

::type - >::type - > -{ -}; - - -template -struct pointer_reference - : mpl::if_< - is_same::type> - , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee

- , typename remove_pointer

::type& - > -{ -}; - -template -struct pointer_iterator_traits -{ - typedef T pointer; - typedef std::random_access_iterator_tag iterator_category; - typedef std::ptrdiff_t difference_type; - - typedef typename pointer_value_type::type value_type; - typedef typename pointer_reference::type reference; -}; - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -// We'll sort iterator types into one of these classifications, from which we -// can determine the difference_type, pointer, reference, and value_type -template -struct standard_iterator_traits -{ - typedef typename Iterator::difference_type difference_type; - typedef typename Iterator::value_type value_type; - typedef typename Iterator::pointer pointer; - typedef typename Iterator::reference reference; - typedef typename Iterator::iterator_category iterator_category; -}; - -template -struct msvc_stdlib_mutable_traits - : std::iterator_traits -{ - typedef typename std::iterator_traits::distance_type difference_type; - typedef typename std::iterator_traits::value_type* pointer; - typedef typename std::iterator_traits::value_type& reference; -}; - -template -struct msvc_stdlib_const_traits - : std::iterator_traits -{ - typedef typename std::iterator_traits::distance_type difference_type; - typedef const typename std::iterator_traits::value_type* pointer; - typedef const typename std::iterator_traits::value_type& reference; -}; - -# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION -template -struct is_bad_output_iterator - : is_base_and_derived< - std::iterator - , Iterator> -{ -}; - -struct bad_output_iterator_traits -{ - typedef void value_type; - typedef void difference_type; - typedef std::output_iterator_tag iterator_category; - typedef void pointer; - typedef void reference; -}; -# endif - -// If we're looking at an MSVC6 (old Dinkumware) ``standard'' -// iterator, this will generate an appropriate traits class. -template -struct msvc_stdlib_iterator_traits - : mpl::if_< - is_mutable_iterator - , msvc_stdlib_mutable_traits - , msvc_stdlib_const_traits - >::type -{}; - -template -struct non_pointer_iterator_traits - : mpl::if_< - // if the iterator contains all the right nested types... - is_full_iterator_traits - // Use a standard iterator_traits implementation - , standard_iterator_traits -# ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF - // Check for STLPort 4.0 broken _Iterator_category type - , mpl::if_< - is_stlport_40_debug_iterator - , stlport_40_debug_iterator_traits -# endif - // Otherwise, assume it's a Dinkum iterator - , msvc_stdlib_iterator_traits -# ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF - >::type -# endif - >::type -{ -}; - -template -struct iterator_traits_aux - : mpl::if_< - is_pointer - , pointer_iterator_traits - , non_pointer_iterator_traits - >::type -{ -}; - -template -struct iterator_traits -{ - // Explicit forwarding from base class needed to keep MSVC6 happy - // under some circumstances. - private: -# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION - typedef - typename mpl::if_< - is_bad_output_iterator - , bad_output_iterator_traits - , iterator_traits_aux - >::type base; -# else - typedef iterator_traits_aux base; -# endif - public: - typedef typename base::value_type value_type; - typedef typename base::pointer pointer; - typedef typename base::reference reference; - typedef typename base::difference_type difference_type; - typedef typename base::iterator_category iterator_category; -}; - -// This specialization cuts off ETI (Early Template Instantiation) for MSVC. -template <> struct iterator_traits -{ - typedef int value_type; - typedef int pointer; - typedef int reference; - typedef int difference_type; - typedef int iterator_category; -}; - -}} // namespace boost::detail - -# endif // workarounds - -namespace boost { namespace detail { - -namespace iterator_traits_ -{ - template - struct distance_select - { - static Difference execute(Iterator i1, const Iterator i2, ...) - { - Difference result = 0; - while (i1 != i2) - { - ++i1; - ++result; - } - return result; - } - - static Difference execute(Iterator i1, const Iterator i2, std::random_access_iterator_tag*) - { - return i2 - i1; - } - }; -} // namespace boost::detail::iterator_traits_ - -template -inline typename iterator_traits::difference_type -distance(Iterator first, Iterator last) -{ - typedef typename iterator_traits::difference_type diff_t; - typedef typename ::boost::detail::iterator_traits::iterator_category iterator_category; - - return iterator_traits_::distance_select::execute( - first, last, (iterator_category*)0); -} - -}} - -# endif - - -# undef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF -# undef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION - -#endif // ITERATOR_DWA122600_HPP_ diff --git a/3rdParty/Boost/boost/detail/lcast_precision.hpp b/3rdParty/Boost/boost/detail/lcast_precision.hpp deleted file mode 100644 index d40ca21..0000000 --- a/3rdParty/Boost/boost/detail/lcast_precision.hpp +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright Alexander Nasonov & Paul A. Bristow 2006. - -// 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) - -#ifndef BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED -#define BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED - -#include -#include -#include - -#include -#include - -#ifndef BOOST_NO_IS_ABSTRACT -// Fix for SF:1358600 - lexical_cast & pure virtual functions & VC 8 STL -#include -#include -#endif - -#if defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || \ - (defined(BOOST_MSVC) && (BOOST_MSVC<1310)) - -#define BOOST_LCAST_NO_COMPILE_TIME_PRECISION -#endif - -#ifdef BOOST_LCAST_NO_COMPILE_TIME_PRECISION -#include -#else -#include -#endif - -namespace boost { namespace detail { - -class lcast_abstract_stub {}; - -#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION -// Calculate an argument to pass to std::ios_base::precision from -// lexical_cast. See alternative implementation for broken standard -// libraries in lcast_get_precision below. Keep them in sync, please. -template -struct lcast_precision -{ -#ifdef BOOST_NO_IS_ABSTRACT - typedef std::numeric_limits limits; // No fix for SF:1358600. -#else - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::is_abstract - , std::numeric_limits - , std::numeric_limits - >::type limits; -#endif - - BOOST_STATIC_CONSTANT(bool, use_default_precision = - !limits::is_specialized || limits::is_exact - ); - - BOOST_STATIC_CONSTANT(bool, is_specialized_bin = - !use_default_precision && - limits::radix == 2 && limits::digits > 0 - ); - - BOOST_STATIC_CONSTANT(bool, is_specialized_dec = - !use_default_precision && - limits::radix == 10 && limits::digits10 > 0 - ); - - BOOST_STATIC_CONSTANT(std::streamsize, streamsize_max = - boost::integer_traits::const_max - ); - - BOOST_STATIC_CONSTANT(unsigned int, precision_dec = limits::digits10 + 1U); - - BOOST_STATIC_ASSERT(!is_specialized_dec || - precision_dec <= streamsize_max + 0UL - ); - - BOOST_STATIC_CONSTANT(unsigned long, precision_bin = - 2UL + limits::digits * 30103UL / 100000UL - ); - - BOOST_STATIC_ASSERT(!is_specialized_bin || - (limits::digits + 0UL < ULONG_MAX / 30103UL && - precision_bin > limits::digits10 + 0UL && - precision_bin <= streamsize_max + 0UL) - ); - - BOOST_STATIC_CONSTANT(std::streamsize, value = - is_specialized_bin ? precision_bin - : is_specialized_dec ? precision_dec : 6 - ); -}; -#endif - -template -inline std::streamsize lcast_get_precision(T* = 0) -{ -#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION - return lcast_precision::value; -#else // Follow lcast_precision algorithm at run-time: - -#ifdef BOOST_NO_IS_ABSTRACT - typedef std::numeric_limits limits; // No fix for SF:1358600. -#else - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::is_abstract - , std::numeric_limits - , std::numeric_limits - >::type limits; -#endif - - bool const use_default_precision = - !limits::is_specialized || limits::is_exact; - - if(!use_default_precision) - { // Includes all built-in floating-point types, float, double ... - // and UDT types for which digits (significand bits) is defined (not zero) - - bool const is_specialized_bin = - limits::radix == 2 && limits::digits > 0; - bool const is_specialized_dec = - limits::radix == 10 && limits::digits10 > 0; - std::streamsize const streamsize_max = - (boost::integer_traits::max)(); - - if(is_specialized_bin) - { // Floating-point types with - // limits::digits defined by the specialization. - - unsigned long const digits = limits::digits; - unsigned long const precision = 2UL + digits * 30103UL / 100000UL; - // unsigned long is selected because it is at least 32-bits - // and thus ULONG_MAX / 30103UL is big enough for all types. - BOOST_ASSERT( - digits < ULONG_MAX / 30103UL && - precision > limits::digits10 + 0UL && - precision <= streamsize_max + 0UL - ); - return precision; - } - else if(is_specialized_dec) - { // Decimal Floating-point type, most likely a User Defined Type - // rather than a real floating-point hardware type. - unsigned int const precision = limits::digits10 + 1U; - BOOST_ASSERT(precision <= streamsize_max + 0UL); - return precision; - } - } - - // Integral type (for which precision has no effect) - // or type T for which limits is NOT specialized, - // so assume stream precision remains the default 6 decimal digits. - // Warning: if your User-defined Floating-point type T is NOT specialized, - // then you may lose accuracy by only using 6 decimal digits. - // To avoid this, you need to specialize T with either - // radix == 2 and digits == the number of significand bits, - // OR - // radix = 10 and digits10 == the number of decimal digits. - - return 6; -#endif -} - -template -inline void lcast_set_precision(std::ios_base& stream, T*) -{ - stream.precision(lcast_get_precision()); -} - -template -inline void lcast_set_precision(std::ios_base& stream, Source*, Target*) -{ - std::streamsize const s = lcast_get_precision((Source*)0); - std::streamsize const t = lcast_get_precision((Target*)0); - stream.precision(s > t ? s : t); -} - -}} - -#endif // BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED - diff --git a/3rdParty/Boost/boost/detail/lightweight_mutex.hpp b/3rdParty/Boost/boost/detail/lightweight_mutex.hpp deleted file mode 100644 index b7a7f6d..0000000 --- a/3rdParty/Boost/boost/detail/lightweight_mutex.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED -#define BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// boost/detail/lightweight_mutex.hpp - lightweight mutex -// -// Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd. -// -// Distributed under the 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 - -#endif // #ifndef BOOST_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/detail/limits.hpp b/3rdParty/Boost/boost/detail/limits.hpp deleted file mode 100644 index 6f018df..0000000 --- a/3rdParty/Boost/boost/detail/limits.hpp +++ /dev/null @@ -1,449 +0,0 @@ -// Copyright 2001 John Maddock -// Distributed under the Boost Software License, Version 1.0. (See accompany- -// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -/* - * Copyright (c) 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. - */ - -/* NOTE: This is not portable code. Parts of numeric_limits<> are - * inherently machine-dependent, and this file is written for the MIPS - * architecture and the SGI MIPSpro C++ compiler. Parts of it (in - * particular, some of the characteristics of floating-point types) - * are almost certainly incorrect for any other platform. - */ - -/* The above comment is almost certainly out of date. This file works - * on systems other than SGI MIPSpro C++ now. - */ - -/* - * Revision history: - * 21 Sep 2001: - * Only include if BOOST_NO_CWCHAR is defined. (Darin Adler) - * 10 Aug 2001: - * Added MIPS (big endian) to the big endian family. (Jens Maurer) - * 13 Apr 2001: - * Added powerpc to the big endian family. (Jeremy Siek) - * 5 Apr 2001: - * Added sparc (big endian) processor support (John Maddock). - * Initial sub: - * Modified by Jens Maurer for gcc 2.95 on x86. - */ - -#ifndef BOOST_SGI_CPP_LIMITS -#define BOOST_SGI_CPP_LIMITS - -#include -#include -#include -#include - -#ifndef BOOST_NO_CWCHAR -#include // for WCHAR_MIN and WCHAR_MAX -#endif - -namespace std { - -enum float_round_style { - round_indeterminate = -1, - round_toward_zero = 0, - round_to_nearest = 1, - round_toward_infinity = 2, - round_toward_neg_infinity = 3 -}; - -enum float_denorm_style { - denorm_indeterminate = -1, - denorm_absent = 0, - denorm_present = 1 -}; - -// The C++ standard (section 18.2.1) requires that some of the members of -// numeric_limits be static const data members that are given constant- -// initializers within the class declaration. On compilers where the -// BOOST_NO_INCLASS_MEMBER_INITIALIZATION macro is defined, it is impossible to write -// a standard-conforming numeric_limits class. -// -// There are two possible workarounds: either initialize the data -// members outside the class, or change them from data members to -// enums. Neither workaround is satisfactory: the former makes it -// impossible to use the data members in constant-expressions, and the -// latter means they have the wrong type and that it is impossible to -// take their addresses. We choose the former workaround. - -#ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION -# define BOOST_STL_DECLARE_LIMITS_MEMBER(__mem_type, __mem_name, __mem_value) \ - enum { __mem_name = __mem_value } -#else /* BOOST_NO_INCLASS_MEMBER_INITIALIZATION */ -# define BOOST_STL_DECLARE_LIMITS_MEMBER(__mem_type, __mem_name, __mem_value) \ - static const __mem_type __mem_name = __mem_value -#endif /* BOOST_NO_INCLASS_MEMBER_INITIALIZATION */ - -// Base class for all specializations of numeric_limits. -template -class _Numeric_limits_base { -public: - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_specialized, false); - - static __number min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __number(); } - static __number max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __number(); } - - BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits, 0); - BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits10, 0); - - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_signed, false); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_integer, false); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_exact, false); - - BOOST_STL_DECLARE_LIMITS_MEMBER(int, radix, 0); - - static __number epsilon() throw() { return __number(); } - static __number round_error() throw() { return __number(); } - - BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent, 0); - BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent10, 0); - BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent, 0); - BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent10, 0); - - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_infinity, false); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_quiet_NaN, false); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_signaling_NaN, false); - BOOST_STL_DECLARE_LIMITS_MEMBER(float_denorm_style, - has_denorm, - denorm_absent); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_denorm_loss, false); - - static __number infinity() throw() { return __number(); } - static __number quiet_NaN() throw() { return __number(); } - static __number signaling_NaN() throw() { return __number(); } - static __number denorm_min() throw() { return __number(); } - - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_iec559, false); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_bounded, false); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_modulo, false); - - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, traps, false); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, tinyness_before, false); - BOOST_STL_DECLARE_LIMITS_MEMBER(float_round_style, - round_style, - round_toward_zero); -}; - -// Base class for integers. - -template -class _Integer_limits : public _Numeric_limits_base<_Int> -{ -public: - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_specialized, true); - - static _Int min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __imin; } - static _Int max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return __imax; } - - BOOST_STL_DECLARE_LIMITS_MEMBER(int, - digits, - (__idigits < 0) ? (int)(sizeof(_Int) * CHAR_BIT) - - (__imin == 0 ? 0 : 1) - : __idigits); - BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits10, (digits * 301) / 1000); - // log 2 = 0.301029995664... - - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_signed, __imin != 0); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_integer, true); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_exact, true); - BOOST_STL_DECLARE_LIMITS_MEMBER(int, radix, 2); - - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_bounded, true); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_modulo, true); -}; - -#if defined(BOOST_BIG_ENDIAN) - - template - struct float_helper{ - static Number get_word() throw() { - // sizeof(long double) == 16 - const unsigned int _S_word[4] = { Word, 0, 0, 0 }; - return *reinterpret_cast(&_S_word); - } -}; - -#else - - template - struct float_helper{ - static Number get_word() throw() { - // sizeof(long double) == 12, but only 10 bytes significant - const unsigned int _S_word[4] = { 0, 0, 0, Word }; - return *reinterpret_cast( - reinterpret_cast(&_S_word)+16- - (sizeof(Number) == 12 ? 10 : sizeof(Number))); - } -}; - -#endif - -// Base class for floating-point numbers. -template -class _Floating_limits : public _Numeric_limits_base<__number> -{ -public: - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_specialized, true); - - BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits, __Digits); - BOOST_STL_DECLARE_LIMITS_MEMBER(int, digits10, __Digits10); - - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_signed, true); - - BOOST_STL_DECLARE_LIMITS_MEMBER(int, radix, 2); - - BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent, __MinExp); - BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent, __MaxExp); - BOOST_STL_DECLARE_LIMITS_MEMBER(int, min_exponent10, __MinExp10); - BOOST_STL_DECLARE_LIMITS_MEMBER(int, max_exponent10, __MaxExp10); - - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_infinity, true); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_quiet_NaN, true); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_signaling_NaN, true); - BOOST_STL_DECLARE_LIMITS_MEMBER(float_denorm_style, - has_denorm, - denorm_indeterminate); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, has_denorm_loss, false); - - - static __number infinity() throw() { - return float_helper<__number, __InfinityWord>::get_word(); - } - static __number quiet_NaN() throw() { - return float_helper<__number,__QNaNWord>::get_word(); - } - static __number signaling_NaN() throw() { - return float_helper<__number,__SNaNWord>::get_word(); - } - - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_iec559, __IsIEC559); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, is_bounded, true); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, traps, false /* was: true */ ); - BOOST_STL_DECLARE_LIMITS_MEMBER(bool, tinyness_before, false); - - BOOST_STL_DECLARE_LIMITS_MEMBER(float_round_style, round_style, __RoundStyle); -}; - -// Class numeric_limits - -// The unspecialized class. - -template -class numeric_limits : public _Numeric_limits_base {}; - -// Specializations for all built-in integral types. - -template<> -class numeric_limits - : public _Integer_limits -{}; - -template<> -class numeric_limits - : public _Integer_limits -{}; - -template<> -class numeric_limits - : public _Integer_limits -{}; - -template<> -class numeric_limits - : public _Integer_limits -{}; - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template<> -class numeric_limits -#if !defined(WCHAR_MAX) || !defined(WCHAR_MIN) -#if defined(_WIN32) || defined(__CYGWIN__) - : public _Integer_limits -#elif defined(__hppa) -// wchar_t has "unsigned int" as the underlying type - : public _Integer_limits -#else -// assume that wchar_t has "int" as the underlying type - : public _Integer_limits -#endif -#else -// we have WCHAR_MIN and WCHAR_MAX defined, so use it - : public _Integer_limits -#endif -{}; -#endif - -template<> -class numeric_limits - : public _Integer_limits -{}; - -template<> -class numeric_limits - : public _Integer_limits -{}; - -template<> -class numeric_limits - : public _Integer_limits -{}; - -template<> -class numeric_limits - : public _Integer_limits -{}; - -template<> -class numeric_limits - : public _Integer_limits -{}; - -template<> -class numeric_limits - : public _Integer_limits -{}; - -#ifdef __GNUC__ - -// Some compilers have long long, but don't define the -// LONGLONG_MIN and LONGLONG_MAX macros in limits.h. This -// assumes that long long is 64 bits. -#if !defined(LONGLONG_MAX) && !defined(ULONGLONG_MAX) - -# define ULONGLONG_MAX 0xffffffffffffffffLLU -# define LONGLONG_MAX 0x7fffffffffffffffLL - -#endif - -#if !defined(LONGLONG_MIN) -# define LONGLONG_MIN (-LONGLONG_MAX - 1) -#endif - - -#if !defined(ULONGLONG_MIN) -# define ULONGLONG_MIN 0 -#endif - -#endif /* __GNUC__ */ - -// Specializations for all built-in floating-point type. - -template<> class numeric_limits - : public _Floating_limits -{ -public: - static float min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return FLT_MIN; } - static float denorm_min() throw() { return FLT_MIN; } - static float max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return FLT_MAX; } - static float epsilon() throw() { return FLT_EPSILON; } - static float round_error() throw() { return 0.5f; } // Units: ulps. -}; - -template<> class numeric_limits - : public _Floating_limits -{ -public: - static double min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return DBL_MIN; } - static double denorm_min() throw() { return DBL_MIN; } - static double max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return DBL_MAX; } - static double epsilon() throw() { return DBL_EPSILON; } - static double round_error() throw() { return 0.5; } // Units: ulps. -}; - -template<> class numeric_limits - : public _Floating_limits -{ -public: - static long double min BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return LDBL_MIN; } - static long double denorm_min() throw() { return LDBL_MIN; } - static long double max BOOST_PREVENT_MACRO_SUBSTITUTION () throw() { return LDBL_MAX; } - static long double epsilon() throw() { return LDBL_EPSILON; } - static long double round_error() throw() { return 4; } // Units: ulps. -}; - -} // namespace std - -#endif /* BOOST_SGI_CPP_LIMITS */ - -// Local Variables: -// mode:C++ -// End: - - - diff --git a/3rdParty/Boost/boost/detail/ob_call_traits.hpp b/3rdParty/Boost/boost/detail/ob_call_traits.hpp deleted file mode 100644 index eb4df7a..0000000 --- a/3rdParty/Boost/boost/detail/ob_call_traits.hpp +++ /dev/null @@ -1,168 +0,0 @@ -// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. -// Use, modification and distribution are subject to the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt). -// -// See http://www.boost.org/libs/utility for most recent version including documentation. -// -// Crippled version for crippled compilers: -// see libs/utility/call_traits.htm -// - -/* Release notes: - 01st October 2000: - Fixed call_traits on VC6, using "poor man's partial specialisation", - using ideas taken from "Generative programming" by Krzysztof Czarnecki - & Ulrich Eisenecker. -*/ - -#ifndef BOOST_OB_CALL_TRAITS_HPP -#define BOOST_OB_CALL_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -#include -#endif - -#ifndef BOOST_ARITHMETIC_TYPE_TRAITS_HPP -#include -#endif -#ifndef BOOST_COMPOSITE_TYPE_TRAITS_HPP -#include -#endif - -namespace boost{ - -#ifdef BOOST_MSVC6_MEMBER_TEMPLATES -// -// use member templates to emulate -// partial specialisation: -// -namespace detail{ - -template -struct standard_call_traits -{ - typedef T value_type; - typedef T& reference; - typedef const T& const_reference; - typedef const T& param_type; -}; -template -struct simple_call_traits -{ - typedef T value_type; - typedef T& reference; - typedef const T& const_reference; - typedef const T param_type; -}; -template -struct reference_call_traits -{ - typedef T value_type; - typedef T reference; - typedef T const_reference; - typedef T param_type; -}; - -template -struct call_traits_chooser -{ - template - struct rebind - { - typedef standard_call_traits type; - }; -}; - -template <> -struct call_traits_chooser -{ - template - struct rebind - { - typedef simple_call_traits type; - }; -}; - -template <> -struct call_traits_chooser -{ - template - struct rebind - { - typedef reference_call_traits type; - }; -}; - -template -struct call_traits_sizeof_chooser2 -{ - template - struct small_rebind - { - typedef simple_call_traits small_type; - }; -}; - -template<> -struct call_traits_sizeof_chooser2 -{ - template - struct small_rebind - { - typedef standard_call_traits small_type; - }; -}; - -template <> -struct call_traits_chooser -{ - template - struct rebind - { - enum { sizeof_choice = (sizeof(T) <= sizeof(void*)) }; - typedef call_traits_sizeof_chooser2<(sizeof(T) <= sizeof(void*))> chooser; - typedef typename chooser::template small_rebind bound_type; - typedef typename bound_type::small_type type; - }; -}; - -} // namespace detail -template -struct call_traits -{ -private: - typedef detail::call_traits_chooser< - ::boost::is_pointer::value, - ::boost::is_arithmetic::value, - ::boost::is_reference::value - > chooser; - typedef typename chooser::template rebind bound_type; - typedef typename bound_type::type call_traits_type; -public: - typedef typename call_traits_type::value_type value_type; - typedef typename call_traits_type::reference reference; - typedef typename call_traits_type::const_reference const_reference; - typedef typename call_traits_type::param_type param_type; -}; - -#else -// -// sorry call_traits is completely non-functional -// blame your broken compiler: -// - -template -struct call_traits -{ - typedef T value_type; - typedef T& reference; - typedef const T& const_reference; - typedef const T& param_type; -}; - -#endif // member templates - -} - -#endif // BOOST_OB_CALL_TRAITS_HPP diff --git a/3rdParty/Boost/boost/detail/reference_content.hpp b/3rdParty/Boost/boost/detail/reference_content.hpp deleted file mode 100644 index daf56a8..0000000 --- a/3rdParty/Boost/boost/detail/reference_content.hpp +++ /dev/null @@ -1,141 +0,0 @@ -//----------------------------------------------------------------------------- -// boost detail/reference_content.hpp header file -// See http://www.boost.org for updates, documentation, and revision history. -//----------------------------------------------------------------------------- -// -// Copyright (c) 2003 -// Eric Friedman -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_DETAIL_REFERENCE_CONTENT_HPP -#define BOOST_DETAIL_REFERENCE_CONTENT_HPP - -#include "boost/config.hpp" - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# include "boost/mpl/bool.hpp" -# include "boost/type_traits/has_nothrow_copy.hpp" -#else -# include "boost/mpl/if.hpp" -# include "boost/type_traits/is_reference.hpp" -#endif - -#include "boost/mpl/void.hpp" - -namespace boost { - -namespace detail { - -/////////////////////////////////////////////////////////////////////////////// -// (detail) class template reference_content -// -// Non-Assignable wrapper for references. -// -template -class reference_content -{ -private: // representation - - RefT content_; - -public: // structors - - ~reference_content() - { - } - - reference_content(RefT r) - : content_( r ) - { - } - - reference_content(const reference_content& operand) - : content_( operand.content_ ) - { - } - -private: // non-Assignable - - reference_content& operator=(const reference_content&); - -public: // queries - - RefT get() const - { - return content_; - } - -}; - -/////////////////////////////////////////////////////////////////////////////// -// (detail) metafunction make_reference_content -// -// Wraps with reference_content if specified type is reference. -// - -template struct make_reference_content; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template -struct make_reference_content -{ - typedef T type; -}; - -template -struct make_reference_content< T& > -{ - typedef reference_content type; -}; - -#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template -struct make_reference_content - : mpl::if_< - is_reference - , reference_content - , T - > -{ -}; - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround - -template <> -struct make_reference_content< mpl::void_ > -{ - template - struct apply - : make_reference_content - { - }; - - typedef mpl::void_ type; -}; - -} // namespace detail - -/////////////////////////////////////////////////////////////////////////////// -// reference_content type traits specializations -// - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template -struct has_nothrow_copy< - ::boost::detail::reference_content< T& > - > - : mpl::true_ -{ -}; - -#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -} // namespace boost - -#endif // BOOST_DETAIL_REFERENCE_CONTENT_HPP diff --git a/3rdParty/Boost/boost/detail/sp_typeinfo.hpp b/3rdParty/Boost/boost/detail/sp_typeinfo.hpp deleted file mode 100644 index e78c943..0000000 --- a/3rdParty/Boost/boost/detail/sp_typeinfo.hpp +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED -#define BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// detail/sp_typeinfo.hpp -// -// Copyright 2007 Peter Dimov -// -// Distributed under the 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 - -#if defined( BOOST_NO_TYPEID ) - -namespace boost -{ - -namespace detail -{ - -typedef void* sp_typeinfo; - -template struct sp_typeid_ -{ - static char v_; -}; - -template char sp_typeid_< T >::v_; - -template struct sp_typeid_< T const >: sp_typeid_< T > -{ -}; - -template struct sp_typeid_< T volatile >: sp_typeid_< T > -{ -}; - -template struct sp_typeid_< T const volatile >: sp_typeid_< T > -{ -}; - -} // namespace detail - -} // namespace boost - -#define BOOST_SP_TYPEID(T) (&boost::detail::sp_typeid_::v_) - -#else - -#include - -namespace boost -{ - -namespace detail -{ - -#if defined( BOOST_NO_STD_TYPEINFO ) - -typedef ::type_info sp_typeinfo; - -#else - -typedef std::type_info sp_typeinfo; - -#endif - -} // namespace detail - -} // namespace boost - -#define BOOST_SP_TYPEID(T) typeid(T) - -#endif - -#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/detail/utf8_codecvt_facet.hpp b/3rdParty/Boost/boost/detail/utf8_codecvt_facet.hpp deleted file mode 100644 index ac7e7bf..0000000 --- a/3rdParty/Boost/boost/detail/utf8_codecvt_facet.hpp +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright (c) 2001 Ronald Garcia, Indiana University (garcia@osl.iu.edu) -// Andrew Lumsdaine, Indiana University (lums@osl.iu.edu). -// Distributed under the Boost Software License, Version 1.0. (See accompany- -// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_UTF8_CODECVT_FACET_HPP -#define BOOST_UTF8_CODECVT_FACET_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 -// utf8_codecvt_facet.hpp - -// This header defines class utf8_codecvt_facet, derived fro -// std::codecvt, which can be used to convert utf8 data in -// files into wchar_t strings in the application. -// -// The header is NOT STANDALONE, and is not to be included by the USER. -// There are at least two libraries which want to use this functionality, and -// we want to avoid code duplication. It would be possible to create utf8 -// library, but: -// - this requires review process first -// - in the case, when linking the a library which uses utf8 -// (say 'program_options'), user should also link to the utf8 library. -// This seems inconvenient, and asking a user to link to an unrevieved -// library is strange. -// Until the above points are fixed, a library which wants to use utf8 must: -// - include this header from one of it's headers or sources -// - include the corresponding .cpp file from one of the sources -// - before including either file, the library must define -// - BOOST_UTF8_BEGIN_NAMESPACE to the namespace declaration that must be used -// - BOOST_UTF8_END_NAMESPACE to the code to close the previous namespace -// - declaration. -// - BOOST_UTF8_DECL -- to the code which must be used for all 'exportable' -// symbols. -// -// For example, program_options library might contain: -// #define BOOST_UTF8_BEGIN_NAMESPACE -// namespace boost { namespace program_options { -// #define BOOST_UTF8_END_NAMESPACE }} -// #define BOOST_UTF8_DECL BOOST_PROGRAM_OPTIONS_DECL -// #include "../../detail/utf8/utf8_codecvt.cpp" -// -// Essentially, each library will have its own copy of utf8 code, in -// different namespaces. - -// Note:(Robert Ramey). I have made the following alterations in the original -// code. -// a) Rendered utf8_codecvt with using templates -// b) Move longer functions outside class definition to prevent inlining -// and make code smaller -// c) added on a derived class to permit translation to/from current -// locale to utf8 - -// See http://www.boost.org for updates, documentation, and revision history. - -// archives stored as text - note these ar templated on the basic -// stream templates to accommodate wide (and other?) kind of characters -// -// note the fact that on libraries without wide characters, ostream is -// is not a specialization of basic_ostream which in fact is not defined -// in such cases. So we can't use basic_ostream but rather -// use two template parameters -// -// utf8_codecvt_facet -// This is an implementation of a std::codecvt facet for translating -// from UTF-8 externally to UCS-4. Note that this is not tied to -// any specific types in order to allow customization on platforms -// where wchar_t is not big enough. -// -// NOTES: The current implementation jumps through some unpleasant hoops in -// order to deal with signed character types. As a std::codecvt_base::result, -// it is necessary for the ExternType to be convertible to unsigned char. -// I chose not to tie the extern_type explicitly to char. But if any combination -// of types other than is used, then std::codecvt must be -// specialized on those types for this to work. - -#include -// for mbstate_t -#include -// for std::size_t -#include - -#include -#include - -namespace std { - #if defined(__LIBCOMO__) - using ::mbstate_t; - #elif defined(BOOST_DINKUMWARE_STDLIB) && !defined(__BORLANDC__) - using ::mbstate_t; - #elif defined(__SGI_STL_PORT) - #elif defined(BOOST_NO_STDC_NAMESPACE) - using ::mbstate_t; - using ::codecvt; - #endif -} // namespace std - -#if !defined(__MSL_CPP__) && !defined(__LIBCOMO__) - #define BOOST_CODECVT_DO_LENGTH_CONST const -#else - #define BOOST_CODECVT_DO_LENGTH_CONST -#endif - -// maximum lenght of a multibyte string -#define MB_LENGTH_MAX 8 - -BOOST_UTF8_BEGIN_NAMESPACE - -struct BOOST_UTF8_DECL utf8_codecvt_facet : - public std::codecvt -{ -public: - explicit utf8_codecvt_facet(std::size_t no_locale_manage=0) - : std::codecvt(no_locale_manage) - {} -protected: - virtual std::codecvt_base::result do_in( - std::mbstate_t& state, - const char * from, - const char * from_end, - const char * & from_next, - wchar_t * to, - wchar_t * to_end, - wchar_t*& to_next - ) const; - - virtual std::codecvt_base::result do_out( - std::mbstate_t & state, const wchar_t * from, - const wchar_t * from_end, const wchar_t* & from_next, - char * to, char * to_end, char * & to_next - ) const; - - bool invalid_continuing_octet(unsigned char octet_1) const { - return (octet_1 < 0x80|| 0xbf< octet_1); - } - - bool invalid_leading_octet(unsigned char octet_1) const { - return (0x7f < octet_1 && octet_1 < 0xc0) || - (octet_1 > 0xfd); - } - - // continuing octets = octets except for the leading octet - static unsigned int get_cont_octet_count(unsigned char lead_octet) { - return get_octet_count(lead_octet) - 1; - } - - static unsigned int get_octet_count(unsigned char lead_octet); - - // How many "continuing octets" will be needed for this word - // == total octets - 1. - int get_cont_octet_out_count(wchar_t word) const ; - - virtual bool do_always_noconv() const throw() { return false; } - - // UTF-8 isn't really stateful since we rewind on partial conversions - virtual std::codecvt_base::result do_unshift( - std::mbstate_t&, - char * from, - char * /*to*/, - char * & next - ) const - { - next = from; - return ok; - } - - virtual int do_encoding() const throw() { - const int variable_byte_external_encoding=0; - return variable_byte_external_encoding; - } - - // How many char objects can I process to get <= max_limit - // wchar_t objects? - virtual int do_length( - BOOST_CODECVT_DO_LENGTH_CONST std::mbstate_t &, - const char * from, - const char * from_end, - std::size_t max_limit -#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) - ) const throw(); -#else - ) const; -#endif - - // Largest possible value do_length(state,from,from_end,1) could return. - virtual int do_max_length() const throw () { - return 6; // largest UTF-8 encoding of a UCS-4 character - } -}; - -BOOST_UTF8_END_NAMESPACE - -#endif // BOOST_UTF8_CODECVT_FACET_HPP diff --git a/3rdParty/Boost/boost/detail/workaround.hpp b/3rdParty/Boost/boost/detail/workaround.hpp deleted file mode 100644 index b6b6412..0000000 --- a/3rdParty/Boost/boost/detail/workaround.hpp +++ /dev/null @@ -1,262 +0,0 @@ -// Copyright David Abrahams 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) -#ifndef WORKAROUND_DWA2002126_HPP -# define WORKAROUND_DWA2002126_HPP - -// Compiler/library version workaround macro -// -// Usage: -// -// #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -// // workaround for eVC4 and VC6 -// ... // workaround code here -// #endif -// -// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the -// first argument must be undefined or expand to a numeric -// value. The above expands to: -// -// (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300 -// -// When used for workarounds that apply to the latest known version -// and all earlier versions of a compiler, the following convention -// should be observed: -// -// #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301)) -// -// The version number in this case corresponds to the last version in -// which the workaround was known to have been required. When -// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro -// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates -// the workaround for any version of the compiler. When -// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or -// error will be issued if the compiler version exceeds the argument -// to BOOST_TESTED_AT(). This can be used to locate workarounds which -// may be obsoleted by newer versions. - -# ifndef BOOST_STRICT_CONFIG - -#include - -#ifndef __BORLANDC__ -#define __BORLANDC___WORKAROUND_GUARD 1 -#else -#define __BORLANDC___WORKAROUND_GUARD 0 -#endif -#ifndef __CODEGEARC__ -#define __CODEGEARC___WORKAROUND_GUARD 1 -#else -#define __CODEGEARC___WORKAROUND_GUARD 0 -#endif -#ifndef _MSC_VER -#define _MSC_VER_WORKAROUND_GUARD 1 -#else -#define _MSC_VER_WORKAROUND_GUARD 0 -#endif -#ifndef _MSC_FULL_VER -#define _MSC_FULL_VER_WORKAROUND_GUARD 1 -#else -#define _MSC_FULL_VER_WORKAROUND_GUARD 0 -#endif -#ifndef BOOST_MSVC -#define BOOST_MSVC_WORKAROUND_GUARD 1 -#else -#define BOOST_MSVC_WORKAROUND_GUARD 0 -#endif -#ifndef __GNUC__ -#define __GNUC___WORKAROUND_GUARD 1 -#else -#define __GNUC___WORKAROUND_GUARD 0 -#endif -#ifndef __GNUC_MINOR__ -#define __GNUC_MINOR___WORKAROUND_GUARD 1 -#else -#define __GNUC_MINOR___WORKAROUND_GUARD 0 -#endif -#ifndef __GNUC_PATCHLEVEL__ -#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1 -#else -#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0 -#endif -#ifndef __IBMCPP__ -#define __IBMCPP___WORKAROUND_GUARD 1 -#else -#define __IBMCPP___WORKAROUND_GUARD 0 -#endif -#ifndef __SUNPRO_CC -#define __SUNPRO_CC_WORKAROUND_GUARD 1 -#else -#define __SUNPRO_CC_WORKAROUND_GUARD 0 -#endif -#ifndef __DECCXX_VER -#define __DECCXX_VER_WORKAROUND_GUARD 1 -#else -#define __DECCXX_VER_WORKAROUND_GUARD 0 -#endif -#ifndef __MWERKS__ -#define __MWERKS___WORKAROUND_GUARD 1 -#else -#define __MWERKS___WORKAROUND_GUARD 0 -#endif -#ifndef __EDG__ -#define __EDG___WORKAROUND_GUARD 1 -#else -#define __EDG___WORKAROUND_GUARD 0 -#endif -#ifndef __EDG_VERSION__ -#define __EDG_VERSION___WORKAROUND_GUARD 1 -#else -#define __EDG_VERSION___WORKAROUND_GUARD 0 -#endif -#ifndef __HP_aCC -#define __HP_aCC_WORKAROUND_GUARD 1 -#else -#define __HP_aCC_WORKAROUND_GUARD 0 -#endif -#ifndef __hpxstd98 -#define __hpxstd98_WORKAROUND_GUARD 1 -#else -#define __hpxstd98_WORKAROUND_GUARD 0 -#endif -#ifndef _CRAYC -#define _CRAYC_WORKAROUND_GUARD 1 -#else -#define _CRAYC_WORKAROUND_GUARD 0 -#endif -#ifndef __DMC__ -#define __DMC___WORKAROUND_GUARD 1 -#else -#define __DMC___WORKAROUND_GUARD 0 -#endif -#ifndef MPW_CPLUS -#define MPW_CPLUS_WORKAROUND_GUARD 1 -#else -#define MPW_CPLUS_WORKAROUND_GUARD 0 -#endif -#ifndef __COMO__ -#define __COMO___WORKAROUND_GUARD 1 -#else -#define __COMO___WORKAROUND_GUARD 0 -#endif -#ifndef __COMO_VERSION__ -#define __COMO_VERSION___WORKAROUND_GUARD 1 -#else -#define __COMO_VERSION___WORKAROUND_GUARD 0 -#endif -#ifndef __INTEL_COMPILER -#define __INTEL_COMPILER_WORKAROUND_GUARD 1 -#else -#define __INTEL_COMPILER_WORKAROUND_GUARD 0 -#endif -#ifndef __ICL -#define __ICL_WORKAROUND_GUARD 1 -#else -#define __ICL_WORKAROUND_GUARD 0 -#endif -#ifndef _COMPILER_VERSION -#define _COMPILER_VERSION_WORKAROUND_GUARD 1 -#else -#define _COMPILER_VERSION_WORKAROUND_GUARD 0 -#endif - -#ifndef _RWSTD_VER -#define _RWSTD_VER_WORKAROUND_GUARD 1 -#else -#define _RWSTD_VER_WORKAROUND_GUARD 0 -#endif -#ifndef BOOST_RWSTD_VER -#define BOOST_RWSTD_VER_WORKAROUND_GUARD 1 -#else -#define BOOST_RWSTD_VER_WORKAROUND_GUARD 0 -#endif -#ifndef __GLIBCPP__ -#define __GLIBCPP___WORKAROUND_GUARD 1 -#else -#define __GLIBCPP___WORKAROUND_GUARD 0 -#endif -#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC -#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1 -#else -#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0 -#endif -#ifndef __SGI_STL_PORT -#define __SGI_STL_PORT_WORKAROUND_GUARD 1 -#else -#define __SGI_STL_PORT_WORKAROUND_GUARD 0 -#endif -#ifndef _STLPORT_VERSION -#define _STLPORT_VERSION_WORKAROUND_GUARD 1 -#else -#define _STLPORT_VERSION_WORKAROUND_GUARD 0 -#endif -#ifndef __LIBCOMO_VERSION__ -#define __LIBCOMO_VERSION___WORKAROUND_GUARD 1 -#else -#define __LIBCOMO_VERSION___WORKAROUND_GUARD 0 -#endif -#ifndef _CPPLIB_VER -#define _CPPLIB_VER_WORKAROUND_GUARD 1 -#else -#define _CPPLIB_VER_WORKAROUND_GUARD 0 -#endif - -#ifndef BOOST_INTEL_CXX_VERSION -#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1 -#else -#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0 -#endif -#ifndef BOOST_INTEL_WIN -#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1 -#else -#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0 -#endif -#ifndef BOOST_DINKUMWARE_STDLIB -#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1 -#else -#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0 -#endif -#ifndef BOOST_INTEL -#define BOOST_INTEL_WORKAROUND_GUARD 1 -#else -#define BOOST_INTEL_WORKAROUND_GUARD 0 -#endif -// Always define to zero, if it's used it'll be defined my MPL: -#define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0 - -# define BOOST_WORKAROUND(symbol, test) \ - ((symbol ## _WORKAROUND_GUARD + 0 == 0) && \ - (symbol != 0) && (1 % (( (symbol test) ) + 1))) -// ^ ^ ^ ^ -// The extra level of parenthesis nesting above, along with the -// BOOST_OPEN_PAREN indirection below, is required to satisfy the -// broken preprocessor in MWCW 8.3 and earlier. -// -// The basic mechanism works as follows: -// (symbol test) + 1 => if (symbol test) then 2 else 1 -// 1 % ((symbol test) + 1) => if (symbol test) then 1 else 0 -// -// The complication with % is for cooperation with BOOST_TESTED_AT(). -// When "test" is BOOST_TESTED_AT(x) and -// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined, -// -// symbol test => if (symbol <= x) then 1 else -1 -// (symbol test) + 1 => if (symbol <= x) then 2 else 0 -// 1 % ((symbol test) + 1) => if (symbol <= x) then 1 else divide-by-zero -// - -# ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS -# define BOOST_OPEN_PAREN ( -# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1 -# else -# define BOOST_TESTED_AT(value) != ((value)-(value)) -# endif - -# else - -# define BOOST_WORKAROUND(symbol, test) 0 - -# endif - -#endif // WORKAROUND_DWA2002126_HPP diff --git a/3rdParty/Boost/boost/enable_shared_from_this.hpp b/3rdParty/Boost/boost/enable_shared_from_this.hpp deleted file mode 100644 index b1bb63d..0000000 --- a/3rdParty/Boost/boost/enable_shared_from_this.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef BOOST_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED -#define BOOST_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED - -// -// enable_shared_from_this.hpp -// -// Copyright (c) 2002 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt -// -// http://www.boost.org/libs/smart_ptr/enable_shared_from_this.html -// - -#include - -#endif // #ifndef BOOST_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/exception/exception.hpp b/3rdParty/Boost/boost/exception/exception.hpp deleted file mode 100644 index 6df93ac..0000000 --- a/3rdParty/Boost/boost/exception/exception.hpp +++ /dev/null @@ -1,396 +0,0 @@ -//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc. - -//Distributed under the Boost Software License, Version 1.0. (See accompanying -//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#ifndef UUID_274DA366004E11DCB1DDFE2E56D89593 -#define UUID_274DA366004E11DCB1DDFE2E56D89593 - -namespace -boost - { - namespace - exception_detail - { - template - class - refcount_ptr - { - public: - - refcount_ptr(): - px_(0) - { - } - - ~refcount_ptr() - { - release(); - } - - refcount_ptr( refcount_ptr const & x ): - px_(x.px_) - { - add_ref(); - } - - refcount_ptr & - operator=( refcount_ptr const & x ) - { - adopt(x.px_); - return *this; - } - - void - adopt( T * px ) - { - release(); - px_=px; - add_ref(); - } - - T * - get() const - { - return px_; - } - - private: - - T * px_; - - void - add_ref() - { - if( px_ ) - px_->add_ref(); - } - - void - release() - { - if( px_ ) - px_->release(); - } - }; - } - - //////////////////////////////////////////////////////////////////////// - - template - class error_info; - - typedef error_info throw_function; - typedef error_info throw_file; - typedef error_info throw_line; - - template <> - class - error_info - { - public: - typedef char const * value_type; - value_type v_; - explicit - error_info( value_type v ): - v_(v) - { - } - }; - - template <> - class - error_info - { - public: - typedef char const * value_type; - value_type v_; - explicit - error_info( value_type v ): - v_(v) - { - } - }; - - template <> - class - error_info - { - public: - typedef int value_type; - value_type v_; - explicit - error_info( value_type v ): - v_(v) - { - } - }; - - template - E const & operator<<( E const &, error_info const & ); - - class exception; - - template - class shared_ptr; - - namespace - exception_detail - { - class error_info_base; - struct type_info_; - - struct - error_info_container - { - virtual char const * diagnostic_information() const = 0; - virtual shared_ptr get( type_info_ const & ) const = 0; - virtual void set( shared_ptr const &, type_info_ const & ) = 0; - virtual void add_ref() const = 0; - virtual void release() const = 0; - - protected: - - virtual - ~error_info_container() throw() - { - } - }; - - template - struct get_info; - - template <> - struct get_info; - - template <> - struct get_info; - - template <> - struct get_info; - - char const * get_diagnostic_information( exception const & ); - } - - class - exception - { - protected: - - exception(): - throw_function_(0), - throw_file_(0), - throw_line_(-1) - { - } - -#ifdef __HP_aCC - //On HP aCC, this protected copy constructor prevents throwing boost::exception. - //On all other platforms, the same effect is achieved by the pure virtual destructor. - exception( exception const & x ) throw(): - data_(x.data_), - throw_function_(x.throw_function_), - throw_file_(x.throw_file_), - throw_line_(x.throw_line_) - { - } -#endif - - virtual ~exception() throw() -#ifndef __HP_aCC - = 0 //Workaround for HP aCC, =0 incorrectly leads to link errors. -#endif - ; - - private: - - template - friend - E const & - operator<<( E const & x, throw_function const & y ) - { - x.throw_function_=y.v_; - return x; - } - - template - friend - E const & - operator<<( E const & x, throw_file const & y ) - { - x.throw_file_=y.v_; - return x; - } - - template - friend - E const & - operator<<( E const & x, throw_line const & y ) - { - x.throw_line_=y.v_; - return x; - } - - friend char const * exception_detail::get_diagnostic_information( exception const & ); - - template - friend E const & operator<<( E const &, error_info const & ); - - template - friend struct exception_detail::get_info; - friend struct exception_detail::get_info; - friend struct exception_detail::get_info; - friend struct exception_detail::get_info; - - mutable exception_detail::refcount_ptr data_; - mutable char const * throw_function_; - mutable char const * throw_file_; - mutable int throw_line_; - }; - - inline - exception:: - ~exception() throw() - { - } - - //////////////////////////////////////////////////////////////////////// - - namespace - exception_detail - { - template - struct - error_info_injector: - public T, - public exception - { - explicit - error_info_injector( T const & x ): - T(x) - { - } - - ~error_info_injector() throw() - { - } - }; - - struct large_size { char c[256]; }; - large_size dispatch( exception * ); - - struct small_size { }; - small_size dispatch( void * ); - - template - struct enable_error_info_helper; - - template - struct - enable_error_info_helper - { - typedef T type; - }; - - template - struct - enable_error_info_helper - { - typedef error_info_injector type; - }; - - template - struct - enable_error_info_return_type - { - typedef typename enable_error_info_helper::type type; - }; - } - - template - inline - typename - exception_detail::enable_error_info_return_type::type - enable_error_info( T const & x ) - { - typedef typename exception_detail::enable_error_info_return_type::type rt; - return rt(x); - } - - //////////////////////////////////////////////////////////////////////// - - namespace - exception_detail - { - class - clone_base - { - public: - - virtual clone_base const * clone() const = 0; - virtual void rethrow() const = 0; - - virtual - ~clone_base() throw() - { - } - }; - - inline - void - copy_boost_exception( exception * a, exception const * b ) - { - *a = *b; - } - - inline - void - copy_boost_exception( void *, void const * ) - { - } - - template - class - clone_impl: - public T, - public clone_base - { - public: - - explicit - clone_impl( T const & x ): - T(x) - { - copy_boost_exception(this,&x); - } - - ~clone_impl() throw() - { - } - - private: - - clone_base const * - clone() const - { - return new clone_impl(*this); - } - - void - rethrow() const - { - throw*this; - } - }; - } - - template - inline - exception_detail::clone_impl - enable_current_exception( T const & x ) - { - return exception_detail::clone_impl(x); - } - } - -#endif diff --git a/3rdParty/Boost/boost/filesystem.hpp b/3rdParty/Boost/boost/filesystem.hpp deleted file mode 100644 index aa65b21..0000000 --- a/3rdParty/Boost/boost/filesystem.hpp +++ /dev/null @@ -1,20 +0,0 @@ -// boost/filesystem/filesystem.hpp -----------------------------------------// - -// Copyright Beman Dawes 2005 - -// 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/filesystem - -//----------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM_FILESYSTEM_HPP -#define BOOST_FILESYSTEM_FILESYSTEM_HPP - -#include // includes path.hpp -#include - -#endif - diff --git a/3rdParty/Boost/boost/filesystem/config.hpp b/3rdParty/Boost/boost/filesystem/config.hpp deleted file mode 100644 index 29a0494..0000000 --- a/3rdParty/Boost/boost/filesystem/config.hpp +++ /dev/null @@ -1,113 +0,0 @@ -// boost/filesystem/config.hpp ---------------------------------------------// - -// Copyright Beman Dawes 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 library home page at http://www.boost.org/libs/filesystem - -//----------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM_CONFIG_HPP -#define BOOST_FILESYSTEM_CONFIG_HPP - -#define BOOST_FILESYSTEM_I18N // aid users wishing to compile several versions - -// ability to change namespace aids path_table.cpp ------------------------// -#ifndef BOOST_FILESYSTEM_NAMESPACE -# define BOOST_FILESYSTEM_NAMESPACE filesystem -#endif - -// This header implements separate compilation features as described in -// http://www.boost.org/more/separate_compilation.html - -#include -#include - -// determine platform ------------------------------------------------------// - -// BOOST_CYGWIN_PATH implies BOOST_WINDOWS_PATH and BOOST_POSIX_API - -# if defined(BOOST_CYGWIN_PATH) -# if defined(BOOST_POSIX_PATH) -# error BOOST_POSIX_PATH is invalid when BOOST_CYGWIN_PATH is defined -# endif -# if defined(BOOST_WINDOWS_API) -# error BOOST_WINDOWS_API is invalid when BOOST_CYGWIN_PATH is defined -# endif -# define BOOST_WINDOWS_PATH -# define BOOST_POSIX_API -# endif - -// BOOST_POSIX_API or BOOST_WINDOWS_API specify which API to use - -# if defined( BOOST_WINDOWS_API ) && defined( BOOST_POSIX_API ) -# error both BOOST_WINDOWS_API and BOOST_POSIX_API are defined -# elif !defined( BOOST_WINDOWS_API ) && !defined( BOOST_POSIX_API ) -# if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__) -# define BOOST_WINDOWS_API -# else -# define BOOST_POSIX_API -# endif -# endif - -// BOOST_WINDOWS_PATH enables Windows path syntax recognition - -# if !defined(BOOST_POSIX_PATH) && (defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__)) -# define BOOST_WINDOWS_PATH -# endif - -// 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) -# define BOOST_FILESYSTEM_NARROW_ONLY -# endif - -// enable dynamic linking on Windows ---------------------------------------// - -# if (defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK)) && BOOST_WORKAROUND(__BORLANDC__, <0x610) && defined(__WIN32__) -# error Dynamic linking Boost.Filesystem does not work for Borland; use static linking instead -# endif - -#ifdef BOOST_HAS_DECLSPEC // defined in config system -// we need to import/export our code only if the user has specifically -// asked for it by defining either BOOST_ALL_DYN_LINK if they want all boost -// libraries to be dynamically linked, or BOOST_FILESYSTEM_DYN_LINK -// if they want just this one to be dynamically liked: -#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK) -// export if this is our own source, otherwise import: -#ifdef BOOST_FILESYSTEM_SOURCE -# define BOOST_FILESYSTEM_DECL __declspec(dllexport) -#else -# define BOOST_FILESYSTEM_DECL __declspec(dllimport) -#endif // BOOST_FILESYSTEM_SOURCE -#endif // DYN_LINK -#endif // BOOST_HAS_DECLSPEC -// -// if BOOST_FILESYSTEM_DECL isn't defined yet define it now: -#ifndef BOOST_FILESYSTEM_DECL -#define BOOST_FILESYSTEM_DECL -#endif - -// enable automatic library variant selection ------------------------------// - -#if !defined(BOOST_FILESYSTEM_SOURCE) && !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_FILESYSTEM_NO_LIB) -// -// Set the name of our library, this will get undef'ed by auto_link.hpp -// once it's done with it: -// -#define BOOST_LIB_NAME boost_filesystem -// -// If we're importing code from a dll, then tell auto_link.hpp about it: -// -#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_FILESYSTEM_DYN_LINK) -# define BOOST_DYN_LINK -#endif -// -// And include the header that does the work: -// -#include -#endif // auto-linking disabled - -#endif // BOOST_FILESYSTEM_CONFIG_HPP diff --git a/3rdParty/Boost/boost/filesystem/convenience.hpp b/3rdParty/Boost/boost/filesystem/convenience.hpp deleted file mode 100644 index d0e6c54..0000000 --- a/3rdParty/Boost/boost/filesystem/convenience.hpp +++ /dev/null @@ -1,306 +0,0 @@ -// boost/filesystem/convenience.hpp ----------------------------------------// - -// Copyright Beman Dawes, 2002-2005 -// Copyright Vladimir Prus, 2002 -// 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/filesystem - -//----------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM_CONVENIENCE_HPP -#define BOOST_FILESYSTEM_CONVENIENCE_HPP - -#include -#include -#include -#include - -#include // must be the last #include - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY -# define BOOST_FS_FUNC(BOOST_FS_TYPE) \ - template typename boost::enable_if, \ - BOOST_FS_TYPE>::type -# define BOOST_FS_FUNC_STRING BOOST_FS_FUNC(typename Path::string_type) -# define BOOST_FS_TYPENAME typename -# else -# define BOOST_FS_FUNC(BOOST_FS_TYPE) inline BOOST_FS_TYPE - typedef boost::filesystem::path Path; -# define BOOST_FS_FUNC_STRING inline std::string -# define BOOST_FS_TYPENAME -# endif - -namespace boost -{ - namespace filesystem - { - - BOOST_FS_FUNC(bool) create_directories(const Path& ph) - { - if (ph.empty() || exists(ph)) - { - if ( !ph.empty() && !is_directory(ph) ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::create_directories", ph, - make_error_code( boost::system::posix::file_exists ) ) ); - return false; - } - - // First create branch, by calling ourself recursively - create_directories(ph.parent_path()); - // Now that parent's path exists, create the directory - create_directory(ph); - return true; - } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - - BOOST_FS_FUNC_STRING extension(const Path& ph) - { - typedef BOOST_FS_TYPENAME Path::string_type string_type; - string_type filename = ph.filename(); - - BOOST_FS_TYPENAME string_type::size_type n = filename.rfind('.'); - if (n != string_type::npos) - return filename.substr(n); - else - return string_type(); - } - - BOOST_FS_FUNC_STRING basename(const Path& ph) - { - typedef BOOST_FS_TYPENAME Path::string_type string_type; - string_type filename = ph.filename(); - BOOST_FS_TYPENAME string_type::size_type n = filename.rfind('.'); - return filename.substr(0, n); - } - - - BOOST_FS_FUNC(Path) change_extension( const Path & ph, - const BOOST_FS_TYPENAME Path::string_type & new_extension ) - { return ph.parent_path() / (basename(ph) + new_extension); } - -# endif - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - - // "do-the-right-thing" overloads ---------------------------------------// - - inline bool create_directories(const path& ph) - { return create_directories(ph); } - inline bool create_directories(const wpath& ph) - { return create_directories(ph); } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - inline std::string extension(const path& ph) - { return extension(ph); } - inline std::wstring extension(const wpath& ph) - { return extension(ph); } - - inline std::string basename(const path& ph) - { return basename( ph ); } - inline std::wstring basename(const wpath& ph) - { return basename( ph ); } - - inline path change_extension( const path & ph, const std::string& new_ex ) - { return change_extension( ph, new_ex ); } - inline wpath change_extension( const wpath & ph, const std::wstring& new_ex ) - { return change_extension( ph, new_ex ); } -# endif - -# endif - - - // basic_recursive_directory_iterator helpers --------------------------// - - namespace detail - { - template< class Path > - struct recur_dir_itr_imp - { - typedef basic_directory_iterator< Path > element_type; - std::stack< element_type, std::vector< element_type > > m_stack; - int m_level; - bool m_no_push; - bool m_no_throw; - - recur_dir_itr_imp() : m_level(0), m_no_push(false), m_no_throw(false) {} - }; - - } // namespace detail - - // basic_recursive_directory_iterator ----------------------------------// - - template< class Path > - class basic_recursive_directory_iterator - : public boost::iterator_facade< - basic_recursive_directory_iterator, - basic_directory_entry, - boost::single_pass_traversal_tag > - { - public: - typedef Path path_type; - - basic_recursive_directory_iterator(){} // creates the "end" iterator - - explicit basic_recursive_directory_iterator( const Path & dir_path ); - basic_recursive_directory_iterator( const Path & dir_path, - system::error_code & ec ); - - int level() const { return m_imp->m_level; } - - void pop(); - void no_push() - { - BOOST_ASSERT( m_imp.get() && "attempt to no_push() on end iterator" ); - m_imp->m_no_push = true; - } - - file_status status() const - { - BOOST_ASSERT( m_imp.get() - && "attempt to call status() on end recursive_iterator" ); - return m_imp->m_stack.top()->status(); - } - - file_status symlink_status() const - { - BOOST_ASSERT( m_imp.get() - && "attempt to call symlink_status() on end recursive_iterator" ); - return m_imp->m_stack.top()->symlink_status(); - } - - private: - - // shared_ptr provides shallow-copy semantics required for InputIterators. - // m_imp.get()==0 indicates the end iterator. - boost::shared_ptr< detail::recur_dir_itr_imp< Path > > m_imp; - - friend class boost::iterator_core_access; - - typename boost::iterator_facade< - basic_recursive_directory_iterator, - basic_directory_entry, - boost::single_pass_traversal_tag >::reference - dereference() const - { - BOOST_ASSERT( m_imp.get() && "attempt to dereference end iterator" ); - return *m_imp->m_stack.top(); - } - - void increment(); - - bool equal( const basic_recursive_directory_iterator & rhs ) const - { return m_imp == rhs.m_imp; } - - }; - - typedef basic_recursive_directory_iterator recursive_directory_iterator; -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - typedef basic_recursive_directory_iterator wrecursive_directory_iterator; -# endif - - // basic_recursive_directory_iterator implementation -------------------// - - // constructors - template - basic_recursive_directory_iterator:: - basic_recursive_directory_iterator( const Path & dir_path ) - : m_imp( new detail::recur_dir_itr_imp ) - { - m_imp->m_stack.push( basic_directory_iterator( dir_path ) ); - if ( m_imp->m_stack.top () == basic_directory_iterator() ) - { m_imp.reset (); } - } - - template - basic_recursive_directory_iterator:: - basic_recursive_directory_iterator( const Path & dir_path, - system::error_code & ec ) - : m_imp( new detail::recur_dir_itr_imp ) - { - m_imp->m_no_throw = true; - m_imp->m_stack.push( basic_directory_iterator( dir_path, ec ) ); - if ( m_imp->m_stack.top () == basic_directory_iterator() ) - { m_imp.reset (); } - } - - // increment - template - void basic_recursive_directory_iterator::increment() - { - BOOST_ASSERT( m_imp.get() && "increment on end iterator" ); - - static const basic_directory_iterator end_itr; - - if ( m_imp->m_no_push ) - { m_imp->m_no_push = false; } - else if ( is_directory( m_imp->m_stack.top()->status() ) ) - { - system::error_code ec; -#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610)) - if( m_imp->m_no_throw ) { - m_imp->m_stack.push( - basic_directory_iterator( *m_imp->m_stack.top(), ec ) - ); - } - else { - m_imp->m_stack.push( - basic_directory_iterator( *m_imp->m_stack.top() ) - ); - } -#else - m_imp->m_stack.push( - m_imp->m_no_throw - ? basic_directory_iterator( *m_imp->m_stack.top(), ec ) - : basic_directory_iterator( *m_imp->m_stack.top() ) ); -#endif - if ( m_imp->m_stack.top() != end_itr ) - { - ++m_imp->m_level; - return; - } - m_imp->m_stack.pop(); - } - - while ( !m_imp->m_stack.empty() - && ++m_imp->m_stack.top() == end_itr ) - { - m_imp->m_stack.pop(); - --m_imp->m_level; - } - - if ( m_imp->m_stack.empty() ) m_imp.reset(); // done, so make end iterator - } - - // pop - template - void basic_recursive_directory_iterator::pop() - { - BOOST_ASSERT( m_imp.get() && "pop on end iterator" ); - BOOST_ASSERT( m_imp->m_level > 0 && "pop with level < 1" ); - - static const basic_directory_iterator end_itr; - - do - { - m_imp->m_stack.pop(); - --m_imp->m_level; - } - while ( !m_imp->m_stack.empty() - && ++m_imp->m_stack.top() == end_itr ); - - if ( m_imp->m_stack.empty() ) m_imp.reset(); // done, so make end iterator - } - - } // namespace filesystem -} // namespace boost - -#undef BOOST_FS_FUNC_STRING -#undef BOOST_FS_FUNC - -#include // pops abi_prefix.hpp pragmas -#endif // BOOST_FILESYSTEM_CONVENIENCE_HPP diff --git a/3rdParty/Boost/boost/filesystem/fstream.hpp b/3rdParty/Boost/boost/filesystem/fstream.hpp deleted file mode 100644 index bdba8f0..0000000 --- a/3rdParty/Boost/boost/filesystem/fstream.hpp +++ /dev/null @@ -1,584 +0,0 @@ -// boost/filesystem/fstream.hpp --------------------------------------------// - -// Copyright Beman Dawes 2002. -// 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/filesystem - -//----------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM_FSTREAM_HPP -#define BOOST_FILESYSTEM_FSTREAM_HPP - -#include // for 8.3 hack (see below) -#include -#include - -#include -#include - -#include // must be the last #include - -// NOTE: fstream.hpp for Boost 1.32.0 and earlier supplied workarounds for -// various compiler problems. They have been removed to ease development of the -// basic i18n functionality. Once the new interface is stable, the workarounds -// will be reinstated for any compilers that otherwise can support the rest of -// the library after internationalization. - -namespace boost -{ - namespace filesystem - { - namespace detail - { -# if defined(BOOST_WINDOWS_API) && !defined(BOOST_FILESYSTEM_NARROW_ONLY) -# if !defined(BOOST_DINKUMWARE_STDLIB) || BOOST_DINKUMWARE_STDLIB < 405 - // The 8.3 hack: - // C++98 does not supply a wchar_t open, so try to get an equivalent - // narrow char name based on the short, so-called 8.3, name. - // Not needed for Dinkumware 405 and later as they do supply wchar_t open. - BOOST_FILESYSTEM_DECL bool create_file_api( const std::wstring & ph, - std::ios_base::openmode mode ); // true if succeeds - BOOST_FILESYSTEM_DECL std::string narrow_path_api( - const std::wstring & ph ); // return is empty if fails - - inline std::string path_proxy( const std::wstring & file_ph, - std::ios_base::openmode mode ) - // Return a non-existant path if cannot supply narrow short path. - // An empty path doesn't work because some Dinkumware versions - // assert the path is non-empty. - { - std::string narrow_ph; - bool created_file( false ); - if ( !exists( file_ph ) - && (mode & std::ios_base::out) != 0 - && create_file_api( file_ph, mode ) ) - { - created_file = true; - } - narrow_ph = narrow_path_api( file_ph ); - if ( narrow_ph.empty() ) - { - if ( created_file ) remove_api( file_ph ); - narrow_ph = "\x01"; - } - return narrow_ph; - } -# else - // Dinkumware 405 and later does supply wchar_t functions - inline const std::wstring & path_proxy( const std::wstring & file_ph, - std::ios_base::openmode ) - { return file_ph; } -# endif -# endif - - inline const std::string & path_proxy( const std::string & file_ph, - std::ios_base::openmode ) - { return file_ph; } - - } // namespace detail - - template < class charT, class traits = std::char_traits > - class basic_filebuf : public std::basic_filebuf - { - private: // disallow copying - basic_filebuf( const basic_filebuf & ); - const basic_filebuf & operator=( const basic_filebuf & ); - public: - basic_filebuf() {} - virtual ~basic_filebuf() {} - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - template - typename boost::enable_if, - basic_filebuf *>::type - open( const Path & file_ph, std::ios_base::openmode mode ); - - basic_filebuf * - open( const wpath & file_ph, std::ios_base::openmode mode ); -# endif - -# if !BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) // VC++ 6.0 can't handle this - basic_filebuf * - open( const path & file_ph, std::ios_base::openmode mode ); -# endif - }; - - template < class charT, class traits = std::char_traits > - class basic_ifstream : public std::basic_ifstream - { - private: // disallow copying - basic_ifstream( const basic_ifstream & ); - const basic_ifstream & operator=( const basic_ifstream & ); - public: - basic_ifstream() {} - - // use two signatures, rather than one signature with default second - // argument, to workaround VC++ 7.1 bug (ID VSWhidbey 38416) - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - template - explicit basic_ifstream( const Path & file_ph, - typename boost::enable_if >::type* dummy = 0 ); - - template - basic_ifstream( const Path & file_ph, std::ios_base::openmode mode, - typename boost::enable_if >::type* dummy = 0 ); - - template - typename boost::enable_if, void>::type - open( const Path & file_ph ); - - template - typename boost::enable_if, void>::type - open( const Path & file_ph, std::ios_base::openmode mode ); - - explicit basic_ifstream( const wpath & file_ph ); - basic_ifstream( const wpath & file_ph, std::ios_base::openmode mode ); - void open( const wpath & file_ph ); - void open( const wpath & file_ph, std::ios_base::openmode mode ); -# endif - - explicit basic_ifstream( const path & file_ph ); - basic_ifstream( const path & file_ph, std::ios_base::openmode mode ); -# if !BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) // VC++ 6.0 can't handle this - void open( const path & file_ph ); - void open( const path & file_ph, std::ios_base::openmode mode ); -# endif - virtual ~basic_ifstream() {} - }; - - template < class charT, class traits = std::char_traits > - class basic_ofstream : public std::basic_ofstream - { - private: // disallow copying - basic_ofstream( const basic_ofstream & ); - const basic_ofstream & operator=( const basic_ofstream & ); - public: - basic_ofstream() {} - - // use two signatures, rather than one signature with default second - // argument, to workaround VC++ 7.1 bug (ID VSWhidbey 38416) - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - - template - explicit basic_ofstream( const Path & file_ph, - typename boost::enable_if >::type* dummy = 0 ); - explicit basic_ofstream( const wpath & file_ph ); - - template - basic_ofstream( const Path & file_ph, std::ios_base::openmode mode, - typename boost::enable_if >::type* dummy = 0 ); - basic_ofstream( const wpath & file_ph, std::ios_base::openmode mode ); - - template - typename boost::enable_if, void>::type - open( const Path & file_ph ); - void open( const wpath & file_ph ); - - template - typename boost::enable_if, void>::type - open( const Path & file_ph, std::ios_base::openmode mode ); - void open( const wpath & file_ph, std::ios_base::openmode mode ); - -# endif - - explicit basic_ofstream( const path & file_ph ); - basic_ofstream( const path & file_ph, std::ios_base::openmode mode ); -# if !BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) // VC++ 6.0 can't handle this - void open( const path & file_ph ); - void open( const path & file_ph, std::ios_base::openmode mode ); -# endif - virtual ~basic_ofstream() {} - }; - - template < class charT, class traits = std::char_traits > - class basic_fstream : public std::basic_fstream - { - private: // disallow copying - basic_fstream( const basic_fstream & ); - const basic_fstream & operator=( const basic_fstream & ); - public: - basic_fstream() {} - - // use two signatures, rather than one signature with default second - // argument, to workaround VC++ 7.1 bug (ID VSWhidbey 38416) - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - - template - explicit basic_fstream( const Path & file_ph, - typename boost::enable_if >::type* dummy = 0 ); - explicit basic_fstream( const wpath & file_ph ); - - template - basic_fstream( const Path & file_ph, std::ios_base::openmode mode, - typename boost::enable_if >::type* dummy = 0 ); - basic_fstream( const wpath & file_ph, std::ios_base::openmode mode ); - - template - typename boost::enable_if, void>::type - open( const Path & file_ph ); - void open( const wpath & file_ph ); - - template - typename boost::enable_if, void>::type - open( const Path & file_ph, std::ios_base::openmode mode ); - void open( const wpath & file_ph, std::ios_base::openmode mode ); - -# endif - - explicit basic_fstream( const path & file_ph ); - basic_fstream( const path & file_ph, std::ios_base::openmode mode ); -# if !BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) // VC++ 6.0 can't handle this - void open( const path & file_ph ); - void open( const path & file_ph, std::ios_base::openmode mode ); -# endif - virtual ~basic_fstream() {} - - }; - - typedef basic_filebuf filebuf; - typedef basic_ifstream ifstream; - typedef basic_ofstream ofstream; - typedef basic_fstream fstream; - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - typedef basic_filebuf wfilebuf; - typedef basic_ifstream wifstream; - typedef basic_fstream wfstream; - typedef basic_ofstream wofstream; -# endif - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - -// basic_filebuf definitions -----------------------------------------------// - - template - template - typename boost::enable_if, - basic_filebuf *>::type - basic_filebuf::open( const Path & file_ph, - std::ios_base::openmode mode ) - { - return (std::basic_filebuf::open( detail::path_proxy( - file_ph.external_file_string(), mode ).c_str(), mode ) - == 0) ? 0 : this; - } - - template - basic_filebuf * - basic_filebuf::open( const wpath & file_ph, - std::ios_base::openmode mode ) - { - return this->BOOST_NESTED_TEMPLATE open( file_ph, mode ); - } - -// basic_ifstream definitions ----------------------------------------------// - - template template - basic_ifstream::basic_ifstream(const Path & file_ph, - typename boost::enable_if >::type* ) - : std::basic_ifstream( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::in ).c_str(), std::ios_base::in ) {} - - template - basic_ifstream::basic_ifstream( const wpath & file_ph ) - : std::basic_ifstream( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::in ).c_str(), std::ios_base::in ) {} - - template template - basic_ifstream::basic_ifstream( const Path & file_ph, - std::ios_base::openmode mode, - typename boost::enable_if >::type* ) - : std::basic_ifstream( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::in ) {} - - template - basic_ifstream::basic_ifstream( const wpath & file_ph, - std::ios_base::openmode mode ) - : std::basic_ifstream( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::in ) {} - - template template - typename boost::enable_if, void>::type - basic_ifstream::open( const Path & file_ph ) - { - std::basic_ifstream::open( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::in ).c_str(), std::ios_base::in ); - } - - template - void basic_ifstream::open( const wpath & file_ph ) - { - std::basic_ifstream::open( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::in ).c_str(), std::ios_base::in ); - } - - template template - typename boost::enable_if, void>::type - basic_ifstream::open( const Path & file_ph, - std::ios_base::openmode mode ) - { - std::basic_ifstream::open( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::in ); - } - - template - void basic_ifstream::open( const wpath & file_ph, - std::ios_base::openmode mode ) - { - std::basic_ifstream::open( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::in ); - } - -// basic_ofstream definitions ----------------------------------------------// - - template template - basic_ofstream::basic_ofstream(const Path & file_ph, - typename boost::enable_if >::type* ) - : std::basic_ofstream( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::out ).c_str(), std::ios_base::out ) {} - - template - basic_ofstream::basic_ofstream( const wpath & file_ph ) - : std::basic_ofstream( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::out ).c_str(), std::ios_base::out ) {} - - template template - basic_ofstream::basic_ofstream( const Path & file_ph, - std::ios_base::openmode mode, - typename boost::enable_if >::type* ) - : std::basic_ofstream( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::out ) {} - - template - basic_ofstream::basic_ofstream( const wpath & file_ph, - std::ios_base::openmode mode ) - : std::basic_ofstream( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::out ) {} - - template template - typename boost::enable_if, void>::type - basic_ofstream::open( const Path & file_ph ) - { - std::basic_ofstream::open( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::out ).c_str(), std::ios_base::out ); - } - - template - void basic_ofstream::open( const wpath & file_ph ) - { - std::basic_ofstream::open( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::out ).c_str(), std::ios_base::out ); - } - - template template - typename boost::enable_if, void>::type - basic_ofstream::open( const Path & file_ph, - std::ios_base::openmode mode ) - { - std::basic_ofstream::open( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::out ); - } - - template - void basic_ofstream::open( const wpath & file_ph, - std::ios_base::openmode mode ) - { - std::basic_ofstream::open( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::out ); - } - -// basic_fstream definitions -----------------------------------------------// - - template template - basic_fstream::basic_fstream(const Path & file_ph, - typename boost::enable_if >::type* ) - : std::basic_fstream( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::in|std::ios_base::out ).c_str(), - std::ios_base::in|std::ios_base::out ) {} - - template - basic_fstream::basic_fstream( const wpath & file_ph ) - : std::basic_fstream( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::in|std::ios_base::out ).c_str(), - std::ios_base::in|std::ios_base::out ) {} - - template template - basic_fstream::basic_fstream( const Path & file_ph, - std::ios_base::openmode mode, - typename boost::enable_if >::type* ) - : std::basic_fstream( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::in | std::ios_base::out ) {} - - template - basic_fstream::basic_fstream( const wpath & file_ph, - std::ios_base::openmode mode ) - : std::basic_fstream( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::in | std::ios_base::out ) {} - - template template - typename boost::enable_if, void>::type - basic_fstream::open( const Path & file_ph ) - { - std::basic_fstream::open( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::in|std::ios_base::out ).c_str(), - std::ios_base::in|std::ios_base::out ); - } - - template - void basic_fstream::open( const wpath & file_ph ) - { - std::basic_fstream::open( - detail::path_proxy( file_ph.external_file_string(), - std::ios_base::in|std::ios_base::out ).c_str(), - std::ios_base::in|std::ios_base::out ); - } - - template template - typename boost::enable_if, void>::type - basic_fstream::open( const Path & file_ph, - std::ios_base::openmode mode ) - { - std::basic_fstream::open( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::in | std::ios_base::out ); - } - - template - void basic_fstream::open( const wpath & file_ph, - std::ios_base::openmode mode ) - { - std::basic_fstream::open( - detail::path_proxy( file_ph.external_file_string(), - mode ).c_str(), mode | std::ios_base::in | std::ios_base::out ); - } - -# endif - -# if !BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) // VC++ 6.0 can't handle this - template - basic_filebuf * - basic_filebuf::open( const path & file_ph, - std::ios_base::openmode mode ) - { - return std::basic_filebuf::open( - file_ph.file_string().c_str(), mode ) == 0 ? 0 : this; - } -# endif - - template - basic_ifstream::basic_ifstream( const path & file_ph ) - : std::basic_ifstream( - file_ph.file_string().c_str(), std::ios_base::in ) {} - - template - basic_ifstream::basic_ifstream( const path & file_ph, - std::ios_base::openmode mode ) - : std::basic_ifstream( - file_ph.file_string().c_str(), mode ) {} - -# if !BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) // VC++ 6.0 can't handle this - template - void basic_ifstream::open( const path & file_ph ) - { - std::basic_ifstream::open( - file_ph.file_string().c_str(), std::ios_base::in ); - } - - template - void basic_ifstream::open( const path & file_ph, - std::ios_base::openmode mode ) - { - std::basic_ifstream::open( - file_ph.file_string().c_str(), mode ); - } -# endif - - template - basic_ofstream::basic_ofstream( const path & file_ph ) - : std::basic_ofstream( - file_ph.file_string().c_str(), std::ios_base::out ) {} - - template - basic_ofstream::basic_ofstream( const path & file_ph, - std::ios_base::openmode mode ) - : std::basic_ofstream( - file_ph.file_string().c_str(), mode ) {} - -# if !BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) // VC++ 6.0 can't handle this - template - void basic_ofstream::open( const path & file_ph ) - { - std::basic_ofstream::open( - file_ph.file_string().c_str(), std::ios_base::out ); - } - - template - void basic_ofstream::open( const path & file_ph, - std::ios_base::openmode mode ) - { - std::basic_ofstream::open( - file_ph.file_string().c_str(), mode ); - } -# endif - - template - basic_fstream::basic_fstream( const path & file_ph ) - : std::basic_fstream( - file_ph.file_string().c_str(), - std::ios_base::in|std::ios_base::out ) {} - - - template - basic_fstream::basic_fstream( const path & file_ph, - std::ios_base::openmode mode ) - : std::basic_fstream( - file_ph.file_string().c_str(), mode ) {} - -# if !BOOST_WORKAROUND( BOOST_MSVC, <= 1200 ) // VC++ 6.0 can't handle this - template - void basic_fstream::open( const path & file_ph ) - { - std::basic_fstream::open( - file_ph.file_string().c_str(), std::ios_base::in|std::ios_base::out ); - } - - template - void basic_fstream::open( const path & file_ph, - std::ios_base::openmode mode ) - { - std::basic_fstream::open( - file_ph.file_string().c_str(), mode ); - } -# endif - } // namespace filesystem -} // namespace boost - -#include // pops abi_prefix.hpp pragmas -#endif // BOOST_FILESYSTEM_FSTREAM_HPP diff --git a/3rdParty/Boost/boost/filesystem/operations.hpp b/3rdParty/Boost/boost/filesystem/operations.hpp deleted file mode 100644 index 5c2080c..0000000 --- a/3rdParty/Boost/boost/filesystem/operations.hpp +++ /dev/null @@ -1,1173 +0,0 @@ -// boost/filesystem/operations.hpp -----------------------------------------// - -// Copyright 2002-2005 Beman Dawes -// Copyright 2002 Jan Langer -// Copyright 2001 Dietmar Kuehl -// -// Distributed under the 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/filesystem - -//----------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM_OPERATIONS_HPP -#define BOOST_FILESYSTEM_OPERATIONS_HPP - -#include - -#include -#include -#include -#include -#include -#include - -#include -#include // for pair -#include - -#ifdef BOOST_WINDOWS_API -# include -# if !defined(_WIN32_WINNT) || _WIN32_WINNT >= 0x0500 -# define BOOST_FS_HARD_LINK // Default for Windows 2K or later -# endif -#endif - -#include // must be the last #include - -# ifdef BOOST_NO_STDC_NAMESPACE - namespace std { using ::time_t; } -# endif - -//----------------------------------------------------------------------------// - -namespace boost -{ - namespace filesystem - { - -// typedef boost::filesystem::path Path; needs to be in namespace boost::filesystem -# ifndef BOOST_FILESYSTEM_NARROW_ONLY -# define BOOST_FS_FUNC(BOOST_FS_TYPE) \ - template typename boost::enable_if, \ - BOOST_FS_TYPE>::type -# define BOOST_INLINE_FS_FUNC(BOOST_FS_TYPE) \ - template inline typename boost::enable_if, \ - BOOST_FS_TYPE>::type -# define BOOST_FS_TYPENAME typename -# else -# define BOOST_FS_FUNC(BOOST_FS_TYPE) inline BOOST_FS_TYPE -# define BOOST_INLINE_FS_FUNC(BOOST_FS_TYPE) inline BOOST_FS_TYPE - typedef boost::filesystem::path Path; -# define BOOST_FS_TYPENAME -# endif - - template class basic_directory_iterator; - - // BOOST_FILESYSTEM_NARROW_ONLY needs this: - typedef basic_directory_iterator directory_iterator; - - template class basic_directory_entry; - - enum file_type - { - status_unknown, - file_not_found, - regular_file, - directory_file, - // the following will never be reported by some operating or file systems - symlink_file, - block_file, - character_file, - fifo_file, - socket_file, - 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 - }; - - class file_status - { - public: - explicit file_status( file_type v = status_unknown ) : m_value(v) {} - - void type( file_type v ) { m_value = v; } - file_type type() const { return m_value; } - - private: - // the internal representation is unspecified so that additional state - // information such as permissions can be added in the future; this - // implementation just uses status_type as the internal representation - - file_type m_value; - }; - - inline bool status_known( file_status f ) { return f.type() != status_unknown; } - inline bool exists( file_status f ) { return f.type() != status_unknown && f.type() != file_not_found; } - inline bool is_regular_file(file_status f){ return f.type() == regular_file; } - inline bool is_directory( file_status f ) { return f.type() == directory_file; } - inline bool is_symlink( file_status f ) { return f.type() == symlink_file; } - inline bool is_other( file_status f ) { return exists(f) && !is_regular_file(f) && !is_directory(f) && !is_symlink(f); } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - inline bool is_regular( file_status f ) { return f.type() == regular_file; } -# endif - - struct space_info - { - // all values are byte counts - boost::uintmax_t capacity; - boost::uintmax_t free; // <= capacity - boost::uintmax_t available; // <= free - }; - - namespace detail - { - typedef std::pair< system::error_code, bool > - query_pair; - - typedef std::pair< system::error_code, boost::uintmax_t > - uintmax_pair; - - typedef std::pair< system::error_code, std::time_t > - time_pair; - - typedef std::pair< system::error_code, space_info > - space_pair; - - template< class Path > - struct directory_pair - { - typedef std::pair< system::error_code, - typename Path::external_string_type > type; - }; - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - BOOST_FILESYSTEM_DECL bool - symbolic_link_exists_api( const std::string & ); // deprecated -# endif - - BOOST_FILESYSTEM_DECL file_status - status_api( const std::string & ph, system::error_code & ec ); -# ifndef BOOST_WINDOWS_API - BOOST_FILESYSTEM_DECL file_status - symlink_status_api( const std::string & ph, system::error_code & ec ); -# endif - BOOST_FILESYSTEM_DECL query_pair - is_empty_api( const std::string & ph ); - BOOST_FILESYSTEM_DECL query_pair - equivalent_api( const std::string & ph1, const std::string & ph2 ); - BOOST_FILESYSTEM_DECL uintmax_pair - file_size_api( const std::string & ph ); - BOOST_FILESYSTEM_DECL space_pair - space_api( const std::string & ph ); - BOOST_FILESYSTEM_DECL time_pair - last_write_time_api( const std::string & ph ); - BOOST_FILESYSTEM_DECL system::error_code - last_write_time_api( const std::string & ph, std::time_t new_value ); - BOOST_FILESYSTEM_DECL system::error_code - get_current_path_api( std::string & ph ); - BOOST_FILESYSTEM_DECL system::error_code - set_current_path_api( const std::string & ph ); - BOOST_FILESYSTEM_DECL query_pair - create_directory_api( const std::string & ph ); - BOOST_FILESYSTEM_DECL system::error_code - create_hard_link_api( const std::string & to_ph, - const std::string & from_ph ); - BOOST_FILESYSTEM_DECL system::error_code - create_symlink_api( const std::string & to_ph, - const std::string & from_ph ); - BOOST_FILESYSTEM_DECL system::error_code - remove_api( const std::string & ph ); - BOOST_FILESYSTEM_DECL system::error_code - rename_api( const std::string & from, const std::string & to ); - BOOST_FILESYSTEM_DECL system::error_code - copy_file_api( const std::string & from, const std::string & to ); - -# if defined(BOOST_WINDOWS_API) - - BOOST_FILESYSTEM_DECL system::error_code - get_full_path_name_api( const std::string & ph, std::string & target ); - -# if !defined(BOOST_FILESYSTEM_NARROW_ONLY) - - BOOST_FILESYSTEM_DECL boost::filesystem::file_status - status_api( const std::wstring & ph, system::error_code & ec ); - BOOST_FILESYSTEM_DECL query_pair - is_empty_api( const std::wstring & ph ); - BOOST_FILESYSTEM_DECL query_pair - equivalent_api( const std::wstring & ph1, const std::wstring & ph2 ); - BOOST_FILESYSTEM_DECL uintmax_pair - file_size_api( const std::wstring & ph ); - BOOST_FILESYSTEM_DECL space_pair - space_api( const std::wstring & ph ); - BOOST_FILESYSTEM_DECL system::error_code - get_full_path_name_api( const std::wstring & ph, std::wstring & target ); - BOOST_FILESYSTEM_DECL time_pair - last_write_time_api( const std::wstring & ph ); - BOOST_FILESYSTEM_DECL system::error_code - last_write_time_api( const std::wstring & ph, std::time_t new_value ); - BOOST_FILESYSTEM_DECL system::error_code - get_current_path_api( std::wstring & ph ); - BOOST_FILESYSTEM_DECL system::error_code - set_current_path_api( const std::wstring & ph ); - BOOST_FILESYSTEM_DECL query_pair - create_directory_api( const std::wstring & ph ); -# ifdef BOOST_FS_HARD_LINK - BOOST_FILESYSTEM_DECL system::error_code - create_hard_link_api( const std::wstring & existing_ph, - const std::wstring & new_ph ); -# endif - BOOST_FILESYSTEM_DECL system::error_code - create_symlink_api( const std::wstring & to_ph, - const std::wstring & from_ph ); - BOOST_FILESYSTEM_DECL system::error_code - remove_api( const std::wstring & ph ); - BOOST_FILESYSTEM_DECL system::error_code - rename_api( const std::wstring & from, const std::wstring & to ); - BOOST_FILESYSTEM_DECL system::error_code - copy_file_api( const std::wstring & from, const std::wstring & to ); - -# endif -# endif - - template - bool remove_aux( const Path & ph, file_status f ); - - template - unsigned long remove_all_aux( const Path & ph, file_status f ); - - } // namespace detail - -// operations functions ----------------------------------------------------// - - // The non-template overloads enable automatic conversion from std and - // C-style strings. See basic_path constructors. The enable_if for the - // templates implements the famous "do-the-right-thing" rule. - -// query functions ---------------------------------------------------------// - - BOOST_INLINE_FS_FUNC(file_status) - status( const Path & ph, system::error_code & ec ) - { return detail::status_api( ph.external_file_string(), ec ); } - - BOOST_FS_FUNC(file_status) - status( const Path & ph ) - { - system::error_code ec; - file_status result( detail::status_api( ph.external_file_string(), ec ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::status", ph, ec ) ); - return result; - } - - BOOST_INLINE_FS_FUNC(file_status) - symlink_status( const Path & ph, system::error_code & ec ) -# ifdef BOOST_WINDOWS_API - { return detail::status_api( ph.external_file_string(), ec ); } -# else - { return detail::symlink_status_api( ph.external_file_string(), ec ); } -# endif - - BOOST_FS_FUNC(file_status) - symlink_status( const Path & ph ) - { - system::error_code ec; - file_status result( symlink_status( ph, ec ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::symlink_status", ph, ec ) ); - return result; - } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - inline bool symbolic_link_exists( const path & ph ) - { return is_symlink( symlink_status(ph) ); } -# endif - - BOOST_FS_FUNC(bool) exists( const Path & ph ) - { - system::error_code ec; - file_status result( detail::status_api( ph.external_file_string(), ec ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::exists", ph, ec ) ); - return exists( result ); - } - - BOOST_FS_FUNC(bool) is_directory( const Path & ph ) - { - system::error_code ec; - file_status result( detail::status_api( ph.external_file_string(), ec ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::is_directory", ph, ec ) ); - return is_directory( result ); - } - - BOOST_FS_FUNC(bool) is_regular_file( const Path & ph ) - { - system::error_code ec; - file_status result( detail::status_api( ph.external_file_string(), ec ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::is_regular_file", ph, ec ) ); - return is_regular_file( result ); - } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - BOOST_FS_FUNC(bool) is_regular( const Path & ph ) - { - system::error_code ec; - file_status result( detail::status_api( ph.external_file_string(), ec ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::is_regular", ph, ec ) ); - return is_regular( result ); - } -# endif - - BOOST_FS_FUNC(bool) is_other( const Path & ph ) - { - system::error_code ec; - file_status result( detail::status_api( ph.external_file_string(), ec ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::is_other", ph, ec ) ); - return is_other( result ); - } - - BOOST_FS_FUNC(bool) is_symlink( -# ifdef BOOST_WINDOWS_API - const Path & ) - { - return false; -# else - const Path & ph) - { - system::error_code ec; - file_status result( detail::symlink_status_api( ph.external_file_string(), ec ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::is_symlink", ph, ec ) ); - return is_symlink( result ); -# endif - } - - // VC++ 7.0 and earlier has a serious namespace bug that causes a clash - // between boost::filesystem::is_empty and the unrelated type trait - // boost::is_empty. - -# if !defined( BOOST_MSVC ) || BOOST_MSVC > 1300 - BOOST_FS_FUNC(bool) is_empty( const Path & ph ) -# else - BOOST_FS_FUNC(bool) _is_empty( const Path & ph ) -# endif - { - detail::query_pair result( - detail::is_empty_api( ph.external_file_string() ) ); - if ( result.first ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::is_empty", ph, result.first ) ); - return result.second; - } - - BOOST_FS_FUNC(bool) equivalent( const Path & ph1, const Path & ph2 ) - { - detail::query_pair result( detail::equivalent_api( - ph1.external_file_string(), ph2.external_file_string() ) ); - if ( result.first ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::equivalent", ph1, ph2, result.first ) ); - return result.second; - } - - BOOST_FS_FUNC(boost::uintmax_t) file_size( const Path & ph ) - { - detail::uintmax_pair result - ( detail::file_size_api( ph.external_file_string() ) ); - if ( result.first ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::file_size", ph, result.first ) ); - return result.second; - } - - BOOST_FS_FUNC(space_info) space( const Path & ph ) - { - detail::space_pair result - ( detail::space_api( ph.external_file_string() ) ); - if ( result.first ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::space", ph, result.first ) ); - return result.second; - } - - BOOST_FS_FUNC(std::time_t) last_write_time( const Path & ph ) - { - detail::time_pair result - ( detail::last_write_time_api( ph.external_file_string() ) ); - if ( result.first ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::last_write_time", ph, result.first ) ); - return result.second; - } - - -// operations --------------------------------------------------------------// - - BOOST_FS_FUNC(bool) create_directory( const Path & dir_ph ) - { - detail::query_pair result( - detail::create_directory_api( dir_ph.external_directory_string() ) ); - if ( result.first ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::create_directory", - dir_ph, result.first ) ); - return result.second; - } - -#if !defined(BOOST_WINDOWS_API) || defined(BOOST_FS_HARD_LINK) - BOOST_FS_FUNC(void) - create_hard_link( const Path & to_ph, const Path & from_ph ) - { - system::error_code ec( - detail::create_hard_link_api( - to_ph.external_file_string(), - from_ph.external_file_string() ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::create_hard_link", - to_ph, from_ph, ec ) ); - } - - BOOST_FS_FUNC(system::error_code) - create_hard_link( const Path & to_ph, const Path & from_ph, - system::error_code & ec ) - { - ec = detail::create_hard_link_api( - to_ph.external_file_string(), - from_ph.external_file_string() ); - return ec; - } -#endif - - BOOST_FS_FUNC(void) - create_symlink( const Path & to_ph, const Path & from_ph ) - { - system::error_code ec( - detail::create_symlink_api( - to_ph.external_file_string(), - from_ph.external_file_string() ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::create_symlink", - to_ph, from_ph, ec ) ); - } - - BOOST_FS_FUNC(system::error_code) - create_symlink( const Path & to_ph, const Path & from_ph, - system::error_code & ec ) - { - ec = detail::create_symlink_api( - to_ph.external_file_string(), - from_ph.external_file_string() ); - return ec; - } - - BOOST_FS_FUNC(bool) remove( const Path & ph ) - { - system::error_code ec; - file_status f = symlink_status( ph, ec ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::remove", ph, ec ) ); - return detail::remove_aux( ph, f ); - } - - BOOST_FS_FUNC(unsigned long) remove_all( const Path & ph ) - { - system::error_code ec; - file_status f = symlink_status( ph, ec ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::remove_all", ph, ec ) ); - return exists( f ) ? detail::remove_all_aux( ph, f ) : 0; - } - - BOOST_FS_FUNC(void) rename( const Path & from_path, const Path & to_path ) - { - system::error_code ec( detail::rename_api( - from_path.external_directory_string(), - to_path.external_directory_string() ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::rename", - from_path, to_path, ec ) ); - } - - BOOST_FS_FUNC(void) copy_file( const Path & from_path, const Path & to_path ) - { - system::error_code ec( detail::copy_file_api( - from_path.external_directory_string(), - to_path.external_directory_string() ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::copy_file", - from_path, to_path, ec ) ); - } - - template< class Path > - Path current_path() - { - typename Path::external_string_type ph; - system::error_code ec( detail::get_current_path_api( ph ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::current_path", ec ) ); - return Path( Path::traits_type::to_internal( ph ) ); - } - - BOOST_FS_FUNC(void) current_path( const Path & ph ) - { - system::error_code ec( detail::set_current_path_api( - ph.external_directory_string() ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::current_path", ph, ec ) ); - } - - template< class Path > - const Path & initial_path() - { - static Path init_path; - if ( init_path.empty() ) init_path = current_path(); - return init_path; - } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - // legacy support - inline path current_path() // overload supports pre-i18n apps - { return current_path(); } - inline const path & initial_path() // overload supports pre-i18n apps - { return initial_path(); } -# endif - - BOOST_FS_FUNC(Path) system_complete( const Path & ph ) - { -# ifdef BOOST_WINDOWS_API - if ( ph.empty() ) return ph; - BOOST_FS_TYPENAME Path::external_string_type sys_ph; - system::error_code ec( detail::get_full_path_name_api( ph.external_file_string(), - sys_ph ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::system_complete", ph, ec ) ); - return Path( Path::traits_type::to_internal( sys_ph ) ); -# else - return (ph.empty() || ph.is_complete()) - ? ph : current_path() / ph; -# endif - } - - BOOST_FS_FUNC(Path) - complete( const Path & ph, - const Path & base/* = initial_path() */) - { - BOOST_ASSERT( base.is_complete() - && (ph.is_complete() || !ph.has_root_name()) - && "boost::filesystem::complete() precondition not met" ); -# ifdef BOOST_WINDOWS_PATH - if (ph.empty() || ph.is_complete()) return ph; - if ( !ph.has_root_name() ) - return ph.has_root_directory() - ? Path( base.root_name() ) / ph - : base / ph; - return base / ph; -# else - return (ph.empty() || ph.is_complete()) ? ph : base / ph; -# endif - } - - // VC++ 7.1 had trouble with default arguments, so separate one argument - // signatures are provided as workarounds; the effect is the same. - BOOST_FS_FUNC(Path) complete( const Path & ph ) - { return complete( ph, initial_path() ); } - - BOOST_FS_FUNC(void) - last_write_time( const Path & ph, const std::time_t new_time ) - { - system::error_code ec( detail::last_write_time_api( ph.external_file_string(), - new_time ) ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::last_write_time", ph, ec ) ); - } - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - - // "do-the-right-thing" overloads ---------------------------------------// - - inline file_status status( const path & ph ) - { return status( ph ); } - inline file_status status( const wpath & ph ) - { return status( ph ); } - - inline file_status status( const path & ph, system::error_code & ec ) - { return status( ph, ec ); } - inline file_status status( const wpath & ph, system::error_code & ec ) - { return status( ph, ec ); } - - inline file_status symlink_status( const path & ph ) - { return symlink_status( ph ); } - inline file_status symlink_status( const wpath & ph ) - { return symlink_status( ph ); } - - inline file_status symlink_status( const path & ph, system::error_code & ec ) - { return symlink_status( ph, ec ); } - inline file_status symlink_status( const wpath & ph, system::error_code & ec ) - { return symlink_status( ph, ec ); } - - inline bool exists( const path & ph ) { return exists( ph ); } - inline bool exists( const wpath & ph ) { return exists( ph ); } - - inline bool is_directory( const path & ph ) - { return is_directory( ph ); } - inline bool is_directory( const wpath & ph ) - { return is_directory( ph ); } - - inline bool is_regular_file( const path & ph ) - { return is_regular_file( ph ); } - inline bool is_regular_file( const wpath & ph ) - { return is_regular_file( ph ); } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - inline bool is_regular( const path & ph ) - { return is_regular( ph ); } - inline bool is_regular( const wpath & ph ) - { return is_regular( ph ); } -# endif - - inline bool is_other( const path & ph ) - { return is_other( ph ); } - inline bool is_other( const wpath & ph ) - { return is_other( ph ); } - - inline bool is_symlink( const path & ph ) - { return is_symlink( ph ); } - inline bool is_symlink( const wpath & ph ) - { return is_symlink( ph ); } - - inline bool is_empty( const path & ph ) - { return is_empty( ph ); } - inline bool is_empty( const wpath & ph ) - { return is_empty( ph ); } - - inline bool equivalent( const path & ph1, const path & ph2 ) - { return equivalent( ph1, ph2 ); } - inline bool equivalent( const wpath & ph1, const wpath & ph2 ) - { return equivalent( ph1, ph2 ); } - - inline boost::uintmax_t file_size( const path & ph ) - { return file_size( ph ); } - inline boost::uintmax_t file_size( const wpath & ph ) - { return file_size( ph ); } - - inline space_info space( const path & ph ) - { return space( ph ); } - inline space_info space( const wpath & ph ) - { return space( ph ); } - - inline std::time_t last_write_time( const path & ph ) - { return last_write_time( ph ); } - inline std::time_t last_write_time( const wpath & ph ) - { return last_write_time( ph ); } - - inline bool create_directory( const path & dir_ph ) - { return create_directory( dir_ph ); } - inline bool create_directory( const wpath & dir_ph ) - { return create_directory( dir_ph ); } - -#if !defined(BOOST_WINDOWS_API) || defined(BOOST_FS_HARD_LINK) - inline void create_hard_link( const path & to_ph, - const path & from_ph ) - { return create_hard_link( to_ph, from_ph ); } - inline void create_hard_link( const wpath & to_ph, - const wpath & from_ph ) - { return create_hard_link( to_ph, from_ph ); } - - inline system::error_code create_hard_link( const path & to_ph, - const path & from_ph, system::error_code & ec ) - { return create_hard_link( to_ph, from_ph, ec ); } - inline system::error_code create_hard_link( const wpath & to_ph, - const wpath & from_ph, system::error_code & ec ) - { return create_hard_link( to_ph, from_ph, ec ); } -#endif - - inline void create_symlink( const path & to_ph, - const path & from_ph ) - { return create_symlink( to_ph, from_ph ); } - inline void create_symlink( const wpath & to_ph, - const wpath & from_ph ) - { return create_symlink( to_ph, from_ph ); } - - inline system::error_code create_symlink( const path & to_ph, - const path & from_ph, system::error_code & ec ) - { return create_symlink( to_ph, from_ph, ec ); } - inline system::error_code create_symlink( const wpath & to_ph, - const wpath & from_ph, system::error_code & ec ) - { return create_symlink( to_ph, from_ph, ec ); } - - inline bool remove( const path & ph ) - { return remove( ph ); } - inline bool remove( const wpath & ph ) - { return remove( ph ); } - - inline unsigned long remove_all( const path & ph ) - { return remove_all( ph ); } - inline unsigned long remove_all( const wpath & ph ) - { return remove_all( ph ); } - - inline void rename( const path & from_path, const path & to_path ) - { return rename( from_path, to_path ); } - inline void rename( const wpath & from_path, const wpath & to_path ) - { return rename( from_path, to_path ); } - - inline void copy_file( const path & from_path, const path & to_path ) - { return copy_file( from_path, to_path ); } - inline void copy_file( const wpath & from_path, const wpath & to_path ) - { return copy_file( from_path, to_path ); } - - inline path system_complete( const path & ph ) - { return system_complete( ph ); } - inline wpath system_complete( const wpath & ph ) - { return system_complete( ph ); } - - inline path complete( const path & ph, - const path & base/* = initial_path()*/ ) - { return complete( ph, base ); } - inline wpath complete( const wpath & ph, - const wpath & base/* = initial_path()*/ ) - { return complete( ph, base ); } - - inline path complete( const path & ph ) - { return complete( ph, initial_path() ); } - inline wpath complete( const wpath & ph ) - { return complete( ph, initial_path() ); } - - inline void last_write_time( const path & ph, const std::time_t new_time ) - { last_write_time( ph, new_time ); } - inline void last_write_time( const wpath & ph, const std::time_t new_time ) - { last_write_time( ph, new_time ); } - - inline void current_path( const path & ph ) - { current_path( ph ); } - inline void current_path( const wpath & ph ) - { current_path( ph ); } - -# endif // ifndef BOOST_FILESYSTEM_NARROW_ONLY - - namespace detail - { - template - bool remove_aux( const Path & ph, file_status f ) - { - if ( exists( f ) ) - { - system::error_code ec = remove_api( ph.external_file_string() ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::remove", ph, ec ) ); - return true; - } - return false; - } - - template - unsigned long remove_all_aux( const Path & ph, file_status f ) - { - static const boost::filesystem::basic_directory_iterator end_itr; - unsigned long count = 1; - if ( !boost::filesystem::is_symlink( f ) // don't recurse symbolic links - && boost::filesystem::is_directory( f ) ) - { - for ( boost::filesystem::basic_directory_iterator itr( ph ); - itr != end_itr; ++itr ) - { - boost::system::error_code ec; - boost::filesystem::file_status fn = boost::filesystem::symlink_status( itr->path(), ec ); - if ( ec ) - boost::throw_exception( basic_filesystem_error( - "boost::filesystem:remove_all", ph, ec ) ); - count += remove_all_aux( itr->path(), fn ); - } - } - remove_aux( ph, f ); - return count; - } - -// test helper -------------------------------------------------------------// - - // not part of the documented interface because false positives are possible; - // there is no law that says that an OS that has large stat.st_size - // actually supports large file sizes. - BOOST_FILESYSTEM_DECL bool possible_large_file_size_support(); - -// directory_iterator helpers ----------------------------------------------// - -// forwarding functions avoid need for BOOST_FILESYSTEM_DECL for class -// basic_directory_iterator, and so avoid iterator_facade DLL template -// problems. They also overload to the proper external path character type. - - BOOST_FILESYSTEM_DECL system::error_code - dir_itr_first( void *& handle, -#if defined(BOOST_POSIX_API) - void *& buffer, -#endif - const std::string & dir_path, - std::string & target, file_status & fs, file_status & symlink_fs ); - // eof: return==0 && handle==0 - - BOOST_FILESYSTEM_DECL system::error_code - dir_itr_increment( void *& handle, -#if defined(BOOST_POSIX_API) - void *& buffer, -#endif - std::string & target, file_status & fs, file_status & symlink_fs ); - // eof: return==0 && handle==0 - - BOOST_FILESYSTEM_DECL system::error_code - dir_itr_close( void *& handle -#if defined(BOOST_POSIX_API) - , void *& buffer -#endif - ); - // Effects: none if handle==0, otherwise close handle, set handle=0 - -# if defined(BOOST_WINDOWS_API) && !defined(BOOST_FILESYSTEM_NARROW_ONLY) - BOOST_FILESYSTEM_DECL system::error_code - dir_itr_first( void *& handle, const std::wstring & ph, - std::wstring & target, file_status & fs, file_status & symlink_fs ); - BOOST_FILESYSTEM_DECL system::error_code - dir_itr_increment( void *& handle, std::wstring & target, - file_status & fs, file_status & symlink_fs ); -# endif - - template< class Path > - class dir_itr_imp - { - public: - basic_directory_entry m_directory_entry; - void * m_handle; -# ifdef BOOST_POSIX_API - void * m_buffer; // see dir_itr_increment implementation -# endif - dir_itr_imp() : m_handle(0) -# ifdef BOOST_POSIX_API - , m_buffer(0) -# endif - {} - - ~dir_itr_imp() { dir_itr_close( m_handle -#if defined(BOOST_POSIX_API) - , m_buffer -#endif - ); } - }; - - BOOST_FILESYSTEM_DECL system::error_code not_found_error(); - - } // namespace detail - -// basic_directory_iterator ------------------------------------------------// - - template< class Path > - class basic_directory_iterator - : public boost::iterator_facade< - basic_directory_iterator, - basic_directory_entry, - boost::single_pass_traversal_tag > - { - public: - typedef Path path_type; - - basic_directory_iterator(){} // creates the "end" iterator - - explicit basic_directory_iterator( const Path & dir_path ); - basic_directory_iterator( const Path & dir_path, system::error_code & ec ); - - private: - - // shared_ptr provides shallow-copy semantics required for InputIterators. - // m_imp.get()==0 indicates the end iterator. - boost::shared_ptr< detail::dir_itr_imp< Path > > m_imp; - - friend class boost::iterator_core_access; - - typename boost::iterator_facade< - basic_directory_iterator, - basic_directory_entry, - boost::single_pass_traversal_tag >::reference dereference() const - { - BOOST_ASSERT( m_imp.get() && "attempt to dereference end iterator" ); - return m_imp->m_directory_entry; - } - - void increment(); - - bool equal( const basic_directory_iterator & rhs ) const - { return m_imp == rhs.m_imp; } - - system::error_code m_init( const Path & dir_path ); - }; - - typedef basic_directory_iterator< path > directory_iterator; -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - typedef basic_directory_iterator< wpath > wdirectory_iterator; -# endif - - // basic_directory_iterator implementation ---------------------------// - - template - system::error_code basic_directory_iterator::m_init( - const Path & dir_path ) - { - if ( dir_path.empty() ) - { - m_imp.reset(); - return detail::not_found_error(); - } - typename Path::external_string_type name; - file_status fs, symlink_fs; - system::error_code ec( detail::dir_itr_first( m_imp->m_handle, -#if defined(BOOST_POSIX_API) - m_imp->m_buffer, -#endif - dir_path.external_directory_string(), - name, fs, symlink_fs ) ); - - if ( ec ) - { - m_imp.reset(); - return ec; - } - - if ( m_imp->m_handle == 0 ) m_imp.reset(); // eof, so make end iterator - else // not eof - { - m_imp->m_directory_entry.assign( dir_path - / Path::traits_type::to_internal( name ), fs, symlink_fs ); - if ( name[0] == dot::value // dot or dot-dot - && (name.size() == 1 - || (name[1] == dot::value - && name.size() == 2)) ) - { increment(); } - } - return boost::system::error_code(); - } - - template - basic_directory_iterator::basic_directory_iterator( - const Path & dir_path ) - : m_imp( new detail::dir_itr_imp ) - { - system::error_code ec( m_init(dir_path) ); - if ( ec ) - { - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::basic_directory_iterator constructor", - dir_path, ec ) ); - } - } - - template - basic_directory_iterator::basic_directory_iterator( - const Path & dir_path, system::error_code & ec ) - : m_imp( new detail::dir_itr_imp ) - { - ec = m_init(dir_path); - } - - template - void basic_directory_iterator::increment() - { - BOOST_ASSERT( m_imp.get() && "attempt to increment end iterator" ); - BOOST_ASSERT( m_imp->m_handle != 0 && "internal program error" ); - - typename Path::external_string_type name; - file_status fs, symlink_fs; - system::error_code ec; - - for (;;) - { - ec = detail::dir_itr_increment( m_imp->m_handle, -#if defined(BOOST_POSIX_API) - m_imp->m_buffer, -#endif - name, fs, symlink_fs ); - if ( ec ) - { - boost::throw_exception( basic_filesystem_error( - "boost::filesystem::basic_directory_iterator increment", - m_imp->m_directory_entry.path().parent_path(), ec ) ); - } - if ( m_imp->m_handle == 0 ) { m_imp.reset(); return; } // eof, make end - if ( !(name[0] == dot::value // !(dot or dot-dot) - && (name.size() == 1 - || (name[1] == dot::value - && name.size() == 2))) ) - { - m_imp->m_directory_entry.replace_filename( - Path::traits_type::to_internal( name ), fs, symlink_fs ); - return; - } - } - } - - // basic_directory_entry -----------------------------------------------// - - template - class basic_directory_entry - { - public: - typedef Path path_type; - typedef typename Path::string_type string_type; - - // compiler generated copy-ctor, copy assignment, and destructor apply - - basic_directory_entry() {} - explicit basic_directory_entry( const path_type & p, - file_status st = file_status(), file_status symlink_st=file_status() ) - : m_path(p), m_status(st), m_symlink_status(symlink_st) - {} - - void assign( const path_type & p, - file_status st, file_status symlink_st ) - { m_path = p; m_status = st; m_symlink_status = symlink_st; } - - void replace_filename( const string_type & s, - file_status st, file_status symlink_st ) - { - m_path.remove_filename(); - m_path /= s; - m_status = st; - m_symlink_status = symlink_st; - } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - void replace_leaf( const string_type & s, - file_status st, file_status symlink_st ) - { replace_filename( s, st, symlink_st ); } -# endif - - const Path & path() const { return m_path; } - file_status status() const; - file_status status( system::error_code & ec ) const; - file_status symlink_status() const; - file_status symlink_status( system::error_code & ec ) const; - - // conversion simplifies the most common use of basic_directory_entry - operator const path_type &() const { return m_path; } - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - // deprecated functions preserve common use cases in legacy code - typename Path::string_type filename() const - { - return path().filename(); - } - typename Path::string_type leaf() const - { - return path().filename(); - } - typename Path::string_type string() const - { - return path().string(); - } -# endif - - private: - path_type m_path; - mutable file_status m_status; // stat()-like - mutable file_status m_symlink_status; // lstat()-like - // note: m_symlink_status is not used by Windows implementation - - }; // basic_directory_status - - typedef basic_directory_entry directory_entry; -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - typedef basic_directory_entry wdirectory_entry; -# endif - - // basic_directory_entry implementation --------------------------------// - - template - file_status - basic_directory_entry::status() const - { - if ( !status_known( m_status ) ) - { -# ifndef BOOST_WINDOWS_API - if ( status_known( m_symlink_status ) - && !is_symlink( m_symlink_status ) ) - { m_status = m_symlink_status; } - else { m_status = boost::filesystem::status( m_path ); } -# else - m_status = boost::filesystem::status( m_path ); -# endif - } - return m_status; - } - - template - file_status - basic_directory_entry::status( system::error_code & ec ) const - { - if ( !status_known( m_status ) ) - { -# ifndef BOOST_WINDOWS_API - if ( status_known( m_symlink_status ) - && !is_symlink( m_symlink_status ) ) - { ec = boost::system::error_code();; m_status = m_symlink_status; } - else { m_status = boost::filesystem::status( m_path, ec ); } -# else - m_status = boost::filesystem::status( m_path, ec ); -# endif - } - else ec = boost::system::error_code();; - return m_status; - } - - template - file_status - basic_directory_entry::symlink_status() const - { -# ifndef BOOST_WINDOWS_API - if ( !status_known( m_symlink_status ) ) - { m_symlink_status = boost::filesystem::symlink_status( m_path ); } - return m_symlink_status; -# else - return status(); -# endif - } - - template - file_status - basic_directory_entry::symlink_status( system::error_code & ec ) const - { -# ifndef BOOST_WINDOWS_API - if ( !status_known( m_symlink_status ) ) - { m_symlink_status = boost::filesystem::symlink_status( m_path, ec ); } - else ec = boost::system::error_code();; - return m_symlink_status; -# else - return status( ec ); -# endif - } - } // namespace filesystem -} // namespace boost - -#undef BOOST_FS_FUNC - - -#include // pops abi_prefix.hpp pragmas -#endif // BOOST_FILESYSTEM_OPERATIONS_HPP diff --git a/3rdParty/Boost/boost/filesystem/path.hpp b/3rdParty/Boost/boost/filesystem/path.hpp deleted file mode 100644 index bfb1aab..0000000 --- a/3rdParty/Boost/boost/filesystem/path.hpp +++ /dev/null @@ -1,1507 +0,0 @@ -// boost/filesystem/path.hpp -----------------------------------------------// - -// Copyright Beman Dawes 2002-2005 -// Copyright Vladimir Prus 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 library home page at http://www.boost.org/libs/filesystem - -// basic_path's stem(), extension(), and replace_extension() are based on -// basename(), extension(), and change_extension() from the original -// filesystem/convenience.hpp header by Vladimir Prus. - -//----------------------------------------------------------------------------// - -#ifndef BOOST_FILESYSTEM_PATH_HPP -#define BOOST_FILESYSTEM_PATH_HPP - -#include -#include -#include -#include -#include -#include -#include - -#include -#include // for lexicographical_compare -#include // needed by basic_path inserter and extractor -#include -#include - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY -# include -# endif - -#include // must be the last #include - -//----------------------------------------------------------------------------// - -namespace boost -{ - namespace BOOST_FILESYSTEM_NAMESPACE - { - template class basic_path; - - struct path_traits; - typedef basic_path< std::string, path_traits > path; - - struct path_traits - { - typedef std::string internal_string_type; - typedef std::string external_string_type; - static external_string_type to_external( const path &, - const internal_string_type & src ) { return src; } - static internal_string_type to_internal( - const external_string_type & src ) { return src; } - }; - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - - struct BOOST_FILESYSTEM_DECL wpath_traits; - - typedef basic_path< std::wstring, wpath_traits > wpath; - - struct BOOST_FILESYSTEM_DECL wpath_traits - { - typedef std::wstring internal_string_type; -# ifdef BOOST_WINDOWS_API - typedef std::wstring external_string_type; - static external_string_type to_external( const wpath &, - const internal_string_type & src ) { return src; } - static internal_string_type to_internal( - const external_string_type & src ) { return src; } -# else - typedef std::string external_string_type; - static external_string_type to_external( const wpath & ph, - const internal_string_type & src ); - static internal_string_type to_internal( - const external_string_type & src ); -# endif - static void imbue( const std::locale & loc ); - static bool imbue( const std::locale & loc, const std::nothrow_t & ); - }; - -# endif // ifndef BOOST_FILESYSTEM_NARROW_ONLY - - // path traits ---------------------------------------------------------// - - template struct is_basic_path - { BOOST_STATIC_CONSTANT( bool, value = false ); }; - template<> struct is_basic_path - { BOOST_STATIC_CONSTANT( bool, value = true ); }; -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - template<> struct is_basic_path - { BOOST_STATIC_CONSTANT( bool, value = true ); }; -# endif - - // These only have to be specialized if Path::string_type::value_type - // is not convertible from char, although specializations may eliminate - // compiler warnings. See ticket 2543. - template struct slash - { BOOST_STATIC_CONSTANT( char, value = '/' ); }; - - template struct dot - { BOOST_STATIC_CONSTANT( char, value = '.' ); }; - - template struct colon - { BOOST_STATIC_CONSTANT( char, value = ':' ); }; - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - template<> struct slash - { BOOST_STATIC_CONSTANT( wchar_t, value = L'/' ); }; - template<> struct dot - { BOOST_STATIC_CONSTANT( wchar_t, value = L'.' ); }; - template<> struct colon - { BOOST_STATIC_CONSTANT( wchar_t, value = L':' ); }; -# endif - -# ifdef BOOST_WINDOWS_PATH - template struct path_alt_separator - { BOOST_STATIC_CONSTANT( char, value = '\\' ); }; -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - template<> struct path_alt_separator - { BOOST_STATIC_CONSTANT( wchar_t, value = L'\\' ); }; -# endif -# endif - - // workaround for VC++ 7.0 and earlier issues with nested classes - namespace detail - { - template - class iterator_helper - { - public: - typedef typename Path::iterator iterator; - static void do_increment( iterator & ph ); - static void do_decrement( iterator & ph ); - }; - } - - // basic_path ----------------------------------------------------------// - - template - class basic_path - { - // invariant: m_path valid according to the portable generic path grammar - - // validate template arguments -// TODO: get these working -// BOOST_STATIC_ASSERT( ::boost::is_same::value ); -// BOOST_STATIC_ASSERT( ::boost::is_same::value || ::boost::is_same::value ); - - public: - // compiler generates copy constructor and copy assignment - - typedef basic_path path_type; - typedef String string_type; - typedef typename String::value_type value_type; - typedef Traits traits_type; - typedef typename Traits::external_string_type external_string_type; - - // constructors/destructor - basic_path() {} - basic_path( const string_type & s ) { operator/=( s ); } - basic_path( const value_type * s ) { operator/=( s ); } -# ifndef BOOST_NO_MEMBER_TEMPLATES - template - basic_path( InputIterator first, InputIterator last ) - { append( first, last ); } -# endif - ~basic_path() {} - - // assignments - basic_path & operator=( const string_type & s ) - { -# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, >= 310) - m_path.clear(); -# else - m_path.erase( m_path.begin(), m_path.end() ); -# endif - operator/=( s ); - return *this; - } - basic_path & operator=( const value_type * s ) - { -# if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, >= 310) - m_path.clear(); -# else - m_path.erase( m_path.begin(), m_path.end() ); -# endif - operator/=( s ); - return *this; - } -# ifndef BOOST_NO_MEMBER_TEMPLATES - template - basic_path & assign( InputIterator first, InputIterator last ) - { m_path.clear(); append( first, last ); return *this; } -# endif - - // modifiers - basic_path & operator/=( const basic_path & rhs ) { return operator /=( rhs.string().c_str() ); } - basic_path & operator/=( const string_type & rhs ) { return operator /=( rhs.c_str() ); } - basic_path & operator/=( const value_type * s ); -# ifndef BOOST_NO_MEMBER_TEMPLATES - template - basic_path & append( InputIterator first, InputIterator last ); -# endif - - void swap( basic_path & rhs ) - { - m_path.swap( rhs.m_path ); -# ifdef BOOST_CYGWIN_PATH - std::swap( m_cygwin_root, rhs.m_cygwin_root ); -# endif - } - - basic_path & remove_filename(); - basic_path & replace_extension( const string_type & new_extension = string_type() ); - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - basic_path & remove_leaf() { return remove_filename(); } -# endif - - // observers - const string_type & string() const { return m_path; } - const string_type file_string() const; - const string_type directory_string() const { return file_string(); } - - const external_string_type external_file_string() const { return Traits::to_external( *this, file_string() ); } - const external_string_type external_directory_string() const { return Traits::to_external( *this, directory_string() ); } - - basic_path root_path() const; - string_type root_name() const; - string_type root_directory() const; - basic_path relative_path() const; - basic_path parent_path() const; - string_type filename() const; - string_type stem() const; - string_type extension() const; - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - string_type leaf() const { return filename(); } - basic_path branch_path() const { return parent_path(); } - bool has_leaf() const { return !m_path.empty(); } - bool has_branch_path() const { return !parent_path().empty(); } -# endif - - bool empty() const { return m_path.empty(); } // name consistent with std containers - bool is_complete() const; - bool has_root_path() const; - bool has_root_name() const; - bool has_root_directory() const; - bool has_relative_path() const { return !relative_path().empty(); } - bool has_filename() const { return !m_path.empty(); } - bool has_parent_path() const { return !parent_path().empty(); } - - // iterators - class iterator : public boost::iterator_facade< - iterator, - string_type const, - boost::bidirectional_traversal_tag > - { - private: - friend class boost::iterator_core_access; - friend class boost::BOOST_FILESYSTEM_NAMESPACE::basic_path; - - const string_type & dereference() const - { return m_name; } - bool equal( const iterator & rhs ) const - { return m_path_ptr == rhs.m_path_ptr && m_pos == rhs.m_pos; } - - friend class boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper; - - void increment() - { - boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper::do_increment( - *this ); - } - void decrement() - { - boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper::do_decrement( - *this ); - } - - string_type m_name; // current element - const basic_path * m_path_ptr; // path being iterated over - typename string_type::size_type m_pos; // position of name in - // path_ptr->string(). The - // end() iterator is indicated by - // pos == path_ptr->m_path.size() - }; // iterator - - typedef iterator const_iterator; - - iterator begin() const; - iterator end() const; - - private: - // Note: This is an implementation for POSIX and Windows, where there - // are only minor differences between generic and native path grammars. - // Private members might be quite different in other implementations, - // particularly where there were wide differences between portable and - // native path formats, or between file_string() and - // directory_string() formats, or simply that the implementation - // was willing expend additional memory to achieve greater speed for - // some operations at the expense of other operations. - - string_type m_path; // invariant: portable path grammar - // on Windows, backslashes converted to slashes - -# ifdef BOOST_CYGWIN_PATH - bool m_cygwin_root; // if present, m_path[0] was slash. note: initialization - // done by append -# endif - - void m_append_separator_if_needed(); - void m_append( value_type value ); // converts Windows alt_separator - - // Was qualified; como433beta8 reports: - // warning #427-D: qualified name is not allowed in member declaration - friend class iterator; - friend class boost::BOOST_FILESYSTEM_NAMESPACE::detail::iterator_helper; - - // Deprecated features ease transition for existing code. Don't use these - // in new code. -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - public: - typedef bool (*name_check)( const std::string & name ); - basic_path( const string_type & str, name_check ) { operator/=( str ); } - basic_path( const typename string_type::value_type * s, name_check ) - { operator/=( s );} - string_type native_file_string() const { return file_string(); } - string_type native_directory_string() const { return directory_string(); } - static bool default_name_check_writable() { return false; } - static void default_name_check( name_check ) {} - static name_check default_name_check() { return 0; } - basic_path & canonize(); - basic_path & normalize(); -# endif - }; - - // basic_path non-member functions ---------------------------------------// - - template< class String, class Traits > - inline void swap( basic_path & lhs, - basic_path & rhs ) { lhs.swap( rhs ); } - - template< class String, class Traits > - bool operator<( const basic_path & lhs, const basic_path & rhs ) - { - return std::lexicographical_compare( - lhs.begin(), lhs.end(), rhs.begin(), rhs.end() ); - } - - template< class String, class Traits > - bool operator<( const typename basic_path::string_type::value_type * lhs, - const basic_path & rhs ) - { - basic_path tmp( lhs ); - return std::lexicographical_compare( - tmp.begin(), tmp.end(), rhs.begin(), rhs.end() ); - } - - template< class String, class Traits > - bool operator<( const typename basic_path::string_type & lhs, - const basic_path & rhs ) - { - basic_path tmp( lhs ); - return std::lexicographical_compare( - tmp.begin(), tmp.end(), rhs.begin(), rhs.end() ); - } - - template< class String, class Traits > - bool operator<( const basic_path & lhs, - const typename basic_path::string_type::value_type * rhs ) - { - basic_path tmp( rhs ); - return std::lexicographical_compare( - lhs.begin(), lhs.end(), tmp.begin(), tmp.end() ); - } - - template< class String, class Traits > - bool operator<( const basic_path & lhs, - const typename basic_path::string_type & rhs ) - { - basic_path tmp( rhs ); - return std::lexicographical_compare( - lhs.begin(), lhs.end(), tmp.begin(), tmp.end() ); - } - - // operator == uses string compare rather than !(lhs < rhs) && !(rhs < lhs) because - // the result is the same yet the direct string compare is much more efficient that - // lexicographical_compare, and lexicographical_compare used twice at that. - - template< class String, class Traits > - inline bool operator==( const basic_path & lhs, const basic_path & rhs ) - { - return lhs.string() == rhs.string(); - } - - template< class String, class Traits > - inline bool operator==( const typename basic_path::string_type::value_type * lhs, - const basic_path & rhs ) - { - return lhs == rhs.string(); - } - - template< class String, class Traits > - inline bool operator==( const typename basic_path::string_type & lhs, - const basic_path & rhs ) - { - return lhs == rhs.string(); - } - - template< class String, class Traits > - inline bool operator==( const basic_path & lhs, - const typename basic_path::string_type::value_type * rhs ) - { - return lhs.string() == rhs; - } - - template< class String, class Traits > - inline bool operator==( const basic_path & lhs, - const typename basic_path::string_type & rhs ) - { - return lhs.string() == rhs; - } - - template< class String, class Traits > - inline bool operator!=( const basic_path & lhs, - const basic_path & rhs ) - { return !(lhs == rhs); } - - template< class String, class Traits > - inline bool operator!=( const typename basic_path::string_type::value_type * lhs, - const basic_path & rhs ) - { return !(lhs == rhs); } - - template< class String, class Traits > - inline bool operator!=( const typename basic_path::string_type & lhs, - const basic_path & rhs ) - { return !(lhs == rhs); } - - template< class String, class Traits > - inline bool operator!=( const basic_path & lhs, - const typename basic_path::string_type::value_type * rhs ) - { return !(lhs == rhs); } - - template< class String, class Traits > - inline bool operator!=( const basic_path & lhs, - const typename basic_path::string_type & rhs ) - { return !(lhs == rhs); } - - template< class String, class Traits > - inline bool operator>( const basic_path & lhs, const basic_path & rhs ) { return rhs < lhs; } - - template< class String, class Traits > - inline bool operator>( const typename basic_path::string_type::value_type * lhs, - const basic_path & rhs ) { return rhs < basic_path(lhs); } - - template< class String, class Traits > - inline bool operator>( const typename basic_path::string_type & lhs, - const basic_path & rhs ) { return rhs < basic_path(lhs); } - - template< class String, class Traits > - inline bool operator>( const basic_path & lhs, - const typename basic_path::string_type::value_type * rhs ) - { return basic_path(rhs) < lhs; } - - template< class String, class Traits > - inline bool operator>( const basic_path & lhs, - const typename basic_path::string_type & rhs ) - { return basic_path(rhs) < lhs; } - - template< class String, class Traits > - inline bool operator<=( const basic_path & lhs, const basic_path & rhs ) { return !(rhs < lhs); } - - template< class String, class Traits > - inline bool operator<=( const typename basic_path::string_type::value_type * lhs, - const basic_path & rhs ) { return !(rhs < basic_path(lhs)); } - - template< class String, class Traits > - inline bool operator<=( const typename basic_path::string_type & lhs, - const basic_path & rhs ) { return !(rhs < basic_path(lhs)); } - - template< class String, class Traits > - inline bool operator<=( const basic_path & lhs, - const typename basic_path::string_type::value_type * rhs ) - { return !(basic_path(rhs) < lhs); } - - template< class String, class Traits > - inline bool operator<=( const basic_path & lhs, - const typename basic_path::string_type & rhs ) - { return !(basic_path(rhs) < lhs); } - - template< class String, class Traits > - inline bool operator>=( const basic_path & lhs, const basic_path & rhs ) { return !(lhs < rhs); } - - template< class String, class Traits > - inline bool operator>=( const typename basic_path::string_type::value_type * lhs, - const basic_path & rhs ) { return !(lhs < basic_path(rhs)); } - - template< class String, class Traits > - inline bool operator>=( const typename basic_path::string_type & lhs, - const basic_path & rhs ) { return !(lhs < basic_path(rhs)); } - - template< class String, class Traits > - inline bool operator>=( const basic_path & lhs, - const typename basic_path::string_type::value_type * rhs ) - { return !(basic_path(lhs) < rhs); } - - template< class String, class Traits > - inline bool operator>=( const basic_path & lhs, - const typename basic_path::string_type & rhs ) - { return !(basic_path(lhs) < rhs); } - - // operator / - - template< class String, class Traits > - inline basic_path operator/( - const basic_path & lhs, - const basic_path & rhs ) - { return basic_path( lhs ) /= rhs; } - - template< class String, class Traits > - inline basic_path operator/( - const basic_path & lhs, - const typename String::value_type * rhs ) - { return basic_path( lhs ) /= - basic_path( rhs ); } - - template< class String, class Traits > - inline basic_path operator/( - const basic_path & lhs, const String & rhs ) - { return basic_path( lhs ) /= - basic_path( rhs ); } - - template< class String, class Traits > - inline basic_path operator/( - const typename String::value_type * lhs, - const basic_path & rhs ) - { return basic_path( lhs ) /= rhs; } - - template< class String, class Traits > - inline basic_path operator/( - const String & lhs, const basic_path & rhs ) - { return basic_path( lhs ) /= rhs; } - - // inserters and extractors --------------------------------------------// - -// bypass VC++ 7.0 and earlier, and broken Borland compilers -# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) && !BOOST_WORKAROUND(__BORLANDC__, < 0x610) - template< class Path > - std::basic_ostream< typename Path::string_type::value_type, - typename Path::string_type::traits_type > & - operator<< - ( std::basic_ostream< typename Path::string_type::value_type, - typename Path::string_type::traits_type >& os, const Path & ph ) - { - os << ph.string(); - return os; - } - - template< class Path > - std::basic_istream< typename Path::string_type::value_type, - typename Path::string_type::traits_type > & - operator>> - ( std::basic_istream< typename Path::string_type::value_type, - typename Path::string_type::traits_type >& is, Path & ph ) - { - typename Path::string_type str; - is >> str; - ph = str; - return is; - } -# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - template< class String, class Traits > - std::basic_ostream< BOOST_DEDUCED_TYPENAME String::value_type, - BOOST_DEDUCED_TYPENAME String::traits_type > & - operator<< - ( std::basic_ostream< BOOST_DEDUCED_TYPENAME String::value_type, - BOOST_DEDUCED_TYPENAME String::traits_type >& os, - const basic_path< String, Traits > & ph ) - { - os << ph.string(); - return os; - } - - template< class String, class Traits > - std::basic_istream< BOOST_DEDUCED_TYPENAME String::value_type, - BOOST_DEDUCED_TYPENAME String::traits_type > & - operator>> - ( std::basic_istream< BOOST_DEDUCED_TYPENAME String::value_type, - BOOST_DEDUCED_TYPENAME String::traits_type> & is, - basic_path< String, Traits > & ph ) - { - String str; - is >> str; - ph = str; - return is; - } -# endif - - // basic_filesystem_error helpers --------------------------------------// - - // Originally choice of implementation was done via specialization of - // basic_filesystem_error::what(). Several compilers (GCC, aCC, etc.) - // couldn't handle that, so the choice is now accomplished by overloading. - - namespace detail - { - // BOOST_FILESYSTEM_DECL version works for VC++ but not GCC. Go figure! - inline - const char * what( const char * sys_err_what, - const path & path1_arg, const path & path2_arg, std::string & target ) - { - try - { - if ( target.empty() ) - { - target = sys_err_what; - if ( !path1_arg.empty() ) - { - target += ": \""; - target += path1_arg.file_string(); - target += "\""; - } - if ( !path2_arg.empty() ) - { - target += ", \""; - target += path2_arg.file_string(); - target += "\""; - } - } - return target.c_str(); - } - catch (...) - { - return sys_err_what; - } - } - - template - const char * what( const char * sys_err_what, - const Path & /*path1_arg*/, const Path & /*path2_arg*/, std::string & /*target*/ ) - { - return sys_err_what; - } - } - - // basic_filesystem_error ----------------------------------------------// - - template - class basic_filesystem_error : public system::system_error - { - // see http://www.boost.org/more/error_handling.html for design rationale - public: - // compiler generates copy constructor and copy assignment - - typedef Path path_type; - - basic_filesystem_error( const std::string & what_arg, - system::error_code ec ); - - basic_filesystem_error( const std::string & what_arg, - const path_type & path1_arg, system::error_code ec ); - - basic_filesystem_error( const std::string & what_arg, const path_type & path1_arg, - const path_type & path2_arg, system::error_code ec ); - - ~basic_filesystem_error() throw() {} - - const path_type & path1() const - { - static const path_type empty_path; - return m_imp_ptr.get() ? m_imp_ptr->m_path1 : empty_path ; - } - const path_type & path2() const - { - static const path_type empty_path; - return m_imp_ptr.get() ? m_imp_ptr->m_path2 : empty_path ; - } - - const char * what() const throw() - { - if ( !m_imp_ptr.get() ) - return system::system_error::what(); - return detail::what( system::system_error::what(), m_imp_ptr->m_path1, - m_imp_ptr->m_path2, m_imp_ptr->m_what ); - } - - private: - struct m_imp - { - path_type m_path1; // may be empty() - path_type m_path2; // may be empty() - std::string m_what; // not built until needed - }; - boost::shared_ptr m_imp_ptr; - }; - - typedef basic_filesystem_error filesystem_error; - -# ifndef BOOST_FILESYSTEM_NARROW_ONLY - typedef basic_filesystem_error wfilesystem_error; -# endif - - // path::name_checks -----------------------------------------------------// - - BOOST_FILESYSTEM_DECL bool portable_posix_name( const std::string & name ); - BOOST_FILESYSTEM_DECL bool windows_name( const std::string & name ); - BOOST_FILESYSTEM_DECL bool portable_name( const std::string & name ); - BOOST_FILESYSTEM_DECL bool portable_directory_name( const std::string & name ); - BOOST_FILESYSTEM_DECL bool portable_file_name( const std::string & name ); - BOOST_FILESYSTEM_DECL bool native( const std::string & name ); - inline bool no_check( const std::string & ) - { return true; } - -// implementation -----------------------------------------------------------// - - namespace detail - { - - // is_separator helper ------------------------------------------------// - - template - inline bool is_separator( typename Path::string_type::value_type c ) - { - return c == slash::value -# ifdef BOOST_WINDOWS_PATH - || c == path_alt_separator::value -# endif - ; - } - - // filename_pos helper ----------------------------------------------------// - - template - typename String::size_type filename_pos( - const String & str, // precondition: portable generic path grammar - typename String::size_type end_pos ) // end_pos is past-the-end position - // return 0 if str itself is filename (or empty) - { - typedef typename - boost::BOOST_FILESYSTEM_NAMESPACE::basic_path path_type; - - // case: "//" - if ( end_pos == 2 - && str[0] == slash::value - && str[1] == slash::value ) return 0; - - // case: ends in "/" - if ( end_pos && str[end_pos-1] == slash::value ) - return end_pos-1; - - // set pos to start of last element - typename String::size_type pos( - str.find_last_of( slash::value, end_pos-1 ) ); -# ifdef BOOST_WINDOWS_PATH - if ( pos == String::npos ) - pos = str.find_last_of( path_alt_separator::value, end_pos-1 ); - if ( pos == String::npos ) - pos = str.find_last_of( colon::value, end_pos-2 ); -# endif - - return ( pos == String::npos // path itself must be a filename (or empty) - || (pos == 1 && str[0] == slash::value) ) // or net - ? 0 // so filename is entire string - : pos + 1; // or starts after delimiter - } - - // first_element helper -----------------------------------------------// - // sets pos and len of first element, excluding extra separators - // if src.empty(), sets pos,len, to 0,0. - - template - void first_element( - const String & src, // precondition: portable generic path grammar - typename String::size_type & element_pos, - typename String::size_type & element_size, -# if !BOOST_WORKAROUND( BOOST_MSVC, <= 1310 ) // VC++ 7.1 - typename String::size_type size = String::npos -# else - typename String::size_type size = -1 -# endif - ) - { - if ( size == String::npos ) size = src.size(); - element_pos = 0; - element_size = 0; - if ( src.empty() ) return; - - typedef typename boost::BOOST_FILESYSTEM_NAMESPACE::basic_path path_type; - - typename String::size_type cur(0); - - // deal with // [network] - if ( size >= 2 && src[0] == slash::value - && src[1] == slash::value - && (size == 2 - || src[2] != slash::value) ) - { - cur += 2; - element_size += 2; - } - - // leading (not non-network) separator - else if ( src[0] == slash::value ) - { - ++element_size; - // bypass extra leading separators - while ( cur+1 < size - && src[cur+1] == slash::value ) - { - ++cur; - ++element_pos; - } - return; - } - - // at this point, we have either a plain name, a network name, - // or (on Windows only) a device name - - // find the end - while ( cur < size -# ifdef BOOST_WINDOWS_PATH - && src[cur] != colon::value -# endif - && src[cur] != slash::value ) - { - ++cur; - ++element_size; - } - -# ifdef BOOST_WINDOWS_PATH - if ( cur == size ) return; - // include device delimiter - if ( src[cur] == colon::value ) - { ++element_size; } -# endif - - return; - } - - // root_directory_start helper ----------------------------------------// - - template - typename String::size_type root_directory_start( - const String & s, // precondition: portable generic path grammar - typename String::size_type size ) - // return npos if no root_directory found - { - typedef typename boost::BOOST_FILESYSTEM_NAMESPACE::basic_path path_type; - -# ifdef BOOST_WINDOWS_PATH - // case "c:/" - if ( size > 2 - && s[1] == colon::value - && s[2] == slash::value ) return 2; -# endif - - // case "//" - if ( size == 2 - && s[0] == slash::value - && s[1] == slash::value ) return String::npos; - - // case "//net {/}" - if ( size > 3 - && s[0] == slash::value - && s[1] == slash::value - && s[2] != slash::value ) - { - typename String::size_type pos( - s.find( slash::value, 2 ) ); - return pos < size ? pos : String::npos; - } - - // case "/" - if ( size > 0 && s[0] == slash::value ) return 0; - - return String::npos; - } - - // is_non_root_slash helper -------------------------------------------// - - template - bool is_non_root_slash( const String & str, - typename String::size_type pos ) // pos is position of the slash - { - typedef typename - boost::BOOST_FILESYSTEM_NAMESPACE::basic_path - path_type; - - assert( !str.empty() && str[pos] == slash::value - && "precondition violation" ); - - // subsequent logic expects pos to be for leftmost slash of a set - while ( pos > 0 && str[pos-1] == slash::value ) - --pos; - - return pos != 0 - && (pos <= 2 || str[1] != slash::value - || str.find( slash::value, 2 ) != pos) -# ifdef BOOST_WINDOWS_PATH - && (pos !=2 || str[1] != colon::value) -# endif - ; - } - } // namespace detail - - // decomposition functions ----------------------------------------------// - - template - String basic_path::filename() const - { - typename String::size_type end_pos( - detail::filename_pos( m_path, m_path.size() ) ); - return (m_path.size() - && end_pos - && m_path[end_pos] == slash::value - && detail::is_non_root_slash< String, Traits >(m_path, end_pos)) - ? String( 1, dot::value ) - : m_path.substr( end_pos ); - } - - template - String basic_path::stem() const - { - string_type name = filename(); - typename string_type::size_type n = name.rfind('.'); - return name.substr(0, n); - } - - template - String basic_path::extension() const - { - string_type name = filename(); - typename string_type::size_type n = name.rfind('.'); - if (n != string_type::npos) - return name.substr(n); - else - return string_type(); - } - - template - basic_path basic_path::parent_path() const - { - typename String::size_type end_pos( - detail::filename_pos( m_path, m_path.size() ) ); - - bool filename_was_separator( m_path.size() - && m_path[end_pos] == slash::value ); - - // skip separators unless root directory - typename string_type::size_type root_dir_pos( detail::root_directory_start - ( m_path, end_pos ) ); - for ( ; - end_pos > 0 - && (end_pos-1) != root_dir_pos - && m_path[end_pos-1] == slash::value - ; - --end_pos ) {} - - return (end_pos == 1 && root_dir_pos == 0 && filename_was_separator) - ? path_type() - : path_type( m_path.substr( 0, end_pos ) ); - } - - template - basic_path basic_path::relative_path() const - { - iterator itr( begin() ); - for ( ; itr.m_pos != m_path.size() - && (itr.m_name[0] == slash::value -# ifdef BOOST_WINDOWS_PATH - || itr.m_name[itr.m_name.size()-1] - == colon::value -# endif - ); ++itr ) {} - - return basic_path( m_path.substr( itr.m_pos ) ); - } - - template - String basic_path::root_name() const - { - iterator itr( begin() ); - - return ( itr.m_pos != m_path.size() - && ( - ( itr.m_name.size() > 1 - && itr.m_name[0] == slash::value - && itr.m_name[1] == slash::value - ) -# ifdef BOOST_WINDOWS_PATH - || itr.m_name[itr.m_name.size()-1] - == colon::value -# endif - ) ) - ? *itr - : String(); - } - - template - String basic_path::root_directory() const - { - typename string_type::size_type start( - detail::root_directory_start( m_path, m_path.size() ) ); - - return start == string_type::npos - ? string_type() - : m_path.substr( start, 1 ); - } - - template - basic_path basic_path::root_path() const - { - // even on POSIX, root_name() is non-empty() on network paths - return basic_path( root_name() ) /= root_directory(); - } - - // path query functions -------------------------------------------------// - - template - inline bool basic_path::is_complete() const - { -# ifdef BOOST_WINDOWS_PATH - return has_root_name() && has_root_directory(); -# else - return has_root_directory(); -# endif - } - - template - inline bool basic_path::has_root_path() const - { - return !root_path().empty(); - } - - template - inline bool basic_path::has_root_name() const - { - return !root_name().empty(); - } - - template - inline bool basic_path::has_root_directory() const - { - return !root_directory().empty(); - } - - // append ---------------------------------------------------------------// - - template - void basic_path::m_append_separator_if_needed() - // requires: !empty() - { - if ( -# ifdef BOOST_WINDOWS_PATH - *(m_path.end()-1) != colon::value && -# endif - *(m_path.end()-1) != slash::value ) - { - m_path += slash::value; - } - } - - template - void basic_path::m_append( value_type value ) - { -# ifdef BOOST_CYGWIN_PATH - if ( m_path.empty() ) m_cygwin_root = (value == slash::value); -# endif - -# ifdef BOOST_WINDOWS_PATH - // for BOOST_WINDOWS_PATH, convert alt_separator ('\') to separator ('/') - m_path += ( value == path_alt_separator::value - ? slash::value - : value ); -# else - m_path += value; -# endif - } - - // except that it wouldn't work for BOOST_NO_MEMBER_TEMPLATES compilers, - // the append() member template could replace this code. - template - basic_path & basic_path::operator /= - ( const value_type * next_p ) - { - // ignore escape sequence on POSIX or Windows - if ( *next_p == slash::value - && *(next_p+1) == slash::value - && *(next_p+2) == colon::value ) next_p += 3; - - // append slash::value if needed - if ( !empty() && *next_p != 0 - && !detail::is_separator( *next_p ) ) - { m_append_separator_if_needed(); } - - for ( ; *next_p != 0; ++next_p ) m_append( *next_p ); - return *this; - } - -# ifndef BOOST_NO_MEMBER_TEMPLATES - template template - basic_path & basic_path::append( - InputIterator first, InputIterator last ) - { - // append slash::value if needed - if ( !empty() && first != last - && !detail::is_separator( *first ) ) - { m_append_separator_if_needed(); } - - // song-and-dance to avoid violating InputIterator requirements - // (which prohibit lookahead) in detecting a possible escape sequence - // (escape sequences are simply ignored on POSIX and Windows) - bool was_escape_sequence(true); - std::size_t append_count(0); - typename String::size_type initial_pos( m_path.size() ); - - for ( ; first != last && *first; ++first ) - { - if ( append_count == 0 && *first != slash::value ) - was_escape_sequence = false; - if ( append_count == 1 && *first != slash::value ) - was_escape_sequence = false; - if ( append_count == 2 && *first != colon::value ) - was_escape_sequence = false; - m_append( *first ); - ++append_count; - } - - // erase escape sequence if any - if ( was_escape_sequence && append_count >= 3 ) - m_path.erase( initial_pos, 3 ); - - return *this; - } -# endif - -# ifndef BOOST_FILESYSTEM_NO_DEPRECATED - - // canonize ------------------------------------------------------------// - - template - basic_path & basic_path::canonize() - { - static const typename string_type::value_type dot_str[] - = { dot::value, 0 }; - - if ( m_path.empty() ) return *this; - - path_type temp; - - for ( iterator itr( begin() ); itr != end(); ++itr ) - { - temp /= *itr; - }; - - if ( temp.empty() ) temp /= dot_str; - m_path = temp.m_path; - return *this; - } - - // normalize ------------------------------------------------------------// - - template - basic_path & basic_path::normalize() - { - static const typename string_type::value_type dot_str[] - = { dot::value, 0 }; - - if ( m_path.empty() ) return *this; - - path_type temp; - iterator start( begin() ); - iterator last( end() ); - iterator stop( last-- ); - for ( iterator itr( start ); itr != stop; ++itr ) - { - // ignore "." except at start and last - if ( itr->size() == 1 - && (*itr)[0] == dot::value - && itr != start - && itr != last ) continue; - - // ignore a name and following ".." - if ( !temp.empty() - && itr->size() == 2 - && (*itr)[0] == dot::value - && (*itr)[1] == dot::value ) // dot dot - { - string_type lf( temp.filename() ); - if ( lf.size() > 0 - && (lf.size() != 1 - || (lf[0] != dot::value - && lf[0] != slash::value)) - && (lf.size() != 2 - || (lf[0] != dot::value - && lf[1] != dot::value -# ifdef BOOST_WINDOWS_PATH - && lf[1] != colon::value -# endif - ) - ) - ) - { - temp.remove_filename(); - // if not root directory, must also remove "/" if any - if ( temp.m_path.size() > 0 - && temp.m_path[temp.m_path.size()-1] - == slash::value ) - { - typename string_type::size_type rds( - detail::root_directory_start( temp.m_path, - temp.m_path.size() ) ); - if ( rds == string_type::npos - || rds != temp.m_path.size()-1 ) - { temp.m_path.erase( temp.m_path.size()-1 ); } - } - - iterator next( itr ); - if ( temp.empty() && ++next != stop - && next == last && *last == dot_str ) temp /= dot_str; - continue; - } - } - - temp /= *itr; - }; - - if ( temp.empty() ) temp /= dot_str; - m_path = temp.m_path; - return *this; - } - -# endif - - // modifiers ------------------------------------------------------------// - - template - basic_path & basic_path::remove_filename() - { - m_path.erase( - detail::filename_pos( m_path, m_path.size() ) ); - return *this; - } - - template - basic_path & - basic_path::replace_extension( const string_type & new_ext ) - { - // erase existing extension if any - string_type old_ext = extension(); - if ( !old_ext.empty() ) - m_path.erase( m_path.size() - old_ext.size() ); - - if ( !new_ext.empty() && new_ext[0] != dot::value ) - m_path += dot::value; - - m_path += new_ext; - - return *this; - } - - - // path conversion functions --------------------------------------------// - - template - const String - basic_path::file_string() const - { -# ifdef BOOST_WINDOWS_PATH - // for Windows, use the alternate separator, and bypass extra - // root separators - - typename string_type::size_type root_dir_start( - detail::root_directory_start( m_path, m_path.size() ) ); - bool in_root( root_dir_start != string_type::npos ); - String s; - for ( typename string_type::size_type pos( 0 ); - pos != m_path.size(); ++pos ) - { - // special case // [net] - if ( pos == 0 && m_path.size() > 1 - && m_path[0] == slash::value - && m_path[1] == slash::value - && ( m_path.size() == 2 - || !detail::is_separator( m_path[2] ) - ) ) - { - ++pos; - s += path_alt_separator::value; - s += path_alt_separator::value; - continue; - } - - // bypass extra root separators - if ( in_root ) - { - if ( s.size() > 0 - && s[s.size()-1] == path_alt_separator::value - && m_path[pos] == slash::value - ) continue; - } - - if ( m_path[pos] == slash::value ) - s += path_alt_separator::value; - else - s += m_path[pos]; - - if ( pos > root_dir_start - && m_path[pos] == slash::value ) - { in_root = false; } - } -# ifdef BOOST_CYGWIN_PATH - if ( m_cygwin_root ) s[0] = slash::value; -# endif - return s; -# else - return m_path; -# endif - } - - // iterator functions ---------------------------------------------------// - - template - typename basic_path::iterator basic_path::begin() const - { - iterator itr; - itr.m_path_ptr = this; - typename string_type::size_type element_size; - detail::first_element( m_path, itr.m_pos, element_size ); - itr.m_name = m_path.substr( itr.m_pos, element_size ); - return itr; - } - - template - typename basic_path::iterator basic_path::end() const - { - iterator itr; - itr.m_path_ptr = this; - itr.m_pos = m_path.size(); - return itr; - } - - namespace detail - { - // do_increment ------------------------------------------------------// - - template - void iterator_helper::do_increment( iterator & itr ) - { - 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()" ); - - bool was_net( itr.m_name.size() > 2 - && itr.m_name[0] == slash::value - && itr.m_name[1] == slash::value - && itr.m_name[2] != slash::value ); - - // increment to position past current element - itr.m_pos += itr.m_name.size(); - - // if end reached, create end iterator - if ( itr.m_pos == itr.m_path_ptr->m_path.size() ) - { - itr.m_name.erase( itr.m_name.begin(), itr.m_name.end() ); // VC++ 6.0 lib didn't supply clear() - return; - } - - // process separator (Windows drive spec is only case not a separator) - if ( itr.m_path_ptr->m_path[itr.m_pos] == slash::value ) - { - // detect root directory - if ( was_net - # ifdef BOOST_WINDOWS_PATH - // case "c:/" - || itr.m_name[itr.m_name.size()-1] == colon::value - # endif - ) - { - itr.m_name = slash::value; - return; - } - - // bypass separators - while ( itr.m_pos != itr.m_path_ptr->m_path.size() - && itr.m_path_ptr->m_path[itr.m_pos] == slash::value ) - { ++itr.m_pos; } - - // detect trailing separator, and treat it as ".", per POSIX spec - if ( itr.m_pos == itr.m_path_ptr->m_path.size() - && detail::is_non_root_slash< string_type, traits_type >( - itr.m_path_ptr->m_path, itr.m_pos-1 ) ) - { - --itr.m_pos; - itr.m_name = dot::value; - return; - } - } - - // get next element - typename string_type::size_type end_pos( - itr.m_path_ptr->m_path.find( slash::value, itr.m_pos ) ); - itr.m_name = itr.m_path_ptr->m_path.substr( itr.m_pos, end_pos - itr.m_pos ); - } - - // do_decrement ------------------------------------------------------// - - template - void iterator_helper::do_decrement( iterator & itr ) - { - assert( itr.m_pos && "basic_path::iterator decrement past begin()" ); - - typedef typename Path::string_type string_type; - typedef typename Path::traits_type traits_type; - - typename string_type::size_type end_pos( itr.m_pos ); - - typename string_type::size_type root_dir_pos( - detail::root_directory_start( - itr.m_path_ptr->m_path, end_pos ) ); - - // if at end and there was a trailing non-root '/', return "." - if ( itr.m_pos == itr.m_path_ptr->m_path.size() - && itr.m_path_ptr->m_path.size() > 1 - && itr.m_path_ptr->m_path[itr.m_pos-1] == slash::value - && detail::is_non_root_slash< string_type, traits_type >( - itr.m_path_ptr->m_path, itr.m_pos-1 ) - ) - { - --itr.m_pos; - itr.m_name = dot::value; - return; - } - - // skip separators unless root directory - for ( - ; - end_pos > 0 - && (end_pos-1) != root_dir_pos - && itr.m_path_ptr->m_path[end_pos-1] == slash::value - ; - --end_pos ) {} - - itr.m_pos = detail::filename_pos - ( itr.m_path_ptr->m_path, end_pos ); - itr.m_name = itr.m_path_ptr->m_path.substr( itr.m_pos, end_pos - itr.m_pos ); - } - } // namespace detail - - // basic_filesystem_error implementation --------------------------------// - - template - basic_filesystem_error::basic_filesystem_error( - const std::string & what_arg, system::error_code ec ) - : system::system_error(ec, what_arg) - { - try - { - m_imp_ptr.reset( new m_imp ); - } - catch (...) { m_imp_ptr.reset(); } - } - - template - basic_filesystem_error::basic_filesystem_error( - const std::string & what_arg, const path_type & path1_arg, - system::error_code ec ) - : system::system_error(ec, what_arg) - { - try - { - m_imp_ptr.reset( new m_imp ); - m_imp_ptr->m_path1 = path1_arg; - } - catch (...) { m_imp_ptr.reset(); } - } - - template - basic_filesystem_error::basic_filesystem_error( - const std::string & what_arg, const path_type & path1_arg, - const path_type & path2_arg, system::error_code ec ) - : system::system_error(ec, what_arg) - { - try - { - m_imp_ptr.reset( new m_imp ); - m_imp_ptr->m_path1 = path1_arg; - m_imp_ptr->m_path2 = path2_arg; - } - catch (...) { m_imp_ptr.reset(); } - } - - } // namespace BOOST_FILESYSTEM_NAMESPACE -} // namespace boost - -#include // pops abi_prefix.hpp pragmas - -#endif // BOOST_FILESYSTEM_PATH_HPP diff --git a/3rdParty/Boost/boost/foreach.hpp b/3rdParty/Boost/boost/foreach.hpp deleted file mode 100644 index c384cee..0000000 --- a/3rdParty/Boost/boost/foreach.hpp +++ /dev/null @@ -1,1099 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// foreach.hpp header file -// -// Copyright 2004 Eric Niebler. -// Distributed under the 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/foreach for documentation -// -// Credits: -// Anson Tsao - for the initial inspiration and several good suggestions. -// Thorsten Ottosen - for Boost.Range, and for suggesting a way to detect -// const-qualified rvalues at compile time on VC7.1+ -// Russell Hind - For help porting to Borland -// Alisdair Meredith - For help porting to Borland -// Stefan Slapeta - For help porting to Intel -// David Jenkins - For help finding a Microsoft Code Analysis bug - -#ifndef BOOST_FOREACH - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include -#include // for std::pair - -#include -#include - -// Some compilers let us detect even const-qualified rvalues at compile-time -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1310) && !defined(_PREFAST_) \ - || (BOOST_WORKAROUND(__GNUC__, >= 4) && !defined(BOOST_INTEL)) \ - || (BOOST_WORKAROUND(__GNUC__, == 3) && (__GNUC_MINOR__ >= 4) && !defined(BOOST_INTEL)) -# define BOOST_FOREACH_COMPILE_TIME_CONST_RVALUE_DETECTION -#else -// Some compilers allow temporaries to be bound to non-const references. -// These compilers make it impossible to for BOOST_FOREACH to detect -// temporaries and avoid reevaluation of the collection expression. -# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || BOOST_WORKAROUND(__BORLANDC__, < 0x593) \ - || (BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x570)) \ - || BOOST_WORKAROUND(__DECCXX_VER, <= 60590042) -# define BOOST_FOREACH_NO_RVALUE_DETECTION -# endif -// Some compilers do not correctly implement the lvalue/rvalue conversion -// rules of the ternary conditional operator. -# if defined(BOOST_FOREACH_NO_RVALUE_DETECTION) \ - || defined(BOOST_NO_SFINAE) \ - || BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ - || BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(1400)) \ - || BOOST_WORKAROUND(__GNUC__, < 3) \ - || (BOOST_WORKAROUND(__GNUC__, == 3) && (__GNUC_MINOR__ <= 2)) \ - || (BOOST_WORKAROUND(__GNUC__, == 3) && (__GNUC_MINOR__ <= 3) && defined(__APPLE_CC__)) \ - || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600)) \ - || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3206)) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x590)) -# define BOOST_FOREACH_NO_CONST_RVALUE_DETECTION -# else -# define BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION -# endif -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION -# include -# include -# include -# include -#endif - -// This must be at global scope, hence the uglified name -enum boost_foreach_argument_dependent_lookup_hack -{ - boost_foreach_argument_dependent_lookup_hack_value -}; - -namespace boost -{ - -// forward declarations for iterator_range -template -class iterator_range; - -// forward declarations for sub_range -template -class sub_range; - -namespace foreach -{ - /////////////////////////////////////////////////////////////////////////////// - // in_range - // - template - inline std::pair in_range(T begin, T end) - { - return std::make_pair(begin, end); - } - - /////////////////////////////////////////////////////////////////////////////// - // boost::foreach::tag - // - typedef boost_foreach_argument_dependent_lookup_hack tag; - - /////////////////////////////////////////////////////////////////////////////// - // boost::foreach::is_lightweight_proxy - // Specialize this for user-defined collection types if they are inexpensive to copy. - // This tells BOOST_FOREACH it can avoid the rvalue/lvalue detection stuff. - template - struct is_lightweight_proxy - : boost::mpl::false_ - { - }; - - /////////////////////////////////////////////////////////////////////////////// - // boost::foreach::is_noncopyable - // Specialize this for user-defined collection types if they cannot be copied. - // This also tells BOOST_FOREACH to avoid the rvalue/lvalue detection stuff. - template - struct is_noncopyable - #if !defined(BOOST_BROKEN_IS_BASE_AND_DERIVED) && !defined(BOOST_NO_IS_ABSTRACT) - : boost::mpl::or_< - boost::is_abstract - , boost::is_base_and_derived - > - #elif !defined(BOOST_BROKEN_IS_BASE_AND_DERIVED) - : boost::is_base_and_derived - #elif !defined(BOOST_NO_IS_ABSTRACT) - : boost::is_abstract - #else - : boost::mpl::false_ - #endif - { - }; - -} // namespace foreach - -} // namespace boost - -// vc6/7 needs help ordering the following overloads -#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -# define BOOST_FOREACH_TAG_DEFAULT ... -#else -# define BOOST_FOREACH_TAG_DEFAULT boost::foreach::tag -#endif - -/////////////////////////////////////////////////////////////////////////////// -// boost_foreach_is_lightweight_proxy -// Another customization point for the is_lightweight_proxy optimization, -// this one works on legacy compilers. Overload boost_foreach_is_lightweight_proxy -// at the global namespace for your type. -template -inline boost::foreach::is_lightweight_proxy * -boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } - -template -inline boost::mpl::true_ * -boost_foreach_is_lightweight_proxy(std::pair *&, boost::foreach::tag) { return 0; } - -template -inline boost::mpl::true_ * -boost_foreach_is_lightweight_proxy(boost::iterator_range *&, boost::foreach::tag) { return 0; } - -template -inline boost::mpl::true_ * -boost_foreach_is_lightweight_proxy(boost::sub_range *&, boost::foreach::tag) { return 0; } - -template -inline boost::mpl::true_ * -boost_foreach_is_lightweight_proxy(T **&, boost::foreach::tag) { return 0; } - -/////////////////////////////////////////////////////////////////////////////// -// boost_foreach_is_noncopyable -// Another customization point for the is_noncopyable trait, -// this one works on legacy compilers. Overload boost_foreach_is_noncopyable -// at the global namespace for your type. -template -inline boost::foreach::is_noncopyable * -boost_foreach_is_noncopyable(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } - -namespace boost -{ - -namespace foreach_detail_ -{ - -/////////////////////////////////////////////////////////////////////////////// -// Define some utilities for assessing the properties of expressions -// -template -inline boost::mpl::and_ *and_(Bool1 *, Bool2 *) { return 0; } - -template -inline boost::mpl::and_ *and_(Bool1 *, Bool2 *, Bool3 *) { return 0; } - -template -inline boost::mpl::or_ *or_(Bool1 *, Bool2 *) { return 0; } - -template -inline boost::mpl::or_ *or_(Bool1 *, Bool2 *, Bool3 *) { return 0; } - -template -inline boost::mpl::not_ *not_(Bool *) { return 0; } - -template -inline boost::mpl::false_ *is_rvalue_(T &, int) { return 0; } - -template -inline boost::mpl::true_ *is_rvalue_(T const &, ...) { return 0; } - -template -inline boost::is_array *is_array_(T const &) { return 0; } - -template -inline boost::is_const *is_const_(T &) { return 0; } - -#ifndef BOOST_FOREACH_NO_RVALUE_DETECTION -template -inline boost::mpl::true_ *is_const_(T const &) { return 0; } -#endif - -/////////////////////////////////////////////////////////////////////////////// -// auto_any_t/auto_any -// General utility for putting an object of any type into automatic storage -struct auto_any_base -{ - // auto_any_base must evaluate to false in boolean context so that - // they can be declared in if() statements. - operator bool() const - { - return false; - } -}; - -template -struct auto_any : auto_any_base -{ - auto_any(T const &t) - : item(t) - { - } - - // temporaries of type auto_any will be bound to const auto_any_base - // references, but we still want to be able to mutate the stored - // data, so declare it as mutable. - mutable T item; -}; - -typedef auto_any_base const &auto_any_t; - -template -inline BOOST_DEDUCED_TYPENAME boost::mpl::if_::type &auto_any_cast(auto_any_t a) -{ - return static_cast const &>(a).item; -} - -typedef boost::mpl::true_ const_; - -/////////////////////////////////////////////////////////////////////////////// -// type2type -// -template -struct type2type - : boost::mpl::if_ -{ -}; - -template -struct wrap_cstr -{ - typedef T type; -}; - -template<> -struct wrap_cstr -{ - typedef wrap_cstr type; - typedef char *iterator; - typedef char *const_iterator; -}; - -template<> -struct wrap_cstr -{ - typedef wrap_cstr type; - typedef char const *iterator; - typedef char const *const_iterator; -}; - -template<> -struct wrap_cstr -{ - typedef wrap_cstr type; - typedef wchar_t *iterator; - typedef wchar_t *const_iterator; -}; - -template<> -struct wrap_cstr -{ - typedef wrap_cstr type; - typedef wchar_t const *iterator; - typedef wchar_t const *const_iterator; -}; - -template -struct is_char_array - : mpl::and_< - is_array - , mpl::or_< - is_convertible - , is_convertible - > - > -{}; - -template -struct foreach_iterator -{ - // **** READ THIS IF YOUR COMPILE BREAKS HERE **** - // - // There is an ambiguity about how to iterate over arrays of char and wchar_t. - // Should the last array element be treated as a null terminator to be skipped, or - // is it just like any other element in the array? To fix the problem, you must - // say which behavior you want. - // - // To treat the container as a null-terminated string, merely cast it to a - // char const *, as in BOOST_FOREACH( char ch, (char const *)"hello" ) ... - // - // To treat the container as an array, use boost::as_array() in , - // as in BOOST_FOREACH( char ch, boost::as_array("hello") ) ... - #if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - BOOST_MPL_ASSERT_MSG( (!is_char_array::value), IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING, (T&) ); - #endif - - // If the type is a pointer to a null terminated string (as opposed - // to an array type), there is no ambiguity. - typedef BOOST_DEDUCED_TYPENAME wrap_cstr::type container; - - typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if< - C - , range_const_iterator - , range_mutable_iterator - >::type type; -}; - - -template -struct foreach_reverse_iterator -{ - // **** READ THIS IF YOUR COMPILE BREAKS HERE **** - // - // There is an ambiguity about how to iterate over arrays of char and wchar_t. - // Should the last array element be treated as a null terminator to be skipped, or - // is it just like any other element in the array? To fix the problem, you must - // say which behavior you want. - // - // To treat the container as a null-terminated string, merely cast it to a - // char const *, as in BOOST_FOREACH( char ch, (char const *)"hello" ) ... - // - // To treat the container as an array, use boost::as_array() in , - // as in BOOST_FOREACH( char ch, boost::as_array("hello") ) ... - #if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 - BOOST_MPL_ASSERT_MSG( (!is_char_array::value), IS_THIS_AN_ARRAY_OR_A_NULL_TERMINATED_STRING, (T&) ); - #endif - - // If the type is a pointer to a null terminated string (as opposed - // to an array type), there is no ambiguity. - typedef BOOST_DEDUCED_TYPENAME wrap_cstr::type container; - - typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if< - C - , range_reverse_iterator - , range_reverse_iterator - >::type type; -}; - -template -struct foreach_reference - : iterator_reference::type> -{ -}; - -/////////////////////////////////////////////////////////////////////////////// -// encode_type -// -template -inline type2type *encode_type(T &, boost::mpl::false_ *) { return 0; } - -template -inline type2type *encode_type(T const &, boost::mpl::true_ *) { return 0; } - -/////////////////////////////////////////////////////////////////////////////// -// set_false -// -inline bool set_false(bool &b) -{ - b = false; - return false; -} - -/////////////////////////////////////////////////////////////////////////////// -// to_ptr -// -template -inline T *&to_ptr(T const &) -{ - static T *t = 0; - return t; -} - -// Borland needs a little extra help with arrays -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -template -inline T (*&to_ptr(T (&)[N]))[N] -{ - static T (*t)[N] = 0; - return t; -} -#endif - -/////////////////////////////////////////////////////////////////////////////// -// derefof -// -template -inline T &derefof(T *t) -{ - // This is a work-around for a compiler bug in Borland. If T* is a pointer to array type U(*)[N], - // then dereferencing it results in a U* instead of U(&)[N]. The cast forces the issue. - return reinterpret_cast( - *const_cast( - reinterpret_cast(t) - ) - ); -} - -#ifdef BOOST_FOREACH_COMPILE_TIME_CONST_RVALUE_DETECTION -/////////////////////////////////////////////////////////////////////////////// -// Detect at compile-time whether an expression yields an rvalue or -// an lvalue. This is rather non-standard, but some popular compilers -// accept it. -/////////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -// rvalue_probe -// -template -struct rvalue_probe -{ - struct private_type_ {}; - // can't ever return an array by value - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::mpl::or_, boost::is_array >, private_type_, T - >::type value_type; - operator value_type() { return *reinterpret_cast(this); } // never called - operator T &() const { return *reinterpret_cast(const_cast(this)); } // never called -}; - -template -rvalue_probe const make_probe(T const &) -{ - return rvalue_probe(); -} - -# define BOOST_FOREACH_IS_RVALUE(COL) \ - boost::foreach_detail_::and_( \ - boost::foreach_detail_::not_(boost::foreach_detail_::is_array_(COL)) \ - , (true ? 0 : boost::foreach_detail_::is_rvalue_( \ - (true ? boost::foreach_detail_::make_probe(COL) : (COL)), 0))) - -#elif defined(BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION) -/////////////////////////////////////////////////////////////////////////////// -// Detect at run-time whether an expression yields an rvalue -// or an lvalue. This is 100% standard C++, but not all compilers -// accept it. Also, it causes FOREACH to break when used with non- -// copyable collection types. -/////////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -// rvalue_probe -// -template -struct rvalue_probe -{ - rvalue_probe(T &t, bool &b) - : value(t) - , is_rvalue(b) - { - } - - struct private_type_ {}; - // can't ever return an array or an abstract type by value - #ifdef BOOST_NO_IS_ABSTRACT - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::is_array, private_type_, T - >::type value_type; - #else - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_< - boost::mpl::or_, boost::is_array >, private_type_, T - >::type value_type; - #endif - - operator value_type() - { - this->is_rvalue = true; - return this->value; - } - - operator T &() const - { - return this->value; - } - -private: - T &value; - bool &is_rvalue; -}; - -template -rvalue_probe make_probe(T &t, bool &b) { return rvalue_probe(t, b); } - -template -rvalue_probe make_probe(T const &t, bool &b) { return rvalue_probe(t, b); } - -/////////////////////////////////////////////////////////////////////////////// -// simple_variant -// holds either a T or a T const* -template -struct simple_variant -{ - simple_variant(T const *t) - : is_rvalue(false) - { - *static_cast(this->data.address()) = t; - } - - simple_variant(T const &t) - : is_rvalue(true) - { - ::new(this->data.address()) T(t); - } - - simple_variant(simple_variant const &that) - : is_rvalue(that.is_rvalue) - { - if(this->is_rvalue) - ::new(this->data.address()) T(*that.get()); - else - *static_cast(this->data.address()) = that.get(); - } - - ~simple_variant() - { - if(this->is_rvalue) - this->get()->~T(); - } - - T const *get() const - { - if(this->is_rvalue) - return static_cast(this->data.address()); - else - return *static_cast(this->data.address()); - } - -private: - enum size_type { size = sizeof(T) > sizeof(T*) ? sizeof(T) : sizeof(T*) }; - simple_variant &operator =(simple_variant const &); - bool const is_rvalue; - aligned_storage data; -}; - -// If the collection is an array or is noncopyable, it must be an lvalue. -// If the collection is a lightweight proxy, treat it as an rvalue -// BUGBUG what about a noncopyable proxy? -template -inline BOOST_DEDUCED_TYPENAME boost::enable_if, IsProxy>::type * -should_copy_impl(LValue *, IsProxy *, bool *) -{ - return 0; -} - -// Otherwise, we must determine at runtime whether it's an lvalue or rvalue -inline bool * -should_copy_impl(boost::mpl::false_ *, boost::mpl::false_ *, bool *is_rvalue) -{ - return is_rvalue; -} - -#endif - -/////////////////////////////////////////////////////////////////////////////// -// contain -// -template -inline auto_any contain(T const &t, boost::mpl::true_ *) // rvalue -{ - return t; -} - -template -inline auto_any contain(T &t, boost::mpl::false_ *) // lvalue -{ - // Cannot seem to get sunpro to handle addressof() with array types. - #if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x570)) - return &t; - #else - return boost::addressof(t); - #endif -} - -#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION -template -auto_any > -contain(T const &t, bool *rvalue) -{ - return *rvalue ? simple_variant(t) : simple_variant(&t); -} -#endif - -///////////////////////////////////////////////////////////////////////////// -// begin -// -template -inline auto_any::type> -begin(auto_any_t col, type2type *, boost::mpl::true_ *) // rvalue -{ - return boost::begin(auto_any_cast(col)); -} - -template -inline auto_any::type> -begin(auto_any_t col, type2type *, boost::mpl::false_ *) // lvalue -{ - typedef BOOST_DEDUCED_TYPENAME type2type::type type; - typedef BOOST_DEDUCED_TYPENAME foreach_iterator::type iterator; - return iterator(boost::begin(derefof(auto_any_cast(col)))); -} - -#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION -template -auto_any::type> -begin(auto_any_t col, type2type *, bool *) -{ - return boost::begin(*auto_any_cast, boost::mpl::false_>(col).get()); -} -#endif - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -template -inline auto_any -begin(auto_any_t col, type2type *, boost::mpl::true_ *) // null-terminated C-style strings -{ - return auto_any_cast(col); -} -#endif - -/////////////////////////////////////////////////////////////////////////////// -// end -// -template -inline auto_any::type> -end(auto_any_t col, type2type *, boost::mpl::true_ *) // rvalue -{ - return boost::end(auto_any_cast(col)); -} - -template -inline auto_any::type> -end(auto_any_t col, type2type *, boost::mpl::false_ *) // lvalue -{ - typedef BOOST_DEDUCED_TYPENAME type2type::type type; - typedef BOOST_DEDUCED_TYPENAME foreach_iterator::type iterator; - return iterator(boost::end(derefof(auto_any_cast(col)))); -} - -#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION -template -auto_any::type> -end(auto_any_t col, type2type *, bool *) -{ - return boost::end(*auto_any_cast, boost::mpl::false_>(col).get()); -} -#endif - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -template -inline auto_any -end(auto_any_t col, type2type *, boost::mpl::true_ *) // null-terminated C-style strings -{ - return 0; // not used -} -#endif - -/////////////////////////////////////////////////////////////////////////////// -// done -// -template -inline bool done(auto_any_t cur, auto_any_t end, type2type *) -{ - typedef BOOST_DEDUCED_TYPENAME foreach_iterator::type iter_t; - return auto_any_cast(cur) == auto_any_cast(end); -} - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -template -inline bool done(auto_any_t cur, auto_any_t, type2type *) // null-terminated C-style strings -{ - return ! *auto_any_cast(cur); -} -#endif - -/////////////////////////////////////////////////////////////////////////////// -// next -// -template -inline void next(auto_any_t cur, type2type *) -{ - typedef BOOST_DEDUCED_TYPENAME foreach_iterator::type iter_t; - ++auto_any_cast(cur); -} - -/////////////////////////////////////////////////////////////////////////////// -// deref -// -template -inline BOOST_DEDUCED_TYPENAME foreach_reference::type -deref(auto_any_t cur, type2type *) -{ - typedef BOOST_DEDUCED_TYPENAME foreach_iterator::type iter_t; - return *auto_any_cast(cur); -} - -///////////////////////////////////////////////////////////////////////////// -// rbegin -// -template -inline auto_any::type> -rbegin(auto_any_t col, type2type *, boost::mpl::true_ *) // rvalue -{ - return boost::rbegin(auto_any_cast(col)); -} - -template -inline auto_any::type> -rbegin(auto_any_t col, type2type *, boost::mpl::false_ *) // lvalue -{ - typedef BOOST_DEDUCED_TYPENAME type2type::type type; - typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator::type iterator; - return iterator(boost::rbegin(derefof(auto_any_cast(col)))); -} - -#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION -template -auto_any::type> -rbegin(auto_any_t col, type2type *, bool *) -{ - return boost::rbegin(*auto_any_cast, boost::mpl::false_>(col).get()); -} -#endif - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -template -inline auto_any > -rbegin(auto_any_t col, type2type *, boost::mpl::true_ *) // null-terminated C-style strings -{ - T *p = auto_any_cast(col); - while(0 != *p) - ++p; - return reverse_iterator(p); -} -#endif - -/////////////////////////////////////////////////////////////////////////////// -// rend -// -template -inline auto_any::type> -rend(auto_any_t col, type2type *, boost::mpl::true_ *) // rvalue -{ - return boost::rend(auto_any_cast(col)); -} - -template -inline auto_any::type> -rend(auto_any_t col, type2type *, boost::mpl::false_ *) // lvalue -{ - typedef BOOST_DEDUCED_TYPENAME type2type::type type; - typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator::type iterator; - return iterator(boost::rend(derefof(auto_any_cast(col)))); -} - -#ifdef BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION -template -auto_any::type> -rend(auto_any_t col, type2type *, bool *) -{ - return boost::rend(*auto_any_cast, boost::mpl::false_>(col).get()); -} -#endif - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING -template -inline auto_any > -rend(auto_any_t col, type2type *, boost::mpl::true_ *) // null-terminated C-style strings -{ - return reverse_iterator(auto_any_cast(col)); -} -#endif - -/////////////////////////////////////////////////////////////////////////////// -// rdone -// -template -inline bool rdone(auto_any_t cur, auto_any_t end, type2type *) -{ - typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator::type iter_t; - return auto_any_cast(cur) == auto_any_cast(end); -} - -/////////////////////////////////////////////////////////////////////////////// -// rnext -// -template -inline void rnext(auto_any_t cur, type2type *) -{ - typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator::type iter_t; - ++auto_any_cast(cur); -} - -/////////////////////////////////////////////////////////////////////////////// -// rderef -// -template -inline BOOST_DEDUCED_TYPENAME foreach_reference::type -rderef(auto_any_t cur, type2type *) -{ - typedef BOOST_DEDUCED_TYPENAME foreach_reverse_iterator::type iter_t; - return *auto_any_cast(cur); -} - -} // namespace foreach_detail_ -} // namespace boost - -// Suppress a bogus code analysis warning on vc8+ -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -# define BOOST_FOREACH_SUPPRESS_WARNINGS() __pragma(warning(suppress:6001)) -#else -# define BOOST_FOREACH_SUPPRESS_WARNINGS() -#endif - -/////////////////////////////////////////////////////////////////////////////// -// Define a macro for giving hidden variables a unique name. Not strictly -// needed, but eliminates some warnings on some compilers. -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500)) -// With some versions of MSVC, use of __LINE__ to create unique identifiers -// can fail when the Edit-and-Continue debug flag is used. -# define BOOST_FOREACH_ID(x) x -#else -# define BOOST_FOREACH_ID(x) BOOST_PP_CAT(x, __LINE__) -#endif - -// A sneaky way to get the type of the collection without evaluating the expression -#define BOOST_FOREACH_TYPEOF(COL) \ - (true ? 0 : boost::foreach_detail_::encode_type(COL, boost::foreach_detail_::is_const_(COL))) - -// returns true_* if the type is noncopyable -#define BOOST_FOREACH_IS_NONCOPYABLE(COL) \ - boost_foreach_is_noncopyable( \ - boost::foreach_detail_::to_ptr(COL) \ - , boost_foreach_argument_dependent_lookup_hack_value) - -// returns true_* if the type is a lightweight proxy (and is not noncopyable) -#define BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL) \ - boost::foreach_detail_::and_( \ - boost::foreach_detail_::not_(BOOST_FOREACH_IS_NONCOPYABLE(COL)) \ - , boost_foreach_is_lightweight_proxy( \ - boost::foreach_detail_::to_ptr(COL) \ - , boost_foreach_argument_dependent_lookup_hack_value)) - -#ifdef BOOST_FOREACH_COMPILE_TIME_CONST_RVALUE_DETECTION -/////////////////////////////////////////////////////////////////////////////// -// R-values and const R-values supported here with zero runtime overhead -/////////////////////////////////////////////////////////////////////////////// - -// No variable is needed to track the rvalue-ness of the collection expression -# define BOOST_FOREACH_PREAMBLE() \ - BOOST_FOREACH_SUPPRESS_WARNINGS() - -// Evaluate the collection expression -# define BOOST_FOREACH_EVALUATE(COL) \ - (COL) - -# define BOOST_FOREACH_SHOULD_COPY(COL) \ - (true ? 0 : boost::foreach_detail_::or_( \ - BOOST_FOREACH_IS_RVALUE(COL) \ - , BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL))) - -#elif defined(BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION) -/////////////////////////////////////////////////////////////////////////////// -// R-values and const R-values supported here -/////////////////////////////////////////////////////////////////////////////// - -// Declare a variable to track the rvalue-ness of the collection expression -# define BOOST_FOREACH_PREAMBLE() \ - BOOST_FOREACH_SUPPRESS_WARNINGS() \ - if (bool BOOST_FOREACH_ID(_foreach_is_rvalue) = false) {} else - -// Evaluate the collection expression, and detect if it is an lvalue or and rvalue -# define BOOST_FOREACH_EVALUATE(COL) \ - (true ? boost::foreach_detail_::make_probe((COL), BOOST_FOREACH_ID(_foreach_is_rvalue)) : (COL)) - -// The rvalue/lvalue-ness of the collection expression is determined dynamically, unless -// type type is an array or is noncopyable or is non-const, in which case we know it's an lvalue. -// If the type happens to be a lightweight proxy, always make a copy. -# define BOOST_FOREACH_SHOULD_COPY(COL) \ - (boost::foreach_detail_::should_copy_impl( \ - true ? 0 : boost::foreach_detail_::or_( \ - boost::foreach_detail_::is_array_(COL) \ - , BOOST_FOREACH_IS_NONCOPYABLE(COL) \ - , boost::foreach_detail_::not_(boost::foreach_detail_::is_const_(COL))) \ - , true ? 0 : BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL) \ - , &BOOST_FOREACH_ID(_foreach_is_rvalue))) - -#elif !defined(BOOST_FOREACH_NO_RVALUE_DETECTION) -/////////////////////////////////////////////////////////////////////////////// -// R-values supported here, const R-values NOT supported here -/////////////////////////////////////////////////////////////////////////////// - -// No variable is needed to track the rvalue-ness of the collection expression -# define BOOST_FOREACH_PREAMBLE() \ - BOOST_FOREACH_SUPPRESS_WARNINGS() - -// Evaluate the collection expression -# define BOOST_FOREACH_EVALUATE(COL) \ - (COL) - -// Determine whether the collection expression is an lvalue or an rvalue. -// NOTE: this gets the answer wrong for const rvalues. -# define BOOST_FOREACH_SHOULD_COPY(COL) \ - (true ? 0 : boost::foreach_detail_::or_( \ - boost::foreach_detail_::is_rvalue_((COL), 0) \ - , BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL))) - -#else -/////////////////////////////////////////////////////////////////////////////// -// R-values NOT supported here -/////////////////////////////////////////////////////////////////////////////// - -// No variable is needed to track the rvalue-ness of the collection expression -# define BOOST_FOREACH_PREAMBLE() \ - BOOST_FOREACH_SUPPRESS_WARNINGS() - -// Evaluate the collection expression -# define BOOST_FOREACH_EVALUATE(COL) \ - (COL) - -// Can't use rvalues with BOOST_FOREACH (unless they are lightweight proxies) -# define BOOST_FOREACH_SHOULD_COPY(COL) \ - (true ? 0 : BOOST_FOREACH_IS_LIGHTWEIGHT_PROXY(COL)) - -#endif - -#define BOOST_FOREACH_CONTAIN(COL) \ - boost::foreach_detail_::contain( \ - BOOST_FOREACH_EVALUATE(COL) \ - , BOOST_FOREACH_SHOULD_COPY(COL)) - -#define BOOST_FOREACH_BEGIN(COL) \ - boost::foreach_detail_::begin( \ - BOOST_FOREACH_ID(_foreach_col) \ - , BOOST_FOREACH_TYPEOF(COL) \ - , BOOST_FOREACH_SHOULD_COPY(COL)) - -#define BOOST_FOREACH_END(COL) \ - boost::foreach_detail_::end( \ - BOOST_FOREACH_ID(_foreach_col) \ - , BOOST_FOREACH_TYPEOF(COL) \ - , BOOST_FOREACH_SHOULD_COPY(COL)) - -#define BOOST_FOREACH_DONE(COL) \ - boost::foreach_detail_::done( \ - BOOST_FOREACH_ID(_foreach_cur) \ - , BOOST_FOREACH_ID(_foreach_end) \ - , BOOST_FOREACH_TYPEOF(COL)) - -#define BOOST_FOREACH_NEXT(COL) \ - boost::foreach_detail_::next( \ - BOOST_FOREACH_ID(_foreach_cur) \ - , BOOST_FOREACH_TYPEOF(COL)) - -#define BOOST_FOREACH_DEREF(COL) \ - boost::foreach_detail_::deref( \ - BOOST_FOREACH_ID(_foreach_cur) \ - , BOOST_FOREACH_TYPEOF(COL)) - -#define BOOST_FOREACH_RBEGIN(COL) \ - boost::foreach_detail_::rbegin( \ - BOOST_FOREACH_ID(_foreach_col) \ - , BOOST_FOREACH_TYPEOF(COL) \ - , BOOST_FOREACH_SHOULD_COPY(COL)) - -#define BOOST_FOREACH_REND(COL) \ - boost::foreach_detail_::rend( \ - BOOST_FOREACH_ID(_foreach_col) \ - , BOOST_FOREACH_TYPEOF(COL) \ - , BOOST_FOREACH_SHOULD_COPY(COL)) - -#define BOOST_FOREACH_RDONE(COL) \ - boost::foreach_detail_::rdone( \ - BOOST_FOREACH_ID(_foreach_cur) \ - , BOOST_FOREACH_ID(_foreach_end) \ - , BOOST_FOREACH_TYPEOF(COL)) - -#define BOOST_FOREACH_RNEXT(COL) \ - boost::foreach_detail_::rnext( \ - BOOST_FOREACH_ID(_foreach_cur) \ - , BOOST_FOREACH_TYPEOF(COL)) - -#define BOOST_FOREACH_RDEREF(COL) \ - boost::foreach_detail_::rderef( \ - BOOST_FOREACH_ID(_foreach_cur) \ - , BOOST_FOREACH_TYPEOF(COL)) - -/////////////////////////////////////////////////////////////////////////////// -// BOOST_FOREACH -// -// For iterating over collections. Collections can be -// arrays, null-terminated strings, or STL containers. -// The loop variable can be a value or reference. For -// example: -// -// std::list int_list(/*stuff*/); -// BOOST_FOREACH(int &i, int_list) -// { -// /* -// * loop body goes here. -// * i is a reference to the int in int_list. -// */ -// } -// -// Alternately, you can declare the loop variable first, -// so you can access it after the loop finishes. Obviously, -// if you do it this way, then the loop variable cannot be -// a reference. -// -// int i; -// BOOST_FOREACH(i, int_list) -// { ... } -// -#define BOOST_FOREACH(VAR, COL) \ - BOOST_FOREACH_PREAMBLE() \ - if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_col) = BOOST_FOREACH_CONTAIN(COL)) {} else \ - if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_cur) = BOOST_FOREACH_BEGIN(COL)) {} else \ - if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_end) = BOOST_FOREACH_END(COL)) {} else \ - for (bool BOOST_FOREACH_ID(_foreach_continue) = true; \ - BOOST_FOREACH_ID(_foreach_continue) && !BOOST_FOREACH_DONE(COL); \ - BOOST_FOREACH_ID(_foreach_continue) ? BOOST_FOREACH_NEXT(COL) : (void)0) \ - if (boost::foreach_detail_::set_false(BOOST_FOREACH_ID(_foreach_continue))) {} else \ - for (VAR = BOOST_FOREACH_DEREF(COL); !BOOST_FOREACH_ID(_foreach_continue); BOOST_FOREACH_ID(_foreach_continue) = true) - -/////////////////////////////////////////////////////////////////////////////// -// BOOST_REVERSE_FOREACH -// -// For iterating over collections in reverse order. In -// all other respects, BOOST_REVERSE_FOREACH is like -// BOOST_FOREACH. -// -#define BOOST_REVERSE_FOREACH(VAR, COL) \ - BOOST_FOREACH_PREAMBLE() \ - if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_col) = BOOST_FOREACH_CONTAIN(COL)) {} else \ - if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_cur) = BOOST_FOREACH_RBEGIN(COL)) {} else \ - if (boost::foreach_detail_::auto_any_t BOOST_FOREACH_ID(_foreach_end) = BOOST_FOREACH_REND(COL)) {} else \ - for (bool BOOST_FOREACH_ID(_foreach_continue) = true; \ - BOOST_FOREACH_ID(_foreach_continue) && !BOOST_FOREACH_RDONE(COL); \ - BOOST_FOREACH_ID(_foreach_continue) ? BOOST_FOREACH_RNEXT(COL) : (void)0) \ - if (boost::foreach_detail_::set_false(BOOST_FOREACH_ID(_foreach_continue))) {} else \ - for (VAR = BOOST_FOREACH_RDEREF(COL); !BOOST_FOREACH_ID(_foreach_continue); BOOST_FOREACH_ID(_foreach_continue) = true) - -#endif diff --git a/3rdParty/Boost/boost/function.hpp b/3rdParty/Boost/boost/function.hpp deleted file mode 100644 index bdb2769..0000000 --- a/3rdParty/Boost/boost/function.hpp +++ /dev/null @@ -1,66 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2001-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org/libs/function - -// William Kempf, Jesse Jones and Karl Nelson were all very helpful in the -// design of this library. - -#include // unary_function, binary_function - -#include -#include - -#ifndef BOOST_FUNCTION_MAX_ARGS -# define BOOST_FUNCTION_MAX_ARGS 10 -#endif // BOOST_FUNCTION_MAX_ARGS - -// Include the prologue here so that the use of file-level iteration -// in anything that may be included by function_template.hpp doesn't break -#include - -// Visual Age C++ doesn't handle the file iteration well -#if BOOST_WORKAROUND(__IBMCPP__, >= 500) -# if BOOST_FUNCTION_MAX_ARGS >= 0 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 1 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 2 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 3 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 4 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 5 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 6 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 7 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 8 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 9 -# include -# endif -# if BOOST_FUNCTION_MAX_ARGS >= 10 -# include -# endif -#else -// What is the '3' for? -# define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_FUNCTION_MAX_ARGS,)) -# include BOOST_PP_ITERATE() -# undef BOOST_PP_ITERATION_PARAMS_1 -#endif diff --git a/3rdParty/Boost/boost/function/detail/function_iterate.hpp b/3rdParty/Boost/boost/function/detail/function_iterate.hpp deleted file mode 100644 index 5370b36..0000000 --- a/3rdParty/Boost/boost/function/detail/function_iterate.hpp +++ /dev/null @@ -1,16 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org -#if !defined(BOOST_PP_IS_ITERATING) -# error Boost.Function - do not include this file! -#endif - -#define BOOST_FUNCTION_NUM_ARGS BOOST_PP_ITERATION() -#include -#undef BOOST_FUNCTION_NUM_ARGS - diff --git a/3rdParty/Boost/boost/function/detail/gen_maybe_include.pl b/3rdParty/Boost/boost/function/detail/gen_maybe_include.pl deleted file mode 100644 index d062920..0000000 --- a/3rdParty/Boost/boost/function/detail/gen_maybe_include.pl +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/perl -w -# -# Boost.Function library -# -# Copyright (C) 2001-2003 Douglas Gregor (gregod@cs.rpi.edu) -# -# Permission to copy, use, sell and distribute this software is granted -# provided this copyright notice appears in all copies. -# Permission to modify the code and to distribute modified code is granted -# provided this copyright notice appears in all copies, and a notice -# that the code was modified is included with the copyright notice. -# -# This software is provided "as is" without express or implied warranty, -# and with no claim as to its suitability for any purpose. -# -# For more information, see http://www.boost.org -use English; - -$max_args = $ARGV[0]; - -open (OUT, ">maybe_include.hpp") or die("Cannot write to maybe_include.hpp"); -for($on_arg = 0; $on_arg <= $max_args; ++$on_arg) { - if ($on_arg == 0) { - print OUT "#if"; - } - else { - print OUT "#elif"; - } - print OUT " BOOST_FUNCTION_NUM_ARGS == $on_arg\n"; - print OUT "# ifndef BOOST_FUNCTION_$on_arg\n"; - print OUT "# define BOOST_FUNCTION_$on_arg\n"; - print OUT "# include \n"; - print OUT "# endif\n"; -} -print OUT "#else\n"; -print OUT "# error Cannot handle Boost.Function objects that accept more than $max_args arguments!\n"; -print OUT "#endif\n"; diff --git a/3rdParty/Boost/boost/function/detail/maybe_include.hpp b/3rdParty/Boost/boost/function/detail/maybe_include.hpp deleted file mode 100644 index 92f71bb..0000000 --- a/3rdParty/Boost/boost/function/detail/maybe_include.hpp +++ /dev/null @@ -1,267 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#if BOOST_FUNCTION_NUM_ARGS == 0 -# ifndef BOOST_FUNCTION_0 -# define BOOST_FUNCTION_0 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 1 -# ifndef BOOST_FUNCTION_1 -# define BOOST_FUNCTION_1 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 2 -# ifndef BOOST_FUNCTION_2 -# define BOOST_FUNCTION_2 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 3 -# ifndef BOOST_FUNCTION_3 -# define BOOST_FUNCTION_3 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 4 -# ifndef BOOST_FUNCTION_4 -# define BOOST_FUNCTION_4 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 5 -# ifndef BOOST_FUNCTION_5 -# define BOOST_FUNCTION_5 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 6 -# ifndef BOOST_FUNCTION_6 -# define BOOST_FUNCTION_6 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 7 -# ifndef BOOST_FUNCTION_7 -# define BOOST_FUNCTION_7 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 8 -# ifndef BOOST_FUNCTION_8 -# define BOOST_FUNCTION_8 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 9 -# ifndef BOOST_FUNCTION_9 -# define BOOST_FUNCTION_9 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 10 -# ifndef BOOST_FUNCTION_10 -# define BOOST_FUNCTION_10 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 11 -# ifndef BOOST_FUNCTION_11 -# define BOOST_FUNCTION_11 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 12 -# ifndef BOOST_FUNCTION_12 -# define BOOST_FUNCTION_12 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 13 -# ifndef BOOST_FUNCTION_13 -# define BOOST_FUNCTION_13 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 14 -# ifndef BOOST_FUNCTION_14 -# define BOOST_FUNCTION_14 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 15 -# ifndef BOOST_FUNCTION_15 -# define BOOST_FUNCTION_15 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 16 -# ifndef BOOST_FUNCTION_16 -# define BOOST_FUNCTION_16 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 17 -# ifndef BOOST_FUNCTION_17 -# define BOOST_FUNCTION_17 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 18 -# ifndef BOOST_FUNCTION_18 -# define BOOST_FUNCTION_18 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 19 -# ifndef BOOST_FUNCTION_19 -# define BOOST_FUNCTION_19 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 20 -# ifndef BOOST_FUNCTION_20 -# define BOOST_FUNCTION_20 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 21 -# ifndef BOOST_FUNCTION_21 -# define BOOST_FUNCTION_21 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 22 -# ifndef BOOST_FUNCTION_22 -# define BOOST_FUNCTION_22 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 23 -# ifndef BOOST_FUNCTION_23 -# define BOOST_FUNCTION_23 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 24 -# ifndef BOOST_FUNCTION_24 -# define BOOST_FUNCTION_24 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 25 -# ifndef BOOST_FUNCTION_25 -# define BOOST_FUNCTION_25 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 26 -# ifndef BOOST_FUNCTION_26 -# define BOOST_FUNCTION_26 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 27 -# ifndef BOOST_FUNCTION_27 -# define BOOST_FUNCTION_27 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 28 -# ifndef BOOST_FUNCTION_28 -# define BOOST_FUNCTION_28 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 29 -# ifndef BOOST_FUNCTION_29 -# define BOOST_FUNCTION_29 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 30 -# ifndef BOOST_FUNCTION_30 -# define BOOST_FUNCTION_30 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 31 -# ifndef BOOST_FUNCTION_31 -# define BOOST_FUNCTION_31 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 32 -# ifndef BOOST_FUNCTION_32 -# define BOOST_FUNCTION_32 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 33 -# ifndef BOOST_FUNCTION_33 -# define BOOST_FUNCTION_33 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 34 -# ifndef BOOST_FUNCTION_34 -# define BOOST_FUNCTION_34 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 35 -# ifndef BOOST_FUNCTION_35 -# define BOOST_FUNCTION_35 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 36 -# ifndef BOOST_FUNCTION_36 -# define BOOST_FUNCTION_36 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 37 -# ifndef BOOST_FUNCTION_37 -# define BOOST_FUNCTION_37 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 38 -# ifndef BOOST_FUNCTION_38 -# define BOOST_FUNCTION_38 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 39 -# ifndef BOOST_FUNCTION_39 -# define BOOST_FUNCTION_39 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 40 -# ifndef BOOST_FUNCTION_40 -# define BOOST_FUNCTION_40 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 41 -# ifndef BOOST_FUNCTION_41 -# define BOOST_FUNCTION_41 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 42 -# ifndef BOOST_FUNCTION_42 -# define BOOST_FUNCTION_42 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 43 -# ifndef BOOST_FUNCTION_43 -# define BOOST_FUNCTION_43 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 44 -# ifndef BOOST_FUNCTION_44 -# define BOOST_FUNCTION_44 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 45 -# ifndef BOOST_FUNCTION_45 -# define BOOST_FUNCTION_45 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 46 -# ifndef BOOST_FUNCTION_46 -# define BOOST_FUNCTION_46 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 47 -# ifndef BOOST_FUNCTION_47 -# define BOOST_FUNCTION_47 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 48 -# ifndef BOOST_FUNCTION_48 -# define BOOST_FUNCTION_48 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 49 -# ifndef BOOST_FUNCTION_49 -# define BOOST_FUNCTION_49 -# include -# endif -#elif BOOST_FUNCTION_NUM_ARGS == 50 -# ifndef BOOST_FUNCTION_50 -# define BOOST_FUNCTION_50 -# include -# endif -#else -# error Cannot handle Boost.Function objects that accept more than 50 arguments! -#endif diff --git a/3rdParty/Boost/boost/function/detail/prologue.hpp b/3rdParty/Boost/boost/function/detail/prologue.hpp deleted file mode 100644 index 53d0f05..0000000 --- a/3rdParty/Boost/boost/function/detail/prologue.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#ifndef BOOST_FUNCTION_PROLOGUE_HPP -#define BOOST_FUNCTION_PROLOGUE_HPP -# include -# include -# include // unary_function, binary_function -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#endif // BOOST_FUNCTION_PROLOGUE_HPP diff --git a/3rdParty/Boost/boost/function/function0.hpp b/3rdParty/Boost/boost/function/function0.hpp deleted file mode 100644 index 65a02e5..0000000 --- a/3rdParty/Boost/boost/function/function0.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 0 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function1.hpp b/3rdParty/Boost/boost/function/function1.hpp deleted file mode 100644 index 9089715..0000000 --- a/3rdParty/Boost/boost/function/function1.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 1 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function10.hpp b/3rdParty/Boost/boost/function/function10.hpp deleted file mode 100644 index 6562724..0000000 --- a/3rdParty/Boost/boost/function/function10.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 10 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function2.hpp b/3rdParty/Boost/boost/function/function2.hpp deleted file mode 100644 index dc8bf97..0000000 --- a/3rdParty/Boost/boost/function/function2.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 2 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function3.hpp b/3rdParty/Boost/boost/function/function3.hpp deleted file mode 100644 index 19d1a49..0000000 --- a/3rdParty/Boost/boost/function/function3.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 3 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function4.hpp b/3rdParty/Boost/boost/function/function4.hpp deleted file mode 100644 index f3349e2..0000000 --- a/3rdParty/Boost/boost/function/function4.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 4 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function5.hpp b/3rdParty/Boost/boost/function/function5.hpp deleted file mode 100644 index a1305eb..0000000 --- a/3rdParty/Boost/boost/function/function5.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 5 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function6.hpp b/3rdParty/Boost/boost/function/function6.hpp deleted file mode 100644 index 1f60914..0000000 --- a/3rdParty/Boost/boost/function/function6.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 6 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function7.hpp b/3rdParty/Boost/boost/function/function7.hpp deleted file mode 100644 index 68542ed..0000000 --- a/3rdParty/Boost/boost/function/function7.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 7 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function8.hpp b/3rdParty/Boost/boost/function/function8.hpp deleted file mode 100644 index cf2c376..0000000 --- a/3rdParty/Boost/boost/function/function8.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 8 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function9.hpp b/3rdParty/Boost/boost/function/function9.hpp deleted file mode 100644 index 590e088..0000000 --- a/3rdParty/Boost/boost/function/function9.hpp +++ /dev/null @@ -1,12 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2002-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org - -#define BOOST_FUNCTION_NUM_ARGS 9 -#include -#undef BOOST_FUNCTION_NUM_ARGS diff --git a/3rdParty/Boost/boost/function/function_base.hpp b/3rdParty/Boost/boost/function/function_base.hpp deleted file mode 100644 index 6612fb8..0000000 --- a/3rdParty/Boost/boost/function/function_base.hpp +++ /dev/null @@ -1,880 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2001-2006 -// Copyright Emil Dotchevski 2007 -// 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) - -// For more information, see http://www.boost.org - -#ifndef BOOST_FUNCTION_BASE_HEADER -#define BOOST_FUNCTION_BASE_HEADER - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifndef BOOST_NO_SFINAE -# include "boost/utility/enable_if.hpp" -#else -# include "boost/mpl/bool.hpp" -#endif -#include -#include - -#if defined(BOOST_MSVC) -# pragma warning( push ) -# pragma warning( disable : 4793 ) // complaint about native code generation -# pragma warning( disable : 4127 ) // "conditional expression is constant" -#endif - -// Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info. -#ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE -// Embedded VC++ does not have type_info in namespace std -# define BOOST_FUNCTION_STD_NS -#else -# define BOOST_FUNCTION_STD_NS std -#endif - -// Borrowed from Boost.Python library: determines the cases where we -// need to use std::type_info::name to compare instead of operator==. -# if (defined(__GNUC__) && __GNUC__ >= 3) \ - || defined(_AIX) \ - || ( defined(__sgi) && defined(__host_mips)) -# include -# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) \ - (std::strcmp((X).name(),(Y).name()) == 0) -# else -# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y)) -#endif - -#if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 || defined(__ICL) && __ICL <= 600 || defined(__MWERKS__) && __MWERKS__ < 0x2406 && !defined(BOOST_STRICT_CONFIG) -# define BOOST_FUNCTION_TARGET_FIX(x) x -#else -# define BOOST_FUNCTION_TARGET_FIX(x) -#endif // not MSVC - -#if !BOOST_WORKAROUND(__BORLANDC__, < 0x5A0) -# define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \ - typename ::boost::enable_if_c<(::boost::type_traits::ice_not< \ - (::boost::is_integral::value)>::value), \ - Type>::type -#else -// BCC doesn't recognize this depends on a template argument and complains -// about the use of 'typename' -# define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \ - ::boost::enable_if_c<(::boost::type_traits::ice_not< \ - (::boost::is_integral::value)>::value), \ - Type>::type -#endif - -namespace boost { - namespace detail { - namespace function { - class X; - - /** - * A buffer used to store small function objects in - * boost::function. It is a union containing function pointers, - * object pointers, and a structure that resembles a bound - * member function pointer. - */ - union function_buffer - { - // For pointers to function objects - mutable void* obj_ptr; - - // For pointers to std::type_info objects - struct type_t { - // (get_functor_type_tag, check_functor_type_tag). - const BOOST_FUNCTION_STD_NS::type_info* type; - - // Whether the type is const-qualified. - bool const_qualified; - // Whether the type is volatile-qualified. - bool volatile_qualified; - } type; - - // For function pointers of all kinds - mutable void (*func_ptr)(); - - // For bound member pointers - struct bound_memfunc_ptr_t { - void (X::*memfunc_ptr)(int); - void* obj_ptr; - } bound_memfunc_ptr; - - // For references to function objects. We explicitly keep - // track of the cv-qualifiers on the object referenced. - struct obj_ref_t { - mutable void* obj_ptr; - bool is_const_qualified; - bool is_volatile_qualified; - } obj_ref; - - // To relax aliasing constraints - mutable char data; - }; - - /** - * The unusable class is a placeholder for unused function arguments - * It is also completely unusable except that it constructable from - * anything. This helps compilers without partial specialization to - * handle Boost.Function objects returning void. - */ - struct unusable - { - unusable() {} - template unusable(const T&) {} - }; - - /* Determine the return type. This supports compilers that do not support - * void returns or partial specialization by silently changing the return - * type to "unusable". - */ - template struct function_return_type { typedef T type; }; - - template<> - struct function_return_type - { - typedef unusable type; - }; - - // The operation type to perform on the given functor/function pointer - enum functor_manager_operation_type { - clone_functor_tag, - move_functor_tag, - destroy_functor_tag, - check_functor_type_tag, - get_functor_type_tag - }; - - // Tags used to decide between different types of functions - struct function_ptr_tag {}; - struct function_obj_tag {}; - struct member_ptr_tag {}; - struct function_obj_ref_tag {}; - - template - class get_function_tag - { - typedef typename mpl::if_c<(is_pointer::value), - function_ptr_tag, - function_obj_tag>::type ptr_or_obj_tag; - - typedef typename mpl::if_c<(is_member_pointer::value), - member_ptr_tag, - ptr_or_obj_tag>::type ptr_or_obj_or_mem_tag; - - typedef typename mpl::if_c<(is_reference_wrapper::value), - function_obj_ref_tag, - ptr_or_obj_or_mem_tag>::type or_ref_tag; - - public: - typedef or_ref_tag type; - }; - - // The trivial manager does nothing but return the same pointer (if we - // are cloning) or return the null pointer (if we are deleting). - template - struct reference_manager - { - static inline void - manage(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op) - { - switch (op) { - case clone_functor_tag: - out_buffer.obj_ref.obj_ptr = in_buffer.obj_ref.obj_ptr; - return; - - case move_functor_tag: - out_buffer.obj_ref.obj_ptr = in_buffer.obj_ref.obj_ptr; - in_buffer.obj_ref.obj_ptr = 0; - return; - - case destroy_functor_tag: - out_buffer.obj_ref.obj_ptr = 0; - return; - - case check_functor_type_tag: - { - const BOOST_FUNCTION_STD_NS::type_info& check_type - = *out_buffer.type.type; - - // Check whether we have the same type. We can add - // cv-qualifiers, but we can't take them away. - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(F)) - && (!in_buffer.obj_ref.is_const_qualified - || out_buffer.type.const_qualified) - && (!in_buffer.obj_ref.is_volatile_qualified - || out_buffer.type.volatile_qualified)) - out_buffer.obj_ptr = in_buffer.obj_ref.obj_ptr; - else - out_buffer.obj_ptr = 0; - } - return; - - case get_functor_type_tag: - out_buffer.type.type = &typeid(F); - out_buffer.type.const_qualified = in_buffer.obj_ref.is_const_qualified; - out_buffer.type.volatile_qualified = in_buffer.obj_ref.is_volatile_qualified; - return; - } - } - }; - - /** - * Determine if boost::function can use the small-object - * optimization with the function object type F. - */ - template - struct function_allows_small_object_optimization - { - BOOST_STATIC_CONSTANT - (bool, - value = ((sizeof(F) <= sizeof(function_buffer) && - (alignment_of::value - % alignment_of::value == 0)))); - }; - - template - struct functor_wrapper: public F, public A - { - functor_wrapper( F f, A a ): - F(f), - A(a) - { - } - }; - - /** - * The functor_manager class contains a static function "manage" which - * can clone or destroy the given function/function object pointer. - */ - template - struct functor_manager_common - { - typedef Functor functor_type; - - // Function pointers - static inline void - manage_ptr(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op) - { - if (op == clone_functor_tag) - out_buffer.func_ptr = in_buffer.func_ptr; - else if (op == move_functor_tag) { - out_buffer.func_ptr = in_buffer.func_ptr; - in_buffer.func_ptr = 0; - } else if (op == destroy_functor_tag) - out_buffer.func_ptr = 0; - else if (op == check_functor_type_tag) { - const BOOST_FUNCTION_STD_NS::type_info& check_type - = *out_buffer.type.type; - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor))) - out_buffer.obj_ptr = &in_buffer.func_ptr; - else - out_buffer.obj_ptr = 0; - } else /* op == get_functor_type_tag */ { - out_buffer.type.type = &typeid(Functor); - out_buffer.type.const_qualified = false; - out_buffer.type.volatile_qualified = false; - } - } - - // Function objects that fit in the small-object buffer. - static inline void - manage_small(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op) - { - if (op == clone_functor_tag || op == move_functor_tag) { - const functor_type* in_functor = - reinterpret_cast(&in_buffer.data); - new ((void*)&out_buffer.data) functor_type(*in_functor); - - if (op == move_functor_tag) { - reinterpret_cast(&in_buffer.data)->~Functor(); - } - } else if (op == destroy_functor_tag) { - // Some compilers (Borland, vc6, ...) are unhappy with ~functor_type. - reinterpret_cast(&out_buffer.data)->~Functor(); - } else if (op == check_functor_type_tag) { - const BOOST_FUNCTION_STD_NS::type_info& check_type - = *out_buffer.type.type; - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor))) - out_buffer.obj_ptr = &in_buffer.data; - else - out_buffer.obj_ptr = 0; - } else /* op == get_functor_type_tag */ { - out_buffer.type.type = &typeid(Functor); - out_buffer.type.const_qualified = false; - out_buffer.type.volatile_qualified = false; - } - } - }; - - template - struct functor_manager - { - private: - typedef Functor functor_type; - - // Function pointers - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, function_ptr_tag) - { - functor_manager_common::manage_ptr(in_buffer,out_buffer,op); - } - - // Function objects that fit in the small-object buffer. - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::true_) - { - functor_manager_common::manage_small(in_buffer,out_buffer,op); - } - - // Function objects that require heap allocation - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::false_) - { - if (op == clone_functor_tag) { - // Clone the functor - // GCC 2.95.3 gets the CV qualifiers wrong here, so we - // can't do the static_cast that we should do. - const functor_type* f = - (const functor_type*)(in_buffer.obj_ptr); - functor_type* new_f = new functor_type(*f); - out_buffer.obj_ptr = new_f; - } else if (op == move_functor_tag) { - out_buffer.obj_ptr = in_buffer.obj_ptr; - in_buffer.obj_ptr = 0; - } else if (op == destroy_functor_tag) { - /* Cast from the void pointer to the functor pointer type */ - functor_type* f = - static_cast(out_buffer.obj_ptr); - delete f; - out_buffer.obj_ptr = 0; - } else if (op == check_functor_type_tag) { - const BOOST_FUNCTION_STD_NS::type_info& check_type - = *out_buffer.type.type; - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor))) - out_buffer.obj_ptr = in_buffer.obj_ptr; - else - out_buffer.obj_ptr = 0; - } else /* op == get_functor_type_tag */ { - out_buffer.type.type = &typeid(Functor); - out_buffer.type.const_qualified = false; - out_buffer.type.volatile_qualified = false; - } - } - - // For function objects, we determine whether the function - // object can use the small-object optimization buffer or - // whether we need to allocate it on the heap. - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, function_obj_tag) - { - manager(in_buffer, out_buffer, op, - mpl::bool_<(function_allows_small_object_optimization::value)>()); - } - - // For member pointers, we use the small-object optimization buffer. - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, member_ptr_tag) - { - manager(in_buffer, out_buffer, op, mpl::true_()); - } - - public: - /* Dispatch to an appropriate manager based on whether we have a - function pointer or a function object pointer. */ - static inline void - manage(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op) - { - typedef typename get_function_tag::type tag_type; - switch (op) { - case get_functor_type_tag: - out_buffer.type.type = &typeid(functor_type); - out_buffer.type.const_qualified = false; - out_buffer.type.volatile_qualified = false; - return; - - default: - manager(in_buffer, out_buffer, op, tag_type()); - return; - } - } - }; - - template - struct functor_manager_a - { - private: - typedef Functor functor_type; - - // Function pointers - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, function_ptr_tag) - { - functor_manager_common::manage_ptr(in_buffer,out_buffer,op); - } - - // Function objects that fit in the small-object buffer. - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::true_) - { - functor_manager_common::manage_small(in_buffer,out_buffer,op); - } - - // Function objects that require heap allocation - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, mpl::false_) - { - typedef functor_wrapper functor_wrapper_type; - typedef typename Allocator::template rebind::other - wrapper_allocator_type; - typedef typename wrapper_allocator_type::pointer wrapper_allocator_pointer_type; - - if (op == clone_functor_tag) { - // Clone the functor - // GCC 2.95.3 gets the CV qualifiers wrong here, so we - // can't do the static_cast that we should do. - const functor_wrapper_type* f = - (const functor_wrapper_type*)(in_buffer.obj_ptr); - wrapper_allocator_type wrapper_allocator(static_cast(*f)); - wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); - wrapper_allocator.construct(copy, *f); - - // Get back to the original pointer type - functor_wrapper_type* new_f = static_cast(copy); - out_buffer.obj_ptr = new_f; - } else if (op == move_functor_tag) { - out_buffer.obj_ptr = in_buffer.obj_ptr; - in_buffer.obj_ptr = 0; - } else if (op == destroy_functor_tag) { - /* Cast from the void pointer to the functor_wrapper_type */ - functor_wrapper_type* victim = - static_cast(in_buffer.obj_ptr); - wrapper_allocator_type wrapper_allocator(static_cast(*victim)); - wrapper_allocator.destroy(victim); - wrapper_allocator.deallocate(victim,1); - out_buffer.obj_ptr = 0; - } else if (op == check_functor_type_tag) { - const BOOST_FUNCTION_STD_NS::type_info& check_type - = *out_buffer.type.type; - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor))) - out_buffer.obj_ptr = in_buffer.obj_ptr; - else - out_buffer.obj_ptr = 0; - } else /* op == get_functor_type_tag */ { - out_buffer.type.type = &typeid(Functor); - out_buffer.type.const_qualified = false; - out_buffer.type.volatile_qualified = false; - } - } - - // For function objects, we determine whether the function - // object can use the small-object optimization buffer or - // whether we need to allocate it on the heap. - static inline void - manager(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op, function_obj_tag) - { - manager(in_buffer, out_buffer, op, - mpl::bool_<(function_allows_small_object_optimization::value)>()); - } - - public: - /* Dispatch to an appropriate manager based on whether we have a - function pointer or a function object pointer. */ - static inline void - manage(const function_buffer& in_buffer, function_buffer& out_buffer, - functor_manager_operation_type op) - { - typedef typename get_function_tag::type tag_type; - switch (op) { - case get_functor_type_tag: - out_buffer.type.type = &typeid(functor_type); - out_buffer.type.const_qualified = false; - out_buffer.type.volatile_qualified = false; - return; - - default: - manager(in_buffer, out_buffer, op, tag_type()); - return; - } - } - }; - - // A type that is only used for comparisons against zero - struct useless_clear_type {}; - -#ifdef BOOST_NO_SFINAE - // These routines perform comparisons between a Boost.Function - // object and an arbitrary function object (when the last - // parameter is mpl::bool_) or against zero (when the - // last parameter is mpl::bool_). They are only necessary - // for compilers that don't support SFINAE. - template - bool - compare_equal(const Function& f, const Functor&, int, mpl::bool_) - { return f.empty(); } - - template - bool - compare_not_equal(const Function& f, const Functor&, int, - mpl::bool_) - { return !f.empty(); } - - template - bool - compare_equal(const Function& f, const Functor& g, long, - mpl::bool_) - { - if (const Functor* fp = f.template target()) - return function_equal(*fp, g); - else return false; - } - - template - bool - compare_equal(const Function& f, const reference_wrapper& g, - int, mpl::bool_) - { - if (const Functor* fp = f.template target()) - return fp == g.get_pointer(); - else return false; - } - - template - bool - compare_not_equal(const Function& f, const Functor& g, long, - mpl::bool_) - { - if (const Functor* fp = f.template target()) - return !function_equal(*fp, g); - else return true; - } - - template - bool - compare_not_equal(const Function& f, - const reference_wrapper& g, int, - mpl::bool_) - { - if (const Functor* fp = f.template target()) - return fp != g.get_pointer(); - else return true; - } -#endif // BOOST_NO_SFINAE - - /** - * Stores the "manager" portion of the vtable for a - * boost::function object. - */ - struct vtable_base - { - void (*manager)(const function_buffer& in_buffer, - function_buffer& out_buffer, - functor_manager_operation_type op); - }; - } // end namespace function - } // end namespace detail - -/** - * The function_base class contains the basic elements needed for the - * function1, function2, function3, etc. classes. It is common to all - * functions (and as such can be used to tell if we have one of the - * functionN objects). - */ -class function_base -{ -public: - function_base() : vtable(0) { } - - /** Determine if the function is empty (i.e., has no target). */ - bool empty() const { return !vtable; } - - /** Retrieve the type of the stored function object, or typeid(void) - if this is empty. */ - const BOOST_FUNCTION_STD_NS::type_info& target_type() const - { - if (!vtable) return typeid(void); - - detail::function::function_buffer type; - vtable->manager(functor, type, detail::function::get_functor_type_tag); - return *type.type.type; - } - - template - Functor* target() - { - if (!vtable) return 0; - - detail::function::function_buffer type_result; - type_result.type.type = &typeid(Functor); - type_result.type.const_qualified = is_const::value; - type_result.type.volatile_qualified = is_volatile::value; - vtable->manager(functor, type_result, - detail::function::check_functor_type_tag); - return static_cast(type_result.obj_ptr); - } - - template -#if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300) - const Functor* target( Functor * = 0 ) const -#else - const Functor* target() const -#endif - { - if (!vtable) return 0; - - detail::function::function_buffer type_result; - type_result.type.type = &typeid(Functor); - type_result.type.const_qualified = true; - type_result.type.volatile_qualified = is_volatile::value; - vtable->manager(functor, type_result, - detail::function::check_functor_type_tag); - // GCC 2.95.3 gets the CV qualifiers wrong here, so we - // can't do the static_cast that we should do. - return (const Functor*)(type_result.obj_ptr); - } - - template - bool contains(const F& f) const - { -#if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300) - if (const F* fp = this->target( (F*)0 )) -#else - if (const F* fp = this->template target()) -#endif - { - return function_equal(*fp, f); - } else { - return false; - } - } - -#if defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3 - // GCC 3.3 and newer cannot copy with the global operator==, due to - // problems with instantiation of function return types before it - // has been verified that the argument types match up. - template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator==(Functor g) const - { - if (const Functor* fp = target()) - return function_equal(*fp, g); - else return false; - } - - template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator!=(Functor g) const - { - if (const Functor* fp = target()) - return !function_equal(*fp, g); - else return true; - } -#endif - -public: // should be protected, but GCC 2.95.3 will fail to allow access - detail::function::vtable_base* vtable; - mutable detail::function::function_buffer functor; -}; - -/** - * The bad_function_call exception class is thrown when a boost::function - * object is invoked - */ -class bad_function_call : public std::runtime_error -{ -public: - bad_function_call() : std::runtime_error("call to empty boost::function") {} -}; - -#ifndef BOOST_NO_SFINAE -inline bool operator==(const function_base& f, - detail::function::useless_clear_type*) -{ - return f.empty(); -} - -inline bool operator!=(const function_base& f, - detail::function::useless_clear_type*) -{ - return !f.empty(); -} - -inline bool operator==(detail::function::useless_clear_type*, - const function_base& f) -{ - return f.empty(); -} - -inline bool operator!=(detail::function::useless_clear_type*, - const function_base& f) -{ - return !f.empty(); -} -#endif - -#ifdef BOOST_NO_SFINAE -// Comparisons between boost::function objects and arbitrary function objects -template - inline bool operator==(const function_base& f, Functor g) - { - typedef mpl::bool_<(is_integral::value)> integral; - return detail::function::compare_equal(f, g, 0, integral()); - } - -template - inline bool operator==(Functor g, const function_base& f) - { - typedef mpl::bool_<(is_integral::value)> integral; - return detail::function::compare_equal(f, g, 0, integral()); - } - -template - inline bool operator!=(const function_base& f, Functor g) - { - typedef mpl::bool_<(is_integral::value)> integral; - return detail::function::compare_not_equal(f, g, 0, integral()); - } - -template - inline bool operator!=(Functor g, const function_base& f) - { - typedef mpl::bool_<(is_integral::value)> integral; - return detail::function::compare_not_equal(f, g, 0, integral()); - } -#else - -# if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ <= 3) -// Comparisons between boost::function objects and arbitrary function -// objects. GCC 3.3 and before has an obnoxious bug that prevents this -// from working. -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator==(const function_base& f, Functor g) - { - if (const Functor* fp = f.template target()) - return function_equal(*fp, g); - else return false; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator==(Functor g, const function_base& f) - { - if (const Functor* fp = f.template target()) - return function_equal(g, *fp); - else return false; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator!=(const function_base& f, Functor g) - { - if (const Functor* fp = f.template target()) - return !function_equal(*fp, g); - else return true; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator!=(Functor g, const function_base& f) - { - if (const Functor* fp = f.template target()) - return !function_equal(g, *fp); - else return true; - } -# endif - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator==(const function_base& f, reference_wrapper g) - { - if (const Functor* fp = f.template target()) - return fp == g.get_pointer(); - else return false; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator==(reference_wrapper g, const function_base& f) - { - if (const Functor* fp = f.template target()) - return g.get_pointer() == fp; - else return false; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator!=(const function_base& f, reference_wrapper g) - { - if (const Functor* fp = f.template target()) - return fp != g.get_pointer(); - else return true; - } - -template - BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor, bool) - operator!=(reference_wrapper g, const function_base& f) - { - if (const Functor* fp = f.template target()) - return g.get_pointer() != fp; - else return true; - } - -#endif // Compiler supporting SFINAE - -namespace detail { - namespace function { - inline bool has_empty_target(const function_base* f) - { - return f->empty(); - } - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1310) - inline bool has_empty_target(const void*) - { - return false; - } -#else - inline bool has_empty_target(...) - { - return false; - } -#endif - } // end namespace function -} // end namespace detail -} // end namespace boost - -#undef BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL -#undef BOOST_FUNCTION_COMPARE_TYPE_ID - -#endif // BOOST_FUNCTION_BASE_HEADER diff --git a/3rdParty/Boost/boost/function/function_fwd.hpp b/3rdParty/Boost/boost/function/function_fwd.hpp deleted file mode 100644 index d2f713a..0000000 --- a/3rdParty/Boost/boost/function/function_fwd.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// Boost.Function library -// Copyright (C) Douglas Gregor 2008 -// -// 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) -// -// For more information, see http://www.boost.org -#ifndef BOOST_FUNCTION_FWD_HPP -#define BOOST_FUNCTION_FWD_HPP -#include - -#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730 && !defined(BOOST_STRICT_CONFIG) -// Work around a compiler bug. -// boost::python::objects::function has to be seen by the compiler before the -// boost::function class template. -namespace boost { namespace python { namespace objects { - class function; -}}} -#endif - -#if defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) \ - || !(BOOST_STRICT_CONFIG || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540) -# define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX -#endif - -namespace boost { - class bad_function_call; - -#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX) - // Preferred syntax - template class function; - - template - inline void swap(function& f1, function& f2) - { - f1.swap(f2); - } -#endif // have partial specialization - - // Portable syntax - template class function0; - template class function1; - template class function2; - template class function3; - template - class function4; - template - class function5; - template - class function6; - template - class function7; - template - class function8; - template - class function9; - template - class function10; -} - -#endif diff --git a/3rdParty/Boost/boost/function/function_template.hpp b/3rdParty/Boost/boost/function/function_template.hpp deleted file mode 100644 index 584abe9..0000000 --- a/3rdParty/Boost/boost/function/function_template.hpp +++ /dev/null @@ -1,1134 +0,0 @@ -// Boost.Function library - -// Copyright Douglas Gregor 2001-2006 -// Copyright Emil Dotchevski 2007 -// 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) - -// For more information, see http://www.boost.org - -// Note: this header is a header template and must NOT have multiple-inclusion -// protection. -#include - -#if defined(BOOST_MSVC) -# pragma warning( push ) -# pragma warning( disable : 4127 ) // "conditional expression is constant" -#endif - -#define BOOST_FUNCTION_TEMPLATE_PARMS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, typename T) - -#define BOOST_FUNCTION_TEMPLATE_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, T) - -#define BOOST_FUNCTION_PARM(J,I,D) BOOST_PP_CAT(T,I) BOOST_PP_CAT(a,I) - -#define BOOST_FUNCTION_PARMS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_PARM,BOOST_PP_EMPTY) - -#define BOOST_FUNCTION_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, a) - -#define BOOST_FUNCTION_ARG_TYPE(J,I,D) \ - typedef BOOST_PP_CAT(T,I) BOOST_PP_CAT(BOOST_PP_CAT(arg, BOOST_PP_INC(I)),_type); - -#define BOOST_FUNCTION_ARG_TYPES BOOST_PP_REPEAT(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG_TYPE,BOOST_PP_EMPTY) - -// Comma if nonzero number of arguments -#if BOOST_FUNCTION_NUM_ARGS == 0 -# define BOOST_FUNCTION_COMMA -#else -# define BOOST_FUNCTION_COMMA , -#endif // BOOST_FUNCTION_NUM_ARGS > 0 - -// Class names used in this version of the code -#define BOOST_FUNCTION_FUNCTION BOOST_JOIN(function,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_FUNCTION_INVOKER \ - BOOST_JOIN(function_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER \ - BOOST_JOIN(void_function_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_FUNCTION_OBJ_INVOKER \ - BOOST_JOIN(function_obj_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER \ - BOOST_JOIN(void_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_FUNCTION_REF_INVOKER \ - BOOST_JOIN(function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER \ - BOOST_JOIN(void_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_MEMBER_INVOKER \ - BOOST_JOIN(function_mem_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VOID_MEMBER_INVOKER \ - BOOST_JOIN(function_void_mem_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_GET_FUNCTION_INVOKER \ - BOOST_JOIN(get_function_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER \ - BOOST_JOIN(get_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER \ - BOOST_JOIN(get_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_GET_MEMBER_INVOKER \ - BOOST_JOIN(get_member_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_GET_INVOKER \ - BOOST_JOIN(get_invoker,BOOST_FUNCTION_NUM_ARGS) -#define BOOST_FUNCTION_VTABLE BOOST_JOIN(basic_vtable,BOOST_FUNCTION_NUM_ARGS) - -#ifndef BOOST_NO_VOID_RETURNS -# define BOOST_FUNCTION_VOID_RETURN_TYPE void -# define BOOST_FUNCTION_RETURN(X) X -#else -# define BOOST_FUNCTION_VOID_RETURN_TYPE boost::detail::function::unusable -# define BOOST_FUNCTION_RETURN(X) X; return BOOST_FUNCTION_VOID_RETURN_TYPE () -#endif - -namespace boost { - namespace detail { - namespace function { - template< - typename FunctionPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_FUNCTION_INVOKER - { - static R invoke(function_buffer& function_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - { - FunctionPtr f = reinterpret_cast(function_ptr.func_ptr); - return f(BOOST_FUNCTION_ARGS); - } - }; - - template< - typename FunctionPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_VOID_FUNCTION_INVOKER - { - static BOOST_FUNCTION_VOID_RETURN_TYPE - invoke(function_buffer& function_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - FunctionPtr f = reinterpret_cast(function_ptr.func_ptr); - BOOST_FUNCTION_RETURN(f(BOOST_FUNCTION_ARGS)); - } - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_FUNCTION_OBJ_INVOKER - { - static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - FunctionObj* f; - if (function_allows_small_object_optimization::value) - f = reinterpret_cast(&function_obj_ptr.data); - else - f = reinterpret_cast(function_obj_ptr.obj_ptr); - return (*f)(BOOST_FUNCTION_ARGS); - } - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER - { - static BOOST_FUNCTION_VOID_RETURN_TYPE - invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - FunctionObj* f; - if (function_allows_small_object_optimization::value) - f = reinterpret_cast(&function_obj_ptr.data); - else - f = reinterpret_cast(function_obj_ptr.obj_ptr); - BOOST_FUNCTION_RETURN((*f)(BOOST_FUNCTION_ARGS)); - } - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_FUNCTION_REF_INVOKER - { - static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - FunctionObj* f = - reinterpret_cast(function_obj_ptr.obj_ptr); - return (*f)(BOOST_FUNCTION_ARGS); - } - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER - { - static BOOST_FUNCTION_VOID_RETURN_TYPE - invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - FunctionObj* f = - reinterpret_cast(function_obj_ptr.obj_ptr); - BOOST_FUNCTION_RETURN((*f)(BOOST_FUNCTION_ARGS)); - } - }; - -#if BOOST_FUNCTION_NUM_ARGS > 0 - /* Handle invocation of member pointers. */ - template< - typename MemberPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_MEMBER_INVOKER - { - static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - MemberPtr* f = - reinterpret_cast(&function_obj_ptr.data); - return boost::mem_fn(*f)(BOOST_FUNCTION_ARGS); - } - }; - - template< - typename MemberPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_VOID_MEMBER_INVOKER - { - static BOOST_FUNCTION_VOID_RETURN_TYPE - invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA - BOOST_FUNCTION_PARMS) - - { - MemberPtr* f = - reinterpret_cast(&function_obj_ptr.data); - BOOST_FUNCTION_RETURN(boost::mem_fn(*f)(BOOST_FUNCTION_ARGS)); - } - }; -#endif - - template< - typename FunctionPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_GET_FUNCTION_INVOKER - { - typedef typename mpl::if_c<(is_void::value), - BOOST_FUNCTION_VOID_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >, - BOOST_FUNCTION_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - > - >::type type; - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER - { - typedef typename mpl::if_c<(is_void::value), - BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >, - BOOST_FUNCTION_FUNCTION_OBJ_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - > - >::type type; - }; - - template< - typename FunctionObj, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER - { - typedef typename mpl::if_c<(is_void::value), - BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >, - BOOST_FUNCTION_FUNCTION_REF_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - > - >::type type; - }; - -#if BOOST_FUNCTION_NUM_ARGS > 0 - /* Retrieve the appropriate invoker for a member pointer. */ - template< - typename MemberPtr, - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - struct BOOST_FUNCTION_GET_MEMBER_INVOKER - { - typedef typename mpl::if_c<(is_void::value), - BOOST_FUNCTION_VOID_MEMBER_INVOKER< - MemberPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >, - BOOST_FUNCTION_MEMBER_INVOKER< - MemberPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - > - >::type type; - }; -#endif - - /* Given the tag returned by get_function_tag, retrieve the - actual invoker that will be used for the given function - object. - - Each specialization contains an "apply" nested class template - that accepts the function object, return type, function - argument types, and allocator. The resulting "apply" class - contains two typedefs, "invoker_type" and "manager_type", - which correspond to the invoker and manager types. */ - template - struct BOOST_FUNCTION_GET_INVOKER { }; - - /* Retrieve the invoker for a function pointer. */ - template<> - struct BOOST_FUNCTION_GET_INVOKER - { - template - struct apply - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager manager_type; - }; - - template - struct apply_a - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER< - FunctionPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager manager_type; - }; - }; - -#if BOOST_FUNCTION_NUM_ARGS > 0 - /* Retrieve the invoker for a member pointer. */ - template<> - struct BOOST_FUNCTION_GET_INVOKER - { - template - struct apply - { - typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER< - MemberPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager manager_type; - }; - - template - struct apply_a - { - typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER< - MemberPtr, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager manager_type; - }; - }; -#endif - - /* Retrieve the invoker for a function object. */ - template<> - struct BOOST_FUNCTION_GET_INVOKER - { - template - struct apply - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager manager_type; - }; - - template - struct apply_a - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER< - FunctionObj, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef functor_manager_a manager_type; - }; - }; - - /* Retrieve the invoker for a reference to a function object. */ - template<> - struct BOOST_FUNCTION_GET_INVOKER - { - template - struct apply - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER< - typename RefWrapper::type, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef reference_manager manager_type; - }; - - template - struct apply_a - { - typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER< - typename RefWrapper::type, - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >::type - invoker_type; - - typedef reference_manager manager_type; - }; - }; - - - /** - * vtable for a specific boost::function instance. This - * structure must be an aggregate so that we can use static - * initialization in boost::function's assign_to and assign_to_a - * members. It therefore cannot have any constructors, - * destructors, base classes, etc. - */ - template - struct BOOST_FUNCTION_VTABLE - { -#ifndef BOOST_NO_VOID_RETURNS - typedef R result_type; -#else - typedef typename function_return_type::type result_type; -#endif // BOOST_NO_VOID_RETURNS - - typedef result_type (*invoker_type)(function_buffer& - BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS); - - template - bool assign_to(F f, function_buffer& functor) - { - typedef typename get_function_tag::type tag; - return assign_to(f, functor, tag()); - } - template - bool assign_to_a(F f, function_buffer& functor, Allocator a) - { - typedef typename get_function_tag::type tag; - return assign_to_a(f, functor, a, tag()); - } - - void clear(function_buffer& functor) - { - if (base.manager) - base.manager(functor, functor, destroy_functor_tag); - } - - private: - // Function pointers - template - bool - assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag) - { - this->clear(functor); - if (f) { - // should be a reinterpret cast, but some compilers insist - // on giving cv-qualifiers to free functions - functor.func_ptr = (void (*)())(f); - return true; - } else { - return false; - } - } - template - bool - assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) - { - return assign_to(f,functor,function_ptr_tag()); - } - - // Member pointers -#if BOOST_FUNCTION_NUM_ARGS > 0 - template - bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) - { - // DPG TBD: Add explicit support for member function - // objects, so we invoke through mem_fn() but we retain the - // right target_type() values. - if (f) { - this->assign_to(mem_fn(f), functor); - return true; - } else { - return false; - } - } - template - bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) - { - // DPG TBD: Add explicit support for member function - // objects, so we invoke through mem_fn() but we retain the - // right target_type() values. - if (f) { - this->assign_to_a(mem_fn(f), functor, a); - return true; - } else { - return false; - } - } -#endif // BOOST_FUNCTION_NUM_ARGS > 0 - - // Function objects - // Assign to a function object using the small object optimization - template - void - assign_functor(FunctionObj f, function_buffer& functor, mpl::true_) - { - new ((void*)&functor.data) FunctionObj(f); - } - template - void - assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, mpl::true_) - { - assign_functor(f,functor,mpl::true_()); - } - - // Assign to a function object allocated on the heap. - template - void - assign_functor(FunctionObj f, function_buffer& functor, mpl::false_) - { - functor.obj_ptr = new FunctionObj(f); - } - template - void - assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, mpl::false_) - { - typedef functor_wrapper functor_wrapper_type; - typedef typename Allocator::template rebind::other - wrapper_allocator_type; - typedef typename wrapper_allocator_type::pointer wrapper_allocator_pointer_type; - wrapper_allocator_type wrapper_allocator(a); - wrapper_allocator_pointer_type copy = wrapper_allocator.allocate(1); - wrapper_allocator.construct(copy, functor_wrapper_type(f,a)); - functor_wrapper_type* new_f = static_cast(copy); - functor.obj_ptr = new_f; - } - - template - bool - assign_to(FunctionObj f, function_buffer& functor, function_obj_tag) - { - if (!boost::detail::function::has_empty_target(boost::addressof(f))) { - assign_functor(f, functor, - mpl::bool_<(function_allows_small_object_optimization::value)>()); - return true; - } else { - return false; - } - } - template - bool - assign_to_a(FunctionObj f, function_buffer& functor, Allocator a, function_obj_tag) - { - if (!boost::detail::function::has_empty_target(boost::addressof(f))) { - assign_functor_a(f, functor, a, - mpl::bool_<(function_allows_small_object_optimization::value)>()); - return true; - } else { - return false; - } - } - - // Reference to a function object - template - bool - assign_to(const reference_wrapper& f, - function_buffer& functor, function_obj_ref_tag) - { - if (!boost::detail::function::has_empty_target(f.get_pointer())) { - functor.obj_ref.obj_ptr = (void *)f.get_pointer(); - functor.obj_ref.is_const_qualified = is_const::value; - functor.obj_ref.is_volatile_qualified = is_volatile::value; - return true; - } else { - return false; - } - } - template - bool - assign_to_a(const reference_wrapper& f, - function_buffer& functor, Allocator, function_obj_ref_tag) - { - return assign_to(f,functor,function_obj_ref_tag()); - } - - public: - vtable_base base; - invoker_type invoker; - }; - } // end namespace function - } // end namespace detail - - template< - typename R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_PARMS - > - class BOOST_FUNCTION_FUNCTION : public function_base - -#if BOOST_FUNCTION_NUM_ARGS == 1 - - , public std::unary_function - -#elif BOOST_FUNCTION_NUM_ARGS == 2 - - , public std::binary_function - -#endif - - { - public: -#ifndef BOOST_NO_VOID_RETURNS - typedef R result_type; -#else - typedef typename boost::detail::function::function_return_type::type - result_type; -#endif // BOOST_NO_VOID_RETURNS - - private: - typedef boost::detail::function::BOOST_FUNCTION_VTABLE< - R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS> - vtable_type; - - struct clear_type {}; - - public: - BOOST_STATIC_CONSTANT(int, args = BOOST_FUNCTION_NUM_ARGS); - - // add signature for boost::lambda - template - struct sig - { - typedef result_type type; - }; - -#if BOOST_FUNCTION_NUM_ARGS == 1 - typedef T0 argument_type; -#elif BOOST_FUNCTION_NUM_ARGS == 2 - typedef T0 first_argument_type; - typedef T1 second_argument_type; -#endif - - BOOST_STATIC_CONSTANT(int, arity = BOOST_FUNCTION_NUM_ARGS); - BOOST_FUNCTION_ARG_TYPES - - typedef BOOST_FUNCTION_FUNCTION self_type; - - BOOST_FUNCTION_FUNCTION() : function_base() { } - - // MSVC chokes if the following two constructors are collapsed into - // one with a default parameter. - template - BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f -#ifndef BOOST_NO_SFINAE - ,typename enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), - int>::type = 0 -#endif // BOOST_NO_SFINAE - ) : - function_base() - { - this->assign_to(f); - } - template - BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a -#ifndef BOOST_NO_SFINAE - ,typename enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), - int>::type = 0 -#endif // BOOST_NO_SFINAE - ) : - function_base() - { - this->assign_to_a(f,a); - } - -#ifndef BOOST_NO_SFINAE - BOOST_FUNCTION_FUNCTION(clear_type*) : function_base() { } -#else - BOOST_FUNCTION_FUNCTION(int zero) : function_base() - { - BOOST_ASSERT(zero == 0); - } -#endif - - BOOST_FUNCTION_FUNCTION(const BOOST_FUNCTION_FUNCTION& f) : function_base() - { - this->assign_to_own(f); - } - - ~BOOST_FUNCTION_FUNCTION() { clear(); } - -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - // MSVC 6.0 and prior require all definitions to be inline, but - // these definitions can become very costly. - result_type operator()(BOOST_FUNCTION_PARMS) const - { - if (this->empty()) - boost::throw_exception(bad_function_call()); - - return static_cast(vtable)->invoker - (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS); - } -#else - result_type operator()(BOOST_FUNCTION_PARMS) const; -#endif - - // The distinction between when to use BOOST_FUNCTION_FUNCTION and - // when to use self_type is obnoxious. MSVC cannot handle self_type as - // the return type of these assignment operators, but Borland C++ cannot - // handle BOOST_FUNCTION_FUNCTION as the type of the temporary to - // construct. - template -#ifndef BOOST_NO_SFINAE - typename enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), - BOOST_FUNCTION_FUNCTION&>::type -#else - BOOST_FUNCTION_FUNCTION& -#endif - operator=(Functor BOOST_FUNCTION_TARGET_FIX(const &) f) - { - this->clear(); - try { - this->assign_to(f); - } catch (...) { - vtable = 0; - throw; - } - return *this; - } - template - void assign(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a) - { - this->clear(); - try { - this->assign_to_a(f,a); - } catch (...) { - vtable = 0; - throw; - } - } - -#ifndef BOOST_NO_SFINAE - BOOST_FUNCTION_FUNCTION& operator=(clear_type*) - { - this->clear(); - return *this; - } -#else - BOOST_FUNCTION_FUNCTION& operator=(int zero) - { - BOOST_ASSERT(zero == 0); - this->clear(); - return *this; - } -#endif - - // Assignment from another BOOST_FUNCTION_FUNCTION - BOOST_FUNCTION_FUNCTION& operator=(const BOOST_FUNCTION_FUNCTION& f) - { - if (&f == this) - return *this; - - this->clear(); - try { - this->assign_to_own(f); - } catch (...) { - vtable = 0; - throw; - } - return *this; - } - - void swap(BOOST_FUNCTION_FUNCTION& other) - { - if (&other == this) - return; - - BOOST_FUNCTION_FUNCTION tmp; - tmp.move_assign(*this); - this->move_assign(other); - other.move_assign(tmp); - } - - // Clear out a target, if there is one - void clear() - { - if (vtable) { - reinterpret_cast(vtable)->clear(this->functor); - vtable = 0; - } - } - -#if (defined __SUNPRO_CC) && (__SUNPRO_CC <= 0x530) && !(defined BOOST_NO_COMPILER_CONFIG) - // Sun C++ 5.3 can't handle the safe_bool idiom, so don't use it - operator bool () const { return !this->empty(); } -#else - private: - struct dummy { - void nonnull() {}; - }; - - typedef void (dummy::*safe_bool)(); - - public: - operator safe_bool () const - { return (this->empty())? 0 : &dummy::nonnull; } - - bool operator!() const - { return this->empty(); } -#endif - - private: - void assign_to_own(const BOOST_FUNCTION_FUNCTION& f) - { - if (!f.empty()) { - this->vtable = f.vtable; - f.vtable->manager(f.functor, this->functor, - boost::detail::function::clone_functor_tag); - } - } - - template - void assign_to(Functor f) - { - using detail::function::vtable_base; - - typedef typename detail::function::get_function_tag::type tag; - typedef detail::function::BOOST_FUNCTION_GET_INVOKER get_invoker; - typedef typename get_invoker:: - template apply - handler_type; - - typedef typename handler_type::invoker_type invoker_type; - typedef typename handler_type::manager_type manager_type; - - // Note: it is extremely important that this initialization use - // static initialization. Otherwise, we will have a race - // condition here in multi-threaded code. See - // http://thread.gmane.org/gmane.comp.lib.boost.devel/164902/. - static vtable_type stored_vtable = - { { &manager_type::manage }, &invoker_type::invoke }; - - if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable.base; - else vtable = 0; - } - - template - void assign_to_a(Functor f,Allocator a) - { - using detail::function::vtable_base; - - typedef typename detail::function::get_function_tag::type tag; - typedef detail::function::BOOST_FUNCTION_GET_INVOKER get_invoker; - typedef typename get_invoker:: - template apply_a - handler_type; - - typedef typename handler_type::invoker_type invoker_type; - typedef typename handler_type::manager_type manager_type; - - // Note: it is extremely important that this initialization use - // static initialization. Otherwise, we will have a race - // condition here in multi-threaded code. See - // http://thread.gmane.org/gmane.comp.lib.boost.devel/164902/. - static vtable_type stored_vtable = - { { &manager_type::manage }, &invoker_type::invoke }; - - if (stored_vtable.assign_to_a(f, functor, a)) vtable = &stored_vtable.base; - else vtable = 0; - } - - // Moves the value from the specified argument to *this. If the argument - // has its function object allocated on the heap, move_assign will pass - // its buffer to *this, and set the argument's buffer pointer to NULL. - void move_assign(BOOST_FUNCTION_FUNCTION& f) - { - if (&f == this) - return; - -#if !defined(BOOST_NO_EXCEPTIONS) - try { -#endif - if (!f.empty()) { - this->vtable = f.vtable; - f.vtable->manager(f.functor, this->functor, - boost::detail::function::move_functor_tag); - f.vtable = 0; -#if !defined(BOOST_NO_EXCEPTIONS) - } else { - clear(); - } - } catch (...) { - vtable = 0; - throw; - } -#endif - } - }; - - template - inline void swap(BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >& f1, - BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS - >& f2) - { - f1.swap(f2); - } - -#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) - template - typename BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS>::result_type - BOOST_FUNCTION_FUNCTION - ::operator()(BOOST_FUNCTION_PARMS) const - { - if (this->empty()) - boost::throw_exception(bad_function_call()); - - return reinterpret_cast(vtable)->invoker - (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS); - } -#endif - -// Poison comparisons between boost::function objects of the same type. -template - void operator==(const BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS>&, - const BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS>&); -template - void operator!=(const BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS>&, - const BOOST_FUNCTION_FUNCTION< - R BOOST_FUNCTION_COMMA - BOOST_FUNCTION_TEMPLATE_ARGS>& ); - -#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX) - -#if BOOST_FUNCTION_NUM_ARGS == 0 -#define BOOST_FUNCTION_PARTIAL_SPEC R (void) -#else -#define BOOST_FUNCTION_PARTIAL_SPEC R (BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS,T)) -#endif - -template -class function - : public BOOST_FUNCTION_FUNCTION -{ - typedef BOOST_FUNCTION_FUNCTION base_type; - typedef function self_type; - - struct clear_type {}; - -public: - - function() : base_type() {} - - template - function(Functor f -#ifndef BOOST_NO_SFINAE - ,typename enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), - int>::type = 0 -#endif - ) : - base_type(f) - { - } - template - function(Functor f, Allocator a -#ifndef BOOST_NO_SFINAE - ,typename enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), - int>::type = 0 -#endif - ) : - base_type(f,a) - { - } - -#ifndef BOOST_NO_SFINAE - function(clear_type*) : base_type() {} -#endif - - function(const self_type& f) : base_type(static_cast(f)){} - - function(const base_type& f) : base_type(static_cast(f)){} - - self_type& operator=(const self_type& f) - { - self_type(f).swap(*this); - return *this; - } - - template -#ifndef BOOST_NO_SFINAE - typename enable_if_c< - (boost::type_traits::ice_not< - (is_integral::value)>::value), - self_type&>::type -#else - self_type& -#endif - operator=(Functor f) - { - self_type(f).swap(*this); - return *this; - } - -#ifndef BOOST_NO_SFINAE - self_type& operator=(clear_type*) - { - this->clear(); - return *this; - } -#endif - - self_type& operator=(const base_type& f) - { - self_type(f).swap(*this); - return *this; - } -}; - -#undef BOOST_FUNCTION_PARTIAL_SPEC -#endif // have partial specialization - -} // end namespace boost - -// Cleanup after ourselves... -#undef BOOST_FUNCTION_VTABLE -#undef BOOST_FUNCTION_COMMA -#undef BOOST_FUNCTION_FUNCTION -#undef BOOST_FUNCTION_FUNCTION_INVOKER -#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER -#undef BOOST_FUNCTION_FUNCTION_OBJ_INVOKER -#undef BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER -#undef BOOST_FUNCTION_FUNCTION_REF_INVOKER -#undef BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER -#undef BOOST_FUNCTION_MEMBER_INVOKER -#undef BOOST_FUNCTION_VOID_MEMBER_INVOKER -#undef BOOST_FUNCTION_GET_FUNCTION_INVOKER -#undef BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER -#undef BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER -#undef BOOST_FUNCTION_GET_MEM_FUNCTION_INVOKER -#undef BOOST_FUNCTION_GET_INVOKER -#undef BOOST_FUNCTION_TEMPLATE_PARMS -#undef BOOST_FUNCTION_TEMPLATE_ARGS -#undef BOOST_FUNCTION_PARMS -#undef BOOST_FUNCTION_PARM -#undef BOOST_FUNCTION_ARGS -#undef BOOST_FUNCTION_ARG_TYPE -#undef BOOST_FUNCTION_ARG_TYPES -#undef BOOST_FUNCTION_VOID_RETURN_TYPE -#undef BOOST_FUNCTION_RETURN - -#if defined(BOOST_MSVC) -# pragma warning( pop ) -#endif diff --git a/3rdParty/Boost/boost/function/function_typeof.hpp b/3rdParty/Boost/boost/function/function_typeof.hpp deleted file mode 100644 index 246dc15..0000000 --- a/3rdParty/Boost/boost/function/function_typeof.hpp +++ /dev/null @@ -1,45 +0,0 @@ -// Boost.Function library - Typeof support -// Copyright (C) Douglas Gregor 2008 -// -// 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) -// -// For more information, see http://www.boost.org -#ifndef BOOST_FUNCTION_TYPEOF_HPP -#define BOOST_FUNCTION_TYPEOF_HPP -#include -#include - -#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() - -BOOST_TYPEOF_REGISTER_TYPE(boost::bad_function_call) - -#if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function, (typename)) -#endif - -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function0, (typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function1, (typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function2, (typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function3, - (typename)(typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function4, - (typename)(typename)(typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function5, - (typename)(typename)(typename)(typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function6, - (typename)(typename)(typename)(typename)(typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function7, - (typename)(typename)(typename)(typename)(typename)(typename)(typename) - (typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function8, - (typename)(typename)(typename)(typename)(typename)(typename)(typename) - (typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function9, - (typename)(typename)(typename)(typename)(typename)(typename)(typename) - (typename)(typename)(typename)) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::function10, - (typename)(typename)(typename)(typename)(typename)(typename)(typename) - (typename)(typename)(typename)(typename)) -#endif diff --git a/3rdParty/Boost/boost/function/gen_function_N.pl b/3rdParty/Boost/boost/function/gen_function_N.pl deleted file mode 100644 index d8f1249..0000000 --- a/3rdParty/Boost/boost/function/gen_function_N.pl +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/perl -w -# -# Boost.Function library -# -# Copyright Douglas Gregor 2001-2003. Use, modification and -# distribution is subject to the Boost Software License, Version -# 1.0. (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) -# -# For more information, see http://www.boost.org -use English; - -if ($#ARGV < 0) { - print "Usage: perl gen_function_N \n"; - exit; -} - - -$totalNumArgs = $ARGV[0]; -for ($numArgs = 0; $numArgs <= $totalNumArgs; ++$numArgs) { - open OUT, ">function$numArgs.hpp"; - print OUT "#define BOOST_FUNCTION_NUM_ARGS $numArgs\n"; - print OUT "#include \n"; - print OUT "#undef BOOST_FUNCTION_NUM_ARGS\n"; - close OUT; -} diff --git a/3rdParty/Boost/boost/function_equal.hpp b/3rdParty/Boost/boost/function_equal.hpp deleted file mode 100644 index 2d76c75..0000000 --- a/3rdParty/Boost/boost/function_equal.hpp +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright Douglas Gregor 2004. -// Copyright 2005 Peter Dimov - -// 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) - -// For more information, see http://www.boost.org -#ifndef BOOST_FUNCTION_EQUAL_HPP -#define BOOST_FUNCTION_EQUAL_HPP - -namespace boost { - -template - bool function_equal_impl(const F& f, const G& g, long) - { return f == g; } - -// function_equal_impl needs to be unqualified to pick -// user overloads on two-phase compilers - -template - bool function_equal(const F& f, const G& g) - { return function_equal_impl(f, g, 0); } - -} // end namespace boost - -#endif // BOOST_FUNCTION_EQUAL_HPP diff --git a/3rdParty/Boost/boost/functional/hash.hpp b/3rdParty/Boost/boost/functional/hash.hpp deleted file mode 100644 index 44983f1..0000000 --- a/3rdParty/Boost/boost/functional/hash.hpp +++ /dev/null @@ -1,7 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#include - diff --git a/3rdParty/Boost/boost/functional/hash/detail/float_functions.hpp b/3rdParty/Boost/boost/functional/hash/detail/float_functions.hpp deleted file mode 100644 index 69cf91a..0000000 --- a/3rdParty/Boost/boost/functional/hash/detail/float_functions.hpp +++ /dev/null @@ -1,162 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_FLOAT_FUNCTIONS_HPP) -#define BOOST_FUNCTIONAL_HASH_DETAIL_FLOAT_FUNCTIONS_HPP - -#include - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// The C++ standard requires that the C float functions are overloarded -// for float, double and long double in the std namespace, but some of the older -// library implementations don't support this. On some that don't, the C99 -// float functions (frexpf, frexpl, etc.) are available. -// -// Some of this is based on guess work. If I don't know any better I assume that -// the standard C++ overloaded functions are available. If they're not then this -// means that the argument is cast to a double and back, which is inefficient -// and will give pretty bad results for long doubles - so if you know better -// let me know. - -// STLport: -#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) -# if (defined(__GNUC__) && __GNUC__ < 3 && (defined(linux) || defined(__linux) || defined(__linux__))) || defined(__DMC__) -# define BOOST_HASH_USE_C99_FLOAT_FUNCS -# elif defined(BOOST_MSVC) && BOOST_MSVC < 1300 -# define BOOST_HASH_USE_C99_FLOAT_FUNCS -# else -# define BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS -# endif - -// Roguewave: -// -// On borland 5.51, with roguewave 2.1.1 the standard C++ overloads aren't -// defined, but for the same version of roguewave on sunpro they are. -#elif defined(_RWSTD_VER) -# if defined(__BORLANDC__) -# define BOOST_HASH_USE_C99_FLOAT_FUNCS -# define BOOST_HASH_C99_NO_FLOAT_FUNCS -# elif defined(__DECCXX) -# define BOOST_HASH_USE_C99_FLOAT_FUNCS -# else -# define BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS -# endif - -// libstdc++ (gcc 3.0 onwards, I think) -#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) -# define BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS - -// SGI: -#elif defined(__STL_CONFIG_H) -# if defined(linux) || defined(__linux) || defined(__linux__) -# define BOOST_HASH_USE_C99_FLOAT_FUNCS -# else -# define BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS -# endif - -// vxWorks. It has its own math library, but uses Dinkumware STL -#elif defined(__VXWORKS__) -# define BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS - -// Dinkumware. -#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) -// Some versions of Visual C++ don't seem to have the C++ overloads but they -// all seem to have the c99 float overloads -# if defined(BOOST_MSVC) -# define BOOST_HASH_USE_C99_FLOAT_FUNCS -// On other platforms the C++ overloads seem to have been introduced sometime -// before 402. -# elif defined(_CPPLIB_VER) && (_CPPLIB_VER >= 402) -# define BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS -# else -# define BOOST_HASH_USE_C99_FLOAT_FUNCS -# endif - -// Digital Mars -#elif defined(__DMC__) -# define BOOST_HASH_USE_C99_FLOAT_FUNCS - -// Use overloaded float functions by default. -#else -# define BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS -#endif - -namespace boost -{ - namespace hash_detail - { - - inline float call_ldexp(float v, int exp) - { - using namespace std; -#if defined(BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS) || \ - defined(BOOST_HASH_C99_NO_FLOAT_FUNCS) - return ldexp(v, exp); -#else - return ldexpf(v, exp); -#endif - } - - inline double call_ldexp(double v, int exp) - { - using namespace std; - return ldexp(v, exp); - } - - inline long double call_ldexp(long double v, int exp) - { - using namespace std; -#if defined(BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS) - return ldexp(v, exp); -#else - return ldexpl(v, exp); -#endif - } - - inline float call_frexp(float v, int* exp) - { - using namespace std; -#if defined(BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS) || \ - defined(BOOST_HASH_C99_NO_FLOAT_FUNCS) - return frexp(v, exp); -#else - return frexpf(v, exp); -#endif - } - - inline double call_frexp(double v, int* exp) - { - using namespace std; - return frexp(v, exp); - } - - inline long double call_frexp(long double v, int* exp) - { - using namespace std; -#if defined(BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS) - return frexp(v, exp); -#else - return frexpl(v, exp); -#endif - } - } -} - -#if defined(BOOST_HASH_USE_C99_FLOAT_FUNCS) -#undef BOOST_HASH_USE_C99_FLOAT_FUNCS -#endif - -#if defined(BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS) -#undef BOOST_HASH_USE_OVERLOAD_FLOAT_FUNCS -#endif - -#if defined(BOOST_HASH_C99_NO_FLOAT_FUNCS) -#undef BOOST_HASH_C99_NO_FLOAT_FUNCS -#endif - -#endif diff --git a/3rdParty/Boost/boost/functional/hash/detail/hash_float.hpp b/3rdParty/Boost/boost/functional/hash/detail/hash_float.hpp deleted file mode 100644 index 5d5ac34..0000000 --- a/3rdParty/Boost/boost/functional/hash/detail/hash_float.hpp +++ /dev/null @@ -1,197 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_HEADER) -#define BOOST_FUNCTIONAL_HASH_DETAIL_HASH_FLOAT_HEADER - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#if defined(BOOST_MSVC) -#pragma warning(push) -#if BOOST_MSVC >= 1400 -#pragma warning(disable:6294) // Ill-defined for-loop: initial condition does - // not satisfy test. Loop body not executed -#endif -#endif - -#include -#include -#include -#include -#include - -// Select implementation for the current platform. - -// Cygwn -#if defined(__CYGWIN__) -# if defined(__i386__) || defined(_M_IX86) -# define BOOST_HASH_USE_x86_BINARY_HASH -# endif - -// STLport -#elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) -// fpclassify aren't good enough on STLport. - -// GNU libstdc++ 3 -#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) -# if (defined(__USE_ISOC99) || defined(_GLIBCXX_USE_C99_MATH)) && \ - !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) -# define BOOST_HASH_USE_FPCLASSIFY -# endif - -// Dinkumware Library, on Visual C++ -#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) - -// Not using _fpclass because it is only available for double. - -#endif - -// On OpenBSD, numeric_limits is not reliable for long doubles, but -// the macros defined in are. - -#if defined(__OpenBSD__) -#include -#endif - -namespace boost -{ - namespace hash_detail - { - template - struct limits : std::numeric_limits {}; - -#if defined(__OpenBSD__) - template <> - struct limits - : std::numeric_limits - { - static long double epsilon() { - return LDBL_EPSILON; - } - - static long double (max)() { - return LDBL_MAX; - } - - static long double (min)() { - return LDBL_MIN; - } - - BOOST_STATIC_CONSTANT(int, digits = LDBL_MANT_DIG); - BOOST_STATIC_CONSTANT(int, max_exponent = LDBL_MAX_EXP); - BOOST_STATIC_CONSTANT(int, min_exponent = LDBL_MIN_EXP); - }; -#endif // __OpenBSD__ - - inline void hash_float_combine(std::size_t& seed, std::size_t value) - { - seed ^= value + (seed<<6) + (seed>>2); - } - -// A simple, non-portable hash algorithm for x86. -#if defined(BOOST_HASH_USE_x86_BINARY_HASH) - inline std::size_t float_hash_impl(float v) - { - boost::uint32_t* ptr = (boost::uint32_t*)&v; - std::size_t seed = *ptr; - return seed; - } - - inline std::size_t float_hash_impl(double v) - { - boost::uint32_t* ptr = (boost::uint32_t*)&v; - std::size_t seed = *ptr++; - hash_float_combine(seed, *ptr); - return seed; - } - - inline std::size_t float_hash_impl(long double v) - { - boost::uint32_t* ptr = (boost::uint32_t*)&v; - std::size_t seed = *ptr++; - hash_float_combine(seed, *ptr++); - hash_float_combine(seed, *(boost::uint16_t*)ptr); - return seed; - } - -#else - - template - inline std::size_t float_hash_impl(T v) - { - int exp = 0; - - v = boost::hash_detail::call_frexp(v, &exp); - - // A postive value is easier to hash, so combine the - // sign with the exponent. - if(v < 0) { - v = -v; - exp += limits::max_exponent - - limits::min_exponent; - } - - // The result of frexp is always between 0.5 and 1, so its - // top bit will always be 1. Subtract by 0.5 to remove that. - v -= T(0.5); - v = boost::hash_detail::call_ldexp(v, - limits::digits + 1); - std::size_t seed = static_cast(v); - v -= seed; - - // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1; - std::size_t const length - = (limits::digits * - boost::static_log2::radix>::value - 1) - / limits::digits; - - for(std::size_t i = 0; i != length; ++i) - { - v = boost::hash_detail::call_ldexp(v, - limits::digits); - std::size_t part = static_cast(v); - v -= part; - hash_float_combine(seed, part); - } - - hash_float_combine(seed, exp); - - return seed; - } -#endif - - template - inline std::size_t float_hash_value(T v) - { -#if defined(BOOST_HASH_USE_FPCLASSIFY) - using namespace std; - switch (fpclassify(v)) { - case FP_ZERO: - return 0; - case FP_INFINITE: - return (std::size_t)(v > 0 ? -1 : -2); - case FP_NAN: - return (std::size_t)(-3); - case FP_NORMAL: - case FP_SUBNORMAL: - return float_hash_impl(v); - default: - BOOST_ASSERT(0); - return 0; - } -#else - return v == 0 ? 0 : float_hash_impl(v); -#endif - } - } -} - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif - -#endif diff --git a/3rdParty/Boost/boost/functional/hash/extensions.hpp b/3rdParty/Boost/boost/functional/hash/extensions.hpp deleted file mode 100644 index d173314..0000000 --- a/3rdParty/Boost/boost/functional/hash/extensions.hpp +++ /dev/null @@ -1,182 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// Based on Peter Dimov's proposal -// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf -// issue 6.18. - -#if !defined(BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP) -#define BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -namespace boost -{ - -#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - namespace hash_detail - { - template - struct call_hash_impl - { - template - struct inner - { - static std::size_t call(T const& v) - { - using namespace boost; - return hash_value(v); - } - }; - }; - - template <> - struct call_hash_impl - { - template - struct inner - { -#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) - static std::size_t call(Array const& v) -#else - static std::size_t call(Array& v) -#endif - { - const int size = sizeof(v) / sizeof(*v); - return boost::hash_range(v, v + size); - } - }; - }; - - template - struct call_hash - : public call_hash_impl::value> - ::BOOST_NESTED_TEMPLATE inner - { - }; - } -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - - template struct hash - : std::unary_function - { -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - std::size_t operator()(T const& val) const - { - return hash_value(val); - } -#else - std::size_t operator()(T const& val) const - { - return hash_detail::call_hash::call(val); - } -#endif - }; - -#if BOOST_WORKAROUND(__DMC__, <= 0x848) - template struct hash - : std::unary_function - { - std::size_t operator()(const T* val) const - { - return boost::hash_range(val, val+n); - } - }; -#endif - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - // On compilers without partial specialization, boost::hash - // has already been declared to deal with pointers, so just - // need to supply the non-pointer version. - - namespace hash_detail - { - template - struct hash_impl; - -#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) - - template <> - struct hash_impl - { - template - struct inner - : std::unary_function - { -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - std::size_t operator()(T const& val) const - { - return hash_value(val); - } -#else - std::size_t operator()(T const& val) const - { - return hash_detail::call_hash::call(val); - } -#endif - }; - }; - -#else // Visual C++ 6.5 - - // There's probably a more elegant way to Visual C++ 6.5 to work - // but I don't know what it is. - - template - struct hash_impl_msvc - { - template - struct inner - : public std::unary_function - { - std::size_t operator()(T const& val) const - { - return hash_detail::call_hash::call(val); - } - - std::size_t operator()(T& val) const - { - return hash_detail::call_hash::call(val); - } - }; - }; - - template <> - struct hash_impl_msvc - { - template - struct inner - : public std::unary_function - { - std::size_t operator()(T& val) const - { - return hash_detail::call_hash::call(val); - } - }; - }; - - template - struct hash_impl_msvc2 - : public hash_impl_msvc::value> - ::BOOST_NESTED_TEMPLATE inner {}; - - template <> - struct hash_impl - { - template - struct inner : public hash_impl_msvc2 {}; - }; - -#endif // Visual C++ 6.5 - } -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -} - -#endif diff --git a/3rdParty/Boost/boost/functional/hash/hash.hpp b/3rdParty/Boost/boost/functional/hash/hash.hpp deleted file mode 100644 index 67284fc..0000000 --- a/3rdParty/Boost/boost/functional/hash/hash.hpp +++ /dev/null @@ -1,529 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// Based on Peter Dimov's proposal -// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf -// issue 6.18. - -#if !defined(BOOST_FUNCTIONAL_HASH_HASH_HPP) -#define BOOST_FUNCTIONAL_HASH_HASH_HPP - -#include -#include -#include -#include -#include - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -#include -#endif - -#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) -#include -#endif - -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -#include -#endif - -namespace boost -{ - std::size_t hash_value(bool); - std::size_t hash_value(char); - std::size_t hash_value(unsigned char); - std::size_t hash_value(signed char); - std::size_t hash_value(short); - std::size_t hash_value(unsigned short); - std::size_t hash_value(int); - std::size_t hash_value(unsigned int); - std::size_t hash_value(long); - std::size_t hash_value(unsigned long); - -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) - std::size_t hash_value(wchar_t); -#endif - -#if defined(BOOST_HAS_LONG_LONG) - std::size_t hash_value(boost::long_long_type); - std::size_t hash_value(boost::ulong_long_type); -#endif - -#if !BOOST_WORKAROUND(__DMC__, <= 0x848) - template std::size_t hash_value(T* const&); -#else - template std::size_t hash_value(T*); -#endif - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - template< class T, unsigned N > - std::size_t hash_value(const T (&x)[N]); - - template< class T, unsigned N > - std::size_t hash_value(T (&x)[N]); -#endif - - std::size_t hash_value(float v); - std::size_t hash_value(double v); - std::size_t hash_value(long double v); - - template - std::size_t hash_value(std::basic_string, A> const&); - - template - std::size_t hash_value(std::pair const&); - template - std::size_t hash_value(std::vector const&); - template - std::size_t hash_value(std::list const& v); - template - std::size_t hash_value(std::deque const& v); - template - std::size_t hash_value(std::set const& v); - template - std::size_t hash_value(std::multiset const& v); - template - std::size_t hash_value(std::map const& v); - template - std::size_t hash_value(std::multimap const& v); - - template - std::size_t hash_value(std::complex const&); - - // Implementation - - namespace hash_detail - { - template - inline std::size_t hash_value_signed(T val) - { - const int size_t_bits = std::numeric_limits::digits; - // ceiling(std::numeric_limits::digits / size_t_bits) - 1 - const int length = (std::numeric_limits::digits - 1) - / size_t_bits; - - std::size_t seed = 0; - T positive = val < 0 ? -1 - val : val; - - // Hopefully, this loop can be unrolled. - for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits) - { - seed ^= (std::size_t) (positive >> i) + (seed<<6) + (seed>>2); - } - seed ^= (std::size_t) val + (seed<<6) + (seed>>2); - - return seed; - } - - template - inline std::size_t hash_value_unsigned(T val) - { - const int size_t_bits = std::numeric_limits::digits; - // ceiling(std::numeric_limits::digits / size_t_bits) - 1 - const int length = (std::numeric_limits::digits - 1) - / size_t_bits; - - std::size_t seed = 0; - - // Hopefully, this loop can be unrolled. - for(unsigned int i = length * size_t_bits; i > 0; i -= size_t_bits) - { - seed ^= (std::size_t) (val >> i) + (seed<<6) + (seed>>2); - } - seed ^= (std::size_t) val + (seed<<6) + (seed>>2); - - return seed; - } - } - - inline std::size_t hash_value(bool v) - { - return static_cast(v); - } - - inline std::size_t hash_value(char v) - { - return static_cast(v); - } - - inline std::size_t hash_value(unsigned char v) - { - return static_cast(v); - } - - inline std::size_t hash_value(signed char v) - { - return static_cast(v); - } - - inline std::size_t hash_value(short v) - { - return static_cast(v); - } - - inline std::size_t hash_value(unsigned short v) - { - return static_cast(v); - } - - inline std::size_t hash_value(int v) - { - return static_cast(v); - } - - inline std::size_t hash_value(unsigned int v) - { - return static_cast(v); - } - - inline std::size_t hash_value(long v) - { - return static_cast(v); - } - - inline std::size_t hash_value(unsigned long v) - { - return static_cast(v); - } - -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) - inline std::size_t hash_value(wchar_t v) - { - return static_cast(v); - } -#endif - -#if defined(BOOST_HAS_LONG_LONG) - inline std::size_t hash_value(boost::long_long_type v) - { - return hash_detail::hash_value_signed(v); - } - - inline std::size_t hash_value(boost::ulong_long_type v) - { - return hash_detail::hash_value_unsigned(v); - } -#endif - - // Implementation by Alberto Barbati and Dave Harris. -#if !BOOST_WORKAROUND(__DMC__, <= 0x848) - template std::size_t hash_value(T* const& v) -#else - template std::size_t hash_value(T* v) -#endif - { - std::size_t x = static_cast( - reinterpret_cast(v)); - - return x + (x >> 3); - } - -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - template - inline void hash_combine(std::size_t& seed, T& v) -#else - template - inline void hash_combine(std::size_t& seed, T const& v) -#endif - { - boost::hash hasher; - seed ^= hasher(v) + 0x9e3779b9 + (seed<<6) + (seed>>2); - } - - template - inline std::size_t hash_range(It first, It last) - { - std::size_t seed = 0; - - for(; first != last; ++first) - { - hash_combine(seed, *first); - } - - return seed; - } - - template - inline void hash_range(std::size_t& seed, It first, It last) - { - for(; first != last; ++first) - { - hash_combine(seed, *first); - } - } - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) - template - inline std::size_t hash_range(T* first, T* last) - { - std::size_t seed = 0; - - for(; first != last; ++first) - { - boost::hash hasher; - seed ^= hasher(*first) + 0x9e3779b9 + (seed<<6) + (seed>>2); - } - - return seed; - } - - template - inline void hash_range(std::size_t& seed, T* first, T* last) - { - for(; first != last; ++first) - { - boost::hash hasher; - seed ^= hasher(*first) + 0x9e3779b9 + (seed<<6) + (seed>>2); - } - } -#endif - -#if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - template< class T, unsigned N > - inline std::size_t hash_value(const T (&x)[N]) - { - return hash_range(x, x + N); - } - - template< class T, unsigned N > - inline std::size_t hash_value(T (&x)[N]) - { - return hash_range(x, x + N); - } -#endif - - template - inline std::size_t hash_value(std::basic_string, A> const& v) - { - return hash_range(v.begin(), v.end()); - } - - inline std::size_t hash_value(float v) - { - return boost::hash_detail::float_hash_value(v); - } - - inline std::size_t hash_value(double v) - { - return boost::hash_detail::float_hash_value(v); - } - - inline std::size_t hash_value(long double v) - { - return boost::hash_detail::float_hash_value(v); - } - - template - std::size_t hash_value(std::pair const& v) - { - std::size_t seed = 0; - hash_combine(seed, v.first); - hash_combine(seed, v.second); - return seed; - } - - template - std::size_t hash_value(std::vector const& v) - { - return hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::list const& v) - { - return hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::deque const& v) - { - return hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::set const& v) - { - return hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::multiset const& v) - { - return hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::map const& v) - { - return hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::multimap const& v) - { - return hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::complex const& v) - { - boost::hash hasher; - std::size_t seed = hasher(v.imag()); - seed ^= hasher(v.real()) + (seed<<6) + (seed>>2); - return seed; - } - - // - // boost::hash - // - -#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) -#define BOOST_HASH_SPECIALIZE(type) \ - template <> struct hash \ - : public std::unary_function \ - { \ - std::size_t operator()(type v) const \ - { \ - return boost::hash_value(v); \ - } \ - }; - -#define BOOST_HASH_SPECIALIZE_REF(type) \ - template <> struct hash \ - : public std::unary_function \ - { \ - std::size_t operator()(type const& v) const \ - { \ - return boost::hash_value(v); \ - } \ - }; -#else -#define BOOST_HASH_SPECIALIZE(type) \ - template <> struct hash \ - : public std::unary_function \ - { \ - std::size_t operator()(type v) const \ - { \ - return boost::hash_value(v); \ - } \ - }; \ - \ - template <> struct hash \ - : public std::unary_function \ - { \ - std::size_t operator()(const type v) const \ - { \ - return boost::hash_value(v); \ - } \ - }; - -#define BOOST_HASH_SPECIALIZE_REF(type) \ - template <> struct hash \ - : public std::unary_function \ - { \ - std::size_t operator()(type const& v) const \ - { \ - return boost::hash_value(v); \ - } \ - }; \ - \ - template <> struct hash \ - : public std::unary_function \ - { \ - std::size_t operator()(type const& v) const \ - { \ - return boost::hash_value(v); \ - } \ - }; -#endif - - BOOST_HASH_SPECIALIZE(bool) - BOOST_HASH_SPECIALIZE(char) - BOOST_HASH_SPECIALIZE(signed char) - BOOST_HASH_SPECIALIZE(unsigned char) -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) - BOOST_HASH_SPECIALIZE(wchar_t) -#endif - BOOST_HASH_SPECIALIZE(short) - BOOST_HASH_SPECIALIZE(unsigned short) - BOOST_HASH_SPECIALIZE(int) - BOOST_HASH_SPECIALIZE(unsigned int) - BOOST_HASH_SPECIALIZE(long) - BOOST_HASH_SPECIALIZE(unsigned long) - - BOOST_HASH_SPECIALIZE(float) - BOOST_HASH_SPECIALIZE(double) - BOOST_HASH_SPECIALIZE(long double) - - BOOST_HASH_SPECIALIZE_REF(std::string) -#if !defined(BOOST_NO_STD_WSTRING) - BOOST_HASH_SPECIALIZE_REF(std::wstring) -#endif - -#undef BOOST_HASH_SPECIALIZE -#undef BOOST_HASH_SPECIALIZE_REF - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - template - struct hash - : public std::unary_function - { - std::size_t operator()(T* v) const - { -#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) - return boost::hash_value(v); -#else - std::size_t x = static_cast( - reinterpret_cast(v)); - - return x + (x >> 3); -#endif - } - }; -#else - namespace hash_detail - { - template - struct hash_impl; - - template <> - struct hash_impl - { - template - struct inner - : public std::unary_function - { - std::size_t operator()(T val) const - { -#if !BOOST_WORKAROUND(__SUNPRO_CC, <= 590) - return boost::hash_value(val); -#else - std::size_t x = static_cast( - reinterpret_cast(val)); - - return x + (x >> 3); -#endif - } - }; - }; - } - - template struct hash - : public boost::hash_detail::hash_impl::value> - ::BOOST_NESTED_TEMPLATE inner - { - }; -#endif -} - -#endif // BOOST_FUNCTIONAL_HASH_HASH_HPP - -// Include this outside of the include guards in case the file is included -// twice - once with BOOST_HASH_NO_EXTENSIONS defined, and then with it -// undefined. - -#if !defined(BOOST_HASH_NO_EXTENSIONS) \ - && !defined(BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP) -#include -#endif diff --git a/3rdParty/Boost/boost/functional/hash/hash_fwd.hpp b/3rdParty/Boost/boost/functional/hash/hash_fwd.hpp deleted file mode 100644 index 1d51b07..0000000 --- a/3rdParty/Boost/boost/functional/hash/hash_fwd.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// Copyright 2005-2009 Daniel James. -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// Based on Peter Dimov's proposal -// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf -// issue 6.18. - -#if !defined(BOOST_FUNCTIONAL_HASH_FWD_HPP) -#define BOOST_FUNCTIONAL_HASH_FWD_HPP - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include -#include -#include - -namespace boost -{ - template struct hash; - -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - template void hash_combine(std::size_t& seed, T& v); -#else - template void hash_combine(std::size_t& seed, T const& v); -#endif - - template std::size_t hash_range(It, It); - template void hash_range(std::size_t&, It, It); - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) - template inline std::size_t hash_range(T*, T*); - template inline void hash_range(std::size_t&, T*, T*); -#endif -} - -#endif diff --git a/3rdParty/Boost/boost/get_pointer.hpp b/3rdParty/Boost/boost/get_pointer.hpp deleted file mode 100644 index a0cd5c0..0000000 --- a/3rdParty/Boost/boost/get_pointer.hpp +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright Peter Dimov and David Abrahams 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) -#ifndef GET_POINTER_DWA20021219_HPP -# define GET_POINTER_DWA20021219_HPP - -// In order to avoid circular dependencies with Boost.TR1 -// we make sure that our include of doesn't try to -// pull in the TR1 headers: that's why we use this header -// rather than including directly: -# include // std::auto_ptr - -namespace boost { - -// get_pointer(p) extracts a ->* capable pointer from p - -template T * get_pointer(T * p) -{ - return p; -} - -// get_pointer(shared_ptr const & p) has been moved to shared_ptr.hpp - -template T * get_pointer(std::auto_ptr const& p) -{ - return p.get(); -} - - -} // namespace boost - -#endif // GET_POINTER_DWA20021219_HPP diff --git a/3rdParty/Boost/boost/implicit_cast.hpp b/3rdParty/Boost/boost/implicit_cast.hpp deleted file mode 100644 index 5b1cd92..0000000 --- a/3rdParty/Boost/boost/implicit_cast.hpp +++ /dev/null @@ -1,29 +0,0 @@ -// 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) -#ifndef IMPLICIT_CAST_DWA200356_HPP -# define IMPLICIT_CAST_DWA200356_HPP - -# include - -namespace boost { - -// implementation originally suggested by C. Green in -// http://lists.boost.org/MailArchives/boost/msg00886.php - -// The use of identity creates a non-deduced form, so that the -// explicit template argument must be supplied -template -inline T implicit_cast (typename mpl::identity::type x) { - return x; -} - -// incomplete return type now is here -//template -//void implicit_cast (...); - -} // namespace boost - - -#endif // IMPLICIT_CAST_DWA200356_HPP diff --git a/3rdParty/Boost/boost/integer/static_log2.hpp b/3rdParty/Boost/boost/integer/static_log2.hpp deleted file mode 100644 index 19e048b..0000000 --- a/3rdParty/Boost/boost/integer/static_log2.hpp +++ /dev/null @@ -1,132 +0,0 @@ -// -------------- Boost static_log2.hpp header file ----------------------- // -// -// Copyright (C) 2001 Daryle Walker. -// Copyright (C) 2003 Vesa Karvonen. -// Copyright (C) 2003 Gennaro Prota. -// -// Distributed under the 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/integer for documentation. -// ------------------------------------------------------------------------- // - - -#ifndef BOOST_INTEGER_STATIC_LOG2_HPP -#define BOOST_INTEGER_STATIC_LOG2_HPP - -#include "boost/config.hpp" // for BOOST_STATIC_CONSTANT - -namespace boost { - - namespace detail { - - namespace static_log2_impl { - - // choose_initial_n<> - // - // Recursively doubles its integer argument, until it - // becomes >= of the "width" (C99, 6.2.6.2p4) of - // static_log2_argument_type. - // - // Used to get the maximum power of two less then the width. - // - // Example: if on your platform argument_type has 48 value - // bits it yields n=32. - // - // It's easy to prove that, starting from such a value - // of n, the core algorithm works correctly for any width - // of static_log2_argument_type and that recursion always - // terminates with x = 1 and n = 0 (see the algorithm's - // invariant). - - typedef unsigned long argument_type; - typedef int result_type; - - - template - struct choose_initial_n { - - enum { c = (argument_type(1) << n << n) != 0 }; - BOOST_STATIC_CONSTANT( - result_type, - value = !c*n + choose_initial_n<2*c*n>::value - ); - - }; - - template <> - struct choose_initial_n<0> { - BOOST_STATIC_CONSTANT(result_type, value = 0); - }; - - - - // start computing from n_zero - must be a power of two - const result_type n_zero = 16; - const result_type initial_n = choose_initial_n::value; - - // static_log2_impl<> - // - // * Invariant: - // 2n - // 1 <= x && x < 2 at the start of each recursion - // (see also choose_initial_n<>) - // - // * Type requirements: - // - // argument_type maybe any unsigned type with at least n_zero + 1 - // value bits. (Note: If larger types will be standardized -e.g. - // unsigned long long- then the argument_type typedef can be - // changed without affecting the rest of the code.) - // - - template - struct static_log2_impl { - - enum { c = (x >> n) > 0 }; // x >= 2**n ? - BOOST_STATIC_CONSTANT( - result_type, - value = c*n + (static_log2_impl< (x>>c*n), n/2 >::value) - ); - - }; - - template <> - struct static_log2_impl<1, 0> { - BOOST_STATIC_CONSTANT(result_type, value = 0); - }; - - } - } // detail - - - - // -------------------------------------- - // static_log2 - // ---------------------------------------- - - typedef detail::static_log2_impl::argument_type static_log2_argument_type; - typedef detail::static_log2_impl::result_type static_log2_result_type; - - - template - struct static_log2 { - - BOOST_STATIC_CONSTANT( - static_log2_result_type, - value = detail::static_log2_impl::static_log2_impl::value - ); - - }; - - - template <> - struct static_log2<0> { }; - -} - - - -#endif // include guard diff --git a/3rdParty/Boost/boost/integer_traits.hpp b/3rdParty/Boost/boost/integer_traits.hpp deleted file mode 100644 index ac4ef32..0000000 --- a/3rdParty/Boost/boost/integer_traits.hpp +++ /dev/null @@ -1,236 +0,0 @@ -/* boost integer_traits.hpp header file - * - * Copyright Jens Maurer 2000 - * Distributed under the Boost Software License, Version 1.0. (See - * accompanying file LICENSE_1_0.txt or copy at - * http://www.boost.org/LICENSE_1_0.txt) - * - * $Id: integer_traits.hpp 32576 2006-02-05 10:19:42Z johnmaddock $ - * - * Idea by Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers - */ - -// See http://www.boost.org/libs/integer for documentation. - - -#ifndef BOOST_INTEGER_TRAITS_HPP -#define BOOST_INTEGER_TRAITS_HPP - -#include -#include - -// These are an implementation detail and not part of the interface -#include -// we need wchar.h for WCHAR_MAX/MIN but not all platforms provide it, -// and some may have but not ... -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) && (!defined(BOOST_NO_CWCHAR) || defined(sun) || defined(__sun) || defined(__QNX__)) -#include -#endif - - -namespace boost { -template -class integer_traits : public std::numeric_limits -{ -public: - BOOST_STATIC_CONSTANT(bool, is_integral = false); -}; - -namespace detail { -template -class integer_traits_base -{ -public: - BOOST_STATIC_CONSTANT(bool, is_integral = true); - BOOST_STATIC_CONSTANT(T, const_min = min_val); - BOOST_STATIC_CONSTANT(T, const_max = max_val); -}; - -#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION -// A definition is required even for integral static constants -template -const bool integer_traits_base::is_integral; - -template -const T integer_traits_base::const_min; - -template -const T integer_traits_base::const_max; -#endif - -} // namespace detail - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template<> -class integer_traits - : public std::numeric_limits, - // Don't trust WCHAR_MIN and WCHAR_MAX with Mac OS X's native - // library: they are wrong! -#if defined(WCHAR_MIN) && defined(WCHAR_MAX) && !defined(__APPLE__) - public detail::integer_traits_base -#elif defined(__BORLANDC__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__BEOS__) && defined(__GNUC__)) - // No WCHAR_MIN and WCHAR_MAX, whar_t is short and unsigned: - public detail::integer_traits_base -#elif (defined(__sgi) && (!defined(__SGI_STL_PORT) || __SGI_STL_PORT < 0x400))\ - || (defined __APPLE__)\ - || (defined(__OpenBSD__) && defined(__GNUC__))\ - || (defined(__NetBSD__) && defined(__GNUC__))\ - || (defined(__FreeBSD__) && defined(__GNUC__))\ - || (defined(__DragonFly__) && defined(__GNUC__))\ - || (defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 3) && !defined(__SGI_STL_PORT)) - // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as int. - // - SGI MIPSpro with native library - // - gcc 3.x on HP-UX - // - Mac OS X with native library - // - gcc on FreeBSD, OpenBSD and NetBSD - public detail::integer_traits_base -#elif defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 2) && !defined(__SGI_STL_PORT) - // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as unsigned int. - // - gcc 2.95.x on HP-UX - // (also, std::numeric_limits appears to return the wrong values). - public detail::integer_traits_base -#else -#error No WCHAR_MIN and WCHAR_MAX present, please adjust integer_traits<> for your compiler. -#endif -{ }; -#endif // BOOST_NO_INTRINSIC_WCHAR_T - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -template<> -class integer_traits - : public std::numeric_limits, - public detail::integer_traits_base -{ }; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) -#if defined(ULLONG_MAX) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, LLONG_MIN, LLONG_MAX> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULLONG_MAX> -{ }; - -#elif defined(ULONG_LONG_MAX) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> : public std::numeric_limits< ::boost::long_long_type>, public detail::integer_traits_base< ::boost::long_long_type, LONG_LONG_MIN, LONG_LONG_MAX>{ }; -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULONG_LONG_MAX> -{ }; - -#elif defined(ULONGLONG_MAX) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, LONGLONG_MIN, LONGLONG_MAX> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULONGLONG_MAX> -{ }; - -#elif defined(_LLONG_MAX) && defined(_C2) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, -_LLONG_MAX - _C2, _LLONG_MAX> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, _ULLONG_MAX> -{ }; - -#elif defined(BOOST_HAS_LONG_LONG) -// -// we have long long but no constants, this happens for example with gcc in -ansi mode, -// we'll just have to work out the values for ourselves (assumes 2's compliment representation): -// -template<> -class integer_traits< ::boost::long_long_type> - : public std::numeric_limits< ::boost::long_long_type>, - public detail::integer_traits_base< ::boost::long_long_type, (1LL << (sizeof(::boost::long_long_type) - 1)), ~(1LL << (sizeof(::boost::long_long_type) - 1))> -{ }; - -template<> -class integer_traits< ::boost::ulong_long_type> - : public std::numeric_limits< ::boost::ulong_long_type>, - public detail::integer_traits_base< ::boost::ulong_long_type, 0, ~0uLL> -{ }; - -#endif -#endif - -} // namespace boost - -#endif /* BOOST_INTEGER_TRAITS_HPP */ - - - diff --git a/3rdParty/Boost/boost/intrusive_ptr.hpp b/3rdParty/Boost/boost/intrusive_ptr.hpp deleted file mode 100644 index 63036dc..0000000 --- a/3rdParty/Boost/boost/intrusive_ptr.hpp +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef BOOST_INTRUSIVE_PTR_HPP_INCLUDED -#define BOOST_INTRUSIVE_PTR_HPP_INCLUDED - -// -// intrusive_ptr.hpp -// -// Copyright (c) 2001, 2002 Peter Dimov -// -// Distributed under the 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/smart_ptr/intrusive_ptr.html for documentation. -// - -#include - -#endif // #ifndef BOOST_INTRUSIVE_PTR_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/io/ios_state.hpp b/3rdParty/Boost/boost/io/ios_state.hpp deleted file mode 100644 index 9c45c0b..0000000 --- a/3rdParty/Boost/boost/io/ios_state.hpp +++ /dev/null @@ -1,431 +0,0 @@ -// Boost io/ios_state.hpp header file --------------------------------------// - -// Copyright 2002, 2005 Daryle Walker. Use, modification, and distribution -// are subject to the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or a copy at .) - -// See for the library's home page. - -#ifndef BOOST_IO_IOS_STATE_HPP -#define BOOST_IO_IOS_STATE_HPP - -#include // self include -#include - -#include // for std::ios_base, std::basic_ios, etc. -#ifndef BOOST_NO_STD_LOCALE -#include // for std::locale -#endif -#include // for std::basic_ostream -#include // for std::basic_streambuf -#include // for std::char_traits - - -namespace boost -{ -namespace io -{ - - -// Basic stream state saver class declarations -----------------------------// - -class ios_flags_saver -{ -public: - typedef ::std::ios_base state_type; - typedef ::std::ios_base::fmtflags aspect_type; - - explicit ios_flags_saver( state_type &s ) - : s_save_( s ), a_save_( s.flags() ) - {} - ios_flags_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.flags(a) ) - {} - ~ios_flags_saver() - { this->restore(); } - - void restore() - { s_save_.flags( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - - ios_flags_saver& operator=(const ios_flags_saver&); -}; - -class ios_precision_saver -{ -public: - typedef ::std::ios_base state_type; - typedef ::std::streamsize aspect_type; - - explicit ios_precision_saver( state_type &s ) - : s_save_( s ), a_save_( s.precision() ) - {} - ios_precision_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.precision(a) ) - {} - ~ios_precision_saver() - { this->restore(); } - - void restore() - { s_save_.precision( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - - ios_precision_saver& operator=(const ios_precision_saver&); -}; - -class ios_width_saver -{ -public: - typedef ::std::ios_base state_type; - typedef ::std::streamsize aspect_type; - - explicit ios_width_saver( state_type &s ) - : s_save_( s ), a_save_( s.width() ) - {} - ios_width_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.width(a) ) - {} - ~ios_width_saver() - { this->restore(); } - - void restore() - { s_save_.width( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; - ios_width_saver& operator=(const ios_width_saver&); -}; - - -// Advanced stream state saver class template declarations -----------------// - -template < typename Ch, class Tr > -class basic_ios_iostate_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef ::std::ios_base::iostate aspect_type; - - explicit basic_ios_iostate_saver( state_type &s ) - : s_save_( s ), a_save_( s.rdstate() ) - {} - basic_ios_iostate_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.rdstate() ) - { s.clear(a); } - ~basic_ios_iostate_saver() - { this->restore(); } - - void restore() - { s_save_.clear( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; -}; - -template < typename Ch, class Tr > -class basic_ios_exception_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef ::std::ios_base::iostate aspect_type; - - explicit basic_ios_exception_saver( state_type &s ) - : s_save_( s ), a_save_( s.exceptions() ) - {} -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) - basic_ios_exception_saver( state_type &s, aspect_type a ) -#else - basic_ios_exception_saver( state_type &s, aspect_type const &a ) -#endif - : s_save_( s ), a_save_( s.exceptions() ) - { s.exceptions(a); } - ~basic_ios_exception_saver() - { this->restore(); } - - void restore() - { s_save_.exceptions( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; -}; - -template < typename Ch, class Tr > -class basic_ios_tie_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef ::std::basic_ostream * aspect_type; - - explicit basic_ios_tie_saver( state_type &s ) - : s_save_( s ), a_save_( s.tie() ) - {} - basic_ios_tie_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.tie(a) ) - {} - ~basic_ios_tie_saver() - { this->restore(); } - - void restore() - { s_save_.tie( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; -}; - -template < typename Ch, class Tr > -class basic_ios_rdbuf_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef ::std::basic_streambuf * aspect_type; - - explicit basic_ios_rdbuf_saver( state_type &s ) - : s_save_( s ), a_save_( s.rdbuf() ) - {} - basic_ios_rdbuf_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.rdbuf(a) ) - {} - ~basic_ios_rdbuf_saver() - { this->restore(); } - - void restore() - { s_save_.rdbuf( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; -}; - -template < typename Ch, class Tr > -class basic_ios_fill_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef typename state_type::char_type aspect_type; - - explicit basic_ios_fill_saver( state_type &s ) - : s_save_( s ), a_save_( s.fill() ) - {} - basic_ios_fill_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.fill(a) ) - {} - ~basic_ios_fill_saver() - { this->restore(); } - - void restore() - { s_save_.fill( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; -}; - -#ifndef BOOST_NO_STD_LOCALE -template < typename Ch, class Tr > -class basic_ios_locale_saver -{ -public: - typedef ::std::basic_ios state_type; - typedef ::std::locale aspect_type; - - explicit basic_ios_locale_saver( state_type &s ) - : s_save_( s ), a_save_( s.getloc() ) - {} - basic_ios_locale_saver( state_type &s, aspect_type const &a ) - : s_save_( s ), a_save_( s.imbue(a) ) - {} - ~basic_ios_locale_saver() - { this->restore(); } - - void restore() - { s_save_.imbue( a_save_ ); } - -private: - state_type & s_save_; - aspect_type const a_save_; -}; -#endif - - -// User-defined stream state saver class declarations ----------------------// - -class ios_iword_saver -{ -public: - typedef ::std::ios_base state_type; - typedef int index_type; - typedef long aspect_type; - - explicit ios_iword_saver( state_type &s, index_type i ) - : s_save_( s ), a_save_( s.iword(i) ), i_save_( i ) - {} - ios_iword_saver( state_type &s, index_type i, aspect_type const &a ) - : s_save_( s ), a_save_( s.iword(i) ), i_save_( i ) - { s.iword(i) = a; } - ~ios_iword_saver() - { this->restore(); } - - void restore() - { s_save_.iword( i_save_ ) = a_save_; } - -private: - state_type & s_save_; - aspect_type const a_save_; - index_type const i_save_; - - ios_iword_saver& operator=(const ios_iword_saver&); -}; - -class ios_pword_saver -{ -public: - typedef ::std::ios_base state_type; - typedef int index_type; - typedef void * aspect_type; - - explicit ios_pword_saver( state_type &s, index_type i ) - : s_save_( s ), a_save_( s.pword(i) ), i_save_( i ) - {} - ios_pword_saver( state_type &s, index_type i, aspect_type const &a ) - : s_save_( s ), a_save_( s.pword(i) ), i_save_( i ) - { s.pword(i) = a; } - ~ios_pword_saver() - { this->restore(); } - - void restore() - { s_save_.pword( i_save_ ) = a_save_; } - -private: - state_type & s_save_; - aspect_type const a_save_; - index_type const i_save_; - - ios_pword_saver operator=(const ios_pword_saver&); -}; - - -// Combined stream state saver class (template) declarations ---------------// - -class ios_base_all_saver -{ -public: - typedef ::std::ios_base state_type; - - explicit ios_base_all_saver( state_type &s ) - : s_save_( s ), a1_save_( s.flags() ), a2_save_( s.precision() ) - , a3_save_( s.width() ) - {} - - ~ios_base_all_saver() - { this->restore(); } - - void restore() - { - s_save_.width( a3_save_ ); - s_save_.precision( a2_save_ ); - s_save_.flags( a1_save_ ); - } - -private: - state_type & s_save_; - state_type::fmtflags const a1_save_; - ::std::streamsize const a2_save_; - ::std::streamsize const a3_save_; - - ios_base_all_saver& operator=(const ios_base_all_saver&); -}; - -template < typename Ch, class Tr > -class basic_ios_all_saver -{ -public: - typedef ::std::basic_ios state_type; - - explicit basic_ios_all_saver( state_type &s ) - : s_save_( s ), a1_save_( s.flags() ), a2_save_( s.precision() ) - , a3_save_( s.width() ), a4_save_( s.rdstate() ) - , a5_save_( s.exceptions() ), a6_save_( s.tie() ) - , a7_save_( s.rdbuf() ), a8_save_( s.fill() ) - #ifndef BOOST_NO_STD_LOCALE - , a9_save_( s.getloc() ) - #endif - {} - - ~basic_ios_all_saver() - { this->restore(); } - - void restore() - { - #ifndef BOOST_NO_STD_LOCALE - s_save_.imbue( a9_save_ ); - #endif - s_save_.fill( a8_save_ ); - s_save_.rdbuf( a7_save_ ); - s_save_.tie( a6_save_ ); - s_save_.exceptions( a5_save_ ); - s_save_.clear( a4_save_ ); - s_save_.width( a3_save_ ); - s_save_.precision( a2_save_ ); - s_save_.flags( a1_save_ ); - } - -private: - state_type & s_save_; - typename state_type::fmtflags const a1_save_; - ::std::streamsize const a2_save_; - ::std::streamsize const a3_save_; - typename state_type::iostate const a4_save_; - typename state_type::iostate const a5_save_; - ::std::basic_ostream * const a6_save_; - ::std::basic_streambuf * const a7_save_; - typename state_type::char_type const a8_save_; - #ifndef BOOST_NO_STD_LOCALE - ::std::locale const a9_save_; - #endif -}; - -class ios_all_word_saver -{ -public: - typedef ::std::ios_base state_type; - typedef int index_type; - - ios_all_word_saver( state_type &s, index_type i ) - : s_save_( s ), i_save_( i ), a1_save_( s.iword(i) ) - , a2_save_( s.pword(i) ) - {} - - ~ios_all_word_saver() - { this->restore(); } - - void restore() - { - s_save_.pword( i_save_ ) = a2_save_; - s_save_.iword( i_save_ ) = a1_save_; - } - -private: - state_type & s_save_; - index_type const i_save_; - long const a1_save_; - void * const a2_save_; - - ios_all_word_saver& operator=(const ios_all_word_saver&); -}; - - -} // namespace io -} // namespace boost - - -#endif // BOOST_IO_IOS_STATE_HPP diff --git a/3rdParty/Boost/boost/io_fwd.hpp b/3rdParty/Boost/boost/io_fwd.hpp deleted file mode 100644 index 417b81e..0000000 --- a/3rdParty/Boost/boost/io_fwd.hpp +++ /dev/null @@ -1,67 +0,0 @@ -// Boost io_fwd.hpp header file --------------------------------------------// - -// Copyright 2002 Daryle Walker. Use, modification, and distribution are subject -// to the Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or a copy at .) - -// See for the library's home page. - -#ifndef BOOST_IO_FWD_HPP -#define BOOST_IO_FWD_HPP - -#include // for std::char_traits (declaration) - - -namespace boost -{ -namespace io -{ - - -// From -------------------------------------------// - -class ios_flags_saver; -class ios_precision_saver; -class ios_width_saver; -class ios_base_all_saver; - -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_iostate_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_exception_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_tie_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_rdbuf_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_fill_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_locale_saver; -template < typename Ch, class Tr = ::std::char_traits > - class basic_ios_all_saver; - -typedef basic_ios_iostate_saver ios_iostate_saver; -typedef basic_ios_iostate_saver wios_iostate_saver; -typedef basic_ios_exception_saver ios_exception_saver; -typedef basic_ios_exception_saver wios_exception_saver; -typedef basic_ios_tie_saver ios_tie_saver; -typedef basic_ios_tie_saver wios_tie_saver; -typedef basic_ios_rdbuf_saver ios_rdbuf_saver; -typedef basic_ios_rdbuf_saver wios_rdbuf_saver; -typedef basic_ios_fill_saver ios_fill_saver; -typedef basic_ios_fill_saver wios_fill_saver; -typedef basic_ios_locale_saver ios_locale_saver; -typedef basic_ios_locale_saver wios_locale_saver; -typedef basic_ios_all_saver ios_all_saver; -typedef basic_ios_all_saver wios_all_saver; - -class ios_iword_saver; -class ios_pword_saver; -class ios_all_word_saver; - - -} // namespace io -} // namespace boost - - -#endif // BOOST_IO_FWD_HPP diff --git a/3rdParty/Boost/boost/is_placeholder.hpp b/3rdParty/Boost/boost/is_placeholder.hpp deleted file mode 100644 index 5f1b544..0000000 --- a/3rdParty/Boost/boost/is_placeholder.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef BOOST_IS_PLACEHOLDER_HPP_INCLUDED -#define BOOST_IS_PLACEHOLDER_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined( _MSC_VER ) && ( _MSC_VER >= 1020 ) -# pragma once -#endif - - -// is_placeholder.hpp - TR1 is_placeholder metafunction -// -// Copyright (c) 2006 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt - - -namespace boost -{ - -template< class T > struct is_placeholder -{ - enum _vt { value = 0 }; -}; - -} // namespace boost - -#endif // #ifndef BOOST_IS_PLACEHOLDER_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/iterator.hpp b/3rdParty/Boost/boost/iterator.hpp deleted file mode 100644 index a43cfe1..0000000 --- a/3rdParty/Boost/boost/iterator.hpp +++ /dev/null @@ -1,59 +0,0 @@ -// interator.hpp workarounds for non-conforming standard libraries ---------// - -// (C) Copyright Beman Dawes 2000. Distributed under the 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/utility for documentation. - -// Revision History -// 12 Jan 01 added for std::ptrdiff_t (Jens Maurer) -// 28 Jun 00 Workarounds to deal with known MSVC bugs (David Abrahams) -// 26 Jun 00 Initial version (Jeremy Siek) - -#ifndef BOOST_ITERATOR_HPP -#define BOOST_ITERATOR_HPP - -#include -#include // std::ptrdiff_t -#include - -namespace boost -{ -# if defined(BOOST_NO_STD_ITERATOR) && !defined(BOOST_MSVC_STD_ITERATOR) - template - struct iterator - { - typedef T value_type; - typedef Distance difference_type; - typedef Pointer pointer; - typedef Reference reference; - typedef Category iterator_category; - }; -# else - - // declare iterator_base in namespace detail to work around MSVC bugs which - // prevent derivation from an identically-named class in a different namespace. - namespace detail { - template -# if !defined(BOOST_MSVC_STD_ITERATOR) - struct iterator_base : std::iterator {}; -# else - struct iterator_base : std::iterator - { - typedef Reference reference; - typedef Pointer pointer; - typedef Distance difference_type; - }; -# endif - } - - template - struct iterator : boost::detail::iterator_base {}; -# endif -} // namespace boost - -#endif // BOOST_ITERATOR_HPP diff --git a/3rdParty/Boost/boost/iterator/detail/config_def.hpp b/3rdParty/Boost/boost/iterator/detail/config_def.hpp deleted file mode 100644 index fa8d667..0000000 --- a/3rdParty/Boost/boost/iterator/detail/config_def.hpp +++ /dev/null @@ -1,137 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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) - -// no include guard multiple inclusion intended - -// -// This is a temporary workaround until the bulk of this is -// available in boost config. -// 23/02/03 thw -// - -#include // for prior -#include - -#ifdef BOOST_ITERATOR_CONFIG_DEF -# error you have nested config_def #inclusion. -#else -# define BOOST_ITERATOR_CONFIG_DEF -#endif - -// We enable this always now. Otherwise, the simple case in -// libs/iterator/test/constant_iterator_arrow.cpp fails to compile -// because the operator-> return is improperly deduced as a non-const -// pointer. -#if 1 || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x531)) - -// Recall that in general, compilers without partial specialization -// can't strip constness. Consider counting_iterator, which normally -// passes a const Value to iterator_facade. As a result, any code -// which makes a std::vector of the iterator's value_type will fail -// when its allocator declares functions overloaded on reference and -// const_reference (the same type). -// -// Furthermore, Borland 5.5.1 drops constness in enough ways that we -// end up using a proxy for operator[] when we otherwise shouldn't. -// Using reference constness gives it an extra hint that it can -// return the value_type from operator[] directly, but is not -// strictly necessary. Not sure how best to resolve this one. - -# define BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 1 - -#endif - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x5A0)) \ - || (BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \ - || BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042)) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590)) - -# define BOOST_NO_LVALUE_RETURN_DETECTION - -# if 0 // test code - struct v {}; - - typedef char (&no)[3]; - - template - no foo(T const&, ...); - - template - char foo(T&, int); - - - struct value_iterator - { - v operator*() const; - }; - - template - struct lvalue_deref_helper - { - static T& x; - enum { value = (sizeof(foo(*x,0)) == 1) }; - }; - - int z2[(lvalue_deref_helper::value == 1) ? 1 : -1]; - int z[(lvalue_deref_helper::value) == 1 ? -1 : 1 ]; -# endif - -#endif - -#if BOOST_WORKAROUND(__MWERKS__, <=0x2407) -# define BOOST_NO_IS_CONVERTIBLE // "is_convertible doesn't work for simple types" -#endif - -#if BOOST_WORKAROUND(__GNUC__, == 2) \ - || BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4) && !defined(__EDG_VERSION__) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551)) -# define BOOST_NO_IS_CONVERTIBLE_TEMPLATE // The following program fails to compile: - -# if 0 // test code - #include - template - struct foo - { - foo(T); - - template - foo(foo const& other) : p(other.p) { } - - T p; - }; - - bool x = boost::is_convertible, foo >::value; -# endif - -#endif - - -#if !defined(BOOST_MSVC) && (defined(BOOST_NO_SFINAE) || defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_IS_CONVERTIBLE_TEMPLATE)) -# define BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY -#endif - -# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) -# define BOOST_ARG_DEPENDENT_TYPENAME typename -# else -# define BOOST_ARG_DEPENDENT_TYPENAME -# endif - -# if BOOST_WORKAROUND(__GNUC__, == 2) && BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(95)) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) - -// GCC-2.95 eagerly instantiates templated constructors and conversion -// operators in convertibility checks, causing premature errors. -// -// Borland's problems are harder to diagnose due to lack of an -// instantiation stack backtrace. They may be due in part to the fact -// that it drops cv-qualification willy-nilly in templates. -# define BOOST_NO_ONE_WAY_ITERATOR_INTEROP -# endif - -// no include guard; multiple inclusion intended diff --git a/3rdParty/Boost/boost/iterator/detail/config_undef.hpp b/3rdParty/Boost/boost/iterator/detail/config_undef.hpp deleted file mode 100644 index 9dcd1d5..0000000 --- a/3rdParty/Boost/boost/iterator/detail/config_undef.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// (C) Copyright Thomas Witt 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) - -// no include guard multiple inclusion intended - -// -// This is a temporary workaround until the bulk of this is -// available in boost config. -// 23/02/03 thw -// - -#undef BOOST_NO_IS_CONVERTIBLE -#undef BOOST_NO_IS_CONVERTIBLE_TEMPLATE -#undef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY -#undef BOOST_ARG_DEPENDENT_TYPENAME -#undef BOOST_NO_LVALUE_RETURN_DETECTION -#undef BOOST_NO_ONE_WAY_ITERATOR_INTEROP - -#ifdef BOOST_ITERATOR_CONFIG_DEF -# undef BOOST_ITERATOR_CONFIG_DEF -#else -# error missing or nested #include config_def -#endif diff --git a/3rdParty/Boost/boost/iterator/detail/enable_if.hpp b/3rdParty/Boost/boost/iterator/detail/enable_if.hpp deleted file mode 100644 index 0fd36fc..0000000 --- a/3rdParty/Boost/boost/iterator/detail/enable_if.hpp +++ /dev/null @@ -1,86 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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) -#ifndef BOOST_ENABLE_IF_23022003THW_HPP -#define BOOST_ENABLE_IF_23022003THW_HPP - -#include -#include - -#include - -// -// Boost iterators uses its own enable_if cause we need -// special semantics for deficient compilers. -// 23/02/03 thw -// - -namespace boost -{ - - namespace iterators - { - // - // Base machinery for all kinds of enable if - // - template - struct enabled - { - template - struct base - { - typedef T type; - }; - }; - - // - // For compilers that don't support "Substitution Failure Is Not An Error" - // enable_if falls back to always enabled. See comments - // on operator implementation for consequences. - // - template<> - struct enabled - { - template - struct base - { -#ifdef BOOST_NO_SFINAE - - typedef T type; - - // This way to do it would give a nice error message containing - // invalid overload, but has the big disadvantage that - // there is no reference to user code in the error message. - // - // struct invalid_overload; - // typedef invalid_overload type; - // -#endif - }; - }; - - - template - struct enable_if -# if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_IS_CONVERTIBLE) - : enabled<(Cond::value)>::template base -# else - : mpl::identity -# endif - { -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - typedef Return type; -# endif - }; - - } // namespace iterators - -} // namespace boost - -#include - -#endif // BOOST_ENABLE_IF_23022003THW_HPP diff --git a/3rdParty/Boost/boost/iterator/detail/facade_iterator_category.hpp b/3rdParty/Boost/boost/iterator/detail/facade_iterator_category.hpp deleted file mode 100644 index 2c4771d..0000000 --- a/3rdParty/Boost/boost/iterator/detail/facade_iterator_category.hpp +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright David Abrahams 2003. Use, modification and distribution is -// subject to the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef FACADE_ITERATOR_CATEGORY_DWA20031118_HPP -# define FACADE_ITERATOR_CATEGORY_DWA20031118_HPP - -# include - -# include // used in iterator_tag inheritance logic -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -# include - -# include // try to keep this last - -# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY -# include -# endif - -// -// iterator_category deduction for iterator_facade -// - -// forward declaration -namespace boost { struct use_default; } - -namespace boost { namespace detail { - -struct input_output_iterator_tag - : std::input_iterator_tag -{ - // Using inheritance for only input_iterator_tag helps to avoid - // ambiguities when a stdlib implementation dispatches on a - // function which is overloaded on both input_iterator_tag and - // output_iterator_tag, as STLPort does, in its __valid_range - // function. I claim it's better to avoid the ambiguity in these - // cases. - operator std::output_iterator_tag() const - { - return std::output_iterator_tag(); - } -}; - -// -// True iff the user has explicitly disabled writability of this -// iterator. Pass the iterator_facade's Value parameter and its -// nested ::reference type. -// -template -struct iterator_writability_disabled -# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY // Adding Thomas' logic? - : mpl::or_< - is_const - , boost::detail::indirect_traits::is_reference_to_const - , is_const - > -# else - : is_const -# endif -{}; - - -// -// Convert an iterator_facade's traversal category, Value parameter, -// and ::reference type to an appropriate old-style category. -// -// If writability has been disabled per the above metafunction, the -// result will not be convertible to output_iterator_tag. -// -// Otherwise, if Traversal == single_pass_traversal_tag, the following -// conditions will result in a tag that is convertible both to -// input_iterator_tag and output_iterator_tag: -// -// 1. Reference is a reference to non-const -// 2. Reference is not a reference and is convertible to Value -// -template -struct iterator_facade_default_category - : mpl::eval_if< - mpl::and_< - is_reference - , is_convertible - > - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::if_< - is_convertible - , std::bidirectional_iterator_tag - , std::forward_iterator_tag - > - > - , typename mpl::eval_if< - mpl::and_< - is_convertible - - // check for readability - , is_convertible - > - , mpl::identity - , mpl::identity - > - > -{ -}; - -// True iff T is convertible to an old-style iterator category. -template -struct is_iterator_category - : mpl::or_< - is_convertible - , is_convertible - > -{ -}; - -template -struct is_iterator_traversal - : is_convertible -{}; - -// -// A composite iterator_category tag convertible to Category (a pure -// old-style category) and Traversal (a pure traversal tag). -// Traversal must be a strict increase of the traversal power given by -// Category. -// -template -struct iterator_category_with_traversal - : Category, Traversal -{ -# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - // Make sure this isn't used to build any categories where - // convertibility to Traversal is redundant. Should just use the - // Category element in that case. - BOOST_MPL_ASSERT_NOT(( - is_convertible< - typename iterator_category_to_traversal::type - , Traversal - >)); - - BOOST_MPL_ASSERT((is_iterator_category)); - BOOST_MPL_ASSERT_NOT((is_iterator_category)); - BOOST_MPL_ASSERT_NOT((is_iterator_traversal)); -# if !BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310)) - BOOST_MPL_ASSERT((is_iterator_traversal)); -# endif -# endif -}; - -// Computes an iterator_category tag whose traversal is Traversal and -// which is appropriate for an iterator -template -struct facade_iterator_category_impl -{ -# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - BOOST_MPL_ASSERT_NOT((is_iterator_category)); -# endif - - typedef typename iterator_facade_default_category< - Traversal,ValueParam,Reference - >::type category; - - typedef typename mpl::if_< - is_same< - Traversal - , typename iterator_category_to_traversal::type - > - , category - , iterator_category_with_traversal - >::type type; -}; - -// -// Compute an iterator_category for iterator_facade -// -template -struct facade_iterator_category - : mpl::eval_if< - is_iterator_category - , mpl::identity // old-style categories are fine as-is - , facade_iterator_category_impl - > -{ -}; - -}} // namespace boost::detail - -# include - -#endif // FACADE_ITERATOR_CATEGORY_DWA20031118_HPP diff --git a/3rdParty/Boost/boost/iterator/detail/minimum_category.hpp b/3rdParty/Boost/boost/iterator/detail/minimum_category.hpp deleted file mode 100644 index 96501dd..0000000 --- a/3rdParty/Boost/boost/iterator/detail/minimum_category.hpp +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright David Abrahams 2003. Use, modification and distribution is -// subject to the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef MINIMUM_CATEGORY_DWA20031119_HPP -# define MINIMUM_CATEGORY_DWA20031119_HPP - -# include -# include - -# include - -namespace boost { namespace detail { -// -// Returns the minimum category type or error_type -// if T1 and T2 are unrelated. -// -// For compilers not supporting is_convertible this only -// works with the new boost return and traversal category -// types. The exact boost _types_ are required. No derived types -// will work. -// -// -template -struct minimum_category_impl -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -{ - template struct apply - { - typedef T2 type; - }; - typedef void type; -} -# endif -; - -template -struct error_not_related_by_convertibility; - -template <> -struct minimum_category_impl -{ - template struct apply - { - typedef T2 type; - }; -}; - -template <> -struct minimum_category_impl -{ - template struct apply - { - typedef T1 type; - }; -}; - -template <> -struct minimum_category_impl -{ - template struct apply - { - BOOST_STATIC_ASSERT((is_same::value)); - typedef T1 type; - }; -}; - -template <> -struct minimum_category_impl -{ - template struct apply - : error_not_related_by_convertibility - { - }; -}; - -template -struct minimum_category -{ - typedef minimum_category_impl< -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // ETI workaround - is_same::value || -# endif - ::boost::is_convertible::value - , ::boost::is_convertible::value -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // ETI workaround - || is_same::value -# endif - > outer; - - typedef typename outer::template apply inner; - typedef typename inner::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,minimum_category,(T1,T2)) -}; - -template <> -struct minimum_category -{ - template - struct apply : minimum_category - {}; - - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,minimum_category,(mpl::_1,mpl::_2)) -}; - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) // ETI workaround -template <> -struct minimum_category -{ - typedef int type; -}; -# endif - -}} // namespace boost::detail - -#endif // MINIMUM_CATEGORY_DWA20031119_HPP diff --git a/3rdParty/Boost/boost/iterator/interoperable.hpp b/3rdParty/Boost/boost/iterator/interoperable.hpp deleted file mode 100644 index c13dd9b..0000000 --- a/3rdParty/Boost/boost/iterator/interoperable.hpp +++ /dev/null @@ -1,50 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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) -#ifndef BOOST_INTEROPERABLE_23022003THW_HPP -# define BOOST_INTEROPERABLE_23022003THW_HPP - -# include -# include - -# include - -# include // must appear last - -namespace boost -{ - - // - // Meta function that determines whether two - // iterator types are considered interoperable. - // - // Two iterator types A,B are considered interoperable if either - // A is convertible to B or vice versa. - // This interoperability definition is in sync with the - // standards requirements on constant/mutable container - // iterators (23.1 [lib.container.requirements]). - // - // For compilers that don't support is_convertible - // is_interoperable gives false positives. See comments - // on operator implementation for consequences. - // - template - struct is_interoperable -# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY - : mpl::true_ -# else - : mpl::or_< - is_convertible< A, B > - , is_convertible< B, A > > -# endif - { - }; - -} // namespace boost - -# include - -#endif // BOOST_INTEROPERABLE_23022003THW_HPP diff --git a/3rdParty/Boost/boost/iterator/iterator_adaptor.hpp b/3rdParty/Boost/boost/iterator/iterator_adaptor.hpp deleted file mode 100644 index 27b08ff..0000000 --- a/3rdParty/Boost/boost/iterator/iterator_adaptor.hpp +++ /dev/null @@ -1,371 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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) -#ifndef BOOST_ITERATOR_ADAPTOR_23022003THW_HPP -#define BOOST_ITERATOR_ADAPTOR_23022003THW_HPP - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include - -#include -#include - -#ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY -# include - -# if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610)) -# include -# endif - -#else -# include -#endif - -#include - -#include - -namespace boost -{ - // Used as a default template argument internally, merely to - // indicate "use the default", this can also be passed by users - // explicitly in order to specify that the default should be used. - struct use_default; - -# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - // the incompleteness of use_default causes massive problems for - // is_convertible (naturally). This workaround is fortunately not - // needed for vc6/vc7. - template - struct is_convertible - : mpl::false_ {}; -# endif - - namespace detail - { - - // - // Result type used in enable_if_convertible meta function. - // This can be an incomplete type, as only pointers to - // enable_if_convertible< ... >::type are used. - // We could have used void for this, but conversion to - // void* is just to easy. - // - struct enable_type; - } - - - // - // enable_if for use in adapted iterators constructors. - // - // In order to provide interoperability between adapted constant and - // mutable iterators, adapted iterators will usually provide templated - // conversion constructors of the following form - // - // template - // class adapted_iterator : - // public iterator_adaptor< adapted_iterator, Iterator > - // { - // public: - // - // ... - // - // template - // adapted_iterator( - // OtherIterator const& it - // , typename enable_if_convertible::type* = 0); - // - // ... - // }; - // - // enable_if_convertible is used to remove those overloads from the overload - // set that cannot be instantiated. For all practical purposes only overloads - // for constant/mutable interaction will remain. This has the advantage that - // meta functions like boost::is_convertible do not return false positives, - // as they can only look at the signature of the conversion constructor - // and not at the actual instantiation. - // - // enable_if_interoperable can be safely used in user code. It falls back to - // always enabled for compilers that don't support enable_if or is_convertible. - // There is no need for compiler specific workarounds in user code. - // - // The operators implementation relies on boost::is_convertible not returning - // false positives for user/library defined iterator types. See comments - // on operator implementation for consequences. - // -# if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - - template - struct enable_if_convertible - { - typedef typename mpl::if_< - mpl::or_< - is_same - , is_convertible - > - , boost::detail::enable_type - , int& - >::type type; - }; - -# elif defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_SFINAE) - - template - struct enable_if_convertible - { - typedef boost::detail::enable_type type; - }; - -# elif BOOST_WORKAROUND(_MSC_FULL_VER, BOOST_TESTED_AT(13102292)) && BOOST_MSVC > 1300 - - // For some reason vc7.1 needs us to "cut off" instantiation - // of is_convertible in a few cases. - template - struct enable_if_convertible - : iterators::enable_if< - mpl::or_< - is_same - , is_convertible - > - , boost::detail::enable_type - > - {}; - -# else - - template - struct enable_if_convertible - : iterators::enable_if< - is_convertible - , boost::detail::enable_type - > - {}; - -# endif - - // - // Default template argument handling for iterator_adaptor - // - namespace detail - { - // If T is use_default, return the result of invoking - // DefaultNullaryFn, otherwise return T. - template - struct ia_dflt_help - : mpl::eval_if< - is_same - , DefaultNullaryFn - , mpl::identity - > - { - }; - - // A metafunction which computes an iterator_adaptor's base class, - // a specialization of iterator_facade. - template < - class Derived - , class Base - , class Value - , class Traversal - , class Reference - , class Difference - > - struct iterator_adaptor_base - { - typedef iterator_facade< - Derived - -# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY - , typename boost::detail::ia_dflt_help< - Value - , mpl::eval_if< - is_same - , iterator_value - , remove_reference - > - >::type -# else - , typename boost::detail::ia_dflt_help< - Value, iterator_value - >::type -# endif - - , typename boost::detail::ia_dflt_help< - Traversal - , iterator_traversal - >::type - - , typename boost::detail::ia_dflt_help< - Reference - , mpl::eval_if< - is_same - , iterator_reference - , add_reference - > - >::type - - , typename boost::detail::ia_dflt_help< - Difference, iterator_difference - >::type - > - type; - }; - - // workaround for aC++ CR JAGaf33512 - template - inline void iterator_adaptor_assert_traversal () - { - BOOST_STATIC_ASSERT((is_convertible::value)); - } - } - - // - // Iterator Adaptor - // - // The parameter ordering changed slightly with respect to former - // versions of iterator_adaptor The idea is that when the user needs - // to fiddle with the reference type it is highly likely that the - // iterator category has to be adjusted as well. Any of the - // following four template arguments may be ommitted or explicitly - // replaced by use_default. - // - // Value - if supplied, the value_type of the resulting iterator, unless - // const. If const, a conforming compiler strips constness for the - // value_type. If not supplied, iterator_traits::value_type is used - // - // Category - the traversal category of the resulting iterator. If not - // supplied, iterator_traversal::type is used. - // - // Reference - the reference type of the resulting iterator, and in - // particular, the result type of operator*(). If not supplied but - // Value is supplied, Value& is used. Otherwise - // iterator_traits::reference is used. - // - // Difference - the difference_type of the resulting iterator. If not - // supplied, iterator_traits::difference_type is used. - // - template < - class Derived - , class Base - , class Value = use_default - , class Traversal = use_default - , class Reference = use_default - , class Difference = use_default - > - class iterator_adaptor - : public boost::detail::iterator_adaptor_base< - Derived, Base, Value, Traversal, Reference, Difference - >::type - { - friend class iterator_core_access; - - protected: - typedef typename boost::detail::iterator_adaptor_base< - Derived, Base, Value, Traversal, Reference, Difference - >::type super_t; - public: - iterator_adaptor() {} - - explicit iterator_adaptor(Base const &iter) - : m_iterator(iter) - { - } - - typedef Base base_type; - - Base const& base() const - { return m_iterator; } - - protected: - // for convenience in derived classes - typedef iterator_adaptor iterator_adaptor_; - - // - // lvalue access to the Base object for Derived - // - Base const& base_reference() const - { return m_iterator; } - - Base& base_reference() - { return m_iterator; } - - private: - // - // Core iterator interface for iterator_facade. This is private - // to prevent temptation for Derived classes to use it, which - // will often result in an error. Derived classes should use - // base_reference(), above, to get direct access to m_iterator. - // - typename super_t::reference dereference() const - { return *m_iterator; } - - template < - class OtherDerived, class OtherIterator, class V, class C, class R, class D - > - bool equal(iterator_adaptor const& x) const - { - // Maybe readd with same_distance - // BOOST_STATIC_ASSERT( - // (detail::same_category_and_difference::value) - // ); - return m_iterator == x.base(); - } - - typedef typename iterator_category_to_traversal< - typename super_t::iterator_category - >::type my_traversal; - -# define BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(cat) \ - boost::detail::iterator_adaptor_assert_traversal(); - - void advance(typename super_t::difference_type n) - { - BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag) - m_iterator += n; - } - - void increment() { ++m_iterator; } - - void decrement() - { - BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(bidirectional_traversal_tag) - --m_iterator; - } - - template < - class OtherDerived, class OtherIterator, class V, class C, class R, class D - > - typename super_t::difference_type distance_to( - iterator_adaptor const& y) const - { - BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag) - // Maybe readd with same_distance - // BOOST_STATIC_ASSERT( - // (detail::same_category_and_difference::value) - // ); - return y.base() - m_iterator; - } - -# undef BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL - - private: // data members - Base m_iterator; - }; - -} // namespace boost - -#include - -#endif // BOOST_ITERATOR_ADAPTOR_23022003THW_HPP diff --git a/3rdParty/Boost/boost/iterator/iterator_categories.hpp b/3rdParty/Boost/boost/iterator/iterator_categories.hpp deleted file mode 100644 index 1740d98..0000000 --- a/3rdParty/Boost/boost/iterator/iterator_categories.hpp +++ /dev/null @@ -1,188 +0,0 @@ -// (C) Copyright Jeremy Siek 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) - -#ifndef BOOST_ITERATOR_CATEGORIES_HPP -# define BOOST_ITERATOR_CATEGORIES_HPP - -# include -# include -# include - -# include - -# include -# include -# include -# include - -# include - -# include - -namespace boost { - -// -// Traversal Categories -// - -struct no_traversal_tag {}; - -struct incrementable_traversal_tag - : no_traversal_tag -{ -// incrementable_traversal_tag() {} -// incrementable_traversal_tag(std::output_iterator_tag const&) {}; -}; - -struct single_pass_traversal_tag - : incrementable_traversal_tag -{ -// single_pass_traversal_tag() {} -// single_pass_traversal_tag(std::input_iterator_tag const&) {}; -}; - -struct forward_traversal_tag - : single_pass_traversal_tag -{ -// forward_traversal_tag() {} -// forward_traversal_tag(std::forward_iterator_tag const&) {}; -}; - -struct bidirectional_traversal_tag - : forward_traversal_tag -{ -// bidirectional_traversal_tag() {}; -// bidirectional_traversal_tag(std::bidirectional_iterator_tag const&) {}; -}; - -struct random_access_traversal_tag - : bidirectional_traversal_tag -{ -// random_access_traversal_tag() {}; -// random_access_traversal_tag(std::random_access_iterator_tag const&) {}; -}; - -namespace detail -{ - // - // Convert a "strictly old-style" iterator category to a traversal - // tag. This is broken out into a separate metafunction to reduce - // the cost of instantiating iterator_category_to_traversal, below, - // for new-style types. - // - template - struct old_category_to_traversal - : mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , void - > - > - > - > - > - {}; - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - template <> - struct old_category_to_traversal - { - typedef int type; - }; -# endif - - template - struct pure_traversal_tag - : mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , mpl::eval_if< - is_convertible - , mpl::identity - , void - > - > - > - > - > - { - }; - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - template <> - struct pure_traversal_tag - { - typedef int type; - }; -# endif - -} // namespace detail - - -// -// Convert an iterator category into a traversal tag -// -template -struct iterator_category_to_traversal - : mpl::eval_if< // if already convertible to a traversal tag, we're done. - is_convertible - , mpl::identity - , boost::detail::old_category_to_traversal - > -{}; - -// Trait to get an iterator's traversal category -template -struct iterator_traversal - : iterator_category_to_traversal< - typename boost::detail::iterator_traits::iterator_category - > -{}; - -# ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT -// Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work -// out well. Instantiating the nested apply template also -// requires instantiating iterator_traits on the -// placeholder. Instead we just specialize it as a metafunction -// class. -template <> -struct iterator_traversal -{ - template - struct apply : iterator_traversal - {}; -}; -template <> -struct iterator_traversal - : iterator_traversal -{}; -# endif - -} // namespace boost - -#include - -#endif // BOOST_ITERATOR_CATEGORIES_HPP diff --git a/3rdParty/Boost/boost/iterator/iterator_facade.hpp b/3rdParty/Boost/boost/iterator/iterator_facade.hpp deleted file mode 100644 index 967d60f..0000000 --- a/3rdParty/Boost/boost/iterator/iterator_facade.hpp +++ /dev/null @@ -1,878 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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) -#ifndef BOOST_ITERATOR_FACADE_23022003THW_HPP -#define BOOST_ITERATOR_FACADE_23022003THW_HPP - -#include -#include -#include - -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include // this goes last - -namespace boost -{ - // This forward declaration is required for the friend declaration - // in iterator_core_access - template class iterator_facade; - - namespace detail - { - // A binary metafunction class that always returns bool. VC6 - // ICEs on mpl::always, probably because of the default - // parameters. - struct always_bool2 - { - template - struct apply - { - typedef bool type; - }; - }; - - // - // enable if for use in operator implementation. - // - template < - class Facade1 - , class Facade2 - , class Return - > - struct enable_if_interoperable -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - { - typedef typename mpl::if_< - mpl::or_< - is_convertible - , is_convertible - > - , Return - , int[3] - >::type type; - }; -#else - : ::boost::iterators::enable_if< - mpl::or_< - is_convertible - , is_convertible - > - , Return - > - {}; -#endif - - // - // Generates associated types for an iterator_facade with the - // given parameters. - // - template < - class ValueParam - , class CategoryOrTraversal - , class Reference - , class Difference - > - struct iterator_facade_types - { - typedef typename facade_iterator_category< - CategoryOrTraversal, ValueParam, Reference - >::type iterator_category; - - typedef typename remove_const::type value_type; - - typedef typename mpl::eval_if< - boost::detail::iterator_writability_disabled - , add_pointer - , add_pointer - >::type pointer; - -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && (BOOST_WORKAROUND(_STLPORT_VERSION, BOOST_TESTED_AT(0x452)) \ - || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, BOOST_TESTED_AT(310))) \ - || BOOST_WORKAROUND(BOOST_RWSTD_VER, BOOST_TESTED_AT(0x20101)) \ - || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, <= 310) - - // To interoperate with some broken library/compiler - // combinations, user-defined iterators must be derived from - // std::iterator. It is possible to implement a standard - // library for broken compilers without this limitation. -# define BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE 1 - - typedef - iterator - base; -# endif - }; - - // iterators whose dereference operators reference the same value - // for all iterators into the same sequence (like many input - // iterators) need help with their postfix ++: the referenced - // value must be read and stored away before the increment occurs - // so that *a++ yields the originally referenced element and not - // the next one. - template - class postfix_increment_proxy - { - typedef typename iterator_value::type value_type; - public: - explicit postfix_increment_proxy(Iterator const& x) - : stored_value(*x) - {} - - // Returning a mutable reference allows nonsense like - // (*r++).mutate(), but it imposes fewer assumptions about the - // behavior of the value_type. In particular, recall taht - // (*r).mutate() is legal if operator* returns by value. - value_type& - operator*() const - { - return this->stored_value; - } - private: - mutable value_type stored_value; - }; - - // - // In general, we can't determine that such an iterator isn't - // writable -- we also need to store a copy of the old iterator so - // that it can be written into. - template - class writable_postfix_increment_proxy - { - typedef typename iterator_value::type value_type; - public: - explicit writable_postfix_increment_proxy(Iterator const& x) - : stored_value(*x) - , stored_iterator(x) - {} - - // Dereferencing must return a proxy so that both *r++ = o and - // value_type(*r++) can work. In this case, *r is the same as - // *r++, and the conversion operator below is used to ensure - // readability. - writable_postfix_increment_proxy const& - operator*() const - { - return *this; - } - - // Provides readability of *r++ - operator value_type&() const - { - return stored_value; - } - - // Provides writability of *r++ - template - T const& operator=(T const& x) const - { - *this->stored_iterator = x; - return x; - } - - // This overload just in case only non-const objects are writable - template - T& operator=(T& x) const - { - *this->stored_iterator = x; - return x; - } - - // Provides X(r++) - operator Iterator const&() const - { - return stored_iterator; - } - - private: - mutable value_type stored_value; - Iterator stored_iterator; - }; - -# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - template - struct is_non_proxy_reference_impl - { - static Reference r; - - template - static typename mpl::if_< - is_convertible< - R const volatile* - , Value const volatile* - > - , char[1] - , char[2] - >::type& helper(R const&); - - BOOST_STATIC_CONSTANT(bool, value = sizeof(helper(r)) == 1); - }; - - template - struct is_non_proxy_reference - : mpl::bool_< - is_non_proxy_reference_impl::value - > - {}; -# else - template - struct is_non_proxy_reference - : is_convertible< - typename remove_reference::type - const volatile* - , Value const volatile* - > - {}; -# endif - - // A metafunction to choose the result type of postfix ++ - // - // Because the C++98 input iterator requirements say that *r++ has - // type T (value_type), implementations of some standard - // algorithms like lexicographical_compare may use constructions - // like: - // - // *r++ < *s++ - // - // If *r++ returns a proxy (as required if r is writable but not - // multipass), this sort of expression will fail unless the proxy - // supports the operator<. Since there are any number of such - // operations, we're not going to try to support them. Therefore, - // even if r++ returns a proxy, *r++ will only return a proxy if - // *r also returns a proxy. - template - struct postfix_increment_result - : mpl::eval_if< - mpl::and_< - // A proxy is only needed for readable iterators - is_convertible - - // No multipass iterator can have values that disappear - // before positions can be re-visited - , mpl::not_< - is_convertible< - typename iterator_category_to_traversal::type - , forward_traversal_tag - > - > - > - , mpl::if_< - is_non_proxy_reference - , postfix_increment_proxy - , writable_postfix_increment_proxy - > - , mpl::identity - > - {}; - - // operator->() needs special support for input iterators to strictly meet the - // standard's requirements. If *i is not a reference type, we must still - // produce a lvalue to which a pointer can be formed. We do that by - // returning an instantiation of this special proxy class template. - template - struct operator_arrow_proxy - { - operator_arrow_proxy(T const* px) : m_value(*px) {} - T* operator->() const { return &m_value; } - // This function is needed for MWCW and BCC, which won't call operator-> - // again automatically per 13.3.1.2 para 8 - operator T*() const { return &m_value; } - mutable T m_value; - }; - - // A metafunction that gets the result type for operator->. Also - // has a static function make() which builds the result from a - // Reference - template - struct operator_arrow_result - { - // CWPro8.3 won't accept "operator_arrow_result::type", and we - // need that type below, so metafunction forwarding would be a - // losing proposition here. - typedef typename mpl::if_< - is_reference - , Pointer - , operator_arrow_proxy - >::type type; - - static type make(Reference x) - { - return implicit_cast(&x); - } - }; - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - // Deal with ETI - template<> - struct operator_arrow_result - { - typedef int type; - }; -# endif - - // A proxy return type for operator[], needed to deal with - // iterators that may invalidate referents upon destruction. - // Consider the temporary iterator in *(a + n) - template - class operator_brackets_proxy - { - // Iterator is actually an iterator_facade, so we do not have to - // go through iterator_traits to access the traits. - typedef typename Iterator::reference reference; - typedef typename Iterator::value_type value_type; - - public: - operator_brackets_proxy(Iterator const& iter) - : m_iter(iter) - {} - - operator reference() const - { - return *m_iter; - } - - operator_brackets_proxy& operator=(value_type const& val) - { - *m_iter = val; - return *this; - } - - private: - Iterator m_iter; - }; - - // A metafunction that determines whether operator[] must return a - // proxy, or whether it can simply return a copy of the value_type. - template - struct use_operator_brackets_proxy - : mpl::not_< - mpl::and_< - // Really we want an is_copy_constructible trait here, - // but is_POD will have to suffice in the meantime. - boost::is_POD - , iterator_writability_disabled - > - > - {}; - - template - struct operator_brackets_result - { - typedef typename mpl::if_< - use_operator_brackets_proxy - , operator_brackets_proxy - , Value - >::type type; - }; - - template - operator_brackets_proxy make_operator_brackets_result(Iterator const& iter, mpl::true_) - { - return operator_brackets_proxy(iter); - } - - template - typename Iterator::value_type make_operator_brackets_result(Iterator const& iter, mpl::false_) - { - return *iter; - } - - struct choose_difference_type - { - template - struct apply - : -# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP - iterator_difference -# elif BOOST_WORKAROUND(BOOST_MSVC, < 1300) - mpl::if_< - is_convertible - , typename I1::difference_type - , typename I2::difference_type - > -# else - mpl::eval_if< - is_convertible - , iterator_difference - , iterator_difference - > -# endif - {}; - - }; - } // namespace detail - - - // Macros which describe the declarations of binary operators -# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY -# define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type) \ - template < \ - class Derived1, class V1, class TC1, class Reference1, class Difference1 \ - , class Derived2, class V2, class TC2, class Reference2, class Difference2 \ - > \ - prefix typename mpl::apply2::type \ - operator op( \ - iterator_facade const& lhs \ - , iterator_facade const& rhs) -# else -# define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type) \ - template < \ - class Derived1, class V1, class TC1, class Reference1, class Difference1 \ - , class Derived2, class V2, class TC2, class Reference2, class Difference2 \ - > \ - prefix typename boost::detail::enable_if_interoperable< \ - Derived1, Derived2 \ - , typename mpl::apply2::type \ - >::type \ - operator op( \ - iterator_facade const& lhs \ - , iterator_facade const& rhs) -# endif - -# define BOOST_ITERATOR_FACADE_PLUS_HEAD(prefix,args) \ - template \ - prefix Derived operator+ args - - // - // Helper class for granting access to the iterator core interface. - // - // The simple core interface is used by iterator_facade. The core - // interface of a user/library defined iterator type should not be made public - // so that it does not clutter the public interface. Instead iterator_core_access - // should be made friend so that iterator_facade can access the core - // interface through iterator_core_access. - // - class iterator_core_access - { -# if defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS) - // Tasteless as this may seem, making all members public allows member templates - // to work in the absence of member template friends. - public: -# else - - template friend class iterator_facade; - -# define BOOST_ITERATOR_FACADE_RELATION(op) \ - BOOST_ITERATOR_FACADE_INTEROP_HEAD(friend,op, boost::detail::always_bool2); - - BOOST_ITERATOR_FACADE_RELATION(==) - BOOST_ITERATOR_FACADE_RELATION(!=) - - BOOST_ITERATOR_FACADE_RELATION(<) - BOOST_ITERATOR_FACADE_RELATION(>) - BOOST_ITERATOR_FACADE_RELATION(<=) - BOOST_ITERATOR_FACADE_RELATION(>=) -# undef BOOST_ITERATOR_FACADE_RELATION - - BOOST_ITERATOR_FACADE_INTEROP_HEAD( - friend, -, boost::detail::choose_difference_type) - ; - - BOOST_ITERATOR_FACADE_PLUS_HEAD( - friend inline - , (iterator_facade const& - , typename Derived::difference_type) - ) - ; - - BOOST_ITERATOR_FACADE_PLUS_HEAD( - friend inline - , (typename Derived::difference_type - , iterator_facade const&) - ) - ; - -# endif - - template - static typename Facade::reference dereference(Facade const& f) - { - return f.dereference(); - } - - template - static void increment(Facade& f) - { - f.increment(); - } - - template - static void decrement(Facade& f) - { - f.decrement(); - } - - template - static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::true_) - { - return f1.equal(f2); - } - - template - static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::false_) - { - return f2.equal(f1); - } - - template - static void advance(Facade& f, typename Facade::difference_type n) - { - f.advance(n); - } - - template - static typename Facade1::difference_type distance_from( - Facade1 const& f1, Facade2 const& f2, mpl::true_) - { - return -f1.distance_to(f2); - } - - template - static typename Facade2::difference_type distance_from( - Facade1 const& f1, Facade2 const& f2, mpl::false_) - { - return f2.distance_to(f1); - } - - // - // Curiously Recurring Template interface. - // - template - static I& derived(iterator_facade& facade) - { - return *static_cast(&facade); - } - - template - static I const& derived(iterator_facade const& facade) - { - return *static_cast(&facade); - } - - private: - // objects of this class are useless - iterator_core_access(); //undefined - }; - - // - // iterator_facade - use as a public base class for defining new - // standard-conforming iterators. - // - template < - class Derived // The derived iterator type being constructed - , class Value - , class CategoryOrTraversal - , class Reference = Value& - , class Difference = std::ptrdiff_t - > - class iterator_facade -# ifdef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE - : public boost::detail::iterator_facade_types< - Value, CategoryOrTraversal, Reference, Difference - >::base -# undef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE -# endif - { - private: - // - // Curiously Recurring Template interface. - // - Derived& derived() - { - return *static_cast(this); - } - - Derived const& derived() const - { - return *static_cast(this); - } - - typedef boost::detail::iterator_facade_types< - Value, CategoryOrTraversal, Reference, Difference - > associated_types; - - protected: - // For use by derived classes - typedef iterator_facade iterator_facade_; - - public: - - typedef typename associated_types::value_type value_type; - typedef Reference reference; - typedef Difference difference_type; - typedef typename associated_types::pointer pointer; - typedef typename associated_types::iterator_category iterator_category; - - reference operator*() const - { - return iterator_core_access::dereference(this->derived()); - } - - typename boost::detail::operator_arrow_result< - value_type - , reference - , pointer - >::type - operator->() const - { - return boost::detail::operator_arrow_result< - value_type - , reference - , pointer - >::make(*this->derived()); - } - - typename boost::detail::operator_brackets_result::type - operator[](difference_type n) const - { - typedef boost::detail::use_operator_brackets_proxy use_proxy; - - return boost::detail::make_operator_brackets_result( - this->derived() + n - , use_proxy() - ); - } - - Derived& operator++() - { - iterator_core_access::increment(this->derived()); - return this->derived(); - } - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - typename boost::detail::postfix_increment_result::type - operator++(int) - { - typename boost::detail::postfix_increment_result::type - tmp(this->derived()); - ++*this; - return tmp; - } -# endif - - Derived& operator--() - { - iterator_core_access::decrement(this->derived()); - return this->derived(); - } - - Derived operator--(int) - { - Derived tmp(this->derived()); - --*this; - return tmp; - } - - Derived& operator+=(difference_type n) - { - iterator_core_access::advance(this->derived(), n); - return this->derived(); - } - - Derived& operator-=(difference_type n) - { - iterator_core_access::advance(this->derived(), -n); - return this->derived(); - } - - Derived operator-(difference_type x) const - { - Derived result(this->derived()); - return result -= x; - } - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - // There appears to be a bug which trashes the data of classes - // derived from iterator_facade when they are assigned unless we - // define this assignment operator. This bug is only revealed - // (so far) in STLPort debug mode, but it's clearly a codegen - // problem so we apply the workaround for all MSVC6. - iterator_facade& operator=(iterator_facade const&) - { - return *this; - } -# endif - }; - -# if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) - template - inline typename boost::detail::postfix_increment_result::type - operator++( - iterator_facade& i - , int - ) - { - typename boost::detail::postfix_increment_result::type - tmp(*static_cast(&i)); - - ++i; - - return tmp; - } -# endif - - - // - // Comparison operator implementation. The library supplied operators - // enables the user to provide fully interoperable constant/mutable - // iterator types. I.e. the library provides all operators - // for all mutable/constant iterator combinations. - // - // Note though that this kind of interoperability for constant/mutable - // iterators is not required by the standard for container iterators. - // All the standard asks for is a conversion mutable -> constant. - // Most standard library implementations nowadays provide fully interoperable - // iterator implementations, but there are still heavily used implementations - // that do not provide them. (Actually it's even worse, they do not provide - // them for only a few iterators.) - // - // ?? Maybe a BOOST_ITERATOR_NO_FULL_INTEROPERABILITY macro should - // enable the user to turn off mixed type operators - // - // The library takes care to provide only the right operator overloads. - // I.e. - // - // bool operator==(Iterator, Iterator); - // bool operator==(ConstIterator, Iterator); - // bool operator==(Iterator, ConstIterator); - // bool operator==(ConstIterator, ConstIterator); - // - // ... - // - // In order to do so it uses c++ idioms that are not yet widely supported - // by current compiler releases. The library is designed to degrade gracefully - // in the face of compiler deficiencies. In general compiler - // deficiencies result in less strict error checking and more obscure - // error messages, functionality is not affected. - // - // For full operation compiler support for "Substitution Failure Is Not An Error" - // (aka. enable_if) and boost::is_convertible is required. - // - // The following problems occur if support is lacking. - // - // Pseudo code - // - // --------------- - // AdaptorA a1; - // AdaptorA a2; - // - // // This will result in a no such overload error in full operation - // // If enable_if or is_convertible is not supported - // // The instantiation will fail with an error hopefully indicating that - // // there is no operator== for Iterator1, Iterator2 - // // The same will happen if no enable_if is used to remove - // // false overloads from the templated conversion constructor - // // of AdaptorA. - // - // a1 == a2; - // ---------------- - // - // AdaptorA a; - // AdaptorB b; - // - // // This will result in a no such overload error in full operation - // // If enable_if is not supported the static assert used - // // in the operator implementation will fail. - // // This will accidently work if is_convertible is not supported. - // - // a == b; - // ---------------- - // - -# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP -# define BOOST_ITERATOR_CONVERTIBLE(a,b) mpl::true_() -# else -# define BOOST_ITERATOR_CONVERTIBLE(a,b) is_convertible() -# endif - -# define BOOST_ITERATOR_FACADE_INTEROP(op, result_type, return_prefix, base_op) \ - BOOST_ITERATOR_FACADE_INTEROP_HEAD(inline, op, result_type) \ - { \ - /* For those compilers that do not support enable_if */ \ - BOOST_STATIC_ASSERT(( \ - is_interoperable< Derived1, Derived2 >::value \ - )); \ - return_prefix iterator_core_access::base_op( \ - *static_cast(&lhs) \ - , *static_cast(&rhs) \ - , BOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1) \ - ); \ - } - -# define BOOST_ITERATOR_FACADE_RELATION(op, return_prefix, base_op) \ - BOOST_ITERATOR_FACADE_INTEROP( \ - op \ - , boost::detail::always_bool2 \ - , return_prefix \ - , base_op \ - ) - - BOOST_ITERATOR_FACADE_RELATION(==, return, equal) - BOOST_ITERATOR_FACADE_RELATION(!=, return !, equal) - - BOOST_ITERATOR_FACADE_RELATION(<, return 0 >, distance_from) - BOOST_ITERATOR_FACADE_RELATION(>, return 0 <, distance_from) - BOOST_ITERATOR_FACADE_RELATION(<=, return 0 >=, distance_from) - BOOST_ITERATOR_FACADE_RELATION(>=, return 0 <=, distance_from) -# undef BOOST_ITERATOR_FACADE_RELATION - - // operator- requires an additional part in the static assertion - BOOST_ITERATOR_FACADE_INTEROP( - - - , boost::detail::choose_difference_type - , return - , distance_from - ) -# undef BOOST_ITERATOR_FACADE_INTEROP -# undef BOOST_ITERATOR_FACADE_INTEROP_HEAD - -# define BOOST_ITERATOR_FACADE_PLUS(args) \ - BOOST_ITERATOR_FACADE_PLUS_HEAD(inline, args) \ - { \ - Derived tmp(static_cast(i)); \ - return tmp += n; \ - } - -BOOST_ITERATOR_FACADE_PLUS(( - iterator_facade const& i - , typename Derived::difference_type n -)) - -BOOST_ITERATOR_FACADE_PLUS(( - typename Derived::difference_type n - , iterator_facade const& i -)) -# undef BOOST_ITERATOR_FACADE_PLUS -# undef BOOST_ITERATOR_FACADE_PLUS_HEAD - -} // namespace boost - -#include - -#endif // BOOST_ITERATOR_FACADE_23022003THW_HPP diff --git a/3rdParty/Boost/boost/iterator/iterator_traits.hpp b/3rdParty/Boost/boost/iterator/iterator_traits.hpp deleted file mode 100644 index 960970e..0000000 --- a/3rdParty/Boost/boost/iterator/iterator_traits.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// 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) -#ifndef ITERATOR_TRAITS_DWA200347_HPP -# define ITERATOR_TRAITS_DWA200347_HPP - -# include -# include - -namespace boost { - -// Unfortunately, g++ 2.95.x chokes when we define a class template -// iterator_category which has the same name as its -// std::iterator_category() function, probably due in part to the -// "std:: is visible globally" hack it uses. Use -// BOOST_ITERATOR_CATEGORY to write code that's portable to older -// GCCs. - -# if BOOST_WORKAROUND(__GNUC__, <= 2) -# define BOOST_ITERATOR_CATEGORY iterator_category_ -# else -# define BOOST_ITERATOR_CATEGORY iterator_category -# endif - - -template -struct iterator_value -{ - typedef typename boost::detail::iterator_traits::value_type type; -}; - -template -struct iterator_reference -{ - typedef typename boost::detail::iterator_traits::reference type; -}; - - -template -struct iterator_pointer -{ - typedef typename boost::detail::iterator_traits::pointer type; -}; - -template -struct iterator_difference -{ - typedef typename boost::detail::iterator_traits::difference_type type; -}; - -template -struct BOOST_ITERATOR_CATEGORY -{ - typedef typename boost::detail::iterator_traits::iterator_category type; -}; - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -template <> -struct iterator_value -{ - typedef void type; -}; - -template <> -struct iterator_reference -{ - typedef void type; -}; - -template <> -struct iterator_pointer -{ - typedef void type; -}; - -template <> -struct iterator_difference -{ - typedef void type; -}; - -template <> -struct BOOST_ITERATOR_CATEGORY -{ - typedef void type; -}; -# endif - -} // namespace boost::iterator - -#endif // ITERATOR_TRAITS_DWA200347_HPP diff --git a/3rdParty/Boost/boost/iterator/reverse_iterator.hpp b/3rdParty/Boost/boost/iterator/reverse_iterator.hpp deleted file mode 100644 index 97b6b48..0000000 --- a/3rdParty/Boost/boost/iterator/reverse_iterator.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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) -#ifndef BOOST_REVERSE_ITERATOR_23022003THW_HPP -#define BOOST_REVERSE_ITERATOR_23022003THW_HPP - -#include -#include -#include - -namespace boost -{ - - // - // - // - template - class reverse_iterator - : public iterator_adaptor< reverse_iterator, Iterator > - { - typedef iterator_adaptor< reverse_iterator, Iterator > super_t; - - friend class iterator_core_access; - - public: - reverse_iterator() {} - - explicit reverse_iterator(Iterator x) - : super_t(x) {} - - template - reverse_iterator( - reverse_iterator const& r - , typename enable_if_convertible::type* = 0 - ) - : super_t(r.base()) - {} - - private: - typename super_t::reference dereference() const { return *boost::prior(this->base()); } - - void increment() { --this->base_reference(); } - void decrement() { ++this->base_reference(); } - - void advance(typename super_t::difference_type n) - { - this->base_reference() += -n; - } - - template - typename super_t::difference_type - distance_to(reverse_iterator const& y) const - { - return this->base_reference() - y.base(); - } - }; - - template - reverse_iterator make_reverse_iterator(BidirectionalIterator x) - { - return reverse_iterator(x); - } - -} // namespace boost - -#endif // BOOST_REVERSE_ITERATOR_23022003THW_HPP diff --git a/3rdParty/Boost/boost/iterator/transform_iterator.hpp b/3rdParty/Boost/boost/iterator/transform_iterator.hpp deleted file mode 100644 index e449a8b..0000000 --- a/3rdParty/Boost/boost/iterator/transform_iterator.hpp +++ /dev/null @@ -1,188 +0,0 @@ -// (C) Copyright David Abrahams 2002. -// (C) Copyright Jeremy Siek 2002. -// (C) Copyright Thomas Witt 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) -#ifndef BOOST_TRANSFORM_ITERATOR_23022003THW_HPP -#define BOOST_TRANSFORM_ITERATOR_23022003THW_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310)) -# include - -#endif -#include - - -namespace boost -{ - template - class transform_iterator; - - namespace detail - { - - template - struct function_object_result - { - typedef typename UnaryFunc::result_type type; - }; - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template - struct function_object_result - { - typedef Return type; - }; -#endif - - // Compute the iterator_adaptor instantiation to be used for transform_iterator - template - struct transform_iterator_base - { - private: - // By default, dereferencing the iterator yields the same as - // the function. Do we need to adjust the way - // function_object_result is computed for the standard - // proposal (e.g. using Doug's result_of)? - typedef typename ia_dflt_help< - Reference - , function_object_result - >::type reference; - - // To get the default for Value: remove any reference on the - // result type, but retain any constness to signal - // non-writability. Note that if we adopt Thomas' suggestion - // to key non-writability *only* on the Reference argument, - // we'd need to strip constness here as well. - typedef typename ia_dflt_help< - Value - , remove_reference - >::type cv_value_type; - - public: - typedef iterator_adaptor< - transform_iterator - , Iterator - , cv_value_type - , use_default // Leave the traversal category alone - , reference - > type; - }; - } - - template - class transform_iterator - : public boost::detail::transform_iterator_base::type - { - typedef typename - boost::detail::transform_iterator_base::type - super_t; - - friend class iterator_core_access; - - public: - transform_iterator() { } - - transform_iterator(Iterator const& x, UnaryFunc f) - : super_t(x), m_f(f) { } - - explicit transform_iterator(Iterator const& x) - : super_t(x) - { - // Pro8 is a little too aggressive about instantiating the - // body of this function. -#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) - // don't provide this constructor if UnaryFunc is a - // function pointer type, since it will be 0. Too dangerous. - BOOST_STATIC_ASSERT(is_class::value); -#endif - } - - template< - class OtherUnaryFunction - , class OtherIterator - , class OtherReference - , class OtherValue> - transform_iterator( - transform_iterator const& t - , typename enable_if_convertible::type* = 0 -#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310) - , typename enable_if_convertible::type* = 0 -#endif - ) - : super_t(t.base()), m_f(t.functor()) - {} - - UnaryFunc functor() const - { return m_f; } - - private: - typename super_t::reference dereference() const - { return m_f(*this->base()); } - - // Probably should be the initial base class so it can be - // optimized away via EBO if it is an empty class. - UnaryFunc m_f; - }; - - template - transform_iterator - make_transform_iterator(Iterator it, UnaryFunc fun) - { - return transform_iterator(it, fun); - } - - // Version which allows explicit specification of the UnaryFunc - // type. - // - // This generator is not provided if UnaryFunc is a function - // pointer type, because it's too dangerous: the default-constructed - // function pointer in the iterator be 0, leading to a runtime - // crash. - template -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - typename mpl::if_< -#else - typename iterators::enable_if< -#endif - is_class // We should probably find a cheaper test than is_class<> - , transform_iterator -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - , int[3] -#endif - >::type - make_transform_iterator(Iterator it) - { - return transform_iterator(it, UnaryFunc()); - } - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) - template - transform_iterator< Return (*)(Argument), Iterator, Return> - make_transform_iterator(Iterator it, Return (*fun)(Argument)) - { - return transform_iterator(it, fun); - } -#endif - -} // namespace boost - -#include - -#endif // BOOST_TRANSFORM_ITERATOR_23022003THW_HPP diff --git a/3rdParty/Boost/boost/last_value.hpp b/3rdParty/Boost/boost/last_value.hpp deleted file mode 100644 index 183a739..0000000 --- a/3rdParty/Boost/boost/last_value.hpp +++ /dev/null @@ -1,54 +0,0 @@ -// last_value function object (documented as part of Boost.Signals) - -// Copyright Douglas Gregor 2001-2003. Use, modification and -// distribution is subject to the Boost Software License, Version -// 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// For more information, see http://www.boost.org/libs/signals - -#ifndef BOOST_LAST_VALUE_HPP -#define BOOST_LAST_VALUE_HPP - -#include -#include - -namespace boost { - template - struct last_value { - typedef T result_type; - - template - T operator()(InputIterator first, InputIterator last) const - { - assert(first != last); - T value = *first++; - while (first != last) - value = *first++; - return value; - } - }; - - template<> - struct last_value { -#ifdef BOOST_NO_VOID_RETURNS - struct unusable {}; - - public: - typedef unusable result_type; -#else - public: - typedef void result_type; -#endif // BOOST_NO_VOID_RETURNS - - template - result_type - operator()(InputIterator first, InputIterator last) const - { - while (first != last) - *first++; - return result_type(); - } - }; -} -#endif // BOOST_SIGNALS_LAST_VALUE_HPP diff --git a/3rdParty/Boost/boost/lexical_cast.hpp b/3rdParty/Boost/boost/lexical_cast.hpp deleted file mode 100644 index 0da0d3d..0000000 --- a/3rdParty/Boost/boost/lexical_cast.hpp +++ /dev/null @@ -1,1216 +0,0 @@ -#ifndef BOOST_LEXICAL_CAST_INCLUDED -#define BOOST_LEXICAL_CAST_INCLUDED - -// Boost lexical_cast.hpp header -------------------------------------------// -// -// See http://www.boost.org/libs/conversion for documentation. -// See end of this header for rights and permissions. -// -// what: lexical_cast custom keyword cast -// who: contributed by Kevlin Henney, -// enhanced with contributions from Terje Slettebo, -// with additional fixes and suggestions from Gennaro Prota, -// Beman Dawes, Dave Abrahams, Daryle Walker, Peter Dimov, -// Alexander Nasonov and other Boosters -// when: November 2000, March 2003, June 2005, June 2006 - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef BOOST_NO_STD_LOCALE -#include -#endif - -#ifdef BOOST_NO_STRINGSTREAM -#include -#else -#include -#endif - -#if defined(BOOST_NO_STRINGSTREAM) || \ - defined(BOOST_NO_STD_WSTRING) || \ - defined(BOOST_NO_STD_LOCALE) -#define BOOST_LCAST_NO_WCHAR_T -#endif - -namespace boost -{ - // exception used to indicate runtime lexical_cast failure - class bad_lexical_cast : public std::bad_cast - -#if defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, < 0x560 ) - // under bcc32 5.5.1 bad_cast doesn't derive from exception - , public std::exception -#endif - - { - public: - bad_lexical_cast() : -#ifndef BOOST_NO_TYPEID - source(&typeid(void)), target(&typeid(void)) -#else - source(0), target(0) // this breaks getters -#endif - { - } - - bad_lexical_cast( - const std::type_info &source_type_arg, - const std::type_info &target_type_arg) : - source(&source_type_arg), target(&target_type_arg) - { - } - - const std::type_info &source_type() const - { - return *source; - } - const std::type_info &target_type() const - { - return *target; - } - - virtual const char *what() const throw() - { - return "bad lexical cast: " - "source type value could not be interpreted as target"; - } - virtual ~bad_lexical_cast() throw() - { - } - private: - const std::type_info *source; - const std::type_info *target; - }; - - namespace detail // selectors for choosing stream character type - { - template - struct stream_char - { - typedef char type; - }; - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template - struct stream_char< std::basic_string > - { - typedef CharT type; - }; -#endif - -#ifndef BOOST_LCAST_NO_WCHAR_T -#ifndef BOOST_NO_INTRINSIC_WCHAR_T - template<> - struct stream_char - { - typedef wchar_t type; - }; -#endif - - template<> - struct stream_char - { - typedef wchar_t type; - }; - - template<> - struct stream_char - { - typedef wchar_t type; - }; - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template<> - struct stream_char - { - typedef wchar_t type; - }; -#endif -#endif - - template - struct widest_char - { - typedef TargetChar type; - }; - - template<> - struct widest_char - { - typedef wchar_t type; - }; - } - - namespace detail // deduce_char_traits template - { -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template - struct deduce_char_traits - { - typedef std::char_traits type; - }; - - template - struct deduce_char_traits< CharT - , std::basic_string - , Source - > - { - typedef Traits type; - }; - - template - struct deduce_char_traits< CharT - , Target - , std::basic_string - > - { - typedef Traits type; - }; - - template - struct deduce_char_traits< CharT - , std::basic_string - , std::basic_string - > - { - typedef Traits type; - }; -#endif - } - - namespace detail // lcast_src_length - { - // Return max. length of string representation of Source; - // 0 if unlimited (with exceptions for some types, see below). - // Values with limited string representation are placed to - // the buffer locally defined in lexical_cast function. - // 1 is returned for few types such as CharT const* or - // std::basic_string that already have an internal - // buffer ready to be reused by lexical_stream_limited_src. - // Each specialization should have a correspondent operator<< - // defined in lexical_stream_limited_src. - template< class CharT // A result of widest_char transformation. - , class Source // Source type of lexical_cast. - > - struct lcast_src_length - { - BOOST_STATIC_CONSTANT(std::size_t, value = 0); - // To check coverage, build the test with - // bjam --v2 profile optimization=off - static void check_coverage() {} - }; - - template<> - struct lcast_src_length - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; - - template<> - struct lcast_src_length - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; - - // No specializations for: - // lcast_src_length - // lcast_src_length - // lcast_src_length - // lcast_src_length - // lcast_src_length - // lcast_src_length - -#ifndef BOOST_LCAST_NO_WCHAR_T - template<> - struct lcast_src_length - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; - - template<> - struct lcast_src_length - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T - template<> - struct lcast_src_length - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; -#endif -#endif - - template<> - struct lcast_src_length - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; - - template<> - struct lcast_src_length - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; - -#ifndef BOOST_LCAST_NO_WCHAR_T - template<> - struct lcast_src_length - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; - - template<> - struct lcast_src_length - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; -#endif - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template - struct lcast_src_length< CharT, std::basic_string > - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; -#else - template<> - struct lcast_src_length< char, std::basic_string > - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; - -#ifndef BOOST_LCAST_NO_WCHAR_T - template<> - struct lcast_src_length< wchar_t, std::basic_string > - { - BOOST_STATIC_CONSTANT(std::size_t, value = 1); - static void check_coverage() {} - }; -#endif -#endif - - // Helper for integral types. - // Notes on length calculation: - // Max length for 32bit int with grouping "\1" and thousands_sep ',': - // "-2,1,4,7,4,8,3,6,4,7" - // ^ - is_signed - // ^ - 1 digit not counted by digits10 - // ^^^^^^^^^^^^^^^^^^ - digits10 * 2 - // - // Constant is_specialized is used instead of constant 1 - // to prevent buffer overflow in a rare case when - // doesn't add missing specialization for - // numeric_limits for some integral type T. - // When is_specialized is false, the whole expression is 0. - template - struct lcast_src_length_integral - { -#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS - BOOST_STATIC_CONSTANT(std::size_t, value = - std::numeric_limits::is_signed + - std::numeric_limits::is_specialized + // == 1 - std::numeric_limits::digits10 * 2 - ); -#else - BOOST_STATIC_CONSTANT(std::size_t, value = 156); - BOOST_STATIC_ASSERT(sizeof(Source) * CHAR_BIT <= 256); -#endif - }; - -#define BOOST_LCAST_DEF1(CharT, T) \ - template<> struct lcast_src_length \ - : lcast_src_length_integral \ - { static void check_coverage() {} }; - -#ifdef BOOST_LCAST_NO_WCHAR_T -#define BOOST_LCAST_DEF(T) BOOST_LCAST_DEF1(char, T) -#else -#define BOOST_LCAST_DEF(T) \ - BOOST_LCAST_DEF1(char, T) \ - BOOST_LCAST_DEF1(wchar_t, T) -#endif - - BOOST_LCAST_DEF(short) - BOOST_LCAST_DEF(unsigned short) - BOOST_LCAST_DEF(int) - BOOST_LCAST_DEF(unsigned int) - BOOST_LCAST_DEF(long) - BOOST_LCAST_DEF(unsigned long) -#if defined(BOOST_HAS_LONG_LONG) - BOOST_LCAST_DEF(boost::ulong_long_type) - BOOST_LCAST_DEF(boost::long_long_type ) -#elif defined(BOOST_HAS_MS_INT64) - BOOST_LCAST_DEF(unsigned __int64) - BOOST_LCAST_DEF( __int64) -#endif - -#undef BOOST_LCAST_DEF -#undef BOOST_LCAST_DEF1 - -#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION - // Helper for floating point types. - // -1.23456789e-123456 - // ^ sign - // ^ leading digit - // ^ decimal point - // ^^^^^^^^ lcast_precision::value - // ^ "e" - // ^ exponent sign - // ^^^^^^ exponent (assumed 6 or less digits) - // sign + leading digit + decimal point + "e" + exponent sign == 5 - template - struct lcast_src_length_floating - { - BOOST_STATIC_ASSERT( - std::numeric_limits::max_exponent10 <= 999999L && - std::numeric_limits::min_exponent10 >= -999999L - ); - BOOST_STATIC_CONSTANT(std::size_t, value = - 5 + lcast_precision::value + 6 - ); - }; - - template<> - struct lcast_src_length - : lcast_src_length_floating - { - static void check_coverage() {} - }; - - template<> - struct lcast_src_length - : lcast_src_length_floating - { - static void check_coverage() {} - }; - - template<> - struct lcast_src_length - : lcast_src_length_floating - { - static void check_coverage() {} - }; - -#ifndef BOOST_LCAST_NO_WCHAR_T - template<> - struct lcast_src_length - : lcast_src_length_floating - { - static void check_coverage() {} - }; - - template<> - struct lcast_src_length - : lcast_src_length_floating - { - static void check_coverage() {} - }; - - template<> - struct lcast_src_length - : lcast_src_length_floating - { - static void check_coverage() {} - }; - -#endif // #ifndef BOOST_LCAST_NO_WCHAR_T -#endif // #ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION - } - - namespace detail // '0' and '-' constants - { - template struct lcast_char_constants; - - template<> - struct lcast_char_constants - { - BOOST_STATIC_CONSTANT(char, zero = '0'); - BOOST_STATIC_CONSTANT(char, minus = '-'); - }; - -#ifndef BOOST_LCAST_NO_WCHAR_T - template<> - struct lcast_char_constants - { - BOOST_STATIC_CONSTANT(wchar_t, zero = L'0'); - BOOST_STATIC_CONSTANT(wchar_t, minus = L'-'); - }; -#endif - } - - namespace detail // lexical_streambuf_fake - { - struct lexical_streambuf_fake - { - }; - } - - namespace detail // lcast_to_unsigned - { -#if (defined _MSC_VER) -# pragma warning( push ) -// C4146: unary minus operator applied to unsigned type, result still unsigned -# pragma warning( disable : 4146 ) -#elif defined( __BORLANDC__ ) -# pragma option push -w-8041 -#endif - template - inline - BOOST_DEDUCED_TYPENAME make_unsigned::type lcast_to_unsigned(T value) - { - typedef BOOST_DEDUCED_TYPENAME make_unsigned::type result_type; - result_type uvalue = static_cast(value); - return value < 0 ? -uvalue : uvalue; - } -#if (defined _MSC_VER) -# pragma warning( pop ) -#elif defined( __BORLANDC__ ) -# pragma option pop -#endif - } - - namespace detail // lcast_put_unsigned - { - template - CharT* lcast_put_unsigned(T n, CharT* finish) - { -#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS - BOOST_STATIC_ASSERT(!std::numeric_limits::is_signed); -#endif - -#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE - // TODO: use BOOST_NO_STD_LOCALE - std::locale loc; - typedef std::numpunct numpunct; - numpunct const& np = BOOST_USE_FACET(numpunct, loc); - std::string const& grouping = np.grouping(); - std::string::size_type const grouping_size = grouping.size(); - CharT thousands_sep = grouping_size ? np.thousands_sep() : 0; - std::string::size_type group = 0; // current group number - char last_grp_size = grouping[0] <= 0 ? CHAR_MAX : grouping[0]; - // a) Since grouping is const, grouping[grouping.size()] returns 0. - // b) It's safe to assume here and below that CHAR_MAX - // is equivalent to unlimited grouping: -#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS - BOOST_STATIC_ASSERT(std::numeric_limits::digits10 < CHAR_MAX); -#endif - - char left = last_grp_size; -#endif - - typedef typename Traits::int_type int_type; - CharT const czero = lcast_char_constants::zero; - int_type const zero = Traits::to_int_type(czero); - - do - { -#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE - if(left == 0) - { - ++group; - if(group < grouping_size) - { - char const grp_size = grouping[group]; - last_grp_size = grp_size <= 0 ? CHAR_MAX : grp_size; - } - - left = last_grp_size; - --finish; - Traits::assign(*finish, thousands_sep); - } - - --left; -#endif - - --finish; - int_type const digit = static_cast(n % 10U); - Traits::assign(*finish, Traits::to_char_type(zero + digit)); - n /= 10; - } while(n); - - return finish; - } - } - - namespace detail // stream wrapper for handling lexical conversions - { - template - class lexical_stream - { - private: - typedef typename widest_char< - typename stream_char::type, - typename stream_char::type>::type char_type; - - typedef Traits traits_type; - - public: - lexical_stream(char_type* = 0, char_type* = 0) - { - stream.unsetf(std::ios::skipws); - lcast_set_precision(stream, (Source*)0, (Target*)0); - } - ~lexical_stream() - { - #if defined(BOOST_NO_STRINGSTREAM) - stream.freeze(false); - #endif - } - bool operator<<(const Source &input) - { - return !(stream << input).fail(); - } - template - bool operator>>(InputStreamable &output) - { - return !is_pointer::value && - stream >> output && - stream.get() == -#if defined(__GNUC__) && (__GNUC__<3) && defined(BOOST_NO_STD_WSTRING) -// GCC 2.9x lacks std::char_traits<>::eof(). -// We use BOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3 -// configurations, which do provide std::char_traits<>::eof(). - - EOF; -#else - traits_type::eof(); -#endif - } - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - bool operator>>(std::string &output) - { - #if defined(BOOST_NO_STRINGSTREAM) - stream << '\0'; - #endif - stream.str().swap(output); - return true; - } - #ifndef BOOST_LCAST_NO_WCHAR_T - bool operator>>(std::wstring &output) - { - stream.str().swap(output); - return true; - } - #endif - -#else - bool operator>>(std::basic_string& output) - { - stream.str().swap(output); - return true; - } - - template - bool operator>>(std::basic_string& out) - { - std::basic_string str(stream.str()); - out.assign(str.begin(), str.end()); - return true; - } -#endif - private: - #if defined(BOOST_NO_STRINGSTREAM) - std::strstream stream; - #elif defined(BOOST_NO_STD_LOCALE) - std::stringstream stream; - #else - std::basic_stringstream stream; - #endif - }; - } - - namespace detail // optimized stream wrapper - { - // String representation of Source has an upper limit. - template< class CharT // a result of widest_char transformation - , class Base // lexical_streambuf_fake or basic_streambuf - , class Traits // usually char_traits - > - class lexical_stream_limited_src : public Base - { - // A string representation of Source is written to [start, finish). - // Currently, it is assumed that [start, finish) is big enough - // to hold a string representation of any Source value. - CharT* start; - CharT* finish; - - private: - - static void widen_and_assign(char*p, char ch) - { - Traits::assign(*p, ch); - } - -#ifndef BOOST_LCAST_NO_WCHAR_T - static void widen_and_assign(wchar_t* p, char ch) - { - // TODO: use BOOST_NO_STD_LOCALE - std::locale loc; - wchar_t w = BOOST_USE_FACET(std::ctype, loc).widen(ch); - Traits::assign(*p, w); - } - - static void widen_and_assign(wchar_t* p, wchar_t ch) - { - Traits::assign(*p, ch); - } - - static void widen_and_assign(char*, wchar_t ch); // undefined -#endif - - template - bool lcast_put(const OutputStreamable& input) - { - this->setp(start, finish); - std::basic_ostream stream(static_cast(this)); - lcast_set_precision(stream, (OutputStreamable*)0); - bool const result = !(stream << input).fail(); - finish = this->pptr(); - return result; - } - - // Undefined: - lexical_stream_limited_src(lexical_stream_limited_src const&); - void operator=(lexical_stream_limited_src const&); - - public: - - lexical_stream_limited_src(CharT* sta, CharT* fin) - : start(sta) - , finish(fin) - {} - - public: // output - - template - bool operator<<(std::basic_string const& str) - { - start = const_cast(str.data()); - finish = start + str.length(); - return true; - } - - bool operator<<(bool); - bool operator<<(char); -#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_INTRINSIC_WCHAR_T) - bool operator<<(wchar_t); -#endif - bool operator<<(CharT const*); - bool operator<<(short); - bool operator<<(int); - bool operator<<(long); - bool operator<<(unsigned short); - bool operator<<(unsigned int); - bool operator<<(unsigned long); -#if defined(BOOST_HAS_LONG_LONG) - bool operator<<(boost::ulong_long_type); - bool operator<<(boost::long_long_type ); -#elif defined(BOOST_HAS_MS_INT64) - bool operator<<(unsigned __int64); - bool operator<<( __int64); -#endif - // These three operators use ostream and streambuf. - // lcast_streambuf_for_source::value is true. - bool operator<<(float); - bool operator<<(double); - bool operator<<(long double); - - public: // input - - // Generic istream-based algorithm. - // lcast_streambuf_for_target::value is true. - template - bool operator>>(InputStreamable& output) - { -#if (defined _MSC_VER) -# pragma warning( push ) - // conditional expression is constant -# pragma warning( disable : 4127 ) -#endif - if(is_pointer::value) - return false; - - this->setg(start, start, finish); - std::basic_istream stream(static_cast(this)); - stream.unsetf(std::ios::skipws); - lcast_set_precision(stream, (InputStreamable*)0); -#if (defined _MSC_VER) -# pragma warning( pop ) -#endif - return stream >> output && - stream.get() == -#if defined(__GNUC__) && (__GNUC__<3) && defined(BOOST_NO_STD_WSTRING) - // GCC 2.9x lacks std::char_traits<>::eof(). - // We use BOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3 - // configurations, which do provide std::char_traits<>::eof(). - - EOF; -#else - Traits::eof(); -#endif - } - - bool operator>>(CharT&); - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -// This #if is in sync with lcast_streambuf_for_target - - bool operator>>(std::string&); - -#ifndef BOOST_LCAST_NO_WCHAR_T - bool operator>>(std::wstring&); -#endif - -#else - template - bool operator>>(std::basic_string& str) - { - str.assign(start, finish); - return true; - } -#endif - }; - - template - inline bool lexical_stream_limited_src::operator<<( - bool value) - { - typedef typename Traits::int_type int_type; - CharT const czero = lcast_char_constants::zero; - int_type const zero = Traits::to_int_type(czero); - Traits::assign(*start, Traits::to_char_type(zero + value)); - finish = start + 1; - return true; - } - - template - inline bool lexical_stream_limited_src::operator<<( - char ch) - { - widen_and_assign(start, ch); - finish = start + 1; - return true; - } - -#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_INTRINSIC_WCHAR_T) - template - inline bool lexical_stream_limited_src::operator<<( - wchar_t ch) - { - widen_and_assign(start, ch); - finish = start + 1; - return true; - } -#endif - - template - inline bool lexical_stream_limited_src::operator<<( - short n) - { - start = lcast_put_unsigned(lcast_to_unsigned(n), finish); - if(n < 0) - { - --start; - CharT const minus = lcast_char_constants::minus; - Traits::assign(*start, minus); - } - return true; - } - - template - inline bool lexical_stream_limited_src::operator<<( - int n) - { - start = lcast_put_unsigned(lcast_to_unsigned(n), finish); - if(n < 0) - { - --start; - CharT const minus = lcast_char_constants::minus; - Traits::assign(*start, minus); - } - return true; - } - - template - inline bool lexical_stream_limited_src::operator<<( - long n) - { - start = lcast_put_unsigned(lcast_to_unsigned(n), finish); - if(n < 0) - { - --start; - CharT const minus = lcast_char_constants::minus; - Traits::assign(*start, minus); - } - return true; - } - -#if defined(BOOST_HAS_LONG_LONG) - template - inline bool lexical_stream_limited_src::operator<<( - boost::long_long_type n) - { - start = lcast_put_unsigned(lcast_to_unsigned(n), finish); - if(n < 0) - { - --start; - CharT const minus = lcast_char_constants::minus; - Traits::assign(*start, minus); - } - return true; - } -#elif defined(BOOST_HAS_MS_INT64) - template - inline bool lexical_stream_limited_src::operator<<( - __int64 n) - { - start = lcast_put_unsigned(lcast_to_unsigned(n), finish); - if(n < 0) - { - --start; - CharT const minus = lcast_char_constants::minus; - Traits::assign(*start, minus); - } - return true; - } -#endif - - template - inline bool lexical_stream_limited_src::operator<<( - unsigned short n) - { - start = lcast_put_unsigned(n, finish); - return true; - } - - template - inline bool lexical_stream_limited_src::operator<<( - unsigned int n) - { - start = lcast_put_unsigned(n, finish); - return true; - } - - template - inline bool lexical_stream_limited_src::operator<<( - unsigned long n) - { - start = lcast_put_unsigned(n, finish); - return true; - } - -#if defined(BOOST_HAS_LONG_LONG) - template - inline bool lexical_stream_limited_src::operator<<( - boost::ulong_long_type n) - { - start = lcast_put_unsigned(n, finish); - return true; - } -#elif defined(BOOST_HAS_MS_INT64) - template - inline bool lexical_stream_limited_src::operator<<( - unsigned __int64 n) - { - start = lcast_put_unsigned(n, finish); - return true; - } -#endif - - template - inline bool lexical_stream_limited_src::operator<<( - float val) - { - return this->lcast_put(val); - } - - template - inline bool lexical_stream_limited_src::operator<<( - double val) - { - return this->lcast_put(val); - } - - template - inline bool lexical_stream_limited_src::operator<<( - long double val) - { - return this->lcast_put(val); - } - - template - inline bool lexical_stream_limited_src::operator<<( - CharT const* str) - { - start = const_cast(str); - finish = start + Traits::length(str); - return true; - } - - template - inline bool lexical_stream_limited_src::operator>>( - CharT& output) - { - bool const ok = (finish - start == 1); - if(ok) - Traits::assign(output, *start); - return ok; - } - -#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template - inline bool lexical_stream_limited_src::operator>>( - std::string& str) - { - str.assign(start, finish); - return true; - } - -#ifndef BOOST_LCAST_NO_WCHAR_T - template - inline bool lexical_stream_limited_src::operator>>( - std::wstring& str) - { - str.assign(start, finish); - return true; - } -#endif -#endif - } - - namespace detail // lcast_streambuf_for_source - { - // Returns true if optimized stream wrapper needs ostream for writing. - template - struct lcast_streambuf_for_source - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; - - template<> - struct lcast_streambuf_for_source - { - BOOST_STATIC_CONSTANT(bool, value = true); - }; - - template<> - struct lcast_streambuf_for_source - { - BOOST_STATIC_CONSTANT(bool, value = true); - }; - - template<> - struct lcast_streambuf_for_source - { - BOOST_STATIC_CONSTANT(bool, value = true); - }; - } - - namespace detail // lcast_streambuf_for_target - { - // Returns true if optimized stream wrapper needs istream for reading. - template - struct lcast_streambuf_for_target - { - BOOST_STATIC_CONSTANT(bool, value = true); - }; - - template<> - struct lcast_streambuf_for_target - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; - -#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_INTRINSIC_WCHAR_T) - template<> - struct lcast_streambuf_for_target - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -#endif - -#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - template - struct lcast_streambuf_for_target< - std::basic_string > - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; - -#ifndef BOOST_LCAST_NO_WCHAR_T - template - struct lcast_streambuf_for_target< - std::basic_string > - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -#endif -#else - template<> - struct lcast_streambuf_for_target - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; - -#ifndef BOOST_LCAST_NO_WCHAR_T - template<> - struct lcast_streambuf_for_target - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -#endif -#endif - } - - #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - // call-by-const reference version - - namespace detail - { - template - struct array_to_pointer_decay - { - typedef T type; - }; - - template - struct array_to_pointer_decay - { - typedef const T * type; - }; - - template< typename Target - , typename Source - , bool Unlimited // string representation of Source is unlimited - , typename CharT - > - Target lexical_cast( - BOOST_DEDUCED_TYPENAME boost::call_traits::param_type arg, - CharT* buf, std::size_t src_len) - { - typedef BOOST_DEDUCED_TYPENAME - deduce_char_traits::type traits; - - typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c< - lcast_streambuf_for_target::value || - lcast_streambuf_for_source::value - , std::basic_streambuf - , lexical_streambuf_fake - >::type base; - - BOOST_DEDUCED_TYPENAME boost::mpl::if_c< - Unlimited - , detail::lexical_stream - , detail::lexical_stream_limited_src - >::type interpreter(buf, buf + src_len); - - // The original form, reproduced below, is more elegant - // but yields a spurious C4701 warning ("possible use of - // "result" before initialization") with VC7.1 (/W4). -// -// Target result; -// -// if(!(interpreter << arg && interpreter >> result)) -// throw_exception(bad_lexical_cast(typeid(Source), typeid(Target))); -// return result; - - if(interpreter << arg) { - Target result; - if (interpreter >> result) - return result; - } -#ifndef BOOST_NO_TYPEID - throw_exception(bad_lexical_cast(typeid(Source), typeid(Target))); -#else - throw_exception(bad_lexical_cast()); -#endif - return Target(); // normally never reached (throw_exception) - } - } - - template - inline Target lexical_cast(const Source &arg) - { - typedef typename detail::array_to_pointer_decay::type src; - - typedef typename detail::widest_char< - typename detail::stream_char::type - , typename detail::stream_char::type - >::type char_type; - - typedef detail::lcast_src_length lcast_src_length; - std::size_t const src_len = lcast_src_length::value; - char_type buf[src_len + 1]; - lcast_src_length::check_coverage(); - return detail::lexical_cast(arg, buf, src_len); - } - - #else - - // call-by-value fallback version (deprecated) - - template - Target lexical_cast(Source arg) - { - typedef typename detail::widest_char< - BOOST_DEDUCED_TYPENAME detail::stream_char::type - , BOOST_DEDUCED_TYPENAME detail::stream_char::type - >::type char_type; - - typedef std::char_traits traits; - detail::lexical_stream interpreter; - Target result; - - if(!(interpreter << arg && interpreter >> result)) -#ifndef BOOST_NO_TYPEID - throw_exception(bad_lexical_cast(typeid(Source), typeid(Target))); -#else - throw_exception(bad_lexical_cast()); -#endif - return result; - } - - #endif -} - -// Copyright Kevlin Henney, 2000-2005. -// Copyright Alexander Nasonov, 2006-2007. -// -// Distributed under the Boost Software License, Version 1.0. (See -// accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#undef BOOST_LCAST_NO_WCHAR_T -#endif diff --git a/3rdParty/Boost/boost/limits.hpp b/3rdParty/Boost/boost/limits.hpp deleted file mode 100644 index d3747a1..0000000 --- a/3rdParty/Boost/boost/limits.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// (C) Copyright John maddock 1999. -// (C) David Abrahams 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) -// -// use this header as a workaround for missing - -// See http://www.boost.org/libs/compatibility/index.html for documentation. - -#ifndef BOOST_LIMITS -#define BOOST_LIMITS - -#include - -#ifdef BOOST_NO_LIMITS -# include -#else -# include -#endif - -#if (defined(BOOST_HAS_LONG_LONG) && defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)) \ - || (defined(BOOST_HAS_MS_INT64) && defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)) -// Add missing specializations for numeric_limits: -#ifdef BOOST_HAS_MS_INT64 -# define BOOST_LLT __int64 -# define BOOST_ULLT unsigned __int64 -#else -# define BOOST_LLT ::boost::long_long_type -# define BOOST_ULLT ::boost::ulong_long_type -#endif - -#include // for CHAR_BIT - -namespace std -{ - template<> - class numeric_limits - { - public: - - BOOST_STATIC_CONSTANT(bool, is_specialized = true); -#ifdef BOOST_HAS_MS_INT64 - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x8000000000000000i64; } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x7FFFFFFFFFFFFFFFi64; } -#elif defined(LLONG_MAX) - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MIN; } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MAX; } -#elif defined(LONGLONG_MAX) - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MIN; } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MAX; } -#else - static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 1LL << (sizeof(BOOST_LLT) * CHAR_BIT - 1); } - static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~(min)(); } -#endif - BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT -1); - BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT) - 1) * 301L / 1000); - BOOST_STATIC_CONSTANT(bool, is_signed = true); - BOOST_STATIC_CONSTANT(bool, is_integer = true); - BOOST_STATIC_CONSTANT(bool, is_exact = true); - BOOST_STATIC_CONSTANT(int, radix = 2); - static BOOST_LLT epsilon() throw() { return 0; }; - static BOOST_LLT round_error() throw() { return 0; }; - - BOOST_STATIC_CONSTANT(int, min_exponent = 0); - BOOST_STATIC_CONSTANT(int, min_exponent10 = 0); - BOOST_STATIC_CONSTANT(int, max_exponent = 0); - BOOST_STATIC_CONSTANT(int, max_exponent10 = 0); - - BOOST_STATIC_CONSTANT(bool, has_infinity = false); - BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false); - BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false); - BOOST_STATIC_CONSTANT(bool, has_denorm = false); - BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false); - static BOOST_LLT infinity() throw() { return 0; }; - static BOOST_LLT quiet_NaN() throw() { return 0; }; - static BOOST_LLT signaling_NaN() throw() { return 0; }; - static BOOST_LLT denorm_min() throw() { return 0; }; - - BOOST_STATIC_CONSTANT(bool, is_iec559 = false); - BOOST_STATIC_CONSTANT(bool, is_bounded = true); - BOOST_STATIC_CONSTANT(bool, is_modulo = true); - - BOOST_STATIC_CONSTANT(bool, traps = false); - BOOST_STATIC_CONSTANT(bool, tinyness_before = false); - BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero); - - }; - - template<> - class numeric_limits - { - public: - - BOOST_STATIC_CONSTANT(bool, is_specialized = true); -#ifdef BOOST_HAS_MS_INT64 - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0ui64; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0xFFFFFFFFFFFFFFFFui64; } -#elif defined(ULLONG_MAX) && defined(ULLONG_MIN) - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MIN; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MAX; } -#elif defined(ULONGLONG_MAX) && defined(ULONGLONG_MIN) - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MIN; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MAX; } -#else - static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0uLL; } - static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~0uLL; } -#endif - BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT); - BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT)) * 301L / 1000); - BOOST_STATIC_CONSTANT(bool, is_signed = false); - BOOST_STATIC_CONSTANT(bool, is_integer = true); - BOOST_STATIC_CONSTANT(bool, is_exact = true); - BOOST_STATIC_CONSTANT(int, radix = 2); - static BOOST_ULLT epsilon() throw() { return 0; }; - static BOOST_ULLT round_error() throw() { return 0; }; - - BOOST_STATIC_CONSTANT(int, min_exponent = 0); - BOOST_STATIC_CONSTANT(int, min_exponent10 = 0); - BOOST_STATIC_CONSTANT(int, max_exponent = 0); - BOOST_STATIC_CONSTANT(int, max_exponent10 = 0); - - BOOST_STATIC_CONSTANT(bool, has_infinity = false); - BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false); - BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false); - BOOST_STATIC_CONSTANT(bool, has_denorm = false); - BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false); - static BOOST_ULLT infinity() throw() { return 0; }; - static BOOST_ULLT quiet_NaN() throw() { return 0; }; - static BOOST_ULLT signaling_NaN() throw() { return 0; }; - static BOOST_ULLT denorm_min() throw() { return 0; }; - - BOOST_STATIC_CONSTANT(bool, is_iec559 = false); - BOOST_STATIC_CONSTANT(bool, is_bounded = true); - BOOST_STATIC_CONSTANT(bool, is_modulo = true); - - BOOST_STATIC_CONSTANT(bool, traps = false); - BOOST_STATIC_CONSTANT(bool, tinyness_before = false); - BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero); - - }; -} -#endif - -#endif - diff --git a/3rdParty/Boost/boost/mem_fn.hpp b/3rdParty/Boost/boost/mem_fn.hpp deleted file mode 100644 index 3bcd2c5..0000000 --- a/3rdParty/Boost/boost/mem_fn.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef BOOST_MEM_FN_HPP_INCLUDED -#define BOOST_MEM_FN_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// -// mem_fn.hpp - a generalization of std::mem_fun[_ref] -// -// Copyright (c) 2009 Peter Dimov -// -// Distributed under the 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/bind/mem_fn.html for documentation. -// - -#include - -#endif // #ifndef BOOST_MEM_FN_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/memory_order.hpp b/3rdParty/Boost/boost/memory_order.hpp deleted file mode 100644 index 2524e8a..0000000 --- a/3rdParty/Boost/boost/memory_order.hpp +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED -#define BOOST_MEMORY_ORDER_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// boost/memory_order.hpp -// -// Defines enum boost::memory_order per the C++0x working draft -// -// Copyright (c) 2008 Peter Dimov -// -// Distributed under the Boost Software License, Version 1.0. -// See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - - -namespace boost -{ - -enum memory_order -{ - memory_order_relaxed = 0, - memory_order_acquire = 1, - memory_order_release = 2, - memory_order_acq_rel = 3, // acquire | release - memory_order_seq_cst = 7 // acq_rel | 4 -}; - -} // namespace boost - -#endif // #ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/O1_size_fwd.hpp b/3rdParty/Boost/boost/mpl/O1_size_fwd.hpp deleted file mode 100644 index 281fcaf..0000000 --- a/3rdParty/Boost/boost/mpl/O1_size_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED -#define BOOST_MPL_O1_SIZE_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: O1_size_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 O1_size_impl; -template< typename Sequence > struct O1_size; - -}} - -#endif // BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/advance.hpp b/3rdParty/Boost/boost/mpl/advance.hpp deleted file mode 100644 index c8b5ae8..0000000 --- a/3rdParty/Boost/boost/mpl/advance.hpp +++ /dev/null @@ -1,76 +0,0 @@ - -#ifndef BOOST_MPL_ADVANCE_HPP_INCLUDED -#define BOOST_MPL_ADVANCE_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: advance.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation for forward/bidirectional iterators -template< typename Tag > -struct advance_impl -{ - template< typename Iterator, typename N > struct apply - { - typedef typename less< N,long_<0> >::type backward_; - typedef typename if_< backward_, negate, N >::type offset_; - - typedef typename if_< - backward_ - , aux::advance_backward< BOOST_MPL_AUX_VALUE_WKND(offset_)::value > - , aux::advance_forward< BOOST_MPL_AUX_VALUE_WKND(offset_)::value > - >::type f_; - - typedef typename apply_wrap1::type type; - }; -}; - - -template< - typename BOOST_MPL_AUX_NA_PARAM(Iterator) - , typename BOOST_MPL_AUX_NA_PARAM(N) - > -struct advance - : advance_impl< typename tag::type > - ::template apply -{ -}; - -template< - typename Iterator - , BOOST_MPL_AUX_NTTP_DECL(long, N) - > -struct advance_c - : advance_impl< typename tag::type > - ::template apply > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(2, advance) - -}} - -#endif // BOOST_MPL_ADVANCE_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/advance_fwd.hpp b/3rdParty/Boost/boost/mpl/advance_fwd.hpp deleted file mode 100644 index daf0c91..0000000 --- a/3rdParty/Boost/boost/mpl/advance_fwd.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED -#define BOOST_MPL_ADVANCE_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: advance_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -namespace boost { namespace mpl { - -BOOST_MPL_AUX_COMMON_NAME_WKND(advance) - -template< typename Tag > struct advance_impl; -template< typename Iterator, typename N > struct advance; - -}} - -#endif // BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/always.hpp b/3rdParty/Boost/boost/mpl/always.hpp deleted file mode 100644 index f984231..0000000 --- a/3rdParty/Boost/boost/mpl/always.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_ALWAYS_HPP_INCLUDED -#define BOOST_MPL_ALWAYS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: always.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename Value > struct always -{ - template< - typename T - BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(1, typename T, na) - > - struct apply - { - typedef Value type; - }; -}; - -BOOST_MPL_AUX_ARITY_SPEC(1, always) - -}} - -#endif // BOOST_MPL_ALWAYS_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/and.hpp b/3rdParty/Boost/boost/mpl/and.hpp deleted file mode 100644 index 1b3ede2..0000000 --- a/3rdParty/Boost/boost/mpl/and.hpp +++ /dev/null @@ -1,60 +0,0 @@ - -#ifndef BOOST_MPL_AND_HPP_INCLUDED -#define BOOST_MPL_AND_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: and.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# include -# include -# include -# include - -// agurt, 19/may/04: workaround a conflict with header's -// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(and)' -// has to be checked in a separate condition, otherwise GCC complains -// about 'and' being an alternative token -#if defined(_MSC_VER) -#ifndef __GCCXML__ -#if defined(and) -# pragma push_macro("and") -# undef and -# define and(x) -#endif -#endif -#endif - -# define BOOST_MPL_PREPROCESSED_HEADER and.hpp -# include - -#if defined(_MSC_VER) -#ifndef __GCCXML__ -#if defined(and) -# pragma pop_macro("and") -#endif -#endif -#endif - -#else - -# define AUX778076_OP_NAME and_ -# define AUX778076_OP_VALUE1 false -# define AUX778076_OP_VALUE2 true -# include - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AND_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/apply.hpp b/3rdParty/Boost/boost/mpl/apply.hpp deleted file mode 100644 index 944619e..0000000 --- a/3rdParty/Boost/boost/mpl/apply.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_APPLY_HPP_INCLUDED -#define BOOST_MPL_APPLY_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: apply.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 -# include -# include -# include -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER apply.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -namespace boost { namespace mpl { - -// local macros, #undef-ined at the end of the header -# define AUX778076_APPLY_PARAMS(param) \ - BOOST_MPL_PP_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - ) \ - /**/ - -# define AUX778076_APPLY_DEF_PARAMS(param, value) \ - BOOST_MPL_PP_DEFAULT_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - , value \ - ) \ - /**/ - -# define AUX778076_APPLY_N_PARAMS(n, param) \ - BOOST_MPL_PP_PARAMS(n, param) \ - /**/ - -# define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \ - BOOST_PP_COMMA_IF(n) \ - BOOST_MPL_PP_PARAMS(n, param) \ - /**/ - -# define AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(n, param, def) \ - BOOST_PP_COMMA_IF(n) \ - BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \ - /**/ - -# define AUX778076_APPLY_N_SPEC_PARAMS(n, param) \ - BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \ - /**/ - - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) -// real C++ version is already taken care of -# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -namespace aux { -// apply_count_args -#define AUX778076_COUNT_ARGS_PREFIX apply -#define AUX778076_COUNT_ARGS_DEFAULT na -#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY -#include -} - - -template< - typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na) - > -struct apply - : aux::apply_chooser< - aux::apply_count_args< AUX778076_APPLY_PARAMS(T) >::value - >::template result_< F, AUX778076_APPLY_PARAMS(T) >::type -{ -}; - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE - -# undef AUX778076_APPLY_N_SPEC_PARAMS -# undef AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS -# undef AUX778076_APPLY_N_COMMA_PARAMS -# undef AUX778076_APPLY_N_PARAMS -# undef AUX778076_APPLY_DEF_PARAMS -# undef AUX778076_APPLY_PARAMS - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_APPLY_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 - -# define i_ BOOST_PP_FRAME_ITERATION(1) - -template< - typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply,i_) -#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) - : BOOST_PP_CAT(apply_wrap,i_)< - typename lambda::type - AUX778076_APPLY_N_COMMA_PARAMS(i_, T) - > -{ -#else -{ - typedef typename BOOST_PP_CAT(apply_wrap,i_)< - typename lambda::type - AUX778076_APPLY_N_COMMA_PARAMS(i_, T) - >::type type; -#endif - BOOST_MPL_AUX_LAMBDA_SUPPORT( - BOOST_PP_INC(i_) - , BOOST_PP_CAT(apply,i_) - , (F AUX778076_APPLY_N_COMMA_PARAMS(i_,T)) - ) -}; - - -#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) -/// workaround for ETI bug -template<> -struct BOOST_PP_CAT(apply,i_) -{ - typedef int type; -}; -#endif - -# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY -/// primary template (not a specialization!) -template< - typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) - > -struct apply - : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) > -{ -}; -#else -template< - typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) - > -struct apply< F AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(i_, T, na) > - : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) > -{ -}; -#endif - -# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -#if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) -namespace aux { - -template<> -struct apply_chooser -{ - template< - typename F, AUX778076_APPLY_PARAMS(typename T) - > - struct result_ - { - typedef BOOST_PP_CAT(apply,i_)< - F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) - > type; - }; -}; - -} // namespace aux -#endif - -# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE - -# undef i_ - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/3rdParty/Boost/boost/mpl/apply_fwd.hpp b/3rdParty/Boost/boost/mpl/apply_fwd.hpp deleted file mode 100644 index a78ae8b..0000000 --- a/3rdParty/Boost/boost/mpl/apply_fwd.hpp +++ /dev/null @@ -1,107 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_APPLY_FWD_HPP_INCLUDED -#define BOOST_MPL_APPLY_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: apply_fwd.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 -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER apply_fwd.hpp -# include - -#else - -# include -# include -# include -# include -# include - -# include -# include -# include - -// agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC -// (for known reasons) -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -# define BOOST_MPL_CFG_NO_APPLY_TEMPLATE -#endif - -namespace boost { namespace mpl { - -// local macro, #undef-ined at the end of the header -# define AUX778076_APPLY_DEF_PARAMS(param, value) \ - BOOST_MPL_PP_DEFAULT_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - , value \ - ) \ - /**/ - -# define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \ - BOOST_PP_COMMA_IF(n) \ - BOOST_MPL_PP_PARAMS(n, param) \ - /**/ - -# if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE) - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -// forward declaration -template< - typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na) - > -struct apply; -#else -namespace aux { -template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser; -} -#endif - -# endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - - -# undef AUX778076_APPLY_N_COMMA_PARAMS -# undef AUX778076_APPLY_DEF_PARAMS - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_APPLY_FWD_HPP_INCLUDED - -///// iteration - -#else -#define i_ BOOST_PP_FRAME_ITERATION(1) - -template< - typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply,i_); - -#undef i_ -#endif // BOOST_PP_IS_ITERATING diff --git a/3rdParty/Boost/boost/mpl/apply_wrap.hpp b/3rdParty/Boost/boost/mpl/apply_wrap.hpp deleted file mode 100644 index b3cb12b..0000000 --- a/3rdParty/Boost/boost/mpl/apply_wrap.hpp +++ /dev/null @@ -1,234 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_APPLY_WRAP_HPP_INCLUDED -#define BOOST_MPL_APPLY_WRAP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: apply_wrap.hpp 49272 2008-10-11 06:50:46Z agurtovoy $ -// $Date: 2008-10-11 02:50:46 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49272 $ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER apply_wrap.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - - -namespace boost { namespace mpl { - -// local macros, #undef-ined at the end of the header -# define AUX778076_APPLY_WRAP_PARAMS(n, param) \ - BOOST_MPL_PP_PARAMS(n, param) \ - /**/ - -# define AUX778076_APPLY_WRAP_SPEC_PARAMS(n, param) \ - BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \ - /**/ - - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - - -# undef AUX778076_APPLY_WRAP_SPEC_PARAMS -# undef AUX778076_APPLY_WRAP_PARAMS - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_APPLY_WRAP_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 - -# define i_ BOOST_PP_FRAME_ITERATION(1) - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -// MSVC version - -#define AUX778076_MSVC_DTW_NAME BOOST_PP_CAT(msvc_apply,i_) -#define AUX778076_MSVC_DTW_ORIGINAL_NAME apply -#define AUX778076_MSVC_DTW_ARITY i_ -#include - -template< - typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply_wrap,i_) -{ - // Metafunction forwarding confuses vc6 - typedef typename BOOST_PP_CAT(msvc_apply,i_)::template result_< - AUX778076_APPLY_WRAP_PARAMS(i_, T) - >::type type; -}; - -# elif defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -// MWCW/Borland version - -template< - int N, typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply_wrap_impl,i_); - -#define BOOST_PP_ITERATION_PARAMS_2 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY - i_, )) -#include BOOST_PP_ITERATE() - -template< - typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply_wrap,i_) - : BOOST_PP_CAT(apply_wrap_impl,i_)< - ::boost::mpl::aux::arity::value - , F - BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T) - >::type -{ -}; - -# else -// ISO98 C++, with minor concession to vc7 - -template< - typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) -#if i_ == 0 - , typename has_apply_ = typename aux::has_apply::type -#endif - > -struct BOOST_PP_CAT(apply_wrap,i_) -// metafunction forwarding confuses MSVC 7.0 -#if !BOOST_WORKAROUND(BOOST_MSVC, == 1300) - : F::template apply< AUX778076_APPLY_WRAP_PARAMS(i_, T) > -{ -#else -{ - typedef typename F::template apply< - AUX778076_APPLY_WRAP_PARAMS(i_, T) - >::type type; -#endif -}; - -#if i_ == 0 && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -template< typename F > -struct BOOST_PP_CAT(apply_wrap,i_) - : F::apply -{ -}; -#endif - -# endif // workarounds - -#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) -/// workaround for ETI bug -template<> -struct BOOST_PP_CAT(apply_wrap,i_) -{ - typedef int type; -}; -#endif - -# undef i_ - -///// iteration, depth == 2 - -#elif BOOST_PP_ITERATION_DEPTH() == 2 - -# define j_ BOOST_PP_FRAME_ITERATION(2) - -#if i_ == 0 && j_ == 0 \ - && defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \ - && !defined(BOOST_MPL_CFG_NO_HAS_APPLY) - -template< typename F, bool F_has_apply > -struct apply_wrap_impl0_bcb { - typedef typename F::template apply< na > type; -}; - -template< typename F > -struct apply_wrap_impl0_bcb< F, true > { - typedef typename F::apply type; -}; - -template< - typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply_wrap_impl,i_)< - BOOST_MPL_PP_ADD(i_, j_) - , F - BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T) - > -{ - typedef apply_wrap_impl0_bcb< F, aux::has_apply< F >::value >::type type; -}; -#else - -template< - typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T) - > -struct BOOST_PP_CAT(apply_wrap_impl,i_)< - BOOST_MPL_PP_ADD(i_, j_) - , F - BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T) - > -{ - typedef typename F::template apply< - AUX778076_APPLY_WRAP_PARAMS(i_, T) -#if i_ == 0 && j_ == 0 -/// since the defaults are "lost", we have to pass *something* even for nullary -/// metafunction classes - na -#else - BOOST_PP_COMMA_IF(BOOST_PP_AND(i_, j_)) BOOST_MPL_PP_ENUM(j_, na) -#endif - > type; -}; - -#endif - -# undef j_ - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/3rdParty/Boost/boost/mpl/arg.hpp b/3rdParty/Boost/boost/mpl/arg.hpp deleted file mode 100644 index c1c7072..0000000 --- a/3rdParty/Boost/boost/mpl/arg.hpp +++ /dev/null @@ -1,131 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_ARG_HPP_INCLUDED -#define BOOST_MPL_ARG_HPP_INCLUDED - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-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: arg.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 -# include -# include -# include -# include -#endif - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER arg.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include - -# include -# include -# include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -// local macro, #undef-ined at the end of the header -#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \ - BOOST_MPL_PP_DEFAULT_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - , value \ - ) \ - /**/ -#else -# define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \ - BOOST_MPL_PP_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - ) \ - /**/ -#endif - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - - -# undef AUX778076_ARG_N_DEFAULT_PARAMS - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int,arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_ARG_HPP_INCLUDED - -///// iteration - -#else -#define i_ BOOST_PP_FRAME_ITERATION(1) - -#if i_ > 0 - -template<> struct arg -{ - BOOST_STATIC_CONSTANT(int, value = i_); - typedef arg next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na) - > - struct apply - { - typedef BOOST_PP_CAT(U,i_) type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -#else - -template<> struct arg<-1> -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na) - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -#endif // i_ > 0 - -#undef i_ -#endif // BOOST_PP_IS_ITERATING diff --git a/3rdParty/Boost/boost/mpl/arg_fwd.hpp b/3rdParty/Boost/boost/mpl/arg_fwd.hpp deleted file mode 100644 index c96b48f..0000000 --- a/3rdParty/Boost/boost/mpl/arg_fwd.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_ARG_FWD_HPP_INCLUDED -#define BOOST_MPL_ARG_FWD_HPP_INCLUDED - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-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: arg_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arg; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(arg) - -#endif // BOOST_MPL_ARG_FWD_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/assert.hpp b/3rdParty/Boost/boost/mpl/assert.hpp deleted file mode 100644 index 33b82f3..0000000 --- a/3rdParty/Boost/boost/mpl/assert.hpp +++ /dev/null @@ -1,370 +0,0 @@ - -#ifndef BOOST_MPL_ASSERT_HPP_INCLUDED -#define BOOST_MPL_ASSERT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2000-2006 -// -// Distributed under the 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: assert.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include // make sure 'size_t' is placed into 'std' -#include - - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || (BOOST_MPL_CFG_GCC != 0) \ - || BOOST_WORKAROUND(__IBMCPP__, <= 600) -# define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES -#endif - -#if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \ - || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -# define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER -#endif - -// agurt, 10/nov/06: use enums for Borland (which cannot cope with static constants) -// and GCC (which issues "unused variable" warnings when static constants are used -// at a function scope) -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || (BOOST_MPL_CFG_GCC != 0) -# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr } -#else -# define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) BOOST_STATIC_CONSTANT(T, expr) -#endif - - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -struct failed {}; - -// agurt, 24/aug/04: MSVC 7.1 workaround here and below: return/accept -// 'assert' by reference; can't apply it unconditionally -- apparently it -// degrades the quality of GCC diagnostics -#if BOOST_WORKAROUND(BOOST_MSVC, == 1310) -# define AUX778076_ASSERT_ARG(x) x& -#else -# define AUX778076_ASSERT_ARG(x) x -#endif - -template< bool C > struct assert { typedef void* type; }; -template<> struct assert { typedef AUX778076_ASSERT_ARG(assert) type; }; - -template< bool C > -int assertion_failed( typename assert::type ); - -template< bool C > -struct assertion -{ - static int failed( assert ); -}; - -template<> -struct assertion -{ - static int failed( void* ); -}; - -struct assert_ -{ -#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) - template< typename T1, typename T2 = na, typename T3 = na, typename T4 = na > struct types {}; -#endif - static assert_ const arg; - enum relations { equal = 1, not_equal, greater, greater_equal, less, less_equal }; -}; - - -#if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES) - -bool operator==( failed, failed ); -bool operator!=( failed, failed ); -bool operator>( failed, failed ); -bool operator>=( failed, failed ); -bool operator<( failed, failed ); -bool operator<=( failed, failed ); - -#if defined(__EDG_VERSION__) -template< bool (*)(failed, failed), long x, long y > struct assert_relation {}; -# define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation -#else -template< BOOST_MPL_AUX_NTTP_DECL(long, x), BOOST_MPL_AUX_NTTP_DECL(long, y), bool (*)(failed, failed) > -struct assert_relation {}; -# define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation -#endif - -#else // BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES - -boost::mpl::aux::weighted_tag<1>::type operator==( assert_, assert_ ); -boost::mpl::aux::weighted_tag<2>::type operator!=( assert_, assert_ ); -boost::mpl::aux::weighted_tag<3>::type operator>( assert_, assert_ ); -boost::mpl::aux::weighted_tag<4>::type operator>=( assert_, assert_ ); -boost::mpl::aux::weighted_tag<5>::type operator<( assert_, assert_ ); -boost::mpl::aux::weighted_tag<6>::type operator<=( assert_, assert_ ); - -template< assert_::relations r, long x, long y > struct assert_relation {}; - -#endif - - -#if !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER) - -template< bool > struct assert_arg_pred_impl { typedef int type; }; -template<> struct assert_arg_pred_impl { typedef void* type; }; - -template< typename P > struct assert_arg_pred -{ - typedef typename P::type p_type; - typedef typename assert_arg_pred_impl< p_type::value >::type type; -}; - -template< typename P > struct assert_arg_pred_not -{ - typedef typename P::type p_type; - BOOST_MPL_AUX_ASSERT_CONSTANT( bool, p = !p_type::value ); - typedef typename assert_arg_pred_impl

::type type; -}; - -template< typename Pred > -failed ************ (Pred::************ - assert_arg( void (*)(Pred), typename assert_arg_pred::type ) - ); - -template< typename Pred > -failed ************ (boost::mpl::not_::************ - assert_not_arg( void (*)(Pred), typename assert_arg_pred_not::type ) - ); - -template< typename Pred > -AUX778076_ASSERT_ARG(assert) -assert_arg( void (*)(Pred), typename assert_arg_pred_not::type ); - -template< typename Pred > -AUX778076_ASSERT_ARG(assert) -assert_not_arg( void (*)(Pred), typename assert_arg_pred::type ); - - -#else // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER - -template< bool c, typename Pred > struct assert_arg_type_impl -{ - typedef failed ************ Pred::* mwcw83_wknd; - typedef mwcw83_wknd ************* type; -}; - -template< typename Pred > struct assert_arg_type_impl -{ - typedef AUX778076_ASSERT_ARG(assert) type; -}; - -template< typename Pred > struct assert_arg_type - : assert_arg_type_impl< BOOST_MPL_AUX_VALUE_WKND(BOOST_MPL_AUX_NESTED_TYPE_WKND(Pred))::value, Pred > -{ -}; - -template< typename Pred > -typename assert_arg_type::type -assert_arg(void (*)(Pred), int); - -template< typename Pred > -typename assert_arg_type< boost::mpl::not_ >::type -assert_not_arg(void (*)(Pred), int); - -# if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES) -template< long x, long y, bool (*r)(failed, failed) > -typename assert_arg_type_impl< false,BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) >::type -assert_rel_arg( BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) ); -# else -template< assert_::relations r, long x, long y > -typename assert_arg_type_impl< false,assert_relation >::type -assert_rel_arg( assert_relation ); -# endif - -#endif // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER - -#undef AUX778076_ASSERT_ARG - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - - -// BOOST_MPL_ASSERT((pred)) - -#define BOOST_MPL_ASSERT(pred) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion_failed( \ - boost::mpl::assert_arg( (void (*) pred)0, 1 ) \ - ) \ - ) \ - ) \ -/**/ - -// BOOST_MPL_ASSERT_NOT((pred)) - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) -# define BOOST_MPL_ASSERT_NOT(pred) \ -enum { \ - BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion::failed( \ - boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \ - ) \ - ) \ -}\ -/**/ -#else -# define BOOST_MPL_ASSERT_NOT(pred) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion_failed( \ - boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \ - ) \ - ) \ - ) \ -/**/ -#endif - -// BOOST_MPL_ASSERT_RELATION(x, ==|!=|<=|<|>=|>, y) - -#if defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES) - -# if !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER) -// agurt, 9/nov/06: 'enum' below is a workaround for gcc 4.0.4/4.1.1 bugs #29522 and #29518 -# define BOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y) \ -enum { BOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) }; \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ - boost::mpl::assertion_failed( \ - (boost::mpl::failed ************ ( boost::mpl::assert_relation< \ - boost::mpl::assert_::relations( sizeof( \ - boost::mpl::assert_::arg rel boost::mpl::assert_::arg \ - ) ) \ - , x \ - , y \ - >::************)) 0 ) \ - ) \ - ) \ -/**/ -# else -# define BOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assert_rel,counter) = sizeof( \ - boost::mpl::assert_::arg rel boost::mpl::assert_::arg \ - ) \ - ); \ -BOOST_MPL_AUX_ASSERT_CONSTANT( bool, BOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) ); \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ - boost::mpl::assertion_failed( \ - boost::mpl::assert_rel_arg( boost::mpl::assert_relation< \ - boost::mpl::assert_::relations(BOOST_PP_CAT(mpl_assert_rel,counter)) \ - , x \ - , y \ - >() ) \ - ) \ - ) \ - ) \ -/**/ -# endif - -# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \ -BOOST_MPL_ASSERT_RELATION_IMPL(BOOST_MPL_AUX_PP_COUNTER(), x, rel, y) \ -/**/ - -#else // !BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES - -# if defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER) -# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion_failed<(x rel y)>( boost::mpl::assert_rel_arg( \ - boost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&boost::mpl::operator rel))() \ - ) ) \ - ) \ - ) \ -/**/ -# else -# define BOOST_MPL_ASSERT_RELATION(x, rel, y) \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \ - boost::mpl::assertion_failed<(x rel y)>( (boost::mpl::failed ************ ( \ - boost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&boost::mpl::operator rel))::************))0 ) \ - ) \ - ) \ -/**/ -# endif - -#endif - - -// BOOST_MPL_ASSERT_MSG( (pred::value), USER_PROVIDED_MESSAGE, (types) ) - -#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) -# define BOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ ) \ -struct msg; \ -typedef struct BOOST_PP_CAT(msg,counter) : boost::mpl::assert_ \ -{ \ - using boost::mpl::assert_::types; \ - static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \ - { return 0; } \ -} BOOST_PP_CAT(mpl_assert_arg,counter); \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ - boost::mpl::assertion<(c)>::failed( BOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \ - ) \ - ) \ -/**/ -#else -# define BOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ ) \ -struct msg; \ -typedef struct BOOST_PP_CAT(msg,counter) : boost::mpl::assert_ \ -{ \ - static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \ - { return 0; } \ -} BOOST_PP_CAT(mpl_assert_arg,counter); \ -BOOST_MPL_AUX_ASSERT_CONSTANT( \ - std::size_t \ - , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \ - boost::mpl::assertion_failed<(c)>( BOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \ - ) \ - ) \ -/**/ -#endif - -#define BOOST_MPL_ASSERT_MSG( c, msg, types_ ) \ -BOOST_MPL_ASSERT_MSG_IMPL( BOOST_MPL_AUX_PP_COUNTER(), c, msg, types_ ) \ -/**/ - -#endif // BOOST_MPL_ASSERT_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/at.hpp b/3rdParty/Boost/boost/mpl/at.hpp deleted file mode 100644 index caa3462..0000000 --- a/3rdParty/Boost/boost/mpl/at.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -#ifndef BOOST_MPL_AT_HPP_INCLUDED -#define BOOST_MPL_AT_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: at.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(Sequence) - , typename BOOST_MPL_AUX_NA_PARAM(N) - > -struct at - : at_impl< typename sequence_tag::type > - ::template apply< Sequence,N > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2,at,(Sequence,N)) -}; - -template< - typename Sequence - , BOOST_MPL_AUX_NTTP_DECL(long, N) - > -struct at_c - : at_impl< typename sequence_tag::type > - ::template apply< Sequence,mpl::long_ > -{ -}; - -BOOST_MPL_AUX_NA_SPEC(2, at) - -}} - -#endif // BOOST_MPL_AT_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/at_fwd.hpp b/3rdParty/Boost/boost/mpl/at_fwd.hpp deleted file mode 100644 index 6bce275..0000000 --- a/3rdParty/Boost/boost/mpl/at_fwd.hpp +++ /dev/null @@ -1,24 +0,0 @@ - -#ifndef BOOST_MPL_AT_FWD_HPP_INCLUDED -#define BOOST_MPL_AT_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: at_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 at_impl; -template< typename Sequence, typename N > struct at; - -}} - -#endif // BOOST_MPL_AT_FWD_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/adl_barrier.hpp b/3rdParty/Boost/boost/mpl/aux_/adl_barrier.hpp deleted file mode 100644 index 7d9eaea..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/adl_barrier.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED -#define BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: adl_barrier.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) - -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE mpl_ -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace mpl_ { -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE } -# define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) \ - namespace boost { namespace mpl { \ - using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \ - } } \ -/**/ - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE { namespace aux {} } -namespace boost { namespace mpl { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE; -namespace aux { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux; } -}} -#endif - -#else // BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE - -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE boost::mpl -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace boost { namespace mpl { -# define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }} -# define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) /**/ - -#endif - -#endif // BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/advance_backward.hpp b/3rdParty/Boost/boost/mpl/aux_/advance_backward.hpp deleted file mode 100644 index 169202a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/advance_backward.hpp +++ /dev/null @@ -1,128 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED -#define BOOST_MPL_AUX778076_ADVANCE_BACKWARD_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: advance_backward.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 -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER advance_backward.hpp -# include - -#else - -# include -# include -# include - -# include -# include -# include - -namespace boost { namespace mpl { namespace aux { - -// forward declaration -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_backward; - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_UNROLLING, )) -# include BOOST_PP_ITERATE() - -// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - BOOST_MPL_LIMIT_UNROLLING) < 0 - ? 0 - : N - BOOST_MPL_LIMIT_UNROLLING - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 -#define i_ BOOST_PP_FRAME_ITERATION(1) - -template<> -struct advance_backward< BOOST_PP_FRAME_ITERATION(1) > -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - -#if i_ > 0 -# define BOOST_PP_ITERATION_PARAMS_2 \ - (3,(1, BOOST_PP_FRAME_ITERATION(1), )) -# include BOOST_PP_ITERATE() -#endif - - typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) type; - }; - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - /// ETI workaround - template<> struct apply - { - typedef int type; - }; -#endif -}; - -#undef i_ - -///// iteration, depth == 2 - -#elif BOOST_PP_ITERATION_DEPTH() == 2 - -# define AUX778076_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2))) -# define AUX778076_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2)) - - typedef typename prior::type AUX778076_ITER_1; - -# undef AUX778076_ITER_1 -# undef AUX778076_ITER_0 - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/3rdParty/Boost/boost/mpl/aux_/advance_forward.hpp b/3rdParty/Boost/boost/mpl/aux_/advance_forward.hpp deleted file mode 100644 index 058f765..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/advance_forward.hpp +++ /dev/null @@ -1,127 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED -#define BOOST_MPL_AUX_ADVANCE_FORWARD_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: advance_forward.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 -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER advance_forward.hpp -# include - -#else - -# include -# include -# include - -# include -# include -# include - -namespace boost { namespace mpl { namespace aux { - -// forward declaration -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_forward; - -# define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_UNROLLING, )) -# include BOOST_PP_ITERATE() - -// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING -template< BOOST_MPL_AUX_NTTP_DECL(long, N) > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - BOOST_MPL_LIMIT_UNROLLING) < 0 - ? 0 - : N - BOOST_MPL_LIMIT_UNROLLING - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 -#define i_ BOOST_PP_FRAME_ITERATION(1) - -template<> -struct advance_forward< BOOST_PP_FRAME_ITERATION(1) > -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - -#if i_ > 0 -# define BOOST_PP_ITERATION_PARAMS_2 \ - (3,(1, i_, )) -# include BOOST_PP_ITERATE() -#endif - typedef BOOST_PP_CAT(iter,i_) type; - }; - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - /// ETI workaround - template<> struct apply - { - typedef int type; - }; -#endif -}; - -#undef i_ - -///// iteration, depth == 2 - -#elif BOOST_PP_ITERATION_DEPTH() == 2 - -# define AUX778076_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2))) -# define AUX778076_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2)) - - typedef typename next::type AUX778076_ITER_1; - -# undef AUX778076_ITER_1 -# undef AUX778076_ITER_0 - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/3rdParty/Boost/boost/mpl/aux_/arg_typedef.hpp b/3rdParty/Boost/boost/mpl/aux_/arg_typedef.hpp deleted file mode 100644 index e4737b9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/arg_typedef.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED -#define BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: arg_typedef.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) - -# define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) typedef T name; - -#else - -# define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) /**/ - -#endif - -#endif // BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/arithmetic_op.hpp b/3rdParty/Boost/boost/mpl/aux_/arithmetic_op.hpp deleted file mode 100644 index 9546e8e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/arithmetic_op.hpp +++ /dev/null @@ -1,92 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// 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: arithmetic_op.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 -# include -# include -#endif - -#if !defined(AUX778076_OP_PREFIX) -# define AUX778076_OP_PREFIX AUX778076_OP_NAME -#endif - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp -# include - -#else - -# include -# include - - -namespace boost { namespace mpl { - -#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) -namespace aux { -template< typename T, T n1, T n2 > -struct BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd) -{ - BOOST_STATIC_CONSTANT(T, value = (n1 AUX778076_OP_TOKEN n2)); - typedef integral_c type; -}; -} -#endif - -template<> -struct AUX778076_OP_IMPL_NAME -{ - template< typename N1, typename N2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > -#else - : aux::BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type -#endif - { - }; -}; - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#undef AUX778076_OP_TAG_NAME -#undef AUX778076_OP_IMPL_NAME -#undef AUX778076_OP_ARITY -#undef AUX778076_OP_PREFIX -#undef AUX778076_OP_NAME -#undef AUX778076_OP_TOKEN diff --git a/3rdParty/Boost/boost/mpl/aux_/arity.hpp b/3rdParty/Boost/boost/mpl/aux_/arity.hpp deleted file mode 100644 index f639a10..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/arity.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ARITY_HPP_INCLUDED -#define BOOST_MPL_AUX_ARITY_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: arity.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) - -# include -# include - -namespace boost { namespace mpl { namespace aux { - -// agurt, 15/mar/02: it's possible to implement the template so that it will -// "just work" and do not require any specialization, but not on the compilers -// that require the arity workaround in the first place -template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) > -struct arity -{ - BOOST_STATIC_CONSTANT(int, value = N); -}; - -}}} - -#endif // BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES - -#endif // BOOST_MPL_AUX_ARITY_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/arity_spec.hpp b/3rdParty/Boost/boost/mpl/aux_/arity_spec.hpp deleted file mode 100644 index ea164a6..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/arity_spec.hpp +++ /dev/null @@ -1,67 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED -#define BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: arity_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) \ -namespace aux { \ -template< BOOST_MPL_AUX_NTTP_DECL(int, N), BOOST_MPL_PP_PARAMS(i,type T) > \ -struct arity< \ - name< BOOST_MPL_PP_PARAMS(i,T) > \ - , N \ - > \ -{ \ - BOOST_STATIC_CONSTANT(int \ - , value = BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - ); \ -}; \ -} \ -/**/ -#else -# define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) /**/ -#endif - -# define BOOST_MPL_AUX_ARITY_SPEC(i,name) \ - BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,typename,name) \ -/**/ - - -#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ - && !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) -# define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) \ -namespace aux { \ -template< BOOST_MPL_PP_PARAMS(i,typename T) > \ -struct template_arity< name > \ - : int_ \ -{ \ -}; \ -} \ -/**/ -#else -# define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/ -#endif - - -#endif // BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/at_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/at_impl.hpp deleted file mode 100644 index 120738f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/at_impl.hpp +++ /dev/null @@ -1,45 +0,0 @@ - -#ifndef BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_AT_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: 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 -#include -#include -#include - -namespace boost { namespace mpl { - -// default implementation; conrete sequences might override it by -// specializing either the 'at_impl' or the primary 'at' template - -template< typename Tag > -struct at_impl -{ - template< typename Sequence, typename N > struct apply - { - typedef typename advance< - typename begin::type - , N - >::type iter_; - - typedef typename deref::type type; - }; -}; - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, at_impl) - -}} - -#endif // BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/begin_end_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/begin_end_impl.hpp deleted file mode 100644 index d3b9682..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/begin_end_impl.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -#ifndef BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED -#define BOOST_MPL_AUX_BEGIN_END_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: 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 -#include -#include -#include -#include -#include -#include -#include - -namespace boost { namespace mpl { - - -namespace aux { - -template< typename Sequence > -struct begin_type -{ - typedef typename Sequence::begin type; -}; -template< typename Sequence > -struct end_type -{ - typedef typename Sequence::end type; -}; - -} - -// default implementation; conrete sequences might override it by -// specializing either the 'begin_impl/end_impl' or the primary -// 'begin/end' templates - -template< typename Tag > -struct begin_impl -{ - template< typename Sequence > struct apply - { - typedef typename eval_if, - aux::begin_type, void_>::type type; - }; -}; - -template< typename Tag > -struct end_impl -{ - template< typename Sequence > struct apply - { - typedef typename eval_if, - aux::end_type, void_>::type type; - }; -}; - -// specialize 'begin_trait/end_trait' for two pre-defined tags - -# define AUX778076_IMPL_SPEC(name, tag, result) \ -template<> \ -struct name##_impl \ -{ \ - template< typename Sequence > struct apply \ - { \ - typedef result type; \ - }; \ -}; \ -/**/ - -// a sequence with nested 'begin/end' typedefs; just query them -AUX778076_IMPL_SPEC(begin, nested_begin_end_tag, typename Sequence::begin) -AUX778076_IMPL_SPEC(end, nested_begin_end_tag, typename Sequence::end) - -// if a type 'T' does not contain 'begin/end' or 'tag' members -// and doesn't specialize either 'begin/end' or 'begin_impl/end_impl' -// templates, then we end up here -AUX778076_IMPL_SPEC(begin, non_sequence_tag, void_) -AUX778076_IMPL_SPEC(end, non_sequence_tag, void_) -AUX778076_IMPL_SPEC(begin, na, void_) -AUX778076_IMPL_SPEC(end, na, void_) - -# undef AUX778076_IMPL_SPEC - - -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,begin_impl) -BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,end_impl) - -}} - -#endif // BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/common_name_wknd.hpp b/3rdParty/Boost/boost/mpl/aux_/common_name_wknd.hpp deleted file mode 100644 index 9d0b4b4..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/common_name_wknd.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED -#define BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: common_name_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if BOOST_WORKAROUND(__BORLANDC__, < 0x561) -// agurt, 12/nov/02: to suppress the bogus "Cannot have both a template class -// and function named 'xxx'" diagnostic -# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) \ -namespace name_##wknd { \ -template< typename > void name(); \ -} \ -/**/ - -#else - -# define BOOST_MPL_AUX_COMMON_NAME_WKND(name) /**/ - -#endif // __BORLANDC__ - -#endif // BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/comparison_op.hpp b/3rdParty/Boost/boost/mpl/aux_/comparison_op.hpp deleted file mode 100644 index 7d0fa20..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/comparison_op.hpp +++ /dev/null @@ -1,83 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// 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_op.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 -# include -#endif - -#if !defined(AUX778076_OP_PREFIX) -# define AUX778076_OP_PREFIX AUX778076_OP_NAME -#endif - -#define AUX778076_OP_ARITY 2 - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp -# include - -#else - -# include -# include - -namespace boost { namespace mpl { - -// MSVC workaround: implement less in terms of greater -#if 0 AUX778076_OP_TOKEN 1 && !(1 AUX778076_OP_TOKEN 0) && !(0 AUX778076_OP_TOKEN 0) -# define AUX778076_OP(N1, N2) \ - ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) \ -/**/ -#else -# define AUX778076_OP(N1, N2) \ - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value \ - AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value \ - ) \ -/**/ -#endif - -template<> -struct AUX778076_OP_IMPL_NAME -{ - template< typename N1, typename N2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) - : bool_< AUX778076_OP(N1, N2) > - { -#else - { - BOOST_STATIC_CONSTANT(bool, value = AUX778076_OP(N1, N2)); - typedef bool_ type; -#endif - }; -}; - -#undef AUX778076_OP - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#undef AUX778076_OP_TAG_NAME -#undef AUX778076_OP_IMPL_NAME -#undef AUX778076_OP_ARITY -#undef AUX778076_OP_PREFIX -#undef AUX778076_OP_NAME -#undef AUX778076_OP_TOKEN diff --git a/3rdParty/Boost/boost/mpl/aux_/config/adl.hpp b/3rdParty/Boost/boost/mpl/aux_/config/adl.hpp deleted file mode 100644 index 130ee9f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/adl.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: adl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include -#include - -// agurt, 25/apr/04: technically, the ADL workaround is only needed for GCC, -// but putting everything expect public, user-specializable metafunctions into -// a separate global namespace has a nice side effect of reducing the length -// of template instantiation symbols, so we apply the workaround on all -// platforms that can handle it - -#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \ - && ( BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \ - || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \ - || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \ - ) - -# define BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/arrays.hpp b/3rdParty/Boost/boost/mpl/aux_/config/arrays.hpp deleted file mode 100644 index 56ee0a3..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/arrays.hpp +++ /dev/null @@ -1,30 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_ARRAYS_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: arrays.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - ) - -# define BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/bcc.hpp b/3rdParty/Boost/boost/mpl/aux_/config/bcc.hpp deleted file mode 100644 index f4817ca..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/bcc.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2008 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: bcc.hpp 49272 2008-10-11 06:50:46Z agurtovoy $ -// $Date: 2004-09-02 10:41:37 -0500 (Thu, 02 Sep 2004) $ -// $Revision: 24874 $ - -#include - -#if !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__BORLANDC__, >= 0x590) \ - && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) - -# define BOOST_MPL_CFG_BCC590_WORKAROUNDS - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/bind.hpp b/3rdParty/Boost/boost/mpl/aux_/config/bind.hpp deleted file mode 100644 index d0450e6..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/bind.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED - -// Copyright David Abrahams 2002 -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: bind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - ) - -# define BOOST_MPL_CFG_NO_BIND_TEMPLATE - -#endif - -//#define BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT - -#endif // BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/compiler.hpp b/3rdParty/Boost/boost/mpl/aux_/config/compiler.hpp deleted file mode 100644 index 01ff8b8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/compiler.hpp +++ /dev/null @@ -1,66 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2008 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: compiler.hpp 49272 2008-10-11 06:50:46Z agurtovoy $ -// $Date: 2008-10-11 02:50:46 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49272 $ - -#if !defined(BOOST_MPL_CFG_COMPILER_DIR) - -# include -# include -# include -# include -# include -# include - -# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) -# define BOOST_MPL_CFG_COMPILER_DIR msvc60 - -# elif BOOST_WORKAROUND(BOOST_MSVC, == 1300) -# define BOOST_MPL_CFG_COMPILER_DIR msvc70 - -# elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) -# define BOOST_MPL_CFG_COMPILER_DIR gcc - -# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) -# if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_MPL_CFG_COMPILER_DIR bcc551 -# elseif BOOST_WORKAROUND(__BORLANDC__, >= 0x590) -# define BOOST_MPL_CFG_COMPILER_DIR bcc -# else -# define BOOST_MPL_CFG_COMPILER_DIR bcc_pre590 -# endif - -# elif BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -# define BOOST_MPL_CFG_COMPILER_DIR dmc - -# elif defined(__MWERKS__) -# if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_MPL_CFG_COMPILER_DIR mwcw -# else -# define BOOST_MPL_CFG_COMPILER_DIR plain -# endif - -# elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -# define BOOST_MPL_CFG_COMPILER_DIR no_ctps - -# elif defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) -# define BOOST_MPL_CFG_COMPILER_DIR no_ttp - -# else -# define BOOST_MPL_CFG_COMPILER_DIR plain -# endif - -#endif // BOOST_MPL_CFG_COMPILER_DIR - -#endif // BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/ctps.hpp b/3rdParty/Boost/boost/mpl/aux_/config/ctps.hpp deleted file mode 100644 index b908cee..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/ctps.hpp +++ /dev/null @@ -1,30 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_CTPS_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: ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__BORLANDC__, < 0x582) - -# define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC - -#endif - -// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in - -#endif // BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp b/3rdParty/Boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp deleted file mode 100644 index 682770e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_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: dmc_ambiguous_ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) - -# define BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/dtp.hpp b/3rdParty/Boost/boost/mpl/aux_/config/dtp.hpp deleted file mode 100644 index 8f03a83..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/dtp.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: dtp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -// MWCW 7.x-8.0 "losts" default template parameters of nested class -// templates when their owner classes are passed as arguments to other -// templates; Borland 5.5.1 "forgets" them from the very beginning (if -// the owner class is a class template), and Borland 5.6 isn't even -// able to compile a definition of nested class template with DTP - -#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \ - && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) - -# define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES - -#endif - - -#if !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - || defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \ - ) - -# define BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/eti.hpp b/3rdParty/Boost/boost/mpl/aux_/config/eti.hpp deleted file mode 100644 index 7328b6d..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/eti.hpp +++ /dev/null @@ -1,47 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: eti.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -// flags for MSVC 6.5's so-called "early template instantiation bug" -#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(BOOST_MSVC, < 1300) - -# define BOOST_MPL_CFG_MSVC_60_ETI_BUG - -#endif - -#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(BOOST_MSVC, == 1300) - -# define BOOST_MPL_CFG_MSVC_70_ETI_BUG - -#endif - -#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \ - || defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \ - ) - -# define BOOST_MPL_CFG_MSVC_ETI_BUG - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/forwarding.hpp b/3rdParty/Boost/boost/mpl/aux_/config/forwarding.hpp deleted file mode 100644 index 2390bd7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/forwarding.hpp +++ /dev/null @@ -1,27 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_FORWARDING_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: forwarding.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) - -# define BOOST_MPL_CFG_NO_NESTED_FORWARDING - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/gcc.hpp b/3rdParty/Boost/boost/mpl/aux_/config/gcc.hpp deleted file mode 100644 index 3380d61..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/gcc.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_GCC_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: gcc.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(__GNUC__) && !defined(__EDG_VERSION__) -# define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__) -#else -# define BOOST_MPL_CFG_GCC 0 -#endif - -#endif // BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/has_apply.hpp b/3rdParty/Boost/boost/mpl/aux_/config/has_apply.hpp deleted file mode 100644 index fc9176f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/has_apply.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_HAS_APPLY_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: has_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) \ - && ( defined(BOOST_MPL_CFG_NO_HAS_XXX) \ - || BOOST_WORKAROUND(__EDG_VERSION__, < 300) \ - || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \ - ) - -# define BOOST_MPL_CFG_NO_HAS_APPLY - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/has_xxx.hpp b/3rdParty/Boost/boost/mpl/aux_/config/has_xxx.hpp deleted file mode 100644 index 8f2a46d..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/has_xxx.hpp +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// Copyright David Abrahams 2002-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_xxx.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -// agurt, 11/jan/03: signals a stub-only 'has_xxx' implementation - -#if !defined(BOOST_MPL_CFG_NO_HAS_XXX) \ - && ( defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ - || BOOST_WORKAROUND(__GNUC__, <= 2) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \ - ) - -# define BOOST_MPL_CFG_NO_HAS_XXX - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/integral.hpp b/3rdParty/Boost/boost/mpl/aux_/config/integral.hpp deleted file mode 100644 index 4dec725..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/integral.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_INTEGRAL_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: integral.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -#if !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) - -# define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS - -#endif - -#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \ - ) - -# define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/intel.hpp b/3rdParty/Boost/boost/mpl/aux_/config/intel.hpp deleted file mode 100644 index 8f1de76..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/intel.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_INTEL_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: intel.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - - -// BOOST_INTEL_CXX_VERSION is defined here: -#include - -#endif // BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/lambda.hpp b/3rdParty/Boost/boost/mpl/aux_/config/lambda.hpp deleted file mode 100644 index a46b46a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/lambda.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: lambda.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -// agurt, 15/jan/02: full-fledged implementation requires both -// template template parameters _and_ partial specialization - -#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ - && ( defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ - || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - ) - -# define BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/msvc.hpp b/3rdParty/Boost/boost/mpl/aux_/config/msvc.hpp deleted file mode 100644 index 18bed83..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/msvc.hpp +++ /dev/null @@ -1,21 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: msvc.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - - -// BOOST_MSVC is defined here: -#include - -#endif // BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/msvc_typename.hpp b/3rdParty/Boost/boost/mpl/aux_/config/msvc_typename.hpp deleted file mode 100644 index 042c804..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/msvc_typename.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_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: msvc_typename.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) -# define BOOST_MSVC_TYPENAME -#else -# define BOOST_MSVC_TYPENAME typename -#endif - -#endif // BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/nttp.hpp b/3rdParty/Boost/boost/mpl/aux_/config/nttp.hpp deleted file mode 100644 index 4873e20..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/nttp.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: nttp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -// MSVC 6.5 ICE-s on the code as simple as this (see "aux_/nttp_decl.hpp" -// for a workaround): -// -// namespace std { -// template< typename Char > struct string; -// } -// -// void foo(std::string); -// -// namespace boost { namespace mpl { -// template< int > struct arg; -// }} - -#if !defined(BOOST_MPL_CFG_NTTP_BUG) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && BOOST_WORKAROUND(BOOST_MSVC, < 1300) - -# define BOOST_MPL_CFG_NTTP_BUG - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/overload_resolution.hpp b/3rdParty/Boost/boost/mpl/aux_/config/overload_resolution.hpp deleted file mode 100644 index 88c3d53..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/overload_resolution.hpp +++ /dev/null @@ -1,29 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: overload_resolution.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(__BORLANDC__, < 0x590) \ - || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \ - ) - -# define BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/pp_counter.hpp b/3rdParty/Boost/boost/mpl/aux_/config/pp_counter.hpp deleted file mode 100644 index a4d0715..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/pp_counter.hpp +++ /dev/null @@ -1,26 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2006 -// -// Distributed under the 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: pp_counter.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_AUX_PP_COUNTER) -# include -# if BOOST_WORKAROUND(BOOST_MSVC, >= 1300) -# define BOOST_MPL_AUX_PP_COUNTER() __COUNTER__ -# else -# define BOOST_MPL_AUX_PP_COUNTER() __LINE__ -# endif -#endif - -#endif // BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/preprocessor.hpp b/3rdParty/Boost/boost/mpl/aux_/config/preprocessor.hpp deleted file mode 100644 index 52229cd..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/preprocessor.hpp +++ /dev/null @@ -1,39 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_PREPROCESSOR_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: preprocessor.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \ - && ( BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \ - || BOOST_WORKAROUND(__BORLANDC__, < 0x582) \ - || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \ - ) - -# define BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION - -#endif - -#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES) -# define BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES -#endif - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) \ - && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -# define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING -#endif - - -#endif // BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/static_constant.hpp b/3rdParty/Boost/boost/mpl/aux_/config/static_constant.hpp deleted file mode 100644 index 855d22f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/static_constant.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_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: static_constant.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) -// BOOST_STATIC_CONSTANT is defined here: -# include -#else -// undef the macro for the preprocessing mode -# undef BOOST_STATIC_CONSTANT -#endif - -#endif // BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/ttp.hpp b/3rdParty/Boost/boost/mpl/aux_/config/ttp.hpp deleted file mode 100644 index a5a0c2c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/ttp.hpp +++ /dev/null @@ -1,41 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_TTP_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: ttp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ - && ( defined(BOOST_NO_TEMPLATE_TEMPLATES) \ - || BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x590) ) \ - ) - -# define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS - -#endif - - -#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ - ) - -# define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/typeof.hpp b/3rdParty/Boost/boost/mpl/aux_/config/typeof.hpp deleted file mode 100644 index aeff9c1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/typeof.hpp +++ /dev/null @@ -1,38 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_TYPEOF_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: typeof.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if !defined(BOOST_MPL_CFG_HAS_TYPEOF) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && ( defined(BOOST_MPL_CFG_GCC) && BOOST_MPL_CFG_GCC >= 0x0302 \ - || defined(__MWERKS__) && __MWERKS__ >= 0x3000 \ - ) - -# define BOOST_MPL_CFG_HAS_TYPEOF - -#endif - - -#if !defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) \ - && defined(BOOST_MPL_CFG_HAS_TYPEOF) - -# define BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES - -#endif - -#endif // BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/use_preprocessed.hpp b/3rdParty/Boost/boost/mpl/aux_/config/use_preprocessed.hpp deleted file mode 100644 index 3bbc229..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/use_preprocessed.hpp +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_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: use_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -// #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -#endif // BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/config/workaround.hpp b/3rdParty/Boost/boost/mpl/aux_/config/workaround.hpp deleted file mode 100644 index 337bcf7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/config/workaround.hpp +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED -#define BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: workaround.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#endif // BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/count_args.hpp b/3rdParty/Boost/boost/mpl/aux_/count_args.hpp deleted file mode 100644 index 85107dd..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/count_args.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// 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: count_args.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include - -#if !defined(AUX778076_COUNT_ARGS_PARAM_NAME) -# define AUX778076_COUNT_ARGS_PARAM_NAME T -#endif - -#if !defined(AUX778076_COUNT_ARGS_TEMPLATE_PARAM) -# define AUX778076_COUNT_ARGS_TEMPLATE_PARAM typename AUX778076_COUNT_ARGS_PARAM_NAME -#endif - -// local macros, #undef-ined at the end of the header - -#if !defined(AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES) - -# include -# include - -# define AUX778076_COUNT_ARGS_REPEAT BOOST_MPL_PP_REPEAT -# define AUX778076_COUNT_ARGS_PARAMS(param) \ - BOOST_MPL_PP_PARAMS( \ - AUX778076_COUNT_ARGS_ARITY \ - , param \ - ) \ - /**/ - -#else - -# include -# include -# include - -# define AUX778076_COUNT_ARGS_REPEAT BOOST_PP_REPEAT -# define AUX778076_COUNT_ARGS_PARAMS(param) \ - BOOST_PP_ENUM_SHIFTED_PARAMS( \ - BOOST_PP_INC(AUX778076_COUNT_ARGS_ARITY) \ - , param \ - ) \ - /**/ - -#endif // AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES - - -#define AUX778076_IS_ARG_TEMPLATE_NAME \ - BOOST_PP_CAT(is_,BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_arg)) \ -/**/ - -#define AUX778076_COUNT_ARGS_FUNC(unused, i, param) \ - BOOST_PP_EXPR_IF(i, +) \ - AUX778076_IS_ARG_TEMPLATE_NAME::value \ -/**/ - -// is__arg -template< AUX778076_COUNT_ARGS_TEMPLATE_PARAM > -struct AUX778076_IS_ARG_TEMPLATE_NAME -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct AUX778076_IS_ARG_TEMPLATE_NAME -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -// _count_args -template< - AUX778076_COUNT_ARGS_PARAMS(AUX778076_COUNT_ARGS_TEMPLATE_PARAM) - > -struct BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_count_args) -{ - BOOST_STATIC_CONSTANT(int, value = AUX778076_COUNT_ARGS_REPEAT( - AUX778076_COUNT_ARGS_ARITY - , AUX778076_COUNT_ARGS_FUNC - , AUX778076_COUNT_ARGS_PARAM_NAME - )); -}; - -#undef AUX778076_COUNT_ARGS_FUNC -#undef AUX778076_IS_ARG_TEMPLATE_NAME -#undef AUX778076_COUNT_ARGS_PARAMS -#undef AUX778076_COUNT_ARGS_REPEAT - -#undef AUX778076_COUNT_ARGS_ARITY -#undef AUX778076_COUNT_ARGS_DEFAULT -#undef AUX778076_COUNT_ARGS_PREFIX -#undef AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES -#undef AUX778076_COUNT_ARGS_TEMPLATE_PARAM -#undef AUX778076_COUNT_ARGS_PARAM_NAME diff --git a/3rdParty/Boost/boost/mpl/aux_/full_lambda.hpp b/3rdParty/Boost/boost/mpl/aux_/full_lambda.hpp deleted file mode 100644 index dfaaedb..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/full_lambda.hpp +++ /dev/null @@ -1,354 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED -#define BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: full_lambda.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 -# include -# include -# include -# include -# include -# include -# include -# include -# include -# if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) -# include -# endif -#endif - -#include -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER full_lambda.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -namespace boost { namespace mpl { - -// local macros, #undef-ined at the end of the header -# define AUX778076_LAMBDA_PARAMS(i_, param) \ - BOOST_MPL_PP_PARAMS(i_, param) \ - /**/ - -# define AUX778076_BIND_PARAMS(param) \ - BOOST_MPL_PP_PARAMS( \ - BOOST_MPL_LIMIT_METAFUNCTION_ARITY \ - , param \ - ) \ - /**/ - -# define AUX778076_BIND_N_PARAMS(i_, param) \ - BOOST_PP_COMMA_IF(i_) \ - BOOST_MPL_PP_PARAMS(i_, param) \ - /**/ - -# define AUX778076_ARITY_PARAM(param) \ - BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) \ - /**/ - - -#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY -namespace aux { - -template< - BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false) - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) > - : false_ -{ -}; - -} // namespace aux -#undef n_ - -template< - typename T - , typename Tag - AUX778076_ARITY_PARAM(typename Arity) - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - - -template< int N, typename Tag > -struct lambda< arg,Tag AUX778076_ARITY_PARAM(int_<-1>) > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect,Tag AUX778076_ARITY_PARAM(int_<1>) > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form -template< - typename F, AUX778076_BIND_PARAMS(typename T) - , typename Tag - > -struct lambda< - bind - , Tag - AUX778076_ARITY_PARAM(int_) - > -{ - typedef false_ is_le; - typedef bind result_; - typedef result_ type; -}; - - -#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) - -template< - typename F - , typename Tag1 - , typename Tag2 - , typename Arity - > -struct lambda< - lambda - , Tag2 - , int_<3> - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - - typedef typename l1::is_le is_le; - typedef bind1< quote1, typename l1::result_ > arity_; - typedef lambda< typename if_::type,Tag2 > l3; - - typedef aux::le_result3 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -#elif !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) - -/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars -template< - typename F, typename Tag1, typename Tag2 - > -struct lambda< - lambda< F,Tag1 > - , Tag2 - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - - typedef typename l1::is_le is_le; - typedef aux::le_result2 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -#endif - -# undef AUX778076_ARITY_PARAM -# undef AUX778076_BIND_N_PARAMS -# undef AUX778076_BIND_PARAMS -# undef AUX778076_LAMBDA_PARAMS - -#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) -BOOST_MPL_AUX_NA_SPEC(2, lambda) -#else -BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) -#endif - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 -#define i_ BOOST_PP_FRAME_ITERATION(1) - -#if i_ > 0 - -namespace aux { - -# define AUX778076_RESULT(unused, i_, T) \ - BOOST_PP_COMMA_IF(i_) \ - typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::result_ \ - /**/ - -# define AUX778076_TYPE(unused, i_, T) \ - BOOST_PP_COMMA_IF(i_) \ - typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::type \ - /**/ - -template< - typename IsLE, typename Tag - , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F - , AUX778076_LAMBDA_PARAMS(i_, typename L) - > -struct BOOST_PP_CAT(le_result,i_) -{ - typedef F< - BOOST_MPL_PP_REPEAT(i_, AUX778076_TYPE, L) - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F - , AUX778076_LAMBDA_PARAMS(i_, typename L) - > -struct BOOST_PP_CAT(le_result,i_)< true_,Tag,F,AUX778076_LAMBDA_PARAMS(i_, L) > -{ - typedef BOOST_PP_CAT(bind,i_)< - BOOST_PP_CAT(quote,i_) - , BOOST_MPL_PP_REPEAT(i_, AUX778076_RESULT, L) - > result_; - - typedef mpl::protect type; -}; - -# undef AUX778076_TYPE -# undef AUX778076_RESULT - -} // namespace aux - - -# define AUX778076_LAMBDA_TYPEDEF(unused, i_, T) \ - typedef lambda< BOOST_PP_CAT(T, BOOST_PP_INC(i_)), Tag > \ - BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \ -/**/ - -# define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \ - typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \ - BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \ -/**/ - -# define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \ - BOOST_PP_COMMA_IF(i_) \ - BOOST_PP_CAT(is_le,BOOST_PP_INC(i_))::value \ -/**/ - -template< - template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F - , AUX778076_LAMBDA_PARAMS(i_, typename T) - , typename Tag - > -struct lambda< - F - , Tag - AUX778076_ARITY_PARAM(int_) - > -{ - BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, T) - BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused) - - typedef typename aux::lambda_or< - BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused) - >::type is_le; - - typedef aux::BOOST_PP_CAT(le_result,i_)< - is_le, Tag, F, AUX778076_LAMBDA_PARAMS(i_, l) - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - - -# undef AUX778076_IS_LAMBDA_EXPR -# undef AUX778076_IS_LE_TYPEDEF -# undef AUX778076_LAMBDA_TYPEDEF - -#endif // i_ > 0 - -template< - typename F AUX778076_BIND_N_PARAMS(i_, typename T) - , typename Tag - > -struct lambda< - BOOST_PP_CAT(bind,i_) - , Tag - AUX778076_ARITY_PARAM(int_) - > -{ - typedef false_ is_le; - typedef BOOST_PP_CAT(bind,i_)< - F - AUX778076_BIND_N_PARAMS(i_, T) - > result_; - - typedef result_ type; -}; - -#undef i_ -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/3rdParty/Boost/boost/mpl/aux_/has_apply.hpp b/3rdParty/Boost/boost/mpl/aux_/has_apply.hpp deleted file mode 100644 index b77b561..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/has_apply.hpp +++ /dev/null @@ -1,32 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_APPLY_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: has_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -namespace boost { namespace mpl { namespace aux { -#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false) -#else -template< typename T, typename fallback_ = false_ > -struct has_apply - : fallback_ -{ -}; -#endif -}}} - -#endif // BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/has_begin.hpp b/3rdParty/Boost/boost/mpl/aux_/has_begin.hpp deleted file mode 100644 index e7403d2..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/has_begin.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: has_begin.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -namespace boost { namespace mpl { namespace aux { -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_begin, begin, true) -}}} - -#endif // BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/has_rebind.hpp b/3rdParty/Boost/boost/mpl/aux_/has_rebind.hpp deleted file mode 100644 index 32cdb83..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/has_rebind.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: has_rebind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include - -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION) -# include -#elif BOOST_WORKAROUND(BOOST_MSVC, < 1300) -# include -# include -# include -# include -#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) -# include -# include -# include -# include -# include -#else -# include -# include -# include -#endif - -namespace boost { namespace mpl { namespace aux { - -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION) - -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind, rebind, false) - -#elif BOOST_WORKAROUND(BOOST_MSVC, < 1300) - -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind_impl, rebind, false) - -template< typename T > -struct has_rebind - : if_< - msvc_is_class - , has_rebind_impl - , bool_ - >::type -{ -}; - -#else // the rest - -template< typename T > struct has_rebind_tag {}; -no_tag operator|(has_rebind_tag, void const volatile*); - -# if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) -template< typename T > -struct has_rebind -{ - static has_rebind_tag* get(); - BOOST_STATIC_CONSTANT(bool, value = - sizeof(has_rebind_tag() | get()) == sizeof(yes_tag) - ); -}; -# else // __BORLANDC__ -template< typename T > -struct has_rebind_impl -{ - static T* get(); - BOOST_STATIC_CONSTANT(bool, value = - sizeof(has_rebind_tag() | get()) == sizeof(yes_tag) - ); -}; - -template< typename T > -struct has_rebind - : if_< - is_class - , has_rebind_impl - , bool_ - >::type -{ -}; -# endif // __BORLANDC__ - -#endif - -}}} - -#endif // BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/has_tag.hpp b/3rdParty/Boost/boost/mpl/aux_/has_tag.hpp deleted file mode 100644 index c016ec5..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/has_tag.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: has_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -namespace boost { namespace mpl { namespace aux { -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_tag, tag, false) -}}} - -#endif // BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/has_type.hpp b/3rdParty/Boost/boost/mpl/aux_/has_type.hpp deleted file mode 100644 index 1d301a2..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/has_type.hpp +++ /dev/null @@ -1,23 +0,0 @@ - -#ifndef BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED -#define BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: has_type.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -namespace boost { namespace mpl { namespace aux { -BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true) -}}} - -#endif // BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/include_preprocessed.hpp b/3rdParty/Boost/boost/mpl/aux_/include_preprocessed.hpp deleted file mode 100644 index b214eeb..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/include_preprocessed.hpp +++ /dev/null @@ -1,42 +0,0 @@ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION - -// Copyright Aleksey Gurtovoy 2000-2006 -// -// Distributed under the 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: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include -#include -#include - -#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) -# define AUX778076_PREPROCESSED_HEADER \ - BOOST_MPL_CFG_COMPILER_DIR/BOOST_MPL_PREPROCESSED_HEADER \ -/**/ -#else -# define AUX778076_PREPROCESSED_HEADER \ - BOOST_PP_CAT(BOOST_MPL_CFG_COMPILER_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \ -/**/ -#endif - -#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700)) -# define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER) -# include AUX778076_INCLUDE_STRING -# undef AUX778076_INCLUDE_STRING -#else -# include BOOST_PP_STRINGIZE(boost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER) -#endif - -# undef AUX778076_PREPROCESSED_HEADER - -#undef BOOST_MPL_PREPROCESSED_HEADER diff --git a/3rdParty/Boost/boost/mpl/aux_/integral_wrapper.hpp b/3rdParty/Boost/boost/mpl/aux_/integral_wrapper.hpp deleted file mode 100644 index 963a738..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/integral_wrapper.hpp +++ /dev/null @@ -1,93 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2006 -// -// Distributed under the 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: integral_wrapper.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -#include -#include -#include -#include -#include - -#include - -#if !defined(AUX_WRAPPER_NAME) -# define AUX_WRAPPER_NAME BOOST_PP_CAT(AUX_WRAPPER_VALUE_TYPE,_) -#endif - -#if !defined(AUX_WRAPPER_PARAMS) -# define AUX_WRAPPER_PARAMS(N) BOOST_MPL_AUX_NTTP_DECL(AUX_WRAPPER_VALUE_TYPE, N) -#endif - -#if !defined(AUX_WRAPPER_INST) -# if BOOST_WORKAROUND(__MWERKS__, <= 0x2407) -# define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< value > -# else -# define AUX_WRAPPER_INST(value) BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value > -# endif -#endif - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN - -template< AUX_WRAPPER_PARAMS(N) > -struct AUX_WRAPPER_NAME -{ - BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, value = N); -// agurt, 08/mar/03: SGI MIPSpro C++ workaround, have to #ifdef because some -// other compilers (e.g. MSVC) are not particulary happy about it -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - typedef struct AUX_WRAPPER_NAME type; -#else - typedef AUX_WRAPPER_NAME type; -#endif - typedef AUX_WRAPPER_VALUE_TYPE value_type; - typedef integral_c_tag tag; - -// have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC), -// while some other don't like 'value + 1' (Borland), and some don't like -// either -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243) - private: - BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1))); - BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1))); - public: - typedef AUX_WRAPPER_INST(next_value) next; - typedef AUX_WRAPPER_INST(prior_value) prior; -#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ - || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \ - || (BOOST_WORKAROUND(__HP_aCC, <= 53800) && (BOOST_WORKAROUND(__hpxstd98, != 1))) - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)) ) next; - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)) ) prior; -#else - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next; - typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior; -#endif - - // enables uniform function call syntax for families of overloaded - // functions that return objects of both arithmetic ('int', 'long', - // 'double', etc.) and wrapped integral types (for an example, see - // "mpl/example/power.cpp") - operator AUX_WRAPPER_VALUE_TYPE() const { return static_cast(this->value); } -}; - -#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) -template< AUX_WRAPPER_PARAMS(N) > -AUX_WRAPPER_VALUE_TYPE const AUX_WRAPPER_INST(N)::value; -#endif - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE - -#undef AUX_WRAPPER_NAME -#undef AUX_WRAPPER_PARAMS -#undef AUX_WRAPPER_INST -#undef AUX_WRAPPER_VALUE_TYPE diff --git a/3rdParty/Boost/boost/mpl/aux_/is_msvc_eti_arg.hpp b/3rdParty/Boost/boost/mpl/aux_/is_msvc_eti_arg.hpp deleted file mode 100644 index 322a22e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/is_msvc_eti_arg.hpp +++ /dev/null @@ -1,64 +0,0 @@ - -#ifndef BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED -#define BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: is_msvc_eti_arg.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include - -namespace boost { namespace mpl { namespace aux { - -#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) - -#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) - -template< typename T > -struct is_msvc_eti_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -#else // BOOST_MPL_CFG_MSVC_60_ETI_BUG - -struct eti_int_convertible -{ - eti_int_convertible(int); -}; - -template< typename T > -struct is_msvc_eti_arg -{ - static no_tag test(...); - static yes_tag test(eti_int_convertible); - static T& get(); - - BOOST_STATIC_CONSTANT(bool, value = - sizeof(test(get())) == sizeof(yes_tag) - ); -}; - -#endif - -template<> -struct is_msvc_eti_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -#endif // BOOST_MPL_CFG_MSVC_ETI_BUG - -}}} - -#endif // BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/lambda_arity_param.hpp b/3rdParty/Boost/boost/mpl/aux_/lambda_arity_param.hpp deleted file mode 100644 index 720918e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/lambda_arity_param.hpp +++ /dev/null @@ -1,25 +0,0 @@ - -#ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED -#define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: lambda_arity_param.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) -# define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) -#else -# define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param -#endif - -#endif // BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/lambda_no_ctps.hpp b/3rdParty/Boost/boost/mpl/aux_/lambda_no_ctps.hpp deleted file mode 100644 index cd55fc7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/lambda_no_ctps.hpp +++ /dev/null @@ -1,193 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -#ifndef BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED -#define BOOST_MPL_AUX_LAMBDA_NO_CTPS_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: lambda_no_ctps.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 -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#endif - -#include - -#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - && !defined(BOOST_MPL_PREPROCESSING_MODE) - -# define BOOST_MPL_PREPROCESSED_HEADER lambda_no_ctps.hpp -# include - -#else - -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -namespace boost { namespace mpl { - -# define AUX778076_LAMBDA_PARAMS(i_, param) \ - BOOST_MPL_PP_PARAMS(i_, param) \ - /**/ - -namespace aux { - -#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY -template< - BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false) - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) > - : false_ -{ -}; -#undef n_ - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, )) -#include BOOST_PP_ITERATE() - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -# undef AUX778076_LAMBDA_PARAMS - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif // BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED - -///// iteration, depth == 1 - -#else - -#define i_ BOOST_PP_FRAME_ITERATION(1) - -# define AUX778076_LAMBDA_TYPEDEF(unused, i_, F) \ - typedef lambda< \ - typename F::BOOST_PP_CAT(arg,BOOST_PP_INC(i_)) \ - , Tag \ - , false_ \ - > BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \ - /**/ - -# define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \ - typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \ - BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \ - /**/ - -# define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \ - BOOST_PP_COMMA_IF(i_) \ - BOOST_MPL_AUX_MSVC_VALUE_WKND(BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)))::value \ - /**/ - -# define AUX778076_LAMBDA_RESULT(unused, i_, unused2) \ - , typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::type \ - /**/ - -template<> struct lambda_impl< int_ > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, F) - BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused) - - typedef aux::lambda_or< - BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused) - > is_le; - - typedef BOOST_PP_CAT(bind,i_)< - typename F::rebind - BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_RESULT, unused) - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -# undef AUX778076_LAMBDA_RESULT -# undef AUX778076_IS_LAMBDA_EXPR -# undef AUX778076_IS_LE_TYPEDEF -# undef AUX778076_LAMBDA_TYPEDEF - -#undef i_ - -#endif // BOOST_PP_IS_ITERATING diff --git a/3rdParty/Boost/boost/mpl/aux_/lambda_support.hpp b/3rdParty/Boost/boost/mpl/aux_/lambda_support.hpp deleted file mode 100644 index fa000d8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/lambda_support.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -#ifndef BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED -#define BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: lambda_support.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/ -# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/ - -#else - -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC(R,typedef_,i,param) \ - typedef_ param BOOST_PP_CAT(arg,BOOST_PP_INC(i)); \ - /**/ - -// agurt, 07/mar/03: restore an old revision for the sake of SGI MIPSpro C++ -#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ - BOOST_PP_LIST_FOR_EACH_I_R( \ - 1 \ - , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ - , typedef \ - , BOOST_PP_TUPLE_TO_LIST(i,params) \ - ) \ - struct rebind \ - { \ - template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ - : name< BOOST_MPL_PP_PARAMS(i,U) > \ - { \ - }; \ - }; \ - /**/ - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ - BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - /**/ - -#elif BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION) -// agurt, 18/jan/03: old EDG-based compilers actually enforce 11.4 para 9 -// (in strict mode), so we have to provide an alternative to the -// MSVC-optimized implementation - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ - typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ - BOOST_PP_LIST_FOR_EACH_I_R( \ - 1 \ - , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ - , typedef \ - , BOOST_PP_TUPLE_TO_LIST(i,params) \ - ) \ - struct rebind; \ -/**/ - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ -}; \ -template< BOOST_MPL_PP_PARAMS(i,typename T) > \ -struct name::rebind \ -{ \ - template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ - : name< BOOST_MPL_PP_PARAMS(i,U) > \ - { \ - }; \ -/**/ - -#else // __EDG_VERSION__ - -namespace boost { namespace mpl { namespace aux { -template< typename T > struct has_rebind_tag; -}}} - -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ - typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_ arity; \ - BOOST_PP_LIST_FOR_EACH_I_R( \ - 1 \ - , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ - , typedef \ - , BOOST_PP_TUPLE_TO_LIST(i,params) \ - ) \ - friend class BOOST_PP_CAT(name,_rebind); \ - typedef BOOST_PP_CAT(name,_rebind) rebind; \ -/**/ - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ -template< BOOST_MPL_PP_PARAMS(i,typename T) > \ -::boost::mpl::aux::yes_tag operator|( \ - ::boost::mpl::aux::has_rebind_tag \ - , name* \ - ); \ -::boost::mpl::aux::no_tag operator|( \ - ::boost::mpl::aux::has_rebind_tag \ - , name< BOOST_MPL_PP_ENUM(i,::boost::mpl::na) >* \ - ); \ -/**/ -#elif !BOOST_WORKAROUND(BOOST_MSVC, < 1300) -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ -template< BOOST_MPL_PP_PARAMS(i,typename T) > \ -::boost::mpl::aux::yes_tag operator|( \ - ::boost::mpl::aux::has_rebind_tag \ - , ::boost::mpl::aux::has_rebind_tag< name >* \ - ); \ -/**/ -#else -# define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/ -#endif - -# if !defined(__BORLANDC__) -# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ -}; \ -BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ -class BOOST_PP_CAT(name,_rebind) \ -{ \ - public: \ - template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ - : name< BOOST_MPL_PP_PARAMS(i,U) > \ - { \ - }; \ -/**/ -# else -# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \ -}; \ -BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \ -class BOOST_PP_CAT(name,_rebind) \ -{ \ - public: \ - template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ - { \ - typedef typename name< BOOST_MPL_PP_PARAMS(i,U) >::type type; \ - }; \ -/**/ -# endif // __BORLANDC__ - -#endif // __EDG_VERSION__ - -#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT - -#endif // BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/largest_int.hpp b/3rdParty/Boost/boost/mpl/aux_/largest_int.hpp deleted file mode 100644 index 89e987a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/largest_int.hpp +++ /dev/null @@ -1,63 +0,0 @@ - -#ifndef BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED -#define BOOST_MPL_AUX_LARGEST_INT_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: largest_int.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< typename T > struct integral_rank; - -template<> struct integral_rank : int_<1> {}; -template<> struct integral_rank : int_<2> {}; -template<> struct integral_rank : int_<3> {}; -template<> struct integral_rank : int_<4> {}; -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) -template<> struct integral_rank : int_<5> {}; -#endif -template<> struct integral_rank : int_<6> {}; -template<> struct integral_rank : int_<7> {}; -template<> struct integral_rank : int_<8> {}; -template<> struct integral_rank : int_<9> {}; -template<> struct integral_rank : int_<10> {}; -template<> struct integral_rank : int_<11> {}; - -#if defined(BOOST_HAS_LONG_LONG) -template<> struct integral_rank : int_<12> {}; -template<> struct integral_rank: int_<13> {}; -#endif - -template< typename T1, typename T2 > struct largest_int -#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) - : if_c< - ( integral_rank::value >= integral_rank::value ) - , T1 - , T2 - > -{ -#else -{ - enum { rank1 = integral_rank::value }; - enum { rank2 = integral_rank::value }; - typedef typename if_c< (rank1 >= rank2),T1,T2 >::type type; -#endif -}; - -}}} - -#endif // BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/logical_op.hpp b/3rdParty/Boost/boost/mpl/aux_/logical_op.hpp deleted file mode 100644 index e4689c9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/logical_op.hpp +++ /dev/null @@ -1,165 +0,0 @@ - -// 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: logical_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -#if !defined(BOOST_MPL_PREPROCESSING_MODE) -# include -# include -# include -# include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -namespace boost { namespace mpl { - -# define AUX778076_PARAMS(param, sub) \ - BOOST_MPL_PP_PARAMS( \ - BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY, sub) \ - , param \ - ) \ - /**/ - -# define AUX778076_SHIFTED_PARAMS(param, sub) \ - BOOST_MPL_PP_EXT_PARAMS( \ - 2, BOOST_MPL_PP_SUB(BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY), sub) \ - , param \ - ) \ - /**/ - -# define AUX778076_SPEC_PARAMS(param) \ - BOOST_MPL_PP_ENUM( \ - BOOST_PP_DEC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \ - , param \ - ) \ - /**/ - -namespace aux { - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -template< bool C_, AUX778076_PARAMS(typename T, 1) > -struct BOOST_PP_CAT(AUX778076_OP_NAME,impl) - : BOOST_PP_CAT(AUX778076_OP_VALUE1,_) -{ -}; - -template< AUX778076_PARAMS(typename T, 1) > -struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)< AUX778076_OP_VALUE2,AUX778076_PARAMS(T, 1) > - : BOOST_PP_CAT(AUX778076_OP_NAME,impl)< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , AUX778076_SHIFTED_PARAMS(T, 1) - , BOOST_PP_CAT(AUX778076_OP_VALUE2,_) - > -{ -}; - -template<> -struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)< - AUX778076_OP_VALUE2 - , AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) - > - : BOOST_PP_CAT(AUX778076_OP_VALUE2,_) -{ -}; - -#else - -template< bool C_ > struct BOOST_PP_CAT(AUX778076_OP_NAME,impl) -{ - template< AUX778076_PARAMS(typename T, 1) > struct result_ - : BOOST_PP_CAT(AUX778076_OP_VALUE1,_) - { - }; -}; - -template<> struct BOOST_PP_CAT(AUX778076_OP_NAME,impl) -{ - template< AUX778076_PARAMS(typename T, 1) > struct result_ - : BOOST_PP_CAT(AUX778076_OP_NAME,impl)< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< AUX778076_SHIFTED_PARAMS(T,1),BOOST_PP_CAT(AUX778076_OP_VALUE2,_) > - { - }; - -#if BOOST_WORKAROUND(BOOST_MSVC, == 1300) - template<> struct result_ - : BOOST_PP_CAT(AUX778076_OP_VALUE2,_) - { - }; -}; -#else -}; - -template<> -struct BOOST_PP_CAT(AUX778076_OP_NAME,impl) - ::result_< AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) > - : BOOST_PP_CAT(AUX778076_OP_VALUE2,_) -{ -}; -#endif // BOOST_MSVC == 1300 - -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename T, BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) - > -struct AUX778076_OP_NAME -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , AUX778076_SHIFTED_PARAMS(T,0) - > -#else - : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< AUX778076_SHIFTED_PARAMS(T,0) > -#endif -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - BOOST_MPL_LIMIT_METAFUNCTION_ARITY - , AUX778076_OP_NAME - , (AUX778076_PARAMS(T, 0)) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , BOOST_MPL_LIMIT_METAFUNCTION_ARITY - , AUX778076_OP_NAME - ) - -}} - -#undef AUX778076_SPEC_PARAMS -#undef AUX778076_SHIFTED_PARAMS -#undef AUX778076_PARAMS -#undef AUX778076_OP_NAME -#undef AUX778076_OP_VALUE1 -#undef AUX778076_OP_VALUE2 diff --git a/3rdParty/Boost/boost/mpl/aux_/msvc_dtw.hpp b/3rdParty/Boost/boost/mpl/aux_/msvc_dtw.hpp deleted file mode 100644 index 222c477..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/msvc_dtw.hpp +++ /dev/null @@ -1,68 +0,0 @@ - -// 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: msvc_dtw.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -#include - -// local macros, #undef-ined at the end of the header -#define AUX778076_DTW_PARAMS(param) \ - BOOST_MPL_PP_PARAMS(AUX778076_MSVC_DTW_ARITY, param) \ -/**/ - -#define AUX778076_DTW_ORIGINAL_NAME \ - AUX778076_MSVC_DTW_ORIGINAL_NAME \ -/**/ - -// warning: not a well-formed C++ -// workaround for MSVC 6.5's "dependent template typedef bug" - -template< typename F> -struct AUX778076_MSVC_DTW_NAME -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { -#if AUX778076_MSVC_DTW_ARITY > 0 - template< AUX778076_DTW_PARAMS(typename P) > struct AUX778076_DTW_ORIGINAL_NAME - { - typedef int type; - }; - }; - - template< AUX778076_DTW_PARAMS(typename T) > struct result_ - : f_< aux::msvc_never_true::value > - ::template AUX778076_DTW_ORIGINAL_NAME< AUX778076_DTW_PARAMS(T) > - { - }; -#else - template< typename P = int > struct AUX778076_DTW_ORIGINAL_NAME - { - typedef int type; - }; - }; - - template< typename T = int > struct result_ - : f_< aux::msvc_never_true::value > - ::template AUX778076_DTW_ORIGINAL_NAME<> - { - }; -#endif -}; - -#undef AUX778076_DTW_ORIGINAL_NAME -#undef AUX778076_DTW_PARAMS - -#undef AUX778076_MSVC_DTW_NAME -#undef AUX778076_MSVC_DTW_ORIGINAL_NAME -#undef AUX778076_MSVC_DTW_ARITY diff --git a/3rdParty/Boost/boost/mpl/aux_/msvc_eti_base.hpp b/3rdParty/Boost/boost/mpl/aux_/msvc_eti_base.hpp deleted file mode 100644 index 2c1ada5..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/msvc_eti_base.hpp +++ /dev/null @@ -1,77 +0,0 @@ - -#ifndef BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED -#define BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: msvc_eti_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 -#include -#include -#include - -namespace boost { namespace mpl { namespace aux { - -#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) - -template< bool > struct msvc_eti_base_impl -{ - template< typename T > struct result_ - : T - { - typedef T type; - }; -}; - -template<> struct msvc_eti_base_impl -{ - template< typename T > struct result_ - { - typedef result_ type; - typedef result_ first; - typedef result_ second; - typedef result_ tag; - enum { value = 0 }; - }; -}; - -template< typename T > struct msvc_eti_base - : msvc_eti_base_impl< is_msvc_eti_arg::value > - ::template result_ -{ -}; - -#else // !BOOST_MPL_CFG_MSVC_70_ETI_BUG - -template< typename T > struct msvc_eti_base - : T -{ -#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) - msvc_eti_base(); -#endif - typedef T type; -}; - -#endif - -template<> struct msvc_eti_base -{ - typedef msvc_eti_base type; - typedef msvc_eti_base first; - typedef msvc_eti_base second; - typedef msvc_eti_base tag; - enum { value = 0 }; -}; - -}}} - -#endif // BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/msvc_is_class.hpp b/3rdParty/Boost/boost/mpl/aux_/msvc_is_class.hpp deleted file mode 100644 index e0ccb38..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/msvc_is_class.hpp +++ /dev/null @@ -1,58 +0,0 @@ - -#ifndef BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED -#define BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Id: msvc_is_class.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include -#include - -#include - -namespace boost { namespace mpl { namespace aux { - -template< typename T > struct is_class_helper -{ - typedef int (T::* type)(); -}; - -// MSVC 6.x-specific lightweight 'is_class' implementation; -// Distinguishing feature: does not instantiate the type being tested. -template< typename T > -struct msvc_is_class_impl -{ - template< typename U> - static yes_tag test(type_wrapper*, /*typename*/ is_class_helper::type = 0); - static no_tag test(void const volatile*, ...); - - enum { value = sizeof(test((type_wrapper*)0)) == sizeof(yes_tag) }; - typedef bool_ type; -}; - -// agurt, 17/sep/04: have to check for 'is_reference' upfront to avoid ICEs in -// complex metaprograms -template< typename T > -struct msvc_is_class - : if_< - is_reference - , false_ - , msvc_is_class_impl - >::type -{ -}; - -}}} - -#endif // BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/msvc_never_true.hpp b/3rdParty/Boost/boost/mpl/aux_/msvc_never_true.hpp deleted file mode 100644 index 93da72e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/msvc_never_true.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED -#define BOOST_MPL_AUX_MSVC_NEVER_TRUE_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: msvc_never_true.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - -namespace boost { namespace mpl { namespace aux { - -template< typename T > -struct msvc_never_true -{ - enum { value = false }; -}; - -}}} - -#endif // BOOST_MSVC - -#endif // BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/msvc_type.hpp b/3rdParty/Boost/boost/mpl/aux_/msvc_type.hpp deleted file mode 100644 index ab662db..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/msvc_type.hpp +++ /dev/null @@ -1,62 +0,0 @@ - -#ifndef BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED -#define BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: msvc_type.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -namespace boost { namespace mpl { namespace aux { - -#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) - -template< bool > struct msvc_type_impl -{ - template< typename T > struct result_ - { - typedef typename T::type type; - }; -}; - -template<> struct msvc_type_impl -{ - template< typename T > struct result_ - { - typedef result_ type; - }; -}; - -template< typename T > struct msvc_type - : msvc_type_impl< is_msvc_eti_arg::value > - ::template result_ -{ -}; - -#else // BOOST_MPL_CFG_MSVC_70_ETI_BUG - -template< typename T > struct msvc_type -{ - typedef typename T::type type; -}; - -template<> struct msvc_type -{ - typedef int type; -}; - -#endif - -}}} - -#endif // BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/na.hpp b/3rdParty/Boost/boost/mpl/aux_/na.hpp deleted file mode 100644 index 314250c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/na.hpp +++ /dev/null @@ -1,95 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NA_HPP_INCLUDED -#define BOOST_MPL_AUX_NA_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: na.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include -#include - -namespace boost { namespace mpl { - -template< typename T > -struct is_na - : false_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using false_::value; -#endif -}; - -template<> -struct is_na - : true_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using true_::value; -#endif -}; - -template< typename T > -struct is_not_na - : true_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using true_::value; -#endif -}; - -template<> -struct is_not_na - : false_ -{ -#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) - using false_::value; -#endif -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -template< typename T, typename U > struct if_na -{ - typedef T type; -}; - -template< typename U > struct if_na -{ - typedef U type; -}; -#else -template< typename T > struct if_na_impl -{ - template< typename U > struct apply - { - typedef T type; - }; -}; - -template<> struct if_na_impl -{ - template< typename U > struct apply - { - typedef U type; - }; -}; - -template< typename T, typename U > struct if_na - : if_na_impl::template apply -{ -}; -#endif - -}} - -#endif // BOOST_MPL_AUX_NA_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/na_assert.hpp b/3rdParty/Boost/boost/mpl/aux_/na_assert.hpp deleted file mode 100644 index ece7f4c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/na_assert.hpp +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED -#define BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: na_assert.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include - -#if !BOOST_WORKAROUND(_MSC_FULL_VER, <= 140050601) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243) -# include -# define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \ - BOOST_MPL_ASSERT_NOT((boost::mpl::is_na)) \ -/**/ -#else -# include -# define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \ - BOOST_STATIC_ASSERT(!boost::mpl::is_na::value) \ -/**/ -#endif - -#endif // BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/na_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/na_fwd.hpp deleted file mode 100644 index dd64fc1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/na_fwd.hpp +++ /dev/null @@ -1,31 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED -#define BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: na_fwd.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_ADL_BARRIER_NAMESPACE_OPEN - -// n.a. == not available -struct na -{ - typedef na type; - enum { value = 0 }; -}; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -BOOST_MPL_AUX_ADL_BARRIER_DECL(na) - -#endif // BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/na_spec.hpp b/3rdParty/Boost/boost/mpl/aux_/na_spec.hpp deleted file mode 100644 index 92b2e5a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/na_spec.hpp +++ /dev/null @@ -1,175 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED -#define BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: na_spec.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 -# include -# include -# include -# include -# include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#define BOOST_MPL_AUX_NA_PARAMS(i) \ - BOOST_MPL_PP_ENUM(i, na) \ -/**/ - -#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) -# define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \ -namespace aux { \ -template< BOOST_MPL_AUX_NTTP_DECL(int, N) > \ -struct arity< \ - name< BOOST_MPL_AUX_NA_PARAMS(i) > \ - , N \ - > \ - : int_< BOOST_MPL_LIMIT_METAFUNCTION_ARITY > \ -{ \ -}; \ -} \ -/**/ -#else -# define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) /**/ -#endif - -#define BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \ -template<> \ -struct name< BOOST_MPL_AUX_NA_PARAMS(i) > \ -{ \ - template< \ - BOOST_MPL_PP_PARAMS(i, typename T) \ - BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, typename T, na) \ - > \ - struct apply \ - : name< BOOST_MPL_PP_PARAMS(i, T) > \ - { \ - }; \ -}; \ -/**/ - -#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) -# define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ -template<> \ -struct lambda< \ - name< BOOST_MPL_AUX_NA_PARAMS(i) > \ - , void_ \ - , true_ \ - > \ -{ \ - typedef false_ is_le; \ - typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \ -}; \ -template<> \ -struct lambda< \ - name< BOOST_MPL_AUX_NA_PARAMS(i) > \ - , void_ \ - , false_ \ - > \ -{ \ - typedef false_ is_le; \ - typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \ -}; \ -/**/ -#else -# define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ -template< typename Tag > \ -struct lambda< \ - name< BOOST_MPL_AUX_NA_PARAMS(i) > \ - , Tag \ - BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \ - > \ -{ \ - typedef false_ is_le; \ - typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > result_; \ - typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \ -}; \ -/**/ -#endif - -#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \ - || defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ - && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) -# define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \ -namespace aux { \ -template< BOOST_MPL_PP_PARAMS(j, typename T) > \ -struct template_arity< \ - name< BOOST_MPL_PP_PARAMS(j, T) > \ - > \ - : int_ \ -{ \ -}; \ -\ -template<> \ -struct template_arity< \ - name< BOOST_MPL_PP_ENUM(i, na) > \ - > \ - : int_<-1> \ -{ \ -}; \ -} \ -/**/ -#else -# define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) /**/ -#endif - -#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG) -# define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \ -template<> \ -struct name< BOOST_MPL_PP_ENUM(i, int) > \ -{ \ - typedef int type; \ - enum { value = 0 }; \ -}; \ -/**/ -#else -# define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) /**/ -#endif - -#define BOOST_MPL_AUX_NA_PARAM(param) param = na - -#define BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \ -BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \ -BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ -BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \ -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, i, name) \ -/**/ - -#define BOOST_MPL_AUX_NA_SPEC(i, name) \ -BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \ -BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \ -/**/ - -#define BOOST_MPL_AUX_NA_SPEC2(i, j, name) \ -BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \ -BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \ -BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \ -BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \ -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \ -/**/ - - -#endif // BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/nested_type_wknd.hpp b/3rdParty/Boost/boost/mpl/aux_/nested_type_wknd.hpp deleted file mode 100644 index cee3831..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/nested_type_wknd.hpp +++ /dev/null @@ -1,48 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED -#define BOOST_MPL_AUX_NESTED_TYPE_WKND_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: nested_type_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include - -#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \ - || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ - || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530)) \ - || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) - -namespace boost { namespace mpl { namespace aux { -template< typename T > struct nested_type_wknd - : T::type -{ -}; -}}} - -#if BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) -# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \ - aux::nested_type_wknd \ -/**/ -#else -# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \ - ::boost::mpl::aux::nested_type_wknd \ -/**/ -#endif - -#else // !BOOST_MPL_CFG_GCC et al. - -# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) T::type - -#endif - -#endif // BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/nttp_decl.hpp b/3rdParty/Boost/boost/mpl/aux_/nttp_decl.hpp deleted file mode 100644 index 0fa254d..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/nttp_decl.hpp +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED -#define BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-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: nttp_decl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include - -#if defined(BOOST_MPL_CFG_NTTP_BUG) - -typedef bool _mpl_nttp_bool; -typedef int _mpl_nttp_int; -typedef unsigned _mpl_nttp_unsigned; -typedef long _mpl_nttp_long; - -# include -# define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(_mpl_nttp_,T) x /**/ - -#else - -# define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/ - -#endif - -#endif // BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/numeric_cast_utils.hpp b/3rdParty/Boost/boost/mpl/aux_/numeric_cast_utils.hpp deleted file mode 100644 index cc5ea91..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/numeric_cast_utils.hpp +++ /dev/null @@ -1,77 +0,0 @@ - -#ifndef BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED -#define BOOST_MPL_AUX_NUMERIC_CAST_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: numeric_cast_utils.hpp 49267 2008-10-11 06:19:02Z agurtovoy $ -// $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $ -// $Revision: 49267 $ - -#include -#include -#include - -namespace boost { namespace mpl { namespace aux { - -template< - typename F - , typename Tag1 - , typename Tag2 - > -struct cast1st_impl -{ - template< typename N1, typename N2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : apply_wrap2< - F - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N1 >::type - , N2 - > - { -#else - { - typedef typename apply_wrap2< - F - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N1 >::type - , N2 - >::type type; -#endif - }; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - > -struct cast2nd_impl -{ - template< typename N1, typename N2 > struct apply -#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) - : apply_wrap2< - F - , N1 - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N2 >::type - > - { -#else - { - typedef typename apply_wrap2< - F - , N1 - , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST,N2 >::type - >::type type; -#endif - }; -}; - -}}} - -#endif // BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED diff --git a/3rdParty/Boost/boost/mpl/aux_/numeric_op.hpp b/3rdParty/Boost/boost/mpl/aux_/numeric_op.hpp deleted file mode 100644 index 2b0d6eb..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/numeric_op.hpp +++ /dev/null @@ -1,315 +0,0 @@ - -#if !defined(BOOST_PP_IS_ITERATING) - -///// header body - -// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION! - -// 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: numeric_op.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 -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -#endif - -#include - -#if defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ - || defined(BOOST_MPL_PREPROCESSING_MODE) - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# include -# include -# include -# include - - -#if !defined(AUX778076_OP_ARITY) -# define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY -#endif - -#if !defined(AUX778076_OP_IMPL_NAME) -# define AUX778076_OP_IMPL_NAME BOOST_PP_CAT(AUX778076_OP_PREFIX,_impl) -#endif - -#if !defined(AUX778076_OP_TAG_NAME) -# define AUX778076_OP_TAG_NAME BOOST_PP_CAT(AUX778076_OP_PREFIX,_tag) -#endif - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct AUX778076_OP_IMPL_NAME - : if_c< - ( tag1_ > tag2_ ) -#else - > -struct AUX778076_OP_IMPL_NAME - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) -#endif - , aux::cast2nd_impl< AUX778076_OP_IMPL_NAME,Tag1,Tag2 > - , aux::cast1st_impl< AUX778076_OP_IMPL_NAME,Tag1,Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct AUX778076_OP_IMPL_NAME -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -template< typename Tag > struct AUX778076_OP_IMPL_NAME -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct AUX778076_OP_IMPL_NAME -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; -#else -template<> struct AUX778076_OP_IMPL_NAME -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct AUX778076_OP_IMPL_NAME -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; -#endif - - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ - && BOOST_WORKAROUND(BOOST_MSVC, >= 1300) -template< typename T > struct AUX778076_OP_TAG_NAME - : tag -{ -}; -#else -template< typename T > struct AUX778076_OP_TAG_NAME -{ - typedef typename T::tag type; -}; -#endif - - -#if AUX778076_OP_ARITY != 2 - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - -# define AUX778076_OP_RIGHT_OPERAND(unused, i, N) , BOOST_PP_CAT(N, BOOST_MPL_PP_ADD(i, 2))> -# define AUX778076_OP_N_CALLS(i, N) \ - BOOST_MPL_PP_REPEAT( BOOST_PP_DEC(i), BOOST_MPL_PP_REPEAT_IDENTITY_FUNC, AUX778076_OP_NAME< ) \ - N1 BOOST_MPL_PP_REPEAT( BOOST_MPL_PP_SUB(i, 1), AUX778076_OP_RIGHT_OPERAND, N ) \ -/**/ - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na) - > -struct AUX778076_OP_NAME - : AUX778076_OP_N_CALLS(AUX778076_OP_ARITY, N) -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - AUX778076_OP_ARITY - , AUX778076_OP_NAME - , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) ) - ) -}; - -#define BOOST_PP_ITERATION_PARAMS_1 \ - (3,( BOOST_PP_DEC(AUX778076_OP_ARITY), 2, )) -#include BOOST_PP_ITERATE() - -# undef AUX778076_OP_N_CALLS -# undef AUX778076_OP_RIGHT_OPERAND - -# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - -/// forward declaration -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct BOOST_PP_CAT(AUX778076_OP_NAME,2); - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na) - > -struct AUX778076_OP_NAME -#if BOOST_WORKAROUND(BOOST_MSVC, == 1300) - : aux::msvc_eti_base< typename if_< -#else - : if_< -#endif - is_na - , BOOST_PP_CAT(AUX778076_OP_NAME,2) - , AUX778076_OP_NAME< - BOOST_PP_CAT(AUX778076_OP_NAME,2) - , BOOST_MPL_PP_EXT_PARAMS(3, BOOST_PP_INC(AUX778076_OP_ARITY), N) - > - >::type -#if BOOST_WORKAROUND(BOOST_MSVC, == 1300) - > -#endif -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - AUX778076_OP_ARITY - , AUX778076_OP_NAME - , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct BOOST_PP_CAT(AUX778076_OP_NAME,2) - -#endif - -#else // AUX778076_OP_ARITY == 2 - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct AUX778076_OP_NAME - -#endif - -#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) - : AUX778076_OP_IMPL_NAME< - typename AUX778076_OP_TAG_NAME::type - , typename AUX778076_OP_TAG_NAME::type - >::template apply::type -#else - : aux::msvc_eti_base< typename apply_wrap2< - AUX778076_OP_IMPL_NAME< - typename AUX778076_OP_TAG_NAME::type - , typename AUX778076_OP_TAG_NAME::type - > - , N1 - , N2 - >::type >::type -#endif -{ -#if AUX778076_OP_ARITY != 2 - -# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - AUX778076_OP_ARITY - , AUX778076_OP_NAME - , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(2, N, na) ) - ) -# else - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, BOOST_PP_CAT(AUX778076_OP_NAME,2), (N1, N2)) -# endif - -#else - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, AUX778076_OP_NAME, (N1, N2)) -#endif -}; - -BOOST_MPL_AUX_NA_SPEC2(2, AUX778076_OP_ARITY, AUX778076_OP_NAME) - -}} - -#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -///// iteration, depth == 1 - -// For gcc 4.4 compatability, we must include the -// BOOST_PP_ITERATION_DEPTH test inside an #else clause. -#else // BOOST_PP_IS_ITERATING -#if BOOST_PP_ITERATION_DEPTH() == 1 - -# define i_ BOOST_PP_FRAME_ITERATION(1) - -template< - BOOST_MPL_PP_PARAMS(i_, typename N) - > -struct AUX778076_OP_NAME -#if i_ != 2 - : AUX778076_OP_N_CALLS(i_, N) -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - AUX778076_OP_ARITY - , AUX778076_OP_NAME - , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na) ) - ) -}; -#endif - -# undef i_ - -#endif // BOOST_PP_ITERATION_DEPTH() -#endif // BOOST_PP_IS_ITERATING diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp deleted file mode 100644 index 5cb50dc..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp deleted file mode 100644 index 9654ee3..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/and.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/and.hpp deleted file mode 100644 index f345689..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/apply.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/apply.hpp deleted file mode 100644 index bce7c2c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp deleted file mode 100644 index 1ba706f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp deleted file mode 100644 index 45b75c7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp +++ /dev/null @@ -1,461 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// *Preprocessed* version of the main "apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - int N, typename F - > -struct apply_wrap_impl0; - -template< typename F, bool F_has_apply > -struct apply_wrap_impl0_bcb { - typedef typename F::template apply type; -}; - -template< typename F > -struct apply_wrap_impl0_bcb< F,true > { - typedef typename F::apply type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 0 - , F - - > -{ - typedef apply_wrap_impl0_bcb< F, aux::has_apply::value >::type type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 1 - , F - - > -{ - typedef typename F::template apply< - - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 2 - , F - - > -{ - typedef typename F::template apply< - - na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 3 - , F - - > -{ - typedef typename F::template apply< - - na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 4 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 5 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap0 - : apply_wrap_impl0< - ::boost::mpl::aux::arity< F,0 >::value - , F - - >::type -{ -}; - -template< - int N, typename F, typename T1 - > -struct apply_wrap_impl1; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 1 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 2 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 3 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 4 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 5 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap1 - : apply_wrap_impl1< - ::boost::mpl::aux::arity< F,1 >::value - , F - , T1 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2 - > -struct apply_wrap_impl2; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 2 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 3 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 4 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 5 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap2 - : apply_wrap_impl2< - ::boost::mpl::aux::arity< F,2 >::value - , F - , T1, T2 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 3 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 4 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 5 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap3 - : apply_wrap_impl3< - ::boost::mpl::aux::arity< F,3 >::value - , F - , T1, T2, T3 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 4 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 5 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap4 - : apply_wrap_impl4< - ::boost::mpl::aux::arity< F,4 >::value - , F - , T1, T2, T3, T4 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5< - 5 - , F - , T1, T2, T3, T4, T5 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4, T5 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap5 - : apply_wrap_impl5< - ::boost::mpl::aux::arity< F,5 >::value - , F - , T1, T2, T3, T4, T5 - >::type -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/arg.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/arg.hpp deleted file mode 100644 index 3ac4340..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/arg.hpp +++ /dev/null @@ -1,117 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp deleted file mode 100644 index 74b0029..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp +++ /dev/null @@ -1,300 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bind.hpp deleted file mode 100644 index e769a0c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bind.hpp +++ /dev/null @@ -1,397 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp deleted file mode 100644 index 962b5c9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bitand.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bitand.hpp deleted file mode 100644 index 527b689..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bitor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bitor.hpp deleted file mode 100644 index 3f0d5ca..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp deleted file mode 100644 index 06996c0..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/deque.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/deque.hpp deleted file mode 100644 index 06505c9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/divides.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/divides.hpp deleted file mode 100644 index 6b4178a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp deleted file mode 100644 index 901a93c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp deleted file mode 100644 index 45ab4e7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp deleted file mode 100644 index 8b2bf59..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp +++ /dev/null @@ -1,558 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Arity - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg,Tag, int_< -1 > > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - , int_<1> - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - , int_<1> - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - , int_<2> - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - , int_<2> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - , int_<3> - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - , int_<3> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - , int_<4> - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - , int_<4> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - , int_<5> - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - , int_<5> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect,Tag, int_<1> > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - , typename Arity - > -struct lambda< - lambda< F,Tag1,Arity > - , Tag2 - , int_<3> - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef bind1< quote1, typename l1::result_ > arity_; - typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; - typedef aux::le_result3 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/greater.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/greater.hpp deleted file mode 100644 index 3d1c3dc..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp deleted file mode 100644 index fb01186..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/inherit.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/inherit.hpp deleted file mode 100644 index 6adcc01..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/inherit.hpp +++ /dev/null @@ -1,139 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1, typename T2, typename T3, typename T4, typename T5 - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp deleted file mode 100644 index b767e95..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David 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) -// - -// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp deleted file mode 100644 index 1dd216c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp deleted file mode 100644 index 75b30ce..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/less.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/less.hpp deleted file mode 100644 index 0b6ce1d..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp deleted file mode 100644 index 0010e08..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/list.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/list.hpp deleted file mode 100644 index cbd58ac..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/list_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/list_c.hpp deleted file mode 100644 index 495c3f7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/map.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/map.hpp deleted file mode 100644 index 80ef156..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/minus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/minus.hpp deleted file mode 100644 index cfddc15..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/modulus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/modulus.hpp deleted file mode 100644 index eb5eff0..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp deleted file mode 100644 index 68356ee..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/or.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/or.hpp deleted file mode 100644 index ff7ce9f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp deleted file mode 100644 index b306bbb..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// *Preprocessed* version of the main "placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/plus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/plus.hpp deleted file mode 100644 index 82539ab..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/quote.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/quote.hpp deleted file mode 100644 index 677a3f9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/quote.hpp +++ /dev/null @@ -1,119 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// *Preprocessed* version of the main "quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename T, bool has_type_ > -struct quote_impl - -{ - typedef typename T::type type; -}; - -template< typename T > -struct quote_impl< T,false > -{ - typedef T type; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - { - typedef typename quote_impl< - F - , aux::has_type< F >::value - >::type type; - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - { - typedef typename quote_impl< - F< U1,U2 > - , aux::has_type< F< U1,U2 > >::value - >::type type; - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - { - typedef typename quote_impl< - F< U1,U2,U3 > - , aux::has_type< F< U1,U2,U3 > >::value - >::type type; - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - { - typedef typename quote_impl< - F< U1,U2,U3,U4 > - , aux::has_type< F< U1,U2,U3,U4 > >::value - >::type type; - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - { - typedef typename quote_impl< - F< U1,U2,U3,U4,U5 > - , aux::has_type< F< U1,U2,U3,U4,U5 > >::value - >::type type; - }; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp deleted file mode 100644 index 372f0d2..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp deleted file mode 100644 index 44aadf7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/set.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/set.hpp deleted file mode 100644 index ace3a4f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/set_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/set_c.hpp deleted file mode 100644 index 4e6993c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp deleted file mode 100644 index 6d19e94..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp deleted file mode 100644 index dd31d97..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp deleted file mode 100644 index b24a0a7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/times.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/times.hpp deleted file mode 100644 index ab100f1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp deleted file mode 100644 index f391dc1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// *Preprocessed* version of the main "unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - { - typedef typename aux::unpack_args_impl< - size::value - , F - , Args - >::type type; - - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/vector.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/vector.hpp deleted file mode 100644 index 803e217..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp deleted file mode 100644 index 643b7fd..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// *Preprocessed* version of the main "vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp deleted file mode 100644 index 26de94c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp deleted file mode 100644 index b137cc7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/and.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/and.hpp deleted file mode 100644 index 010ad1f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/apply.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/apply.hpp deleted file mode 100644 index e08eacc..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp deleted file mode 100644 index b2ed5d5..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp deleted file mode 100644 index 2ffe709..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp +++ /dev/null @@ -1,456 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - int N, typename F - > -struct apply_wrap_impl0; - -template< - typename F - > -struct apply_wrap_impl0< - 0 - , F - - > -{ - typedef typename F::template apply< - -/// since the defaults are "lost", we have to pass *something* even for nullary -/// metafunction classes - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 1 - , F - - > -{ - typedef typename F::template apply< - - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 2 - , F - - > -{ - typedef typename F::template apply< - - na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 3 - , F - - > -{ - typedef typename F::template apply< - - na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 4 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 5 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap0 - : apply_wrap_impl0< - ::boost::mpl::aux::arity< F,0 >::value - , F - - >::type -{ -}; - -template< - int N, typename F, typename T1 - > -struct apply_wrap_impl1; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 1 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 2 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 3 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 4 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 5 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap1 - : apply_wrap_impl1< - ::boost::mpl::aux::arity< F,1 >::value - , F - , T1 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2 - > -struct apply_wrap_impl2; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 2 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 3 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 4 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 5 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap2 - : apply_wrap_impl2< - ::boost::mpl::aux::arity< F,2 >::value - , F - , T1, T2 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 3 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 4 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 5 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap3 - : apply_wrap_impl3< - ::boost::mpl::aux::arity< F,3 >::value - , F - , T1, T2, T3 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 4 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 5 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap4 - : apply_wrap_impl4< - ::boost::mpl::aux::arity< F,4 >::value - , F - , T1, T2, T3, T4 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5< - 5 - , F - , T1, T2, T3, T4, T5 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4, T5 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap5 - : apply_wrap_impl5< - ::boost::mpl::aux::arity< F,5 >::value - , F - , T1, T2, T3, T4, T5 - >::type -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/arg.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/arg.hpp deleted file mode 100644 index 6f2f8a8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp deleted file mode 100644 index a29daa0..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp +++ /dev/null @@ -1,306 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bind.hpp deleted file mode 100644 index 34b1b5c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bind.hpp +++ /dev/null @@ -1,403 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp deleted file mode 100644 index 022cba3..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp deleted file mode 100644 index 0bbf54e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp deleted file mode 100644 index 55b31cb..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp deleted file mode 100644 index ec19391..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/deque.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/deque.hpp deleted file mode 100644 index de67398..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/divides.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/divides.hpp deleted file mode 100644 index 86f1682..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp deleted file mode 100644 index 62c9945..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp deleted file mode 100644 index 9e7a293..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp deleted file mode 100644 index e3eef71..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp +++ /dev/null @@ -1,558 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Arity - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg,Tag, int_< -1 > > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - , int_<1> - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - , int_<1> - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - , int_<2> - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - , int_<2> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - , int_<3> - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - , int_<3> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - , int_<4> - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - , int_<4> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - , int_<5> - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - , int_<5> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect,Tag, int_<1> > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - , typename Arity - > -struct lambda< - lambda< F,Tag1,Arity > - , Tag2 - , int_<3> - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef bind1< quote1, typename l1::result_ > arity_; - typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; - typedef aux::le_result3 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/greater.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/greater.hpp deleted file mode 100644 index 14d8e08..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp deleted file mode 100644 index 2603f91..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp deleted file mode 100644 index 00f31c4..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp deleted file mode 100644 index 6951795..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp deleted file mode 100644 index 805790e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp deleted file mode 100644 index 890a198..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/less.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/less.hpp deleted file mode 100644 index 4fe3cd1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp deleted file mode 100644 index ca2894f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/list.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/list.hpp deleted file mode 100644 index 4e8ad53..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp deleted file mode 100644 index 0b48a7f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/map.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/map.hpp deleted file mode 100644 index 837e013..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/minus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/minus.hpp deleted file mode 100644 index 71d4913..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp deleted file mode 100644 index 224b349..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp deleted file mode 100644 index 98b21b1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/or.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/or.hpp deleted file mode 100644 index 31e1aaa..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp deleted file mode 100644 index ff97364..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/plus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/plus.hpp deleted file mode 100644 index a9f6ee7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/quote.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/quote.hpp deleted file mode 100644 index e7a7f00..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/quote.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp deleted file mode 100644 index 7a07414..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp deleted file mode 100644 index 39a4057..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/set.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/set.hpp deleted file mode 100644 index 5721922..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp deleted file mode 100644 index cbeb932..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp deleted file mode 100644 index b5b181c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp deleted file mode 100644 index f7a342e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp deleted file mode 100644 index 1164f0f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/times.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/times.hpp deleted file mode 100644 index cb97cc4..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp deleted file mode 100644 index ef7c2b0..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - { - typedef typename aux::unpack_args_impl< - size::value - , F - , Args - >::type type; - - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/vector.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/vector.hpp deleted file mode 100644 index bfa9565..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp deleted file mode 100644 index 0f1560d..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp deleted file mode 100644 index 5cb50dc..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp deleted file mode 100644 index 9654ee3..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp deleted file mode 100644 index f345689..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp deleted file mode 100644 index bce7c2c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp deleted file mode 100644 index 1ba706f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp deleted file mode 100644 index d88129d..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp +++ /dev/null @@ -1,456 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// *Preprocessed* version of the main "apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - int N, typename F - > -struct apply_wrap_impl0; - -template< - typename F - > -struct apply_wrap_impl0< - 0 - , F - - > -{ - typedef typename F::template apply< - -/// since the defaults are "lost", we have to pass *something* even for nullary -/// metafunction classes - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 1 - , F - - > -{ - typedef typename F::template apply< - - na - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 2 - , F - - > -{ - typedef typename F::template apply< - - na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 3 - , F - - > -{ - typedef typename F::template apply< - - na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 4 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap_impl0< - 5 - , F - - > -{ - typedef typename F::template apply< - - na, na, na, na, na - - > type; -}; - -template< - typename F - > -struct apply_wrap0 - : apply_wrap_impl0< - ::boost::mpl::aux::arity< F,0 >::value - , F - - >::type -{ -}; - -template< - int N, typename F, typename T1 - > -struct apply_wrap_impl1; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 1 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 2 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 3 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 4 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap_impl1< - 5 - , F - , T1 - > -{ - typedef typename F::template apply< - T1 - , na, na, na, na - - > type; -}; - -template< - typename F, typename T1 - > -struct apply_wrap1 - : apply_wrap_impl1< - ::boost::mpl::aux::arity< F,1 >::value - , F - , T1 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2 - > -struct apply_wrap_impl2; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 2 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 3 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 4 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap_impl2< - 5 - , F - , T1, T2 - > -{ - typedef typename F::template apply< - T1, T2 - - , na, na, na - - > type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap2 - : apply_wrap_impl2< - ::boost::mpl::aux::arity< F,2 >::value - , F - , T1, T2 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 3 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 4 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap_impl3< - 5 - , F - , T1, T2, T3 - > -{ - typedef typename F::template apply< - T1, T2, T3 - - , na, na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap3 - : apply_wrap_impl3< - ::boost::mpl::aux::arity< F,3 >::value - , F - , T1, T2, T3 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 4 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap_impl4< - 5 - , F - , T1, T2, T3, T4 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4 - - , na - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap4 - : apply_wrap_impl4< - ::boost::mpl::aux::arity< F,4 >::value - , F - , T1, T2, T3, T4 - >::type -{ -}; - -template< - int N, typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap_impl5< - 5 - , F - , T1, T2, T3, T4, T5 - > -{ - typedef typename F::template apply< - T1, T2, T3, T4, T5 - - > type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap5 - : apply_wrap_impl5< - ::boost::mpl::aux::arity< F,5 >::value - , F - , T1, T2, T3, T4, T5 - >::type -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp deleted file mode 100644 index 3ac4340..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp +++ /dev/null @@ -1,117 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp deleted file mode 100644 index 74b0029..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp +++ /dev/null @@ -1,300 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp deleted file mode 100644 index e769a0c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp +++ /dev/null @@ -1,397 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1, typename U2, typename U3, typename U4, typename U5 - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp deleted file mode 100644 index 962b5c9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp deleted file mode 100644 index 527b689..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp deleted file mode 100644 index 3f0d5ca..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp deleted file mode 100644 index 06996c0..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp deleted file mode 100644 index 06505c9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp deleted file mode 100644 index 6b4178a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp deleted file mode 100644 index 901a93c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp deleted file mode 100644 index 45ab4e7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp deleted file mode 100644 index 8b2bf59..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp +++ /dev/null @@ -1,558 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Arity - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg,Tag, int_< -1 > > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - , int_<1> - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - , int_<1> - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - , int_<2> - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - , int_<2> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - , int_<3> - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - , int_<3> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - , int_<4> - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - , int_<4> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - , int_<5> - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - , int_<5> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect,Tag, int_<1> > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - , typename Arity - > -struct lambda< - lambda< F,Tag1,Arity > - , Tag2 - , int_<3> - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef bind1< quote1, typename l1::result_ > arity_; - typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; - typedef aux::le_result3 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp deleted file mode 100644 index 3d1c3dc..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp deleted file mode 100644 index fb01186..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp deleted file mode 100644 index 6adcc01..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp +++ /dev/null @@ -1,139 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1, typename T2, typename T3, typename T4, typename T5 - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp deleted file mode 100644 index b767e95..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David 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) -// - -// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp deleted file mode 100644 index 1dd216c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp deleted file mode 100644 index 75b30ce..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp deleted file mode 100644 index 0b6ce1d..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp deleted file mode 100644 index 0010e08..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp deleted file mode 100644 index cbd58ac..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp deleted file mode 100644 index 495c3f7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp deleted file mode 100644 index 80ef156..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp deleted file mode 100644 index cfddc15..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp deleted file mode 100644 index eb5eff0..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp deleted file mode 100644 index 68356ee..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp deleted file mode 100644 index ff7ce9f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp deleted file mode 100644 index b306bbb..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// *Preprocessed* version of the main "placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp deleted file mode 100644 index 82539ab..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp deleted file mode 100644 index 7f9d18b..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// *Preprocessed* version of the main "quote.hpp" header -// -- DO NOT modify by hand! - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp deleted file mode 100644 index 372f0d2..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp deleted file mode 100644 index 44aadf7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp deleted file mode 100644 index ace3a4f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp deleted file mode 100644 index 4e6993c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp deleted file mode 100644 index 6d19e94..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp deleted file mode 100644 index dd31d97..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// *Preprocessed* version of the main "shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp deleted file mode 100644 index b24a0a7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp +++ /dev/null @@ -1,40 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// *Preprocessed* version of the main "template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp deleted file mode 100644 index ab100f1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp deleted file mode 100644 index f391dc1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// *Preprocessed* version of the main "unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - { - typedef typename aux::unpack_args_impl< - size::value - , F - , Args - >::type type; - - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp deleted file mode 100644 index 803e217..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// *Preprocessed* version of the main "vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp deleted file mode 100644 index 643b7fd..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2008 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// *Preprocessed* version of the main "vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp deleted file mode 100644 index 26de94c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp deleted file mode 100644 index b137cc7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/and.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/and.hpp deleted file mode 100644 index 010ad1f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/apply.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/apply.hpp deleted file mode 100644 index e08eacc..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp deleted file mode 100644 index b2ed5d5..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp deleted file mode 100644 index 34d51a1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp +++ /dev/null @@ -1,84 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - - , typename has_apply_ = typename aux::has_apply::type - - > -struct apply_wrap0 - - : F::template apply< > -{ -}; - -template< typename F > -struct apply_wrap0< F,true_ > - : F::apply -{ -}; - -template< - typename F, typename T1 - - > -struct apply_wrap1 - - : F::template apply -{ -}; - -template< - typename F, typename T1, typename T2 - - > -struct apply_wrap2 - - : F::template apply< T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - - > -struct apply_wrap3 - - : F::template apply< T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - - > -struct apply_wrap4 - - : F::template apply< T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - - > -struct apply_wrap5 - - : F::template apply< T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/arg.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/arg.hpp deleted file mode 100644 index 6f2f8a8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp deleted file mode 100644 index 1e73429..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp +++ /dev/null @@ -1,406 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F, int dummy_ - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, int dummy_ - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1, int dummy_ - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, int dummy_ - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2, int dummy_ - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, int dummy_ - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, int dummy_ - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, int dummy_ - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , int dummy_ - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , int dummy_ - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, int dummy_ - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, int dummy_ - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bind.hpp deleted file mode 100644 index 94bfe1f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bind.hpp +++ /dev/null @@ -1,515 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F, int dummy_ - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, int dummy_ - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1, int dummy_ - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, int dummy_ - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2, int dummy_ - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, int dummy_ - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, int dummy_ - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, int dummy_ - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , int dummy_ - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , int dummy_ - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, int dummy_ - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, int dummy_ - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp deleted file mode 100644 index 181bc77..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp +++ /dev/null @@ -1,53 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, int dummy_ = 0 - > -struct bind; - -template< - typename F, int dummy_ = 0 - > -struct bind0; - -template< - typename F, typename T1, int dummy_ = 0 - > -struct bind1; - -template< - typename F, typename T1, typename T2, int dummy_ = 0 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3, int dummy_ = 0 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , int dummy_ = 0 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, int dummy_ = 0 - > -struct bind5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bitand.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bitand.hpp deleted file mode 100644 index 0bbf54e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bitor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bitor.hpp deleted file mode 100644 index 55b31cb..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp deleted file mode 100644 index ec19391..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/deque.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/deque.hpp deleted file mode 100644 index de67398..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/divides.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/divides.hpp deleted file mode 100644 index 86f1682..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp deleted file mode 100644 index 62c9945..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp deleted file mode 100644 index 9e7a293..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp deleted file mode 100644 index 026418c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp +++ /dev/null @@ -1,536 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg, Tag > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect, Tag > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -BOOST_MPL_AUX_NA_SPEC(2, lambda) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/greater.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/greater.hpp deleted file mode 100644 index 14d8e08..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp deleted file mode 100644 index 2603f91..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/inherit.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/inherit.hpp deleted file mode 100644 index 00f31c4..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/inherit.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp deleted file mode 100644 index 6951795..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp deleted file mode 100644 index 805790e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp deleted file mode 100644 index 890a198..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/less.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/less.hpp deleted file mode 100644 index 4fe3cd1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp deleted file mode 100644 index ca2894f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/list.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/list.hpp deleted file mode 100644 index 4e8ad53..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/list_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/list_c.hpp deleted file mode 100644 index 0b48a7f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/map.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/map.hpp deleted file mode 100644 index 837e013..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/minus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/minus.hpp deleted file mode 100644 index 71d4913..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/modulus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/modulus.hpp deleted file mode 100644 index 224b349..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp deleted file mode 100644 index 98b21b1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/or.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/or.hpp deleted file mode 100644 index 31e1aaa..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp deleted file mode 100644 index ff97364..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/plus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/plus.hpp deleted file mode 100644 index a9f6ee7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/quote.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/quote.hpp deleted file mode 100644 index d7d0420..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/quote.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename T, bool has_type_ > -struct quote_impl - : T -{ -}; - -template< typename T > -struct quote_impl< T,false > -{ - typedef T type; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - : quote_impl< - F - , aux::has_type< F >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - : quote_impl< - F< U1,U2 > - , aux::has_type< F< U1,U2 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - : quote_impl< - F< U1,U2,U3 > - , aux::has_type< F< U1,U2,U3 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4 > - , aux::has_type< F< U1,U2,U3,U4 > >::value - > - - { - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4,U5 > - , aux::has_type< F< U1,U2,U3,U4,U5 > >::value - > - - { - }; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp deleted file mode 100644 index c468684..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp deleted file mode 100644 index 658f92a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/set.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/set.hpp deleted file mode 100644 index 5721922..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/set_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/set_c.hpp deleted file mode 100644 index cbeb932..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp deleted file mode 100644 index b5b181c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp deleted file mode 100644 index f7a342e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp deleted file mode 100644 index a23fc23..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/times.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/times.hpp deleted file mode 100644 index cb97cc4..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp deleted file mode 100644 index 2194ce9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value,F, Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/vector.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/vector.hpp deleted file mode 100644 index bfa9565..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp deleted file mode 100644 index 0f1560d..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp deleted file mode 100644 index 26de94c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp deleted file mode 100644 index b137cc7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/and.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/and.hpp deleted file mode 100644 index 010ad1f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/and.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct and_impl - : false_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct and_impl< true,T1,T2,T3,T4 > - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , true_ - > -{ -}; - -template<> -struct and_impl< - true - , true_, true_, true_, true_ - > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp deleted file mode 100644 index e08eacc..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/apply.hpp +++ /dev/null @@ -1,169 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -template< - typename F - > -struct apply< F,na,na,na,na,na > - : apply0 -{ -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -template< - typename F, typename T1 - > -struct apply< F,T1,na,na,na,na > - : apply1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -template< - typename F, typename T1, typename T2 - > -struct apply< F,T1,T2,na,na,na > - : apply2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply< F,T1,T2,T3,na,na > - : apply3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply< F,T1,T2,T3,T4,na > - : apply4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply - : apply5< F,T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp deleted file mode 100644 index b2ed5d5..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct apply; - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp deleted file mode 100644 index 34d51a1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp +++ /dev/null @@ -1,84 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - - , typename has_apply_ = typename aux::has_apply::type - - > -struct apply_wrap0 - - : F::template apply< > -{ -}; - -template< typename F > -struct apply_wrap0< F,true_ > - : F::apply -{ -}; - -template< - typename F, typename T1 - - > -struct apply_wrap1 - - : F::template apply -{ -}; - -template< - typename F, typename T1, typename T2 - - > -struct apply_wrap2 - - : F::template apply< T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - - > -struct apply_wrap3 - - : F::template apply< T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - - > -struct apply_wrap4 - - : F::template apply< T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - - > -struct apply_wrap5 - - : F::template apply< T1,T2,T3,T4,T5 > -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/arg.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/arg.hpp deleted file mode 100644 index 6f2f8a8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp deleted file mode 100644 index b070232..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp +++ /dev/null @@ -1,440 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1 - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2 - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -template< - template< typename T1, typename T2, typename T3 > class F, typename Tag - > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct eval_if; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< eval_if,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef typename eval_if< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp deleted file mode 100644 index 0e9513a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bind.hpp +++ /dev/null @@ -1,561 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg -{ - typedef T type; -}; - -template< - typename T - , typename Arg - > -struct replace_unnamed_arg -{ - typedef Arg next; - typedef T type; -}; - -template< - typename Arg - > -struct replace_unnamed_arg< arg< -1 >, Arg > -{ - typedef typename Arg::next next; - typedef Arg type; -}; - -template< - int N, typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< arg, U1, U2, U3, U4, U5 > -{ - typedef typename apply_wrap5, U1, U2, U3, U4, U5>::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 > -{ - typedef bind< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind0, U1, U2, U3, U4, U5 - > -{ - typedef bind0 f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F - > -struct bind< F,na,na,na,na,na > - : bind0 -{ -}; - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > -struct resolve_bind_arg< - bind1< F,T1 >, U1, U2, U3, U4, U5 - > -{ - typedef bind1< F,T1 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1 - > -struct bind< F,T1,na,na,na,na > - : bind1< F,T1 > -{ -}; - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename U1, typename U2 - , typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind2< F,T1,T2 >, U1, U2, U3, U4, U5 - > -{ - typedef bind2< F,T1,T2 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2 - > -struct bind< F,T1,T2,na,na,na > - : bind2< F,T1,T2 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename U1 - , typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5 - > -{ - typedef bind3< F,T1,T2,T3 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind< F,T1,T2,T3,na,na > - : bind3< F,T1,T2,T3 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename U1, typename U2, typename U3, typename U4, typename U5 - > -struct resolve_bind_arg< - bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5 - > -{ - typedef bind4< F,T1,T2,T3,T4 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind< F,T1,T2,T3,T4,na > - : bind4< F,T1,T2,T3,T4 > -{ -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg< - bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 - > -{ - typedef bind5< F,T1,T2,T3,T4,T5 > f_; - typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type; -}; - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) - -/// primary template (not a specialization!) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind - : bind5< F,T1,T2,T3,T4,T5 > -{ -}; - -/// if_/eval_if specializations -template< template< typename T1, typename T2, typename T3 > class F, typename Tag > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct if_; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< if_,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef typename if_< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -template< - template< typename T1, typename T2, typename T3 > class F, typename Tag - > -struct quote3; - -template< typename T1, typename T2, typename T3 > struct eval_if; - -template< - typename Tag, typename T1, typename T2, typename T3 - > -struct bind3< - quote3< eval_if,Tag > - , T1, T2, T3 - > -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef mpl::arg<1> n1; - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef typename eval_if< - typename t1::type - , t2, t3 - >::type f_; - - public: - typedef typename f_::type type; - }; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp deleted file mode 100644 index c4a5060..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp +++ /dev/null @@ -1,52 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na - > -struct bind; - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bitand.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bitand.hpp deleted file mode 100644 index 0bbf54e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bitand.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitand_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitand_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitand_< N1,N2,N3,N4,na > - - : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitand_< N1,N2,N3,na,na > - - : bitand_< bitand_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitand_< N1,N2,na,na,na > - : bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitand_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bitor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bitor.hpp deleted file mode 100644 index 55b31cb..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bitor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitor_< N1,N2,N3,N4,na > - - : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitor_< N1,N2,N3,na,na > - - : bitor_< bitor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitor_< N1,N2,na,na,na > - : bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp deleted file mode 100644 index ec19391..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp +++ /dev/null @@ -1,147 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct bitxor_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct bitxor_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct bitxor_< N1,N2,N3,N4,na > - - : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct bitxor_< N1,N2,N3,na,na > - - : bitxor_< bitxor_< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct bitxor_< N1,N2,na,na,na > - : bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , bitxor_ - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/deque.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/deque.hpp deleted file mode 100644 index de67398..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/deque.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque; - -template< - - > -struct deque< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct deque< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct deque< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct deque< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct deque< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct deque< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct deque< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct deque< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/divides.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/divides.hpp deleted file mode 100644 index 86f1682..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/divides.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct divides_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct divides_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct divides< N1,N2,N3,N4,na > - - : divides< divides< divides< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct divides< N1,N2,N3,na,na > - - : divides< divides< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct divides< N1,N2,na,na,na > - : divides_impl< - typename divides_tag::type - , typename divides_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , divides - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp deleted file mode 100644 index 62c9945..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - - : equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp deleted file mode 100644 index 9e7a293..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl -{ - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,First,Last,State,ForwardOp > - : fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp deleted file mode 100644 index e3eef71..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp +++ /dev/null @@ -1,558 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Arity - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg,Tag, int_< -1 > > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - , int_<1> - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - , int_<1> - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - , int_<2> - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - , int_<2> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - , int_<3> - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - , int_<3> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - , int_<4> - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - , int_<4> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - , int_<5> - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - , int_<5> - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect,Tag, int_<1> > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - , int_<6> - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -template< - typename F - , typename Tag1 - , typename Tag2 - , typename Arity - > -struct lambda< - lambda< F,Tag1,Arity > - , Tag2 - , int_<3> - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef bind1< quote1, typename l1::result_ > arity_; - typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3; - typedef aux::le_result3 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/greater.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/greater.hpp deleted file mode 100644 index 14d8e08..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/greater.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - - : greater_impl< - typename greater_tag::type - , typename greater_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp deleted file mode 100644 index 2603f91..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct greater_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct greater_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - - : greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/inherit.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/inherit.hpp deleted file mode 100644 index 00f31c4..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/inherit.hpp +++ /dev/null @@ -1,141 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : T1, T2 -{ - typedef inherit2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -template< typename T1 > -struct inherit2< T1,empty_base > -{ - typedef T1 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base)) -}; - -template< typename T2 > -struct inherit2< empty_base,T2 > -{ - typedef T2 type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2)) -}; - -template<> -struct inherit2< empty_base,empty_base > -{ - typedef empty_base type; - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp deleted file mode 100644 index 6951795..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp deleted file mode 100644 index 805790e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp +++ /dev/null @@ -1,180 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 0,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 1,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 2,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 3,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< 4,First,Last,State,ForwardOp > -{ - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl -{ - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,First,Last,State,ForwardOp > - : iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > -{ -}; - -template< - typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl< -1,Last,Last,State,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp deleted file mode 100644 index 890a198..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/less.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/less.hpp deleted file mode 100644 index 4fe3cd1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/less.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - - : less_impl< - typename less_tag::type - , typename less_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp deleted file mode 100644 index ca2894f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct less_equal_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct less_equal_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - - : less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/list.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/list.hpp deleted file mode 100644 index 4e8ad53..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/list.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list; - -template< - - > -struct list< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list0< > -{ - typedef list0< >::type type; -}; - -template< - typename T0 - > -struct list< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list1 -{ - typedef typename list1::type type; -}; - -template< - typename T0, typename T1 - > -struct list< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list2< T0,T1 > -{ - typedef typename list2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct list< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list3< T0,T1,T2 > -{ - typedef typename list3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct list< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list4< T0,T1,T2,T3 > -{ - typedef typename list4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct list< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list5< T0,T1,T2,T3,T4 > -{ - typedef typename list5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct list< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : list8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct list< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list - : list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/list_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/list_c.hpp deleted file mode 100644 index 0b48a7f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/list_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c; - -template< - typename T - > -struct list_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list0_c -{ - typedef typename list0_c::type type; -}; - -template< - typename T, long C0 - > -struct list_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list1_c< T,C0 > -{ - typedef typename list1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct list_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list2_c< T,C0,C1 > -{ - typedef typename list2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct list_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list3_c< T,C0,C1,C2 > -{ - typedef typename list3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct list_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list4_c< T,C0,C1,C2,C3 > -{ - typedef typename list4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct list_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct list_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c - : list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/map.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/map.hpp deleted file mode 100644 index 837e013..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/map.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map; - -template< - - > -struct map< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map0< > -{ - typedef map0< >::type type; -}; - -template< - typename T0 - > -struct map< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map1 -{ - typedef typename map1::type type; -}; - -template< - typename T0, typename T1 - > -struct map< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map2< T0,T1 > -{ - typedef typename map2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct map< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map3< T0,T1,T2 > -{ - typedef typename map3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct map< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map4< T0,T1,T2,T3 > -{ - typedef typename map4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct map< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map5< T0,T1,T2,T3,T4 > -{ - typedef typename map5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct map< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : map8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct map< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map - : map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/minus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/minus.hpp deleted file mode 100644 index 71d4913..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/minus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct minus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct minus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct minus< N1,N2,N3,N4,na > - - : minus< minus< minus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct minus< N1,N2,N3,na,na > - - : minus< minus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct minus< N1,N2,na,na,na > - : minus_impl< - typename minus_tag::type - , typename minus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , minus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/modulus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/modulus.hpp deleted file mode 100644 index 224b349..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/modulus.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct modulus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct modulus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - - : modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp deleted file mode 100644 index 98b21b1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct not_equal_to_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct not_equal_to_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - - : not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/or.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/or.hpp deleted file mode 100644 index 31e1aaa..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/or.hpp +++ /dev/null @@ -1,69 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C_, typename T1, typename T2, typename T3, typename T4 > -struct or_impl - : true_ -{ -}; - -template< typename T1, typename T2, typename T3, typename T4 > -struct or_impl< false,T1,T2,T3,T4 > - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4 - , false_ - > -{ -}; - -template<> -struct or_impl< - false - , false_, false_, false_, false_ - > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - , T2, T3, T4, T5 - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp deleted file mode 100644 index ff97364..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp deleted file mode 100644 index a9f6ee7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/plus.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct plus_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct plus_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct plus< N1,N2,N3,N4,na > - - : plus< plus< plus< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct plus< N1,N2,N3,na,na > - - : plus< plus< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct plus< N1,N2,na,na,na > - : plus_impl< - typename plus_tag::type - , typename plus_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , plus - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp deleted file mode 100644 index 020f093..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/quote.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename T, bool has_type_ > -struct quote_impl -{ - typedef typename T::type type; -}; - -template< typename T > -struct quote_impl< T,false > -{ - typedef T type; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - : quote_impl< - F - , aux::has_type< F >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - : quote_impl< - F< U1,U2 > - , aux::has_type< F< U1,U2 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - : quote_impl< - F< U1,U2,U3 > - , aux::has_type< F< U1,U2,U3 > >::value - > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4 > - , aux::has_type< F< U1,U2,U3,U4 > >::value - > - - { - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - : quote_impl< - F< U1,U2,U3,U4,U5 > - , aux::has_type< F< U1,U2,U3,U4,U5 > >::value - > - - { - }; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp deleted file mode 100644 index c468684..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp deleted file mode 100644 index 658f92a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,231 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp > -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl -{ - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp > -{ - typedef reverse_iter_fold_impl< - -1 - , typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp > -{ - typedef State state; - typedef Last iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/set.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/set.hpp deleted file mode 100644 index 5721922..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/set.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set; - -template< - - > -struct set< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set0< > -{ - typedef set0< >::type type; -}; - -template< - typename T0 - > -struct set< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set1 -{ - typedef typename set1::type type; -}; - -template< - typename T0, typename T1 - > -struct set< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set2< T0,T1 > -{ - typedef typename set2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct set< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set3< T0,T1,T2 > -{ - typedef typename set3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct set< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set4< T0,T1,T2,T3 > -{ - typedef typename set4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct set< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set5< T0,T1,T2,T3,T4 > -{ - typedef typename set5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct set< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : set8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct set< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set - : set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/set_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/set_c.hpp deleted file mode 100644 index cbeb932..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/set_c.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c; - -template< - typename T - > -struct set_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set0_c -{ - typedef typename set0_c::type type; -}; - -template< - typename T, long C0 - > -struct set_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set1_c< T,C0 > -{ - typedef typename set1_c< T,C0 >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct set_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set2_c< T,C0,C1 > -{ - typedef typename set2_c< T,C0,C1 >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct set_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set3_c< T,C0,C1,C2 > -{ - typedef typename set3_c< T,C0,C1,C2 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct set_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set4_c< T,C0,C1,C2,C3 > -{ - typedef typename set4_c< T,C0,C1,C2,C3 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct set_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set5_c< T,C0,C1,C2,C3,C4 > -{ - typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set6_c< T,C0,C1,C2,C3,C4,C5 > -{ - typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : set7_c< T,C0,C1,C2,C3,C4,C5,C6 > -{ - typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > -{ - typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > -{ - typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > -{ - typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > -{ - typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > -{ - typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > -{ - typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - > -{ - typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - > -{ - typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15 - > -{ - typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16 - > -{ - typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17 - > -{ - typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct set_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18 - > -{ - typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c - : set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, C19 - > -{ - typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp deleted file mode 100644 index b5b181c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_left_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_left_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - - : shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp deleted file mode 100644 index f7a342e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp +++ /dev/null @@ -1,99 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct shift_right_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct shift_right_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - - : shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - - : integral_c< - typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(S)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp deleted file mode 100644 index 3e7bfba..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +++ /dev/null @@ -1,101 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< int N > struct arity_tag -{ - typedef char (&type)[N + 1]; -}; - -template< - int C1, int C2, int C3, int C4, int C5, int C6 - > -struct max_arity -{ - BOOST_STATIC_CONSTANT(int, value = - ( C6 > 0 ? C6 : ( C5 > 0 ? C5 : ( C4 > 0 ? C4 : ( C3 > 0 ? C3 : ( C2 > 0 ? C2 : ( C1 > 0 ? C1 : -1 ) ) ) ) ) ) - - ); -}; - -arity_tag<0>::type arity_helper(...); - -template< - template< typename P1 > class F - , typename T1 - > -typename arity_tag<1>::type -arity_helper(type_wrapper< F >, arity_tag<1>); - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - > -typename arity_tag<2>::type -arity_helper(type_wrapper< F< T1,T2 > >, arity_tag<2>); - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - > -typename arity_tag<3>::type -arity_helper(type_wrapper< F< T1,T2,T3 > >, arity_tag<3>); - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - > -typename arity_tag<4>::type -arity_helper(type_wrapper< F< T1,T2,T3,T4 > >, arity_tag<4>); - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - > -typename arity_tag<5>::type -arity_helper(type_wrapper< F< T1,T2,T3,T4,T5 > >, arity_tag<5>); - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5, typename P6 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6 - > -typename arity_tag<6>::type -arity_helper(type_wrapper< F< T1,T2,T3,T4,T5,T6 > >, arity_tag<6>); -template< typename F, int N > -struct template_arity_impl -{ - BOOST_STATIC_CONSTANT(int, value = - sizeof(arity_helper(type_wrapper(), arity_tag())) - 1 - ); -}; - -template< typename F > -struct template_arity -{ - BOOST_STATIC_CONSTANT(int, value = ( - max_arity< template_arity_impl< F,1 >::value, template_arity_impl< F,2 >::value, template_arity_impl< F,3 >::value, template_arity_impl< F,4 >::value, template_arity_impl< F,5 >::value, template_arity_impl< F,6 >::value >::value - - )); - - typedef mpl::int_ type; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/times.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/times.hpp deleted file mode 100644 index cb97cc4..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/times.hpp +++ /dev/null @@ -1,146 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - > -struct times_impl - : if_c< - ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) - > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) - ) - - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< na,Tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename Tag > struct times_impl< Tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - : times< times< times< times< N1,N2 >, N3>, N4>, N5> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1, typename N2, typename N3, typename N4 - > -struct times< N1,N2,N3,N4,na > - - : times< times< times< N1,N2 >, N3>, N4> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, N4, na ) - ) -}; - -template< - typename N1, typename N2, typename N3 - > -struct times< N1,N2,N3,na,na > - - : times< times< N1,N2 >, N3> -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, N3, na, na ) - ) -}; - -template< - typename N1, typename N2 - > -struct times< N1,N2,na,na,na > - : times_impl< - typename times_tag::type - , typename times_tag::type - >::template apply< N1,N2 >::type -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC( - 5 - , times - , ( N1, N2, na, na, na ) - ) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - : integral_c< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value - ) - > - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp deleted file mode 100644 index 2194ce9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp +++ /dev/null @@ -1,94 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< int size, typename F, typename Args > -struct unpack_args_impl; - -template< typename F, typename Args > -struct unpack_args_impl< 0,F,Args > - : apply0< - F - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 1,F,Args > - : apply1< - F - , typename at_c< Args,0 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 2,F,Args > - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 3,F,Args > - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 4,F,Args > - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > -{ -}; - -template< typename F, typename Args > -struct unpack_args_impl< 5,F,Args > - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > -{ -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value,F, Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/vector.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/vector.hpp deleted file mode 100644 index bfa9565..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/vector.hpp +++ /dev/null @@ -1,323 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector; - -template< - - > -struct vector< - na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector0< > -{ - typedef vector0< >::type type; -}; - -template< - typename T0 - > -struct vector< - T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector1 -{ - typedef typename vector1::type type; -}; - -template< - typename T0, typename T1 - > -struct vector< - T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector2< T0,T1 > -{ - typedef typename vector2< T0,T1 >::type type; -}; - -template< - typename T0, typename T1, typename T2 - > -struct vector< - T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector3< T0,T1,T2 > -{ - typedef typename vector3< T0,T1,T2 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3 - > -struct vector< - T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector4< T0,T1,T2,T3 > -{ - typedef typename vector4< T0,T1,T2,T3 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - > -struct vector< - T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector5< T0,T1,T2,T3,T4 > -{ - typedef typename vector5< T0,T1,T2,T3,T4 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct vector< - T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector6< T0,T1,T2,T3,T4,T5 > -{ - typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector7< T0,T1,T2,T3,T4,T5,T6 > -{ - typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na - , na, na, na - > - : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > -{ - typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na - , na, na, na - > - : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > -{ - typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na - , na, na, na - > - : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > -{ - typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na - , na, na, na - > - : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > -{ - typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na - , na, na, na, na - > - : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > -{ - typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na - , na, na, na, na - > - : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > -{ - typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na - , na, na, na, na - > - : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > -{ - typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na - , na, na, na, na - > - : vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - > -{ - typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, na, na, na, na - > - : vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15 - > -{ - typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, na, na, na - > - : vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16 - > -{ - typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, na, na - > - : vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17 - > -{ - typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type; -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18 - > -struct vector< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, na - > - : vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18 - > -{ - typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector - : vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - , T15, T16, T17, T18, T19 - > -{ - typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp deleted file mode 100644 index 0f1560d..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp +++ /dev/null @@ -1,309 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c; - -template< - typename T - > -struct vector_c< - T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector0_c -{ - typedef typename vector0_c::type type; -}; - -template< - typename T, long C0 - > -struct vector_c< - T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector1_c< T, T(C0) > -{ - typedef typename vector1_c< T, T(C0) >::type type; -}; - -template< - typename T, long C0, long C1 - > -struct vector_c< - T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector2_c< T, T(C0), T(C1) > -{ - typedef typename vector2_c< T, T(C0), T(C1) >::type type; -}; - -template< - typename T, long C0, long C1, long C2 - > -struct vector_c< - T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector3_c< T, T(C0), T(C1), T(C2) > -{ - typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3 - > -struct vector_c< - T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector4_c< T, T(C0), T(C1), T(C2), T(C3) > -{ - typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4 - > -struct vector_c< - T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) > -{ - typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) > -{ - typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX - > - : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) > -{ - typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX - > - : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) > -{ - typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) > -{ - typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - , LONG_MAX - > - : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) > -{ - typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) > -{ - typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) > -{ - typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) > -{ - typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) > -{ - typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) > -{ - typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) > -{ - typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX - > - : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) > -{ - typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, LONG_MAX, LONG_MAX - > - : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) > -{ - typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type; -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18 - > -struct vector_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - , C15, C16, C17, C18, LONG_MAX - > - : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) > -{ - typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type; -}; - -/// primary template (not a specialization!) - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c - : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) > -{ - typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp deleted file mode 100644 index 36337c8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp +++ /dev/null @@ -1,132 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp deleted file mode 100644 index 4ffbe78..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp +++ /dev/null @@ -1,132 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; - - /// ETI workaround - template<> struct apply - { - typedef int type; - }; - -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/and.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/and.hpp deleted file mode 100644 index 555c800..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/and.hpp +++ /dev/null @@ -1,73 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool C_ > struct and_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : false_ - { - }; -}; - -template<> struct and_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,true_ > - { - }; -}; - -template<> -struct and_impl - ::result_< true_,true_,true_,true_ > - : true_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,T5 > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/apply.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/apply.hpp deleted file mode 100644 index a3e2929..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/apply.hpp +++ /dev/null @@ -1,166 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - -{ - typedef typename apply_wrap0< - typename lambda::type - - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -/// workaround for ETI bug -template<> -struct apply0 -{ - typedef int type; -}; - -template< - typename F, typename T1 - > -struct apply1 - -{ - typedef typename apply_wrap1< - typename lambda::type - , T1 - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -/// workaround for ETI bug -template<> -struct apply1< int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - -{ - typedef typename apply_wrap2< - typename lambda::type - , T1, T2 - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -/// workaround for ETI bug -template<> -struct apply2< int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - -{ - typedef typename apply_wrap3< - typename lambda::type - , T1, T2, T3 - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -/// workaround for ETI bug -template<> -struct apply3< int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - -{ - typedef typename apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -/// workaround for ETI bug -template<> -struct apply4< int,int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - -{ - typedef typename apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - >::type type; - - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// workaround for ETI bug -template<> -struct apply5< int,int,int,int,int,int > -{ - typedef int type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp deleted file mode 100644 index f0f86c1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp deleted file mode 100644 index 4e89507..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp +++ /dev/null @@ -1,247 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< typename F> -struct msvc_apply0 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< typename P = int > struct apply - { - typedef int type; - }; - }; - - template< typename T = int > struct result_ - : f_< aux::msvc_never_true::value > - ::template apply<> - { - }; - -}; - -template< - typename F - > -struct apply_wrap0 -{ - typedef typename msvc_apply0::template result_< - - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap0 -{ - typedef int type; -}; - -template< typename F> -struct msvc_apply1 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< typename P1 > struct apply - { - typedef int type; - }; - }; - - template< typename T1 > struct result_ - : f_< aux::msvc_never_true::value > - ::template apply - { - }; -}; - -template< - typename F, typename T1 - > -struct apply_wrap1 -{ - typedef typename msvc_apply1::template result_< - T1 - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap1< int,int > -{ - typedef int type; -}; - -template< typename F> -struct msvc_apply2 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< typename P1, typename P2 > struct apply - { - typedef int type; - }; - }; - - template< typename T1, typename T2 > struct result_ - : f_< aux::msvc_never_true::value > - ::template apply< T1,T2 > - { - }; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply_wrap2 -{ - typedef typename msvc_apply2::template result_< - T1, T2 - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap2< int,int,int > -{ - typedef int type; -}; - -template< typename F> -struct msvc_apply3 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< typename P1, typename P2, typename P3 > struct apply - { - typedef int type; - }; - }; - - template< typename T1, typename T2, typename T3 > struct result_ - : f_< aux::msvc_never_true::value > - ::template apply< T1,T2,T3 > - { - }; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply_wrap3 -{ - typedef typename msvc_apply3::template result_< - T1, T2, T3 - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap3< int,int,int,int > -{ - typedef int type; -}; - -template< typename F> -struct msvc_apply4 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< - typename P1, typename P2, typename P3, typename P4 - > - struct apply - { - typedef int type; - }; - }; - - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : f_< aux::msvc_never_true::value > - ::template apply< T1,T2,T3,T4 > - { - }; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply_wrap4 -{ - typedef typename msvc_apply4::template result_< - T1, T2, T3, T4 - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap4< int,int,int,int,int > -{ - typedef int type; -}; - -template< typename F> -struct msvc_apply5 -{ - template< bool > struct f_ : F {}; - template<> struct f_ - { - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - struct apply - { - typedef int type; - }; - }; - - template< - typename T1, typename T2, typename T3, typename T4 - , typename T5 - > - struct result_ - : f_< aux::msvc_never_true::value > - ::template apply< T1,T2,T3,T4,T5 > - { - }; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply_wrap5 -{ - typedef typename msvc_apply5::template result_< - T1, T2, T3, T4, T5 - >::type type; -}; - -/// workaround for ETI bug -template<> -struct apply_wrap5< int,int,int,int,int,int > -{ - typedef int type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/arg.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/arg.hpp deleted file mode 100644 index 6f2f8a8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp deleted file mode 100644 index 4f12a40..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool > -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef typename apply_wrap5< - T - , U1, U2, U3, U4, U5 - >::type type; - }; -}; - -template< typename T > struct is_bind_template; - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,U1,U2,U3,U4,U5 > -{ -}; - -template< int arity_ > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -template< int N > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F - > -aux::yes_tag -is_bind_helper(bind0*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1 - > -aux::yes_tag -is_bind_helper(bind1< F,T1 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2 - > -aux::yes_tag -is_bind_helper(bind2< F,T1,T2 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3 - > -aux::yes_tag -is_bind_helper(bind3< F,T1,T2,T3 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -aux::yes_tag -is_bind_helper(bind4< F,T1,T2,T3,T4 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag -is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bind.hpp deleted file mode 100644 index 53c76e8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bind.hpp +++ /dev/null @@ -1,432 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool > -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef typename apply_wrap5< - T - , U1, U2, U3, U4, U5 - >::type type; - }; -}; - -template< typename T > struct is_bind_template; - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,U1,U2,U3,U4,U5 > -{ -}; - -template< typename T > -struct replace_unnamed_arg_impl -{ - template< typename Arg > struct result_ - { - typedef Arg next; - typedef T type; - }; -}; - -template<> -struct replace_unnamed_arg_impl< arg< -1 > > -{ - template< typename Arg > struct result_ - { - typedef typename next::type next; - typedef Arg type; - }; -}; - -template< typename T, typename Arg > -struct replace_unnamed_arg - : replace_unnamed_arg_impl::template result_ -{ -}; - -template< int arity_ > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -template< int N > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F - > -aux::yes_tag -is_bind_helper(bind0*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1 - > -aux::yes_tag -is_bind_helper(bind1< F,T1 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2 - > -aux::yes_tag -is_bind_helper(bind2< F,T1,T2 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3 - > -aux::yes_tag -is_bind_helper(bind3< F,T1,T2,T3 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -aux::yes_tag -is_bind_helper(bind4< F,T1,T2,T3,T4 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag -is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp deleted file mode 100644 index 022cba3..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp deleted file mode 100644 index e96cf1a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp +++ /dev/null @@ -1,149 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitand_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitand_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitand_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitand_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - - : if_< - - is_na - , bitand_2< N1,N2 > - , bitand_< - bitand_2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitand_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitand_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 & n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitand_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp deleted file mode 100644 index bbc96ab..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp +++ /dev/null @@ -1,149 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitor_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitor_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitor_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitor_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - - : if_< - - is_na - , bitor_2< N1,N2 > - , bitor_< - bitor_2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitor_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitor_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 | n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitor_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp deleted file mode 100644 index 4c14297..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp +++ /dev/null @@ -1,149 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitxor_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitxor_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitxor_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitxor_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - - : if_< - - is_na - , bitxor_2< N1,N2 > - , bitxor_< - bitxor_2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitxor_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitxor_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 ^ n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitxor_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/deque.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/deque.hpp deleted file mode 100644 index a0445d9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/deque.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct deque_chooser; - -} - -namespace aux { - -template<> -struct deque_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef vector0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_deque_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_deque_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct deque_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque_impl -{ - typedef aux::deque_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::deque_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque - : aux::deque_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::deque_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/divides.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/divides.hpp deleted file mode 100644 index 7681491..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/divides.hpp +++ /dev/null @@ -1,148 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct divides_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct divides_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct divides_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct divides2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - - : if_< - - is_na - , divides2< N1,N2 > - , divides< - divides2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct divides2 - : aux::msvc_eti_base< typename apply_wrap2< - divides_impl< - typename divides_tag::type - , typename divides_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct divides_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 / n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::divides_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp deleted file mode 100644 index 64e9065..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct equal_to_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct equal_to_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct equal_to_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - : aux::msvc_eti_base< typename apply_wrap2< - equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp deleted file mode 100644 index 4b3c690..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp +++ /dev/null @@ -1,293 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< int N > -struct fold_chunk; - -template<> struct fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< int N > -struct fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_step; - -template< - typename Last - , typename State - > -struct fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , fold_null_step< Last,State > - , fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_step -{ - typedef fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl - : fold_chunk - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp deleted file mode 100644 index bf81873..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp +++ /dev/null @@ -1,554 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg, Tag > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect, Tag > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars - -template< - typename F, typename Tag1, typename Tag2 - > -struct lambda< - lambda< F,Tag1 > - , Tag2 - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef aux::le_result2 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC(2, lambda) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/greater.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/greater.hpp deleted file mode 100644 index 5f5662d..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/greater.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct greater_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - : aux::msvc_eti_base< typename apply_wrap2< - greater_impl< - typename greater_tag::type - , typename greater_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp deleted file mode 100644 index ae776fc..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct greater_equal_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_equal_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_equal_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - : aux::msvc_eti_base< typename apply_wrap2< - greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp deleted file mode 100644 index 233a1ec..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp +++ /dev/null @@ -1,166 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C1, bool C2 > -struct inherit2_impl -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1, T2 - { - typedef Derived type_; - }; -}; - -template<> -struct inherit2_impl< false,true > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1 - { - typedef T1 type_; - }; -}; - -template<> -struct inherit2_impl< true,false > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T2 - { - typedef T2 type_; - }; -}; - -template<> -struct inherit2_impl< true,true > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - { - typedef T1 type_; - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : aux::inherit2_impl< - is_empty_base::value - , is_empty_base::value - >::template result_< inherit2< T1,T2 >,T1, T2 > -{ - typedef typename inherit2::type_ type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp deleted file mode 100644 index 6951795..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp deleted file mode 100644 index 69aadc4..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp +++ /dev/null @@ -1,293 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< int N > -struct iter_fold_chunk; - -template<> struct iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< int N > -struct iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step; - -template< - typename Last - , typename State - > -struct iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , iter_fold_null_step< Last,State > - , iter_fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step -{ - typedef iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl - : iter_fold_chunk - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp deleted file mode 100644 index 890a198..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/less.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/less.hpp deleted file mode 100644 index 951f060..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/less.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct less_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - : aux::msvc_eti_base< typename apply_wrap2< - less_impl< - typename less_tag::type - , typename less_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > - BOOST_MPL_AUX_VALUE_WKND(N1)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp deleted file mode 100644 index a56e692..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct less_equal_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_equal_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_equal_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - : aux::msvc_eti_base< typename apply_wrap2< - less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/list.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/list.hpp deleted file mode 100644 index e5ea456..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/list.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct list_chooser; - -} - -namespace aux { - -template<> -struct list_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef list0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_list_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_list_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct list_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list_impl -{ - typedef aux::list_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::list_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list - : aux::list_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::list_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp deleted file mode 100644 index ab25482..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct list_c_chooser; - -} - -namespace aux { - -template<> -struct list_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list1_c< - T, C0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list2_c< - T, C0, C1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list3_c< - T, C0, C1, C2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list4_c< - T, C0, C1, C2, C3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list5_c< - T, C0, C1, C2, C3, C4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list6_c< - T, C0, C1, C2, C3, C4, C5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list7_c< - T, C0, C1, C2, C3, C4, C5, C6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list8_c< - T, C0, C1, C2, C3, C4, C5, C6, C7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list9_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list10_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list11_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list12_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list13_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_list_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_list_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct list_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c_impl -{ - typedef aux::list_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::list_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c - : aux::list_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::list_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/map.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/map.hpp deleted file mode 100644 index 970e0b7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/map.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct map_chooser; - -} - -namespace aux { - -template<> -struct map_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef map0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_map_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_map_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct map_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map_impl -{ - typedef aux::map_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::map_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map - : aux::map_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::map_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/minus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/minus.hpp deleted file mode 100644 index b47f328..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/minus.hpp +++ /dev/null @@ -1,148 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct minus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct minus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct minus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct minus2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - - : if_< - - is_na - , minus2< N1,N2 > - , minus< - minus2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct minus2 - : aux::msvc_eti_base< typename apply_wrap2< - minus_impl< - typename minus_tag::type - , typename minus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct minus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 - n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::minus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp deleted file mode 100644 index c12b3f9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp +++ /dev/null @@ -1,115 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct modulus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct modulus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct modulus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - : aux::msvc_eti_base< typename apply_wrap2< - modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct modulus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 % n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::modulus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp deleted file mode 100644 index 6e56b1e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct not_equal_to_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct not_equal_to_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct not_equal_to_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - : aux::msvc_eti_base< typename apply_wrap2< - not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/or.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/or.hpp deleted file mode 100644 index 3f7394e..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/or.hpp +++ /dev/null @@ -1,73 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool C_ > struct or_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : true_ - { - }; -}; - -template<> struct or_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,false_ > - { - }; -}; - -template<> -struct or_impl - ::result_< false_,false_,false_,false_ > - : false_ -{ -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,T5 > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp deleted file mode 100644 index ff97364..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/plus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/plus.hpp deleted file mode 100644 index 1052335..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/plus.hpp +++ /dev/null @@ -1,148 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct plus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct plus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct plus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct plus2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - - : if_< - - is_na - , plus2< N1,N2 > - , plus< - plus2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct plus2 - : aux::msvc_eti_base< typename apply_wrap2< - plus_impl< - typename plus_tag::type - , typename plus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct plus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 + n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::plus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/quote.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/quote.hpp deleted file mode 100644 index e7a7f00..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/quote.hpp +++ /dev/null @@ -1,11 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp deleted file mode 100644 index adf15b6..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp +++ /dev/null @@ -1,343 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp deleted file mode 100644 index 208ad97..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,343 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; - - /// ETI workaround - template<> struct result_< int,int,int,int,int > - { - typedef int state; - typedef int iterator; - }; - -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/set.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/set.hpp deleted file mode 100644 index 95aaa5c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/set.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/set.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct set_chooser; - -} - -namespace aux { - -template<> -struct set_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef set0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename set20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_set_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_set_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct set_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - + is_set_arg::value + is_set_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct set_impl -{ - typedef aux::set_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::set_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct set - : aux::set_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::set_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp deleted file mode 100644 index 1ff34f9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/set_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct set_c_chooser; - -} - -namespace aux { - -template<> -struct set_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set1_c< - T, C0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set2_c< - T, C0, C1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set3_c< - T, C0, C1, C2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set4_c< - T, C0, C1, C2, C3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set5_c< - T, C0, C1, C2, C3, C4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set6_c< - T, C0, C1, C2, C3, C4, C5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set7_c< - T, C0, C1, C2, C3, C4, C5, C6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set8_c< - T, C0, C1, C2, C3, C4, C5, C6, C7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set9_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set10_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set11_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set12_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set13_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct set_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename set20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_set_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_set_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct set_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - + is_set_c_arg::value + is_set_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct set_c_impl -{ - typedef aux::set_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::set_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct set_c - : aux::set_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::set_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp deleted file mode 100644 index 3861ca1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp +++ /dev/null @@ -1,114 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_left.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct shift_left_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_left_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_left_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_left_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_left_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_left - : aux::msvc_eti_base< typename apply_wrap2< - shift_left_impl< - typename shift_left_tag::type - , typename shift_left_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, typename Shift, T n, Shift s > -struct shift_left_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n << s)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct shift_left_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - : aux::shift_left_wknd< - typename N::value_type - , typename S::value_type - , N::value - , S::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp deleted file mode 100644 index 24ea094..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp +++ /dev/null @@ -1,114 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/shift_right.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct shift_right_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct shift_right_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_right_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct shift_right_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct shift_right_tag -{ - typedef typename T::tag type; -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct shift_right - : aux::msvc_eti_base< typename apply_wrap2< - shift_right_impl< - typename shift_right_tag::type - , typename shift_right_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, typename Shift, T n, Shift s > -struct shift_right_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n >> s)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct shift_right_impl< integral_c_tag,integral_c_tag > -{ - template< typename N, typename S > struct apply - : aux::shift_right_wknd< - typename N::value_type - , typename S::value_type - , N::value - , S::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp deleted file mode 100644 index 1668771..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< bool > -struct template_arity_impl -{ - template< typename F > struct result_ - : mpl::int_< -1 > - { - }; -}; - -template<> -struct template_arity_impl -{ - template< typename F > struct result_ - : F::arity - { - }; -}; - -template< typename F > -struct template_arity - : template_arity_impl< ::boost::mpl::aux::has_rebind::value > - ::template result_ -{ -}; - -template<> -struct template_arity - : mpl::int_< -1 > -{ -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/times.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/times.hpp deleted file mode 100644 index dee7fd4..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/times.hpp +++ /dev/null @@ -1,148 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/times.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct times_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct times_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct times_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct times_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct times_tag -{ - typedef typename T::tag type; -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct times2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct times - - : if_< - - is_na - , times2< N1,N2 > - , times< - times2< N1,N2 > - , N3, N4, N5 - > - >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , times - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct times2 - : aux::msvc_eti_base< typename apply_wrap2< - times_impl< - typename times_tag::type - , typename times_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, times) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct times_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 * n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct times_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::times_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp deleted file mode 100644 index 26533dd..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp +++ /dev/null @@ -1,109 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2002-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// - -// Preprocessed version of "boost/mpl/unpack_args.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl -{ - template< typename F, typename Args > struct apply; -}; - -template<> struct unpack_args_impl<0> -{ - template< typename F, typename Args > struct apply - : apply0< - F - > - { - }; -}; - -template<> struct unpack_args_impl<1> -{ - template< typename F, typename Args > struct apply - : apply1< - F - , typename at_c< Args,0 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<2> -{ - template< typename F, typename Args > struct apply - : apply2< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<3> -{ - template< typename F, typename Args > struct apply - : apply3< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<4> -{ - template< typename F, typename Args > struct apply - : apply4< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - > - { - }; -}; - -template<> struct unpack_args_impl<5> -{ - template< typename F, typename Args > struct apply - : apply5< - F - , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type - , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type - , typename at_c< Args,4 >::type - > - { - }; -}; - -} - -template< - typename F - > -struct unpack_args -{ - template< typename Args > struct apply - - : aux::unpack_args_impl< size::value > - ::template apply< F,Args > - - { - }; -}; - -BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/vector.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/vector.hpp deleted file mode 100644 index a6c7b62..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/vector.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/vector.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct vector_chooser; - -} - -namespace aux { - -template<> -struct vector_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef vector0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_vector_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_vector_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct vector_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - + is_vector_arg::value + is_vector_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct vector_impl -{ - typedef aux::vector_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::vector_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct vector - : aux::vector_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::vector_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp deleted file mode 100644 index c522d08..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/vector_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct vector_c_chooser; - -} - -namespace aux { - -template<> -struct vector_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector1_c< - T, T(C0) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector2_c< - T, T(C0), T(C1) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector3_c< - T, T(C0), T(C1), T(C2) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector4_c< - T, T(C0), T(C1), T(C2), T(C3) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector5_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector6_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector7_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector8_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector9_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector10_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector11_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector12_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector13_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector14_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector15_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector16_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector17_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector18_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector19_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct vector_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename vector20_c< - T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_vector_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_vector_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct vector_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - + is_vector_c_arg::value + is_vector_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct vector_c_impl -{ - typedef aux::vector_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::vector_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct vector_c - : aux::vector_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::vector_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp deleted file mode 100644 index 26de94c..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_backward; -template<> -struct advance_backward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_backward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_backward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_backward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_backward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename prior::type iter1; - typedef typename prior::type iter2; - typedef typename prior::type iter3; - typedef typename prior::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_backward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_backward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_backward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp deleted file mode 100644 index b137cc7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp +++ /dev/null @@ -1,97 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< long N > struct advance_forward; -template<> -struct advance_forward<0> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef iter0 type; - }; -}; - -template<> -struct advance_forward<1> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef iter1 type; - }; -}; - -template<> -struct advance_forward<2> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef iter2 type; - }; -}; - -template<> -struct advance_forward<3> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef iter3 type; - }; -}; - -template<> -struct advance_forward<4> -{ - template< typename Iterator > struct apply - { - typedef Iterator iter0; - typedef typename next::type iter1; - typedef typename next::type iter2; - typedef typename next::type iter3; - typedef typename next::type iter4; - typedef iter4 type; - }; -}; - -template< long N > -struct advance_forward -{ - template< typename Iterator > struct apply - { - typedef typename apply_wrap1< - advance_forward<4> - , Iterator - >::type chunk_result_; - - typedef typename apply_wrap1< - advance_forward<( - (N - 4) < 0 - ? 0 - : N - 4 - )> - , chunk_result_ - >::type type; - }; -}; - -}}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/and.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/and.hpp deleted file mode 100644 index e58640a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/and.hpp +++ /dev/null @@ -1,71 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/and.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool C_ > struct and_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : false_ - { - }; -}; - -template<> struct and_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,true_ > - { - }; - - template<> struct result_< true_,true_,true_,true_ > - : true_ - { - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = true_, typename T4 = true_, typename T5 = true_ - > -struct and_ - - : aux::and_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,T5 > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , and_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , and_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/apply.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/apply.hpp deleted file mode 100644 index d46d030..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/apply.hpp +++ /dev/null @@ -1,160 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0 - - : apply_wrap0< - typename lambda::type - - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 1 - , apply0 - , (F ) - ) -}; - -/// workaround for ETI bug -template<> -struct apply0 -{ - typedef int type; -}; - -template< - typename F, typename T1 - > -struct apply1 - - : apply_wrap1< - typename lambda::type - , T1 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 2 - , apply1 - , (F, T1) - ) -}; - -/// workaround for ETI bug -template<> -struct apply1< int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2 - > -struct apply2 - - : apply_wrap2< - typename lambda::type - , T1, T2 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , apply2 - , (F, T1, T2) - ) -}; - -/// workaround for ETI bug -template<> -struct apply2< int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3 - - : apply_wrap3< - typename lambda::type - , T1, T2, T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , apply3 - , (F, T1, T2, T3) - ) -}; - -/// workaround for ETI bug -template<> -struct apply3< int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4 - - : apply_wrap4< - typename lambda::type - , T1, T2, T3, T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , apply4 - , (F, T1, T2, T3, T4) - ) -}; - -/// workaround for ETI bug -template<> -struct apply4< int,int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5 - - : apply_wrap5< - typename lambda::type - , T1, T2, T3, T4, T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 6 - , apply5 - , (F, T1, T2, T3, T4, T5) - ) -}; - -/// workaround for ETI bug -template<> -struct apply5< int,int,int,int,int,int > -{ - typedef int type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp deleted file mode 100644 index f0f86c1..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct apply0; - -template< - typename F, typename T1 - > -struct apply1; - -template< - typename F, typename T1, typename T2 - > -struct apply2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct apply3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct apply4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct apply5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp deleted file mode 100644 index d307517..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp +++ /dev/null @@ -1,138 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/apply_wrap.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - - , typename has_apply_ = typename aux::has_apply::type - - > -struct apply_wrap0 - -{ - typedef typename F::template apply< - - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap0 -{ - typedef int type; -}; - -template< - typename F, typename T1 - - > -struct apply_wrap1 - -{ - typedef typename F::template apply< - T1 - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap1< int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2 - - > -struct apply_wrap2 - -{ - typedef typename F::template apply< - T1, T2 - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap2< int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - - > -struct apply_wrap3 - -{ - typedef typename F::template apply< - T1, T2, T3 - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap3< int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - - > -struct apply_wrap4 - -{ - typedef typename F::template apply< - T1, T2, T3, T4 - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap4< int,int,int,int,int > -{ - typedef int type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - - > -struct apply_wrap5 - -{ - typedef typename F::template apply< - T1, T2, T3, T4, T5 - >::type type; - -}; - -/// workaround for ETI bug -template<> -struct apply_wrap5< int,int,int,int,int,int > -{ - typedef int type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/arg.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/arg.hpp deleted file mode 100644 index 6f2f8a8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/arg.hpp +++ /dev/null @@ -1,123 +0,0 @@ - -// Copyright Peter Dimov 2001-2002 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/arg.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -template<> struct arg< -1 > -{ - BOOST_STATIC_CONSTANT(int, value = -1); - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<1> -{ - BOOST_STATIC_CONSTANT(int, value = 1); - typedef arg<2> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U1 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<2> -{ - BOOST_STATIC_CONSTANT(int, value = 2); - typedef arg<3> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U2 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<3> -{ - BOOST_STATIC_CONSTANT(int, value = 3); - typedef arg<4> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U3 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<4> -{ - BOOST_STATIC_CONSTANT(int, value = 4); - typedef arg<5> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U4 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -template<> struct arg<5> -{ - BOOST_STATIC_CONSTANT(int, value = 5); - typedef arg<6> next; - BOOST_MPL_AUX_ARG_TYPEDEF(na, tag) - BOOST_MPL_AUX_ARG_TYPEDEF(na, type) - - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - typedef U5 type; - BOOST_MPL_AUX_ASSERT_NOT_NA(type); - }; -}; - -BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg) - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp deleted file mode 100644 index 4f12a40..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp +++ /dev/null @@ -1,328 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool > -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef typename apply_wrap5< - T - , U1, U2, U3, U4, U5 - >::type type; - }; -}; - -template< typename T > struct is_bind_template; - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,U1,U2,U3,U4,U5 > -{ -}; - -template< int arity_ > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -template< int N > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F - > -aux::yes_tag -is_bind_helper(bind0*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1 - > -aux::yes_tag -is_bind_helper(bind1< F,T1 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2 - > -aux::yes_tag -is_bind_helper(bind2< F,T1,T2 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3 - > -aux::yes_tag -is_bind_helper(bind3< F,T1,T2,T3 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -aux::yes_tag -is_bind_helper(bind4< F,T1,T2,T3,T4 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; - typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1; - typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2; - typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3; - typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4; - typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5; - - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag -is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bind.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bind.hpp deleted file mode 100644 index 53c76e8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bind.hpp +++ /dev/null @@ -1,432 +0,0 @@ - -// Copyright Peter Dimov 2001 -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/bind.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool > -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef T type; - }; -}; - -template<> -struct resolve_arg_impl -{ - template< - typename T, typename U1, typename U2, typename U3 - , typename U4, typename U5 - > - struct result_ - { - typedef typename apply_wrap5< - T - , U1, U2, U3, U4, U5 - >::type type; - }; -}; - -template< typename T > struct is_bind_template; - -template< - typename T, typename U1, typename U2, typename U3, typename U4 - , typename U5 - > -struct resolve_bind_arg - : resolve_arg_impl< is_bind_template::value > - ::template result_< T,U1,U2,U3,U4,U5 > -{ -}; - -template< typename T > -struct replace_unnamed_arg_impl -{ - template< typename Arg > struct result_ - { - typedef Arg next; - typedef T type; - }; -}; - -template<> -struct replace_unnamed_arg_impl< arg< -1 > > -{ - template< typename Arg > struct result_ - { - typedef typename next::type next; - typedef Arg type; - }; -}; - -template< typename T, typename Arg > -struct replace_unnamed_arg - : replace_unnamed_arg_impl::template result_ -{ -}; - -template< int arity_ > struct bind_chooser; - -aux::no_tag is_bind_helper(...); -template< typename T > aux::no_tag is_bind_helper(protect*); - -template< int N > -aux::yes_tag is_bind_helper(arg*); - -template< bool is_ref_ = true > -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = false); - }; -}; - -template<> -struct is_bind_template_impl -{ - template< typename T > struct result_ - { - BOOST_STATIC_CONSTANT(bool, value = - sizeof(aux::is_bind_helper(static_cast(0))) - == sizeof(aux::yes_tag) - ); - }; -}; - -template< typename T > struct is_bind_template - : is_bind_template_impl< ::boost::detail::is_reference_impl::value > - ::template result_ -{ -}; - -} // namespace aux - -template< - typename F - > -struct bind0 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - public: - typedef typename apply_wrap0< - f_ - >::type type; - - }; -}; - -namespace aux { - -template< - typename F - > -aux::yes_tag -is_bind_helper(bind0*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(1, bind0) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0) - -template< - typename F, typename T1 - > -struct bind1 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - public: - typedef typename apply_wrap1< - f_ - , typename t1::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1 - > -aux::yes_tag -is_bind_helper(bind1< F,T1 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(2, bind1) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1) - -template< - typename F, typename T1, typename T2 - > -struct bind2 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - public: - typedef typename apply_wrap2< - f_ - , typename t1::type, typename t2::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2 - > -aux::yes_tag -is_bind_helper(bind2< F,T1,T2 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(3, bind2) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2) - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - public: - typedef typename apply_wrap3< - f_ - , typename t1::type, typename t2::type, typename t3::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3 - > -aux::yes_tag -is_bind_helper(bind3< F,T1,T2,T3 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(4, bind3) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - public: - typedef typename apply_wrap4< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -aux::yes_tag -is_bind_helper(bind4< F,T1,T2,T3,T4 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(5, bind4) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4) - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5 -{ - template< - typename U1 = na, typename U2 = na, typename U3 = na - , typename U4 = na, typename U5 = na - > - struct apply - { - private: - typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0; - typedef typename r0::type a0; - typedef typename r0::next n1; - typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; - /// - typedef aux::replace_unnamed_arg< T1,n1 > r1; - typedef typename r1::type a1; - typedef typename r1::next n2; - typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1; - /// - typedef aux::replace_unnamed_arg< T2,n2 > r2; - typedef typename r2::type a2; - typedef typename r2::next n3; - typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2; - /// - typedef aux::replace_unnamed_arg< T3,n3 > r3; - typedef typename r3::type a3; - typedef typename r3::next n4; - typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3; - /// - typedef aux::replace_unnamed_arg< T4,n4 > r4; - typedef typename r4::type a4; - typedef typename r4::next n5; - typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4; - /// - typedef aux::replace_unnamed_arg< T5,n5 > r5; - typedef typename r5::type a5; - typedef typename r5::next n6; - typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5; - /// - public: - typedef typename apply_wrap5< - f_ - , typename t1::type, typename t2::type, typename t3::type - , typename t4::type, typename t5::type - >::type type; - - }; -}; - -namespace aux { - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -aux::yes_tag -is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); - -} // namespace aux - -BOOST_MPL_AUX_ARITY_SPEC(6, bind5) -BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp deleted file mode 100644 index 022cba3..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp +++ /dev/null @@ -1,46 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/bind_fwd.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename F - > -struct bind0; - -template< - typename F, typename T1 - > -struct bind1; - -template< - typename F, typename T1, typename T2 - > -struct bind2; - -template< - typename F, typename T1, typename T2, typename T3 - > -struct bind3; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - > -struct bind4; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - > -struct bind5; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp deleted file mode 100644 index e54b4ce..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp +++ /dev/null @@ -1,151 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitand.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitand_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitand_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitand_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitand_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitand_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitand_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitand_ - - : aux::msvc_eti_base< typename if_< - - is_na - , bitand_2< N1,N2 > - , bitand_< - bitand_2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitand_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitand_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitand_impl< - typename bitand_tag::type - , typename bitand_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitand_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 & n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitand_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitand_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp deleted file mode 100644 index 3b465b3..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp +++ /dev/null @@ -1,151 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitor_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitor_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitor_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitor_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitor_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitor_ - - : aux::msvc_eti_base< typename if_< - - is_na - , bitor_2< N1,N2 > - , bitor_< - bitor_2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitor_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitor_impl< - typename bitor_tag::type - , typename bitor_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitor_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 | n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitor_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp deleted file mode 100644 index f7c5d43..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp +++ /dev/null @@ -1,151 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2000-2004 -// Copyright Jaap Suter 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) -// - -// Preprocessed version of "boost/mpl/bitxor.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct bitxor_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct bitxor_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitxor_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct bitxor_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct bitxor_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct bitxor_2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct bitxor_ - - : aux::msvc_eti_base< typename if_< - - is_na - , bitxor_2< N1,N2 > - , bitxor_< - bitxor_2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , bitxor_ - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct bitxor_2 - : aux::msvc_eti_base< typename apply_wrap2< - bitxor_impl< - typename bitxor_tag::type - , typename bitxor_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct bitxor_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 ^ n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct bitxor_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::bitxor_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/deque.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/deque.hpp deleted file mode 100644 index a0445d9..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/deque.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/deque.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct deque_chooser; - -} - -namespace aux { - -template<> -struct deque_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef vector0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct deque_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename vector20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_deque_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_deque_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct deque_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - + is_deque_arg::value + is_deque_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct deque_impl -{ - typedef aux::deque_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::deque_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct deque - : aux::deque_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::deque_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/divides.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/divides.hpp deleted file mode 100644 index 0c60c43..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/divides.hpp +++ /dev/null @@ -1,150 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/divides.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct divides_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct divides_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct divides_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct divides_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct divides_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct divides2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct divides - - : aux::msvc_eti_base< typename if_< - - is_na - , divides2< N1,N2 > - , divides< - divides2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , divides - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct divides2 - : aux::msvc_eti_base< typename apply_wrap2< - divides_impl< - typename divides_tag::type - , typename divides_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, divides) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct divides_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 / n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct divides_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::divides_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp deleted file mode 100644 index 107912b..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct equal_to_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct equal_to_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct equal_to_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct equal_to_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct equal_to - : aux::msvc_eti_base< typename apply_wrap2< - equal_to_impl< - typename equal_to_tag::type - , typename equal_to_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp deleted file mode 100644 index 58066d8..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp +++ /dev/null @@ -1,245 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl; - -template< int N > -struct fold_chunk; - -template<> struct fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; -}; - -template<> struct fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; -}; - -template<> struct fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; -}; - -template<> struct fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp, state0, typename deref::type >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, state1, typename deref::type >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, state2, typename deref::type >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, state3, typename deref::type >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; -}; - -template< int N > -struct fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_step; - -template< - typename Last - , typename State - > -struct fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , fold_null_step< Last,State > - , fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_step -{ - typedef fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct fold_impl - : fold_chunk - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp deleted file mode 100644 index bf81873..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp +++ /dev/null @@ -1,554 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -} // namespace aux - -template< - typename T - , typename Tag - - > -struct lambda -{ - typedef false_ is_le; - typedef T result_; - typedef T type; -}; - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -template< int N, typename Tag > -struct lambda< arg, Tag > -{ - typedef true_ is_le; - typedef mpl::arg result_; // qualified for the sake of MIPSpro 7.41 - typedef mpl::protect type; -}; - -template< - typename F - , typename Tag - > -struct lambda< - bind0 - , Tag - - > -{ - typedef false_ is_le; - typedef bind0< - F - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1 -{ - typedef F< - typename L1::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1 > class F - , typename L1 - > -struct le_result1< true_,Tag,F,L1 > -{ - typedef bind1< - quote1< F,Tag > - , typename L1::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1 > class F - , typename T1 - , typename Tag - > -struct lambda< - F - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef typename l1::is_le is_le1; - typedef typename aux::lambda_or< - is_le1::value - >::type is_le; - - typedef aux::le_result1< - is_le, Tag, F, l1 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1 - , typename Tag - > -struct lambda< - bind1< F,T1 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind1< - F - , T1 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2 -{ - typedef F< - typename L1::type, typename L2::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2 > class F - , typename L1, typename L2 - > -struct le_result2< true_,Tag,F,L1,L2 > -{ - typedef bind2< - quote2< F,Tag > - , typename L1::result_, typename L2::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2 > class F - , typename T1, typename T2 - , typename Tag - > -struct lambda< - F< T1,T2 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value - >::type is_le; - - typedef aux::le_result2< - is_le, Tag, F, l1, l2 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2 - , typename Tag - > -struct lambda< - bind2< F,T1,T2 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind2< - F - , T1, T2 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3 > class F - , typename L1, typename L2, typename L3 - > -struct le_result3< true_,Tag,F,L1,L2,L3 > -{ - typedef bind3< - quote3< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3 > class F - , typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - F< T1,T2,T3 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value - >::type is_le; - - typedef aux::le_result3< - is_le, Tag, F, l1, l2, l3 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3 - , typename Tag - > -struct lambda< - bind3< F,T1,T2,T3 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind3< - F - , T1, T2, T3 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4 > class F - , typename L1, typename L2, typename L3, typename L4 - > -struct le_result4< true_,Tag,F,L1,L2,L3,L4 > -{ - typedef bind4< - quote4< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - >::type is_le; - - typedef aux::le_result4< - is_le, Tag, F, l1, l2, l3, l4 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename Tag - > -struct lambda< - bind4< F,T1,T2,T3,T4 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind4< - F - , T1, T2, T3, T4 - > result_; - - typedef result_ type; -}; - -namespace aux { - -template< - typename IsLE, typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5 -{ - typedef F< - typename L1::type, typename L2::type, typename L3::type - , typename L4::type, typename L5::type - > result_; - - typedef result_ type; -}; - -template< - typename Tag - , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F - , typename L1, typename L2, typename L3, typename L4, typename L5 - > -struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 > -{ - typedef bind5< - quote5< F,Tag > - , typename L1::result_, typename L2::result_, typename L3::result_ - , typename L4::result_, typename L5::result_ - > result_; - - typedef mpl::protect type; -}; - -} // namespace aux - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename T1, typename T2, typename T3, typename T4, typename T5 - , typename Tag - > -struct lambda< - F< T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef lambda< T1,Tag > l1; - typedef lambda< T2,Tag > l2; - typedef lambda< T3,Tag > l3; - typedef lambda< T4,Tag > l4; - typedef lambda< T5,Tag > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef typename aux::lambda_or< - is_le1::value, is_le2::value, is_le3::value, is_le4::value - , is_le5::value - >::type is_le; - - typedef aux::le_result5< - is_le, Tag, F, l1, l2, l3, l4, l5 - > le_result_; - - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind5< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind5< - F - , T1, T2, T3, T4, T5 - > result_; - - typedef result_ type; -}; - -/// special case for 'protect' -template< typename T, typename Tag > -struct lambda< mpl::protect, Tag > -{ - typedef false_ is_le; - typedef mpl::protect result_; - typedef result_ type; -}; - -/// specializations for the main 'bind' form - -template< - typename F, typename T1, typename T2, typename T3, typename T4 - , typename T5 - , typename Tag - > -struct lambda< - bind< F,T1,T2,T3,T4,T5 > - , Tag - - > -{ - typedef false_ is_le; - typedef bind< F,T1,T2,T3,T4,T5 > result_; - typedef result_ type; -}; - -/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars - -template< - typename F, typename Tag1, typename Tag2 - > -struct lambda< - lambda< F,Tag1 > - , Tag2 - > -{ - typedef lambda< F,Tag2 > l1; - typedef lambda< Tag1,Tag2 > l2; - typedef typename l1::is_le is_le; - typedef aux::le_result2 le_result_; - typedef typename le_result_::result_ result_; - typedef typename le_result_::type type; -}; - -BOOST_MPL_AUX_NA_SPEC(2, lambda) - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/greater.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/greater.hpp deleted file mode 100644 index f60a860..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/greater.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/greater.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct greater_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater - : aux::msvc_eti_base< typename apply_wrap2< - greater_impl< - typename greater_tag::type - , typename greater_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp deleted file mode 100644 index 2ab09fd..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/greater_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct greater_equal_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct greater_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_equal_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct greater_equal_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct greater_equal_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct greater_equal - : aux::msvc_eti_base< typename apply_wrap2< - greater_equal_impl< - typename greater_equal_tag::type - , typename greater_equal_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct greater_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp deleted file mode 100644 index 233a1ec..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp +++ /dev/null @@ -1,166 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-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) -// - -// Preprocessed version of "boost/mpl/inherit.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< bool C1, bool C2 > -struct inherit2_impl -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1, T2 - { - typedef Derived type_; - }; -}; - -template<> -struct inherit2_impl< false,true > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T1 - { - typedef T1 type_; - }; -}; - -template<> -struct inherit2_impl< true,false > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - : T2 - { - typedef T2 type_; - }; -}; - -template<> -struct inherit2_impl< true,true > -{ - template< typename Derived, typename T1, typename T2 > struct result_ - { - typedef T1 type_; - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - > -struct inherit2 - : aux::inherit2_impl< - is_empty_base::value - , is_empty_base::value - >::template result_< inherit2< T1,T2 >,T1, T2 > -{ - typedef typename inherit2::type_ type; - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2)) -}; - -BOOST_MPL_AUX_NA_SPEC(2, inherit2) - -template< - typename T1 = na, typename T2 = na, typename T3 = na - > -struct inherit3 - : inherit2< - typename inherit2< - T1, T2 - >::type - , T3 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 3 - , inherit3 - , ( T1, T2, T3) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(3, inherit3) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - > -struct inherit4 - : inherit2< - typename inherit3< - T1, T2, T3 - >::type - , T4 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 4 - , inherit4 - , ( T1, T2, T3, T4) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(4, inherit4) - -template< - typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na - , typename T5 = na - > -struct inherit5 - : inherit2< - typename inherit4< - T1, T2, T3, T4 - >::type - , T5 - > -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , inherit5 - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC(5, inherit5) - -/// primary template - -template< - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - > -struct inherit - : inherit5< T1,T2,T3,T4,T5 > -{ -}; - -template<> -struct inherit< na,na,na,na,na > -{ - template< - - typename T1 = empty_base, typename T2 = empty_base - , typename T3 = empty_base, typename T4 = empty_base - , typename T5 = empty_base - - > - struct apply - : inherit< T1,T2,T3,T4,T5 > - { - }; -}; - -BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit) -BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit) -BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit) -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp deleted file mode 100644 index 6951795..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp +++ /dev/null @@ -1,133 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright David 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -template< typename Iterator, typename State > -struct iter_fold_if_null_step -{ - typedef State state; - typedef Iterator iterator; -}; - -template< bool > -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef typename apply2< StateOp,State,Iterator >::type state; - typedef typename IteratorOp::type iterator; - }; -}; - -template<> -struct iter_fold_if_step_impl -{ - template< - typename Iterator - , typename State - , typename StateOp - , typename IteratorOp - > - struct result_ - { - typedef State state; - typedef Iterator iterator; - }; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename Predicate - > -struct iter_fold_if_forward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,ForwardOp, mpl::next > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename BackwardOp - , typename Predicate - > -struct iter_fold_if_backward_step -{ - typedef typename apply2< Predicate,State,Iterator >::type not_last; - typedef typename iter_fold_if_step_impl< - BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value - >::template result_< Iterator,State,BackwardOp, identity > impl_; - - typedef typename impl_::state state; - typedef typename impl_::iterator iterator; -}; - -template< - typename Iterator - , typename State - , typename ForwardOp - , typename ForwardPredicate - , typename BackwardOp - , typename BackwardPredicate - > -struct iter_fold_if_impl -{ - private: - typedef iter_fold_if_null_step< Iterator,State > forward_step0; - typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; - typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; - typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; - typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; - - - typedef typename if_< - typename forward_step4::not_last - , iter_fold_if_impl< - typename forward_step4::iterator - , typename forward_step4::state - , ForwardOp - , ForwardPredicate - , BackwardOp - , BackwardPredicate - > - , iter_fold_if_null_step< - typename forward_step4::iterator - , typename forward_step4::state - > - >::type backward_step4; - - typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; - typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; - typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; - typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; - - - public: - typedef typename backward_step0::state state; - typedef typename backward_step4::iterator iterator; -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp deleted file mode 100644 index 50ea754..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp +++ /dev/null @@ -1,245 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl; - -template< int N > -struct iter_fold_chunk; - -template<> struct iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - - - typedef state1 state; - typedef iter1 iterator; - }; -}; - -template<> struct iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - - - typedef state2 state; - typedef iter2 iterator; - }; -}; - -template<> struct iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - - - typedef state3 state; - typedef iter3 iterator; - }; -}; - -template<> struct iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State state0; - typedef typename apply2< ForwardOp,state0,iter0 >::type state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,state1,iter1 >::type state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,state2,iter2 >::type state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,state3,iter3 >::type state4; - typedef typename mpl::next::type iter4; - - - typedef state4 state; - typedef iter4 iterator; - }; -}; - -template< int N > -struct iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef iter_fold_impl< - 4 - , First - , Last - , State - , ForwardOp - > chunk_; - - typedef iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , typename chunk_::iterator - , Last - , typename chunk_::state - , ForwardOp - > res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step; - -template< - typename Last - , typename State - > -struct iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , iter_fold_null_step< Last,State > - , iter_fold_step< First,Last,State,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_step -{ - typedef iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , ForwardOp - > chunk_; - - typedef typename chunk_::state state; - typedef typename chunk_::iterator iterator; -}; - -template< - int N - , typename First - , typename Last - , typename State - , typename ForwardOp - > -struct iter_fold_impl - : iter_fold_chunk - ::template result_< First,Last,State,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp deleted file mode 100644 index 890a198..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp +++ /dev/null @@ -1,229 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { - -template< - bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false - , bool C5 = false - > -struct lambda_or - : true_ -{ -}; - -template<> -struct lambda_or< false,false,false,false,false > - : false_ -{ -}; - -template< typename Arity > struct lambda_impl -{ - template< typename T, typename Tag, typename Protect > struct result_ - { - typedef T type; - typedef is_placeholder is_le; - }; -}; - -template<> struct lambda_impl< int_<1> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef typename l1::is_le is_le1; - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value - > is_le; - - typedef bind1< - typename F::rebind - , typename l1::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<2> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value - > is_le; - - typedef bind2< - typename F::rebind - , typename l1::type, typename l2::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<3> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value - > is_le; - - typedef bind3< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<4> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value - > is_le; - - typedef bind4< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -template<> struct lambda_impl< int_<5> > -{ - template< typename F, typename Tag, typename Protect > struct result_ - { - typedef lambda< typename F::arg1, Tag, false_ > l1; - typedef lambda< typename F::arg2, Tag, false_ > l2; - typedef lambda< typename F::arg3, Tag, false_ > l3; - typedef lambda< typename F::arg4, Tag, false_ > l4; - typedef lambda< typename F::arg5, Tag, false_ > l5; - - typedef typename l1::is_le is_le1; - typedef typename l2::is_le is_le2; - typedef typename l3::is_le is_le3; - typedef typename l4::is_le is_le4; - typedef typename l5::is_le is_le5; - - - typedef aux::lambda_or< - BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value - > is_le; - - typedef bind5< - typename F::rebind - , typename l1::type, typename l2::type, typename l3::type - , typename l4::type, typename l5::type - > bind_; - - typedef typename if_< - is_le - , if_< Protect, mpl::protect, bind_ > - , identity - >::type type_; - - typedef typename type_::type type; - }; -}; - -} // namespace aux - -template< - typename T - , typename Tag - , typename Protect - > -struct lambda -{ - /// Metafunction forwarding confuses MSVC 6.x - typedef typename aux::template_arity::type arity_; - typedef typename aux::lambda_impl - ::template result_< T,Tag,Protect > l_; - - typedef typename l_::type type; - typedef typename l_::is_le is_le; - BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) -}; - -BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) - -template< - typename T - > -struct is_lambda_expression - : lambda::is_le -{ -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/less.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/less.hpp deleted file mode 100644 index 72338de..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/less.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/less.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct less_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less - : aux::msvc_eti_base< typename apply_wrap2< - less_impl< - typename less_tag::type - , typename less_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > - BOOST_MPL_AUX_VALUE_WKND(N1)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp deleted file mode 100644 index b588697..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/less_equal.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct less_equal_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct less_equal_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_equal_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct less_equal_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct less_equal_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct less_equal - : aux::msvc_eti_base< typename apply_wrap2< - less_equal_impl< - typename less_equal_tag::type - , typename less_equal_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal) - -}} - -namespace boost { namespace mpl { - -template<> -struct less_equal_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/list.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/list.hpp deleted file mode 100644 index e5ea456..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/list.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/list.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct list_chooser; - -} - -namespace aux { - -template<> -struct list_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef list0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename list20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_list_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_list_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct list_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - + is_list_arg::value + is_list_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct list_impl -{ - typedef aux::list_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::list_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct list - : aux::list_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::list_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp deleted file mode 100644 index ab25482..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp +++ /dev/null @@ -1,534 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/list_c.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct list_c_chooser; - -} - -namespace aux { - -template<> -struct list_c_chooser<0> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list0_c< - T - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<1> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list1_c< - T, C0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<2> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list2_c< - T, C0, C1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<3> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list3_c< - T, C0, C1, C2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<4> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list4_c< - T, C0, C1, C2, C3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<5> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list5_c< - T, C0, C1, C2, C3, C4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<6> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list6_c< - T, C0, C1, C2, C3, C4, C5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<7> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list7_c< - T, C0, C1, C2, C3, C4, C5, C6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<8> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list8_c< - T, C0, C1, C2, C3, C4, C5, C6, C7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<9> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list9_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<10> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list10_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<11> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list11_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<12> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list12_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<13> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list13_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<14> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list14_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<15> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list15_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<16> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list16_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<17> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list17_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<18> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list18_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<19> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list19_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct list_c_chooser<20> -{ - template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > - struct result_ - { - typedef typename list20_c< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< long C > -struct is_list_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_list_c_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 - , long C9, long C10, long C11, long C12, long C13, long C14, long C15 - , long C16, long C17, long C18, long C19, long C20 - > -struct list_c_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - + is_list_c_arg::value + is_list_c_arg::value - ); - -}; - -template< - typename T, long C0, long C1, long C2, long C3, long C4, long C5 - , long C6, long C7, long C8, long C9, long C10, long C11, long C12 - , long C13, long C14, long C15, long C16, long C17, long C18, long C19 - > -struct list_c_impl -{ - typedef aux::list_c_count_args< - C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - > arg_num_; - - typedef typename aux::list_c_chooser< arg_num_::value > - ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type; -}; - -} // namespace aux - -template< - typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX - , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX - , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX - , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX - , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX - , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX - , long C18 = LONG_MAX, long C19 = LONG_MAX - > -struct list_c - : aux::list_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type -{ - typedef typename aux::list_c_impl< - T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/map.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/map.hpp deleted file mode 100644 index 970e0b7..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/map.hpp +++ /dev/null @@ -1,556 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/map.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< int N > -struct map_chooser; - -} - -namespace aux { - -template<> -struct map_chooser<0> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef map0< - - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<1> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map1< - T0 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<2> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map2< - T0, T1 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<3> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map3< - T0, T1, T2 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<4> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map4< - T0, T1, T2, T3 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<5> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map5< - T0, T1, T2, T3, T4 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<6> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map6< - T0, T1, T2, T3, T4, T5 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<7> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map7< - T0, T1, T2, T3, T4, T5, T6 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<8> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map8< - T0, T1, T2, T3, T4, T5, T6, T7 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<9> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map9< - T0, T1, T2, T3, T4, T5, T6, T7, T8 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<10> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map10< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<11> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map11< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<12> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map12< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<13> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map13< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<14> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map14< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<15> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map15< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<16> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map16< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<17> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map17< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<18> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map18< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<19> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map19< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template<> -struct map_chooser<20> -{ - template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > - struct result_ - { - typedef typename map20< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; - - }; -}; - -} // namespace aux - -namespace aux { - -template< typename T > -struct is_map_arg -{ - BOOST_STATIC_CONSTANT(bool, value = true); -}; - -template<> -struct is_map_arg -{ - BOOST_STATIC_CONSTANT(bool, value = false); -}; - -template< - typename T1, typename T2, typename T3, typename T4, typename T5 - , typename T6, typename T7, typename T8, typename T9, typename T10 - , typename T11, typename T12, typename T13, typename T14, typename T15 - , typename T16, typename T17, typename T18, typename T19, typename T20 - > -struct map_count_args -{ - BOOST_STATIC_CONSTANT(int, value = - is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - + is_map_arg::value + is_map_arg::value - ); - -}; - -template< - typename T0, typename T1, typename T2, typename T3, typename T4 - , typename T5, typename T6, typename T7, typename T8, typename T9 - , typename T10, typename T11, typename T12, typename T13, typename T14 - , typename T15, typename T16, typename T17, typename T18, typename T19 - > -struct map_impl -{ - typedef aux::map_count_args< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - > arg_num_; - - typedef typename aux::map_chooser< arg_num_::value > - ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; -}; - -} // namespace aux - -template< - typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na - , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na - , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na - , typename T12 = na, typename T13 = na, typename T14 = na - , typename T15 = na, typename T16 = na, typename T17 = na - , typename T18 = na, typename T19 = na - > -struct map - : aux::map_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type -{ - typedef typename aux::map_impl< - T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 - >::type type; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/minus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/minus.hpp deleted file mode 100644 index 3237fa6..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/minus.hpp +++ /dev/null @@ -1,150 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/minus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct minus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct minus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct minus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct minus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct minus_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct minus2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct minus - - : aux::msvc_eti_base< typename if_< - - is_na - , minus2< N1,N2 > - , minus< - minus2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , minus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct minus2 - : aux::msvc_eti_base< typename apply_wrap2< - minus_impl< - typename minus_tag::type - , typename minus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, minus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct minus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 - n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct minus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::minus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp deleted file mode 100644 index 9c672c0..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp +++ /dev/null @@ -1,115 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/modulus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct modulus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct modulus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct modulus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct modulus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct modulus_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct modulus - : aux::msvc_eti_base< typename apply_wrap2< - modulus_impl< - typename modulus_tag::type - , typename modulus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct modulus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 % n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct modulus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::modulus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp deleted file mode 100644 index 1e48e7f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp +++ /dev/null @@ -1,102 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/not_equal_to.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct not_equal_to_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct not_equal_to_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct not_equal_to_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct not_equal_to_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct not_equal_to_tag - : tag< T,na > -{ -}; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct not_equal_to - : aux::msvc_eti_base< typename apply_wrap2< - not_equal_to_impl< - typename not_equal_to_tag::type - , typename not_equal_to_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to) - -}} - -namespace boost { namespace mpl { - -template<> -struct not_equal_to_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - - { - BOOST_STATIC_CONSTANT(bool, value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) - ); - typedef bool_ type; - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/or.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/or.hpp deleted file mode 100644 index 8d0ba0a..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/or.hpp +++ /dev/null @@ -1,71 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/or.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -namespace aux { -template< bool C_ > struct or_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : true_ - { - }; -}; - -template<> struct or_impl -{ - template< - typename T1, typename T2, typename T3, typename T4 - > - struct result_ - : or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,false_ > - { - }; - - template<> struct result_< false_,false_,false_,false_ > - : false_ - { - }; -}; - -} // namespace aux - -template< - typename BOOST_MPL_AUX_NA_PARAM(T1) - , typename BOOST_MPL_AUX_NA_PARAM(T2) - , typename T3 = false_, typename T4 = false_, typename T5 = false_ - > -struct or_ - - : aux::or_impl< - BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value - >::template result_< T2,T3,T4,T5 > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , or_ - , ( T1, T2, T3, T4, T5) - ) -}; - -BOOST_MPL_AUX_NA_SPEC2( - 2 - , 5 - , or_ - ) - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp deleted file mode 100644 index ff97364..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp +++ /dev/null @@ -1,105 +0,0 @@ - -// Copyright Aleksey Gurtovoy 2001-2004 -// Copyright Peter Dimov 2001-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) -// - -// Preprocessed version of "boost/mpl/placeholders.hpp" header -// -- DO NOT modify by hand! - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg< -1 > _; -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_; -} - -}} - -/// agurt, 17/mar/02: one more placeholder for the last 'apply#' -/// specialization -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<1> _1; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<2> _2; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<3> _3; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<4> _4; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<5> _5; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5; -} - -}} -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN -typedef arg<6> _6; - -BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE -namespace boost { namespace mpl { - -BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6) - -namespace placeholders { -using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6; -} - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/plus.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/plus.hpp deleted file mode 100644 index c8f3355..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/plus.hpp +++ /dev/null @@ -1,150 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/plus.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { - -template< - typename Tag1 - , typename Tag2 - - , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value - , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value - > -struct plus_impl - : if_c< - ( tag1_ > tag2_ ) - , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 > - , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 > - >::type -{ -}; - -/// for Digital Mars C++/compilers with no CTPS/TTP support -template<> struct plus_impl< na,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct plus_impl< na,integral_c_tag > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template<> struct plus_impl< integral_c_tag,na > -{ - template< typename U1, typename U2 > struct apply - { - typedef apply type; - BOOST_STATIC_CONSTANT(int, value = 0); - }; -}; - -template< typename T > struct plus_tag - : tag< T,na > -{ -}; - -/// forward declaration - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - > -struct plus2; - -template< - typename BOOST_MPL_AUX_NA_PARAM(N1) - , typename BOOST_MPL_AUX_NA_PARAM(N2) - , typename N3 = na, typename N4 = na, typename N5 = na - > -struct plus - - : aux::msvc_eti_base< typename if_< - - is_na - , plus2< N1,N2 > - , plus< - plus2< N1,N2 > - , N3, N4, N5 - > - >::type - - > - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT( - 5 - , plus - , ( N1, N2, N3, N4, N5 ) - ) -}; - -template< - typename N1 - , typename N2 - > -struct plus2 - : aux::msvc_eti_base< typename apply_wrap2< - plus_impl< - typename plus_tag::type - , typename plus_tag::type - > - , N1 - , N2 - >::type >::type - -{ - BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2)) - -}; - -BOOST_MPL_AUX_NA_SPEC2(2, 5, plus) - -}} - -namespace boost { namespace mpl { - -namespace aux { -template< typename T, T n1, T n2 > -struct plus_wknd -{ - BOOST_STATIC_CONSTANT(T, value = (n1 + n2)); - typedef integral_c< T,value > type; -}; - -} - -template<> -struct plus_impl< integral_c_tag,integral_c_tag > -{ - template< typename N1, typename N2 > struct apply - : aux::plus_wknd< - typename aux::largest_int< - typename N1::value_type - , typename N2::value_type - >::type - , N1::value - , N2::value - >::type - - { - }; -}; - -}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/quote.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/quote.hpp deleted file mode 100644 index b85880f..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/quote.hpp +++ /dev/null @@ -1,116 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/quote.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { -template< bool > struct quote_impl -{ - template< typename T > struct result_ - : T - { - }; -}; - -template<> struct quote_impl -{ - template< typename T > struct result_ - { - typedef T type; - }; -}; - -template< - template< typename P1 > class F - , typename Tag = void_ - > -struct quote1 -{ - template< typename U1 > struct apply - - : quote_impl< aux::has_type< F >::value > - ::template result_< F > - - { - }; -}; - -template< - template< typename P1, typename P2 > class F - , typename Tag = void_ - > -struct quote2 -{ - template< typename U1, typename U2 > struct apply - - : quote_impl< aux::has_type< F< U1,U2 > >::value > - ::template result_< F< U1,U2 > > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3 > class F - , typename Tag = void_ - > -struct quote3 -{ - template< typename U1, typename U2, typename U3 > struct apply - - : quote_impl< aux::has_type< F< U1,U2,U3 > >::value > - ::template result_< F< U1,U2,U3 > > - - { - }; -}; - -template< - template< typename P1, typename P2, typename P3, typename P4 > class F - , typename Tag = void_ - > -struct quote4 -{ - template< - typename U1, typename U2, typename U3, typename U4 - > - struct apply - - : quote_impl< aux::has_type< F< U1,U2,U3,U4 > >::value > - ::template result_< F< U1,U2,U3,U4 > > - - { - }; -}; - -template< - template< - typename P1, typename P2, typename P3, typename P4 - , typename P5 - > - class F - , typename Tag = void_ - > -struct quote5 -{ - template< - typename U1, typename U2, typename U3, typename U4 - , typename U5 - > - struct apply - - : quote_impl< aux::has_type< F< U1,U2,U3,U4,U5 > >::value > - ::template result_< F< U1,U2,U3,U4,U5 > > - - { - }; -}; - -}} - diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp deleted file mode 100644 index 7a07414..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl; - -template< long N > -struct reverse_fold_chunk; - -template<> struct reverse_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp, fwd_state0, typename deref::type >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp, fwd_state1, typename deref::type >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp, fwd_state2, typename deref::type >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp, fwd_state3, typename deref::type >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp, bkwd_state4, typename deref::type >::type bkwd_state3; - typedef typename apply2< BackwardOp, bkwd_state3, typename deref::type >::type bkwd_state2; - typedef typename apply2< BackwardOp, bkwd_state2, typename deref::type >::type bkwd_state1; - typedef typename apply2< BackwardOp, bkwd_state1, typename deref::type >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step; - -template< - typename Last - , typename State - > -struct reverse_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_fold_null_step< Last,State > - , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_step -{ - typedef reverse_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2::type>::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , typename deref::type - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_fold_impl - : reverse_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp b/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp deleted file mode 100644 index 39a4057..0000000 --- a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp +++ /dev/null @@ -1,295 +0,0 @@ - -// 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) -// - -// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header -// -- DO NOT modify by hand! - -namespace boost { namespace mpl { namespace aux { - -/// forward declaration - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl; - -template< long N > -struct reverse_iter_fold_chunk; - -template<> struct reverse_iter_fold_chunk<0> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef fwd_state0 bkwd_state0; - typedef bkwd_state0 state; - typedef iter0 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<1> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - - - typedef fwd_state1 bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - typedef bkwd_state0 state; - typedef iter1 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<2> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - - - typedef fwd_state2 bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter2 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<3> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - - - typedef fwd_state3 bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter3 iterator; - }; -}; - -template<> struct reverse_iter_fold_chunk<4> -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef fwd_state4 bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef iter4 iterator; - }; -}; - -template< long N > -struct reverse_iter_fold_chunk -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef First iter0; - typedef State fwd_state0; - typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; - typedef typename mpl::next::type iter1; - typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; - typedef typename mpl::next::type iter2; - typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; - typedef typename mpl::next::type iter3; - typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; - typedef typename mpl::next::type iter4; - - - typedef reverse_iter_fold_impl< - ( (N - 4) < 0 ? 0 : N - 4 ) - , iter4 - , Last - , fwd_state4 - , BackwardOp - , ForwardOp - > nested_chunk; - - typedef typename nested_chunk::state bkwd_state4; - typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; - typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; - typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; - typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; - - - typedef bkwd_state0 state; - typedef typename nested_chunk::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step; - -template< - typename Last - , typename State - > -struct reverse_iter_fold_null_step -{ - typedef Last iterator; - typedef State state; -}; - -template<> -struct reverse_iter_fold_chunk< -1 > -{ - template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > - struct result_ - { - typedef typename if_< - typename is_same< First,Last >::type - , reverse_iter_fold_null_step< Last,State > - , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp > - >::type res_; - - typedef typename res_::state state; - typedef typename res_::iterator iterator; - }; -}; - -template< - typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_step -{ - typedef reverse_iter_fold_chunk< -1 >::template result_< - typename mpl::next::type - , Last - , typename apply2< ForwardOp,State,First >::type - , BackwardOp - , ForwardOp - > nested_step; - - typedef typename apply2< - BackwardOp - , typename nested_step::state - , First - >::type state; - - typedef typename nested_step::iterator iterator; -}; - -template< - long N - , typename First - , typename Last - , typename State - , typename BackwardOp - , typename ForwardOp - > -struct reverse_iter_fold_impl - : reverse_iter_fold_chunk - ::template result_< First,Last,State,BackwardOp,ForwardOp > -{ -}; - -}}} diff --git a/3rdParty/Boost/boost/mpl/aux_/preprocessed/msvc70/s