From 35f72dccc8642af6942b10e0350d68754f5cddb2 Mon Sep 17 00:00:00 2001 From: Vasily Lobaskin Date: Sat, 21 Mar 2020 18:00:10 +0300 Subject: [PATCH 01/15] Update googletest submodule to release 1.8.1 --- deps/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/googletest b/deps/googletest index ff5ffd45..2fe3bd99 160000 --- a/deps/googletest +++ b/deps/googletest @@ -1 +1 @@ -Subproject commit ff5ffd457e032c8be8a64a7a94c824063c8b11e3 +Subproject commit 2fe3bd994b3189899d93f1d5a881e725e046fdc2 From e2b319acdeea375c4c631e8945f3c0a0560656bd Mon Sep 17 00:00:00 2001 From: Vasily Lobaskin Date: Sat, 21 Mar 2020 18:03:29 +0300 Subject: [PATCH 02/15] Add status section for compiler configuration --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 42386bcc..bb8ff9c7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,8 @@ find_package(Threads REQUIRED) set(CMAKE_VERBOSE_MAKEFILE true) +message(STATUS "Configure compiler") +message("Using ${CMAKE_CXX_COMPILER_ID}") if (${CMAKE_CXX_COMPILER_ID} MATCHES GNU) INCLUDE(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG(-std=c++11 HAVE_STD11) From ccb0df302d3f7939a18d039abb46ddaf2406d968 Mon Sep 17 00:00:00 2001 From: Vasily Lobaskin Date: Sat, 21 Mar 2020 20:35:43 +0300 Subject: [PATCH 03/15] Add gitignore section --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 230da54a..3663292c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +# Build artifacts _build cmake-build-* .idea From 6a8e550af171212b649f787fecd1781134c898e5 Mon Sep 17 00:00:00 2001 From: Vasily Lobaskin Date: Sat, 21 Mar 2020 20:36:32 +0300 Subject: [PATCH 04/15] Fix compiler flags for modern compilers --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bb8ff9c7..9a36477b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,7 @@ if (${CMAKE_CXX_COMPILER_ID} MATCHES GNU) endif() if (Uri_WARNINGS_AS_ERRORS) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-parentheses") endif() message("C++ Flags: ${CMAKE_CXX_FLAGS} link flags: ${CMAKE_CXX_LINK_FLAGS}") @@ -51,7 +51,7 @@ elseif(${CMAKE_CXX_COMPILER_ID} MATCHES Clang) endif() if (Uri_WARNINGS_AS_ERRORS) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-parentheses") endif() message("C++ Flags: ${CMAKE_CXX_FLAGS} link flags: ${CMAKE_CXX_LINK_FLAGS}") From 6b44b8d54f008ddbd3f9d9efd93875c5d537f766 Mon Sep 17 00:00:00 2001 From: Vasily Lobaskin Date: Sat, 21 Mar 2020 20:37:39 +0300 Subject: [PATCH 05/15] Fix path doc description --- include/network/uri/uri_builder.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/network/uri/uri_builder.hpp b/include/network/uri/uri_builder.hpp index 6c6d487b..87f0b792 100644 --- a/include/network/uri/uri_builder.hpp +++ b/include/network/uri/uri_builder.hpp @@ -164,7 +164,7 @@ class uri_builder { } /** - * \brief Adds a new path to the uri_builder. + * \brief Sets a new path to the uri_builder. * \param path The path. * \returns \c *this */ From b6737d828fbc02581b356e404234c3c3fa6ccf9d Mon Sep 17 00:00:00 2001 From: Vasily Lobaskin Date: Sat, 21 Mar 2020 20:54:34 +0300 Subject: [PATCH 06/15] Fix recursion on some compilers due to wrong copy_part method used --- src/detail/uri_advance_parts.cpp | 34 +++++++++++++++++--------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/detail/uri_advance_parts.cpp b/src/detail/uri_advance_parts.cpp index 6eec782c..b7b905f4 100644 --- a/src/detail/uri_advance_parts.cpp +++ b/src/detail/uri_advance_parts.cpp @@ -8,29 +8,32 @@ #include #include -namespace network { -namespace detail { +namespace network_detail = network::detail; +using network::detail::uri_part; +using network::string_view; + namespace { template uri_part copy_part(Iterator first, Iterator last, string_view::const_iterator &it) { auto part_first = it; std::advance(it, std::distance(first, last)); - return detail::uri_part(part_first, it); + return network_detail::uri_part(part_first, it); } } // namespace -uri_part copy_part(const std::string &uri, string_view::const_iterator &it) { - return copy_part(std::begin(uri), std::end(uri), it); +uri_part network_detail::copy_part(const std::string &uri, + string_view::const_iterator &it) { + return ::copy_part(std::begin(uri), std::end(uri), it); } -void advance_parts(string_view uri_view, uri_parts &parts, - const uri_parts &existing_parts) { +void network_detail::advance_parts(string_view uri_view, uri_parts &parts, + const uri_parts &existing_parts) { auto first = std::begin(uri_view); auto it = first; if (auto scheme = existing_parts.scheme) { - parts.scheme = copy_part(std::begin(*scheme), std::end(*scheme), it); + parts.scheme = ::copy_part(std::begin(*scheme), std::end(*scheme), it); // ignore : for all URIs if (*it == ':') { @@ -45,32 +48,31 @@ void advance_parts(string_view uri_view, uri_parts &parts, if (auto user_info = existing_parts.hier_part.user_info) { parts.hier_part.user_info = - copy_part(std::begin(*user_info), std::end(*user_info), it); + ::copy_part(std::begin(*user_info), std::end(*user_info), it); ++it; // ignore @ } if (auto host = existing_parts.hier_part.host) { - parts.hier_part.host = copy_part(std::begin(*host), std::end(*host), it); + parts.hier_part.host = ::copy_part(std::begin(*host), std::end(*host), it); } if (auto port = existing_parts.hier_part.port) { ++it; // ignore : - parts.hier_part.port = copy_part(std::begin(*port), std::end(*port), it); + parts.hier_part.port = ::copy_part(std::begin(*port), std::end(*port), it); } if (auto path = existing_parts.hier_part.path) { - parts.hier_part.path = copy_part(std::begin(*path), std::end(*path), it); + parts.hier_part.path = ::copy_part(std::begin(*path), std::end(*path), it); } if (auto query = existing_parts.query) { ++it; // ignore ? - parts.query = copy_part(std::begin(*query), std::end(*query), it); + parts.query = ::copy_part(std::begin(*query), std::end(*query), it); } if (auto fragment = existing_parts.fragment) { ++it; // ignore # - parts.fragment = copy_part(std::begin(*fragment), std::end(*fragment), it); + parts.fragment = + ::copy_part(std::begin(*fragment), std::end(*fragment), it); } } -} // namespace detail -} // namespace network From 0046c4f8be9eb372923b63bc3a30cd0d1ae86fd8 Mon Sep 17 00:00:00 2001 From: Vasily Lobaskin Date: Sat, 21 Mar 2020 21:00:24 +0300 Subject: [PATCH 07/15] Fix clang-format, remove useless states, update style according to used ones --- .clang-format | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.clang-format b/.clang-format index c82fea5e..44d76a27 100644 --- a/.clang-format +++ b/.clang-format @@ -1,7 +1,6 @@ BasedOnStyle: Google AccessModifierOffset: -1 ConstructorInitializerIndentWidth: 4 -AlignEscapedNewlinesLeft: true AlignTrailingComments: true AllowAllParametersOfDeclarationOnNextLine: true AllowShortIfStatementsOnASingleLine: true @@ -13,7 +12,7 @@ BreakConstructorInitializersBeforeComma: false BinPackParameters: true ColumnLimit: 80 ConstructorInitializerAllOnOneLineOrOnePerLine: true -DerivePointerBinding: true +DerivePointerAlignment: false ExperimentalAutoDetectBinPacking: false IndentCaseLabels: true MaxEmptyLinesToKeep: 1 @@ -23,7 +22,7 @@ PenaltyBreakString: 1000 PenaltyBreakFirstLessLess: 120 PenaltyExcessCharacter: 1000000 PenaltyReturnTypeOnItsOwnLine: 200 -PointerBindsToType: true +PointerAlignment: Right SpacesBeforeTrailingComments: 2 Cpp11BracedListStyle: true Standard: Auto @@ -31,8 +30,7 @@ IndentWidth: 2 TabWidth: 4 UseTab: false BreakBeforeBraces: Attach -IndentFunctionDeclarationAfterType: true +SortIncludes: false SpacesInParentheses: false SpaceInEmptyParentheses: false SpacesInCStyleCastParentheses: false -SpaceAfterControlStatementKeyword: true From cc58c814716e13fa941852e5351cc639cef0198a Mon Sep 17 00:00:00 2001 From: Vasily Lobaskin Date: Sat, 21 Mar 2020 21:02:42 +0300 Subject: [PATCH 08/15] Apply codestyle to all files --- include/network/optional.hpp | 234 +++++++++++------------ include/network/string_view.hpp | 39 ++-- include/network/uri.hpp | 2 +- include/network/uri/config.hpp | 5 +- include/network/uri/detail/encode.hpp | 2 + include/network/uri/detail/uri_parts.hpp | 8 +- include/network/uri/uri.hpp | 18 +- include/network/uri/uri_errors.hpp | 147 +++++++------- src/detail/algorithm.hpp | 27 ++- src/detail/grammar.hpp | 16 +- src/detail/uri_advance_parts.cpp | 2 +- src/detail/uri_advance_parts.hpp | 3 +- src/detail/uri_normalize.cpp | 20 +- src/detail/uri_parse.cpp | 114 ++++------- src/detail/uri_parse.hpp | 3 +- src/detail/uri_parse_authority.cpp | 40 ++-- src/detail/uri_parse_authority.hpp | 5 +- src/detail/uri_percent_encode.hpp | 18 +- src/detail/uri_resolve.cpp | 20 +- 19 files changed, 319 insertions(+), 404 deletions(-) diff --git a/include/network/optional.hpp b/include/network/optional.hpp index 43b1cf1f..90eb15b2 100644 --- a/include/network/optional.hpp +++ b/include/network/optional.hpp @@ -27,9 +27,9 @@ #else #define NETWORK_ASSERTED_EXPRESSION(CHECK, EXPR) \ ((CHECK) ? (EXPR) : (fail(#CHECK, __FILE__, __LINE__), (EXPR))) -inline void fail(const char*, const char*, unsigned) {} +inline void fail(const char *, const char *, unsigned) {} #endif // NDEBUG -#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) +#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) namespace network { /** @@ -42,7 +42,7 @@ struct nullopt_t { #if !defined(DOXYGEN_SHOULD_SKIP_THIS) struct init {}; constexpr nullopt_t(init) {} -#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) +#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) }; /** @@ -59,19 +59,18 @@ constexpr nullopt_t nullopt{nullopt_t::init{}}; */ class bad_optional_access : public std::logic_error { public: - /** * \brief Constructor. * \param what_arg The error message. */ - explicit bad_optional_access(const std::string& what_arg) + explicit bad_optional_access(const std::string &what_arg) : std::logic_error(what_arg) {} /** * \brief Constructor. * \param what_arg The error message. */ - explicit bad_optional_access(const char* what_arg) + explicit bad_optional_access(const char *what_arg) : std::logic_error(what_arg) {} }; @@ -88,7 +87,7 @@ union trivially_destructible_optional_storage { constexpr trivially_destructible_optional_storage() : dummy_{} {} - constexpr trivially_destructible_optional_storage(const T& v) : value_{v} {} + constexpr trivially_destructible_optional_storage(const T &v) : value_{v} {} ~trivially_destructible_optional_storage() = default; }; @@ -100,48 +99,42 @@ union optional_storage { constexpr optional_storage() : dummy_{} {} - constexpr optional_storage(const T& v) : value_{v} {} + constexpr optional_storage(const T &v) : value_{v} {} ~optional_storage() {} }; template class trivially_destructible_optional_base { -public: + public: typedef T value_type; constexpr trivially_destructible_optional_base() noexcept - : init_(false), - storage_{} {} + : init_(false), storage_{} {} - constexpr trivially_destructible_optional_base(const T& v) + constexpr trivially_destructible_optional_base(const T &v) : init_(true), storage_{v} {} - constexpr trivially_destructible_optional_base(T&& v) + constexpr trivially_destructible_optional_base(T &&v) : init_(true), storage_{std::move(v)} {} ~trivially_destructible_optional_base() = default; -protected: - + protected: bool init_; optional_storage storage_; }; template class optional_base { -public: + public: typedef T value_type; - constexpr optional_base() noexcept - : init_(false), - storage_{} {} + constexpr optional_base() noexcept : init_(false), storage_{} {} - constexpr optional_base(const T& v) - : init_(true), storage_{v} {} + constexpr optional_base(const T &v) : init_(true), storage_{v} {} - constexpr optional_base(T&& v) - : init_(true), storage_{std::move(v)} {} + constexpr optional_base(T &&v) : init_(true), storage_{std::move(v)} {} ~optional_base() { if (init_) { @@ -149,13 +142,12 @@ class optional_base { } } -protected: - + protected: bool init_; optional_storage storage_; }; -} // namespace details -#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) +} // namespace details +#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) /** * \ingroup optional @@ -164,18 +156,18 @@ class optional_base { */ #if !defined(DOXYGEN_SHOULD_SKIP_THIS) template -using optional_base = typename std::conditional< - std::is_trivially_destructible::value, - details::trivially_destructible_optional_base, - details::optional_base>::type; -#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) +using optional_base = + typename std::conditional::value, + details::trivially_destructible_optional_base, + details::optional_base>::type; +#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) template #if !defined(DOXYGEN_SHOULD_SKIP_THIS) class optional : optional_base { #else class optional { -#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) +#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) typedef optional_base base_type; public: @@ -200,9 +192,9 @@ class optional { * \brief Copy constructor. * \param other The other optional object. */ - optional(const optional& other) { + optional(const optional &other) { if (other) { - ::new(static_cast(ptr())) T(*other); + ::new (static_cast(ptr())) T(*other); base_type::init_ = true; } } @@ -211,9 +203,9 @@ class optional { * \brief Move constructor. * \param other The other optional object. */ - optional(optional&& other) noexcept { + optional(optional &&other) noexcept { if (other) { - ::new(static_cast(ptr())) T(std::move(other.storage_.value_)); + ::new (static_cast(ptr())) T(std::move(other.storage_.value_)); base_type::init_ = true; } } @@ -223,21 +215,21 @@ class optional { * \param value The value with which to initialize the optional object. * \post *engaged* */ - constexpr optional(const T& value) : optional_base(value) {} + constexpr optional(const T &value) : optional_base(value) {} /** * \brief Constructor. * \param value The value with which to initialize the optional object. * \post *engaged* */ - constexpr optional(T&& value) : optional_base(std::move(value)) {} + constexpr optional(T &&value) : optional_base(std::move(value)) {} /** * \brief Assignment operator. * \post *disengaged*. * \returns \c *this. */ - optional& operator=(nullopt_t) noexcept { + optional &operator=(nullopt_t) noexcept { if (base_type::init_) { ptr()->T::~T(); } @@ -250,16 +242,14 @@ class optional { * \param other The other optional object. * \returns \c *this. */ - optional& operator=(const optional& other) { - if (bool(*this) && !other) { + optional &operator=(const optional &other) { + if (bool(*this) && !other) { ptr()->T::~T(); base_type::init_ = false; - } - else if (!(*this) && bool(other)) { - ::new(static_cast(ptr())) T(*other); + } else if (!(*this) && bool(other)) { + ::new (static_cast(ptr())) T(*other); base_type::init_ = true; - } - else if (bool(*this) && bool(other)) { + } else if (bool(*this) && bool(other)) { base_type::storage_.value_ = *other; } return *this; @@ -270,16 +260,14 @@ class optional { * \param other The other optional object. * \returns \c *this. */ - optional& operator=(optional&& other) noexcept { - if (bool(*this) && !other) { + optional &operator=(optional &&other) noexcept { + if (bool(*this) && !other) { ptr()->T::~T(); base_type::init_ = false; - } - else if (!(*this) && bool(other)) { - ::new(static_cast(ptr())) T(std::move(*other)); + } else if (!(*this) && bool(other)) { + ::new (static_cast(ptr())) T(std::move(*other)); base_type::init_ = true; - } - else if (bool(*this) && bool(other)) { + } else if (bool(*this) && bool(other)) { base_type::storage_.value_ = std::move(*other); } return *this; @@ -294,18 +282,16 @@ class optional { * \brief Swap function. * \param other The other optional object. */ - void swap(optional& other) noexcept { - if (bool(*this) && !other) { - ::new(static_cast(other.ptr())) T(std::move(**this)); + void swap(optional &other) noexcept { + if (bool(*this) && !other) { + ::new (static_cast(other.ptr())) T(std::move(**this)); ptr()->T::~T(); std::swap(base_type::init_, other.base_type::init_); - } - else if (!(*this) && bool(other)) { - ::new(static_cast(ptr())) T(std::move(*other)); + } else if (!(*this) && bool(other)) { + ::new (static_cast(ptr())) T(std::move(*other)); other.ptr()->T::~T(); std::swap(base_type::init_, other.init_); - } - else if (bool(*this) && bool(other)) { + } else if (bool(*this) && bool(other)) { std::swap(**this, *other); } } @@ -315,7 +301,7 @@ class optional { * \pre *engaged* * \returns The underlying optional value. */ - constexpr T const* operator->() const { + constexpr T const *operator->() const { return NETWORK_ASSERTED_EXPRESSION(bool(*this), ptr()); } @@ -324,16 +310,14 @@ class optional { * \pre *engaged* * \returns The underlying optional value. */ - T* operator->() { - return NETWORK_ASSERTED_EXPRESSION(bool(*this), ptr()); - } + T *operator->() { return NETWORK_ASSERTED_EXPRESSION(bool(*this), ptr()); } /** * \brief Observer. * \pre *engaged* * \returns The underlying optional value. */ - constexpr T const& operator*() const { + constexpr T const &operator*() const { return NETWORK_ASSERTED_EXPRESSION(bool(*this), base_type::storage_.value_); } @@ -342,13 +326,14 @@ class optional { * \pre *engaged* * \returns The underlying optional value. */ - T& operator*() { + T &operator*() { return NETWORK_ASSERTED_EXPRESSION(bool(*this), base_type::storage_.value_); } /** * \brief Operator bool overloads. - * \returns \c true if the optional is *engaged*, \c false if it is *disengaged*. + * \returns \c true if the optional is *engaged*, \c false if it is + * *disengaged*. */ constexpr explicit operator bool() const noexcept { return base_type::init_; } @@ -356,7 +341,7 @@ class optional { * \returns The underlying optional value, if \c bool(*this). * \throws A bad_optional_access if \c !*this. */ - constexpr T const& value() const { + constexpr T const &value() const { return *this ? base_type::storage_.value_ : (throw bad_optional_access("Uninitialized optional value"), base_type::storage_.value_); @@ -365,47 +350,52 @@ class optional { * \returns The underlying optional value, if \c bool(*this). * \throws A bad_optional_access if \c !*this. */ - T& value() { + T &value() { return *this ? base_type::storage_.value_ : (throw bad_optional_access("Uninitialized optional value"), base_type::storage_.value_); } /** - * \returns bool(*this) ? **this : static_cast(std::forward(v)). - * \pre \c std::is_copy_constructible::value is \c true and std::is_convertible::value is \c true. + * \returns bool(*this) ? **this : + * static_cast(std::forward(v)). \pre \c + * std::is_copy_constructible::value is \c true and + * std::is_convertible::value is \c true. */ template - T value_or(U&& other) const & { - static_assert(std::is_copy_constructible::value, "Must be copy constructible."); - static_assert(std::is_convertible::value, "U must be convertible to T."); + T value_or(U &&other) const & { + static_assert(std::is_copy_constructible::value, + "Must be copy constructible."); + static_assert(std::is_convertible::value, + "U must be convertible to T."); return bool(*this) ? **this : static_cast(std::forward(other)); } /** - * \returns bool(*this) ? std::move(**this) : static_cast(std::forward(v)). - * \pre std::is_move_constructible::value is \c true and std::is_convertible::value is \c true. + * \returns bool(*this) ? std::move(**this) : + * static_cast(std::forward(v)). \pre + * std::is_move_constructible::value is \c true and + * std::is_convertible::value is \c true. */ template - T value_or(U&& other) && { - static_assert(std::is_copy_constructible::value, "Must be copy constructible."); - static_assert(std::is_convertible::value, "U must be convertible to T."); - return bool(*this) ? std::move(**this) : static_cast(std::forward(other)); + T value_or(U &&other) && { + static_assert(std::is_copy_constructible::value, + "Must be copy constructible."); + static_assert(std::is_convertible::value, + "U must be convertible to T."); + return bool(*this) ? std::move(**this) + : static_cast(std::forward(other)); } private: - - T* ptr() { - return std::addressof(base_type::storage_.value_); - } - + T *ptr() { return std::addressof(base_type::storage_.value_); } }; /** * \brief Equality operator. */ template -bool operator==(const optional& lhs, const optional& rhs) { +bool operator==(const optional &lhs, const optional &rhs) { if (bool(lhs) != bool(rhs)) { return false; } else if (!bool(lhs)) { @@ -419,7 +409,7 @@ bool operator==(const optional& lhs, const optional& rhs) { * \brief Inequality operator. */ template -bool operator!=(const optional& lhs, const optional& rhs) { +bool operator!=(const optional &lhs, const optional &rhs) { return !(lhs == rhs); } @@ -427,7 +417,7 @@ bool operator!=(const optional& lhs, const optional& rhs) { * \brief Comparison operator. */ template -bool operator<(const optional& lhs, const optional& rhs) { +bool operator<(const optional &lhs, const optional &rhs) { if (!rhs) { return false; } else if (!lhs) { @@ -442,7 +432,7 @@ bool operator<(const optional& lhs, const optional& rhs) { * \returns rhs < lhs. */ template -bool operator>(const optional& lhs, const optional& rhs) { +bool operator>(const optional &lhs, const optional &rhs) { return rhs < lhs; } @@ -451,7 +441,7 @@ bool operator>(const optional& lhs, const optional& rhs) { * \returns !(rhs < lhs). */ template -bool operator<=(const optional& lhs, const optional& rhs) { +bool operator<=(const optional &lhs, const optional &rhs) { return !(rhs < lhs); } @@ -460,7 +450,7 @@ bool operator<=(const optional& lhs, const optional& rhs) { * \returns !(rhs > lhs). */ template -bool operator>=(const optional& lhs, const optional& rhs) { +bool operator>=(const optional &lhs, const optional &rhs) { return !(lhs < rhs); } @@ -469,7 +459,7 @@ bool operator>=(const optional& lhs, const optional& rhs) { * \returns \c !x. */ template -bool operator==(const optional& x, nullopt_t) noexcept { +bool operator==(const optional &x, nullopt_t) noexcept { return !x; } @@ -478,7 +468,7 @@ bool operator==(const optional& x, nullopt_t) noexcept { * \returns \c !x. */ template -bool operator==(nullopt_t, const optional& x) noexcept { +bool operator==(nullopt_t, const optional &x) noexcept { return !x; } @@ -487,7 +477,7 @@ bool operator==(nullopt_t, const optional& x) noexcept { * \returns \c bool(x). */ template -bool operator!=(const optional& x, nullopt_t) noexcept { +bool operator!=(const optional &x, nullopt_t) noexcept { return bool(x); } @@ -496,7 +486,7 @@ bool operator!=(const optional& x, nullopt_t) noexcept { * \returns \c bool(x). */ template -bool operator!=(nullopt_t, const optional& x) noexcept { +bool operator!=(nullopt_t, const optional &x) noexcept { return bool(x); } @@ -505,7 +495,7 @@ bool operator!=(nullopt_t, const optional& x) noexcept { * \returns \c false. */ template -bool operator<(const optional& x, nullopt_t) noexcept { +bool operator<(const optional &x, nullopt_t) noexcept { return false; } @@ -514,7 +504,7 @@ bool operator<(const optional& x, nullopt_t) noexcept { * \returns \c bool(x). */ template -bool operator<(nullopt_t, const optional& x) noexcept { +bool operator<(nullopt_t, const optional &x) noexcept { return bool(x); } @@ -523,7 +513,7 @@ bool operator<(nullopt_t, const optional& x) noexcept { * \returns \c !x. */ template -bool operator<=(const optional& x, nullopt_t) noexcept { +bool operator<=(const optional &x, nullopt_t) noexcept { return !x; } @@ -532,7 +522,7 @@ bool operator<=(const optional& x, nullopt_t) noexcept { * \returns \c true. */ template -bool operator<=(nullopt_t, const optional& x) noexcept { +bool operator<=(nullopt_t, const optional &x) noexcept { return true; } @@ -541,7 +531,7 @@ bool operator<=(nullopt_t, const optional& x) noexcept { * \returns \c bool(x). */ template -bool operator>(const optional& x, nullopt_t) noexcept { +bool operator>(const optional &x, nullopt_t) noexcept { return bool(x); } @@ -550,7 +540,7 @@ bool operator>(const optional& x, nullopt_t) noexcept { * \returns \c false. */ template -bool operator>(nullopt_t, const optional& x) noexcept { +bool operator>(nullopt_t, const optional &x) noexcept { return false; } @@ -559,7 +549,7 @@ bool operator>(nullopt_t, const optional& x) noexcept { * \returns \c true. */ template -bool operator>=(const optional& x, nullopt_t) noexcept { +bool operator>=(const optional &x, nullopt_t) noexcept { return true; } @@ -568,7 +558,7 @@ bool operator>=(const optional& x, nullopt_t) noexcept { * \returns \c !x. */ template -bool operator>=(nullopt_t, const optional& x) noexcept { +bool operator>=(nullopt_t, const optional &x) noexcept { return !x; } @@ -577,7 +567,7 @@ bool operator>=(nullopt_t, const optional& x) noexcept { * \returns bool(x) ? *x == v : false. */ template -bool operator==(const optional& x, const T& v) { +bool operator==(const optional &x, const T &v) { return bool(x) ? *x == v : false; } @@ -586,7 +576,7 @@ bool operator==(const optional& x, const T& v) { * \returns bool(x) ? v == *x : false. */ template -bool operator==(const T& v, const optional& x) { +bool operator==(const T &v, const optional &x) { return bool(x) ? v == *x : false; } @@ -595,7 +585,7 @@ bool operator==(const T& v, const optional& x) { * \returns bool(x) ? !(*x == v) : true. */ template -bool operator!=(const optional& x, const T& v) { +bool operator!=(const optional &x, const T &v) { return bool(x) ? !(*x == v) : true; } @@ -604,7 +594,7 @@ bool operator!=(const optional& x, const T& v) { * \returns bool(x) ? !(v == *x) : true. */ template -bool operator!=(const T& v, const optional& x) { +bool operator!=(const T &v, const optional &x) { return bool(x) ? !(v == *x) : true; } @@ -613,7 +603,7 @@ bool operator!=(const T& v, const optional& x) { * \returns bool(x) ? *x < v : true. */ template -bool operator<(const optional& x, const T& v) { +bool operator<(const optional &x, const T &v) { return bool(x) ? *x < v : true; } @@ -622,7 +612,7 @@ bool operator<(const optional& x, const T& v) { * \returns bool(x) ? v < *x : false. */ template -bool operator<(const T& v, const optional& x) { +bool operator<(const T &v, const optional &x) { return bool(x) ? v < *x : false; } @@ -631,7 +621,7 @@ bool operator<(const T& v, const optional& x) { * \returns bool(x) ? *x < v : true. */ template -bool operator>(const optional& x, const T& v) { +bool operator>(const optional &x, const T &v) { return bool(x) ? *x < v : true; } @@ -640,7 +630,7 @@ bool operator>(const optional& x, const T& v) { * \returns bool(x) ? v < *x : false. */ template -bool operator>(const T& v, const optional& x) { +bool operator>(const T &v, const optional &x) { return bool(x) ? v < *x : false; } @@ -649,7 +639,7 @@ bool operator>(const T& v, const optional& x) { * \returns !(x < v). */ template -bool operator>=(const optional& x, const T& v) { +bool operator>=(const optional &x, const T &v) { return !(x < v); } @@ -658,7 +648,7 @@ bool operator>=(const optional& x, const T& v) { * \returns !(v < x). */ template -bool operator>=(const T& v, const optional& x) { +bool operator>=(const T &v, const optional &x) { return !(v < x); } @@ -667,7 +657,7 @@ bool operator>=(const T& v, const optional& x) { * \returns !(x > v). */ template -bool operator<=(const optional& x, const T& v) { +bool operator<=(const optional &x, const T &v) { return !(x > v); } @@ -676,7 +666,7 @@ bool operator<=(const optional& x, const T& v) { * \returns !(v > x). */ template -bool operator<=(const T& v, const optional& x) { +bool operator<=(const T &v, const optional &x) { return !(v > x); } @@ -692,18 +682,20 @@ bool operator<=(const T& v, const optional& x) { * \endcode */ template -inline void swap(optional& lhs, - optional& rhs) noexcept(noexcept(lhs.swap(rhs))) { +inline void swap(optional &lhs, + optional &rhs) noexcept(noexcept(lhs.swap(rhs))) { return lhs.swap(rhs); } /** * \ingroup optional * \brief A helper function to contruct an optional object. - * \returns optional::type>(std::forward(value)). + * \returns optional::type>(std::forward(value)). */ template -inline constexpr optional::type> make_optional(T&& value) { +inline constexpr optional::type> make_optional( + T &&value) { return optional::type>(std::forward(value)); } } // namespace network diff --git a/include/network/string_view.hpp b/include/network/string_view.hpp index df54e7aa..8ff7a5ef 100644 --- a/include/network/string_view.hpp +++ b/include/network/string_view.hpp @@ -27,11 +27,11 @@ class basic_string_view { public: typedef traits traits_type; typedef charT value_type; - typedef charT* pointer; - typedef const charT* const_pointer; - typedef charT& reference; - typedef const charT& const_reference; - typedef const charT* const_iterator; + typedef charT *pointer; + typedef const charT *const_pointer; + typedef charT &reference; + typedef const charT &const_reference; + typedef const charT *const_iterator; typedef const_iterator iterator; typedef std::reverse_iterator const_reverse_iterator; typedef const_reverse_iterator reverse_iterator; @@ -47,32 +47,31 @@ class basic_string_view { /** * \brief Copy constructor. */ - constexpr basic_string_view(const basic_string_view&) noexcept = default; + constexpr basic_string_view(const basic_string_view &) noexcept = default; /** * \brief Assignment operator. */ - basic_string_view& operator=(const basic_string_view&) noexcept = default; + basic_string_view &operator=(const basic_string_view &) noexcept = default; /** * \brief Constructor. */ template basic_string_view( - const std::basic_string& str) noexcept - : data_(str.data()), - size_(str.size()) {} + const std::basic_string &str) noexcept + : data_(str.data()), size_(str.size()) {} /** * \brief Constructor. */ - constexpr basic_string_view(const charT* str) + constexpr basic_string_view(const charT *str) : data_(str), size_(traits::length(str)) {} /** * \brief Constructor. */ - constexpr basic_string_view(const charT* str, size_type len) + constexpr basic_string_view(const charT *str, size_type len) : data_(str), size_(len) {} constexpr const_iterator begin() const noexcept { return data_; } @@ -133,7 +132,7 @@ class basic_string_view { void remove_suffix(size_type n) { size_ -= n; } - void swap(basic_string_view& s) noexcept { + void swap(basic_string_view &s) noexcept { std::swap(data_, s.data_); std::swap(size_, s.size_); } @@ -145,11 +144,11 @@ class basic_string_view { template > std::basic_string to_string( - const Allocator& a = Allocator()) const { + const Allocator &a = Allocator()) const { return std::basic_string(begin(), end(), a); } - size_type copy(charT* s, size_type n, size_type pos = 0) const { + size_type copy(charT *s, size_type n, size_type pos = 0) const { size_type rlen = std::min(n, size() - pos); std::copy_n(begin() + pos, rlen, s); return rlen; @@ -179,15 +178,15 @@ class basic_string_view { return substr(pos1, n1).compare(s.substr(pos2, n2)); } - constexpr int compare(const charT* s) const { + constexpr int compare(const charT *s) const { return compare(basic_string_view(s)); } - constexpr int compare(size_type pos1, size_type n1, const charT* s) const { + constexpr int compare(size_type pos1, size_type n1, const charT *s) const { return substr(pos1, n1).compare(basic_string_view(s)); } - constexpr int compare(size_type pos1, size_type n1, const charT* s, + constexpr int compare(size_type pos1, size_type n1, const charT *s, size_type n2) const { return substr(pos1, n1).compare(basic_string_view(s, n2)); } @@ -261,8 +260,8 @@ constexpr bool operator>=(basic_string_view lhs, * \brief Output stream operator. */ template -std::basic_ostream& operator<<( - std::basic_ostream& os, +std::basic_ostream &operator<<( + std::basic_ostream &os, basic_string_view str) { return os << str.to_string(); } diff --git a/include/network/uri.hpp b/include/network/uri.hpp index f3d86e09..602c009e 100644 --- a/include/network/uri.hpp +++ b/include/network/uri.hpp @@ -35,4 +35,4 @@ #include #include -#endif // NETWORK_URI_HPP +#endif // NETWORK_URI_HPP diff --git a/include/network/uri/config.hpp b/include/network/uri/config.hpp index 39c3b58c..aa03cd2e 100644 --- a/include/network/uri/config.hpp +++ b/include/network/uri/config.hpp @@ -7,7 +7,8 @@ /** * \file - * \brief Contains macros to configure compiler or platform-specific workarounds. + * \brief Contains macros to configure compiler or platform-specific + * workarounds. */ #ifndef NETWORK_URI_CONFIG_INC @@ -17,4 +18,4 @@ #define NETWORK_URI_MSVC _MSC_VER #endif // _MSC_VER -#endif // NETWORK_URI_CONFIG_INC +#endif // NETWORK_URI_CONFIG_INC diff --git a/include/network/uri/detail/encode.hpp b/include/network/uri/detail/encode.hpp index be1dec9f..3484ec13 100644 --- a/include/network/uri/detail/encode.hpp +++ b/include/network/uri/detail/encode.hpp @@ -38,6 +38,7 @@ void percent_encode(charT in, OutputIterator &out) { template bool is_unreserved(charT in) { + // clang-format off return ((in >= 'a') && (in <= 'z')) || ((in >= 'A') && (in <= 'Z')) || ((in >= '0') && (in <= '9')) || @@ -45,6 +46,7 @@ bool is_unreserved(charT in) { (in == '.') || (in == '_') || (in == '~'); + // clang-format on } template diff --git a/include/network/uri/detail/uri_parts.hpp b/include/network/uri/detail/uri_parts.hpp index 17a69687..f158927b 100644 --- a/include/network/uri/detail/uri_parts.hpp +++ b/include/network/uri/detail/uri_parts.hpp @@ -41,11 +41,11 @@ class uri_part { return first; } - difference_type length() const noexcept { - return last - first; - } + difference_type length() const noexcept { return last - first; } - string_view to_string_view() const noexcept { return string_view(ptr(), length()); } + string_view to_string_view() const noexcept { + return string_view(ptr(), length()); + } private: const_iterator first, last; diff --git a/include/network/uri/uri.hpp b/include/network/uri/uri.hpp index 2d141657..8a7de5b4 100644 --- a/include/network/uri/uri.hpp +++ b/include/network/uri/uri.hpp @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -577,8 +576,8 @@ class uri { * \returns The iterator at the end + 1th in the output sequence. */ template - static OutputIter encode_query_component( - InputIter first, InputIter last, OutputIter out) { + static OutputIter encode_query_component(InputIter first, InputIter last, + OutputIter out) { return detail::encode_query_component(first, last, out); } @@ -594,10 +593,11 @@ class uri { * \returns The iterator at the end + 1th in the output sequence. */ template - static OutputIter encode_query_key_value_pair( - InputIter key_first, InputIter key_last, - InputIter value_first, InputIter value_last, - OutputIter out) { + static OutputIter encode_query_key_value_pair(InputIter key_first, + InputIter key_last, + InputIter value_first, + InputIter value_last, + OutputIter out) { out = detail::encode_query_component(key_first, key_last, out); out++ = '='; return detail::encode_query_component(value_first, value_last, out); @@ -676,8 +676,8 @@ inline uri make_uri(const Source &source, std::error_code &ec) { void swap(uri &lhs, uri &rhs) noexcept; /** -* \brief Equality operator for the \c uri. -*/ + * \brief Equality operator for the \c uri. + */ bool operator==(const uri &lhs, const uri &rhs) noexcept; /** diff --git a/include/network/uri/uri_errors.hpp b/include/network/uri/uri_errors.hpp index a192533d..f97bbf82 100644 --- a/include/network/uri/uri_errors.hpp +++ b/include/network/uri/uri_errors.hpp @@ -15,108 +15,99 @@ #include #ifdef NETWORK_URI_MSVC -# pragma warning(push) -# pragma warning(disable : 4251 4231 4660) - // Disable C4275 too because it's "essentially noise and can be silenced" - // according to Stephen T. Lavavej at Microsoft. See: - // https://connect.microsoft.com/VisualStudio/feedback/details/696593/vc-10-vs-2010-basic-string-exports. -# pragma warning(disable : 4275) +#pragma warning(push) +#pragma warning(disable : 4251 4231 4660) +// Disable C4275 too because it's "essentially noise and can be silenced" +// according to Stephen T. Lavavej at Microsoft. See: +// https://connect.microsoft.com/VisualStudio/feedback/details/696593/vc-10-vs-2010-basic-string-exports. +#pragma warning(disable : 4275) #endif namespace network { #if !defined(DOXYGEN_SHOULD_SKIP_THIS) - enum class uri_error { +enum class uri_error { - // parser errors - invalid_syntax = 1, + // parser errors + invalid_syntax = 1, - // builder errors - invalid_uri, - invalid_scheme, - invalid_user_info, - invalid_host, - invalid_port, - invalid_path, - invalid_query, - invalid_fragment, + // builder errors + invalid_uri, + invalid_scheme, + invalid_user_info, + invalid_host, + invalid_port, + invalid_path, + invalid_query, + invalid_fragment, - // encoding errors - not_enough_input, - non_hex_input, - conversion_failed, - }; + // encoding errors + not_enough_input, + non_hex_input, + conversion_failed, +}; - const std::error_category &uri_category(); +const std::error_category &uri_category(); - std::error_code make_error_code(uri_error e); -#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) +std::error_code make_error_code(uri_error e); +#endif // !defined(DOXYGEN_SHOULD_SKIP_THIS) +/** + * \class uri_syntax_error uri.hpp network/uri.hpp + * \brief An exception thrown by the \c uri constructor when a URI + * cannot be parsed. + */ +class uri_syntax_error : public std::system_error { + public: /** - * \class uri_syntax_error uri.hpp network/uri.hpp - * \brief An exception thrown by the \c uri constructor when a URI - * cannot be parsed. + * \brief Constructor. */ - class uri_syntax_error : public std::system_error { - - public: - - /** - * \brief Constructor. - */ - uri_syntax_error(); - - /** - * \brief Destructor. - */ - virtual ~uri_syntax_error() noexcept; - - }; + uri_syntax_error(); /** - * \class uri_builder_error uri.hpp network/uri.hpp - * \brief An exception thrown when the \c uri_builder cannot build a - * valid URI. + * \brief Destructor. */ - class uri_builder_error : public std::system_error { - - public: - - /** - * \brief Constructor. - */ - uri_builder_error(); - - /** - * \brief Destructor. - */ - virtual ~uri_builder_error() noexcept; - - }; + virtual ~uri_syntax_error() noexcept; +}; +/** + * \class uri_builder_error uri.hpp network/uri.hpp + * \brief An exception thrown when the \c uri_builder cannot build a + * valid URI. + */ +class uri_builder_error : public std::system_error { + public: /** - * \class percent_decoding_error uri.hpp network/uri.hpp - * \brief An exception thrown when during percent decoding. + * \brief Constructor. */ - class percent_decoding_error : public std::system_error { - - public: + uri_builder_error(); - /** - * \brief Constructor. - */ - explicit percent_decoding_error(uri_error error); + /** + * \brief Destructor. + */ + virtual ~uri_builder_error() noexcept; +}; - /** - * \brief Destructor. - */ - virtual ~percent_decoding_error() noexcept; +/** + * \class percent_decoding_error uri.hpp network/uri.hpp + * \brief An exception thrown when during percent decoding. + */ +class percent_decoding_error : public std::system_error { + public: + /** + * \brief Constructor. + */ + explicit percent_decoding_error(uri_error error); - }; -} // namespace network + /** + * \brief Destructor. + */ + virtual ~percent_decoding_error() noexcept; +}; +} // namespace network #ifdef NETWORK_URI_MSVC #pragma warning(pop) #endif -#endif // NETWORK_URI_ERRORS_INC +#endif // NETWORK_URI_ERRORS_INC diff --git a/src/detail/algorithm.hpp b/src/detail/algorithm.hpp index 2358af9a..6db27e48 100644 --- a/src/detail/algorithm.hpp +++ b/src/detail/algorithm.hpp @@ -16,55 +16,52 @@ namespace network { namespace detail { template -inline void for_each(Rng& rng, Pred&& pred) { +inline void for_each(Rng &rng, Pred &&pred) { std::for_each(std::begin(rng), std::end(rng), pred); } template -inline void transform(Rng& rng, Iter out, Pred&& pred) { +inline void transform(Rng &rng, Iter out, Pred &&pred) { std::transform(std::begin(rng), std::end(rng), out, pred); } template -inline typename Rng::difference_type distance(Rng& rng) { +inline typename Rng::difference_type distance(Rng &rng) { return std::distance(std::begin(rng), std::end(rng)); } template -inline bool equal(const Rng1& rng1, const Rng2& rng2) { +inline bool equal(const Rng1 &rng1, const Rng2 &rng2) { return std::equal(std::begin(rng1), std::end(rng1), std::begin(rng2)); } template -inline void remove_erase_if(Rng& rng, Pred&& pred) { +inline void remove_erase_if(Rng &rng, Pred &&pred) { auto first = std::begin(rng), last = std::end(rng); auto it = std::remove_if(first, last, pred); rng.erase(it, last); } -inline std::string trim_front(const std::string& str) { +inline std::string trim_front(const std::string &str) { auto first = std::begin(str), last = std::end(str); - auto it = std::find_if(first, last, [](char ch) { - return !std::isspace(ch, std::locale()); - }); + auto it = std::find_if( + first, last, [](char ch) { return !std::isspace(ch, std::locale()); }); return std::string(it, last); } -inline std::string trim_back(const std::string& str) { +inline std::string trim_back(const std::string &str) { using reverse_iterator = std::reverse_iterator; auto first = reverse_iterator(std::end(str)), last = reverse_iterator(std::begin(str)); - auto it = std::find_if(first, last, [](char ch) { - return !std::isspace(ch, std::locale()); - }); + auto it = std::find_if( + first, last, [](char ch) { return !std::isspace(ch, std::locale()); }); std::string result(it, last); std::reverse(std::begin(result), std::end(result)); return result; } -inline -std::string trim_copy(const std::string &str) { +inline std::string trim_copy(const std::string &str) { return trim_back(trim_front(str)); } } // namespace detail diff --git a/src/detail/grammar.hpp b/src/detail/grammar.hpp index 7e4a9fe3..7630b4ca 100644 --- a/src/detail/grammar.hpp +++ b/src/detail/grammar.hpp @@ -61,8 +61,6 @@ inline bool is_ucschar(string_view::const_iterator &it, return false; } - - return false; } @@ -109,18 +107,14 @@ inline bool is_pct_encoded(string_view::const_iterator &it, inline bool is_pchar(string_view::const_iterator &it, string_view::const_iterator last) { - return - is_unreserved(it, last) || - is_pct_encoded(it, last) || - is_sub_delim(it, last) || - is_in(it, last, ":@") || - is_ucschar(it, last) - ; + return is_unreserved(it, last) || is_pct_encoded(it, last) || + is_sub_delim(it, last) || is_in(it, last, ":@") || + is_ucschar(it, last); } inline bool is_valid_port(string_view::const_iterator it) { - const char* port_first = &(*it); - char* port_last = 0; + const char *port_first = &(*it); + char *port_last = 0; unsigned long value = std::strtoul(port_first, &port_last, 10); return (value < std::numeric_limits::max()); } diff --git a/src/detail/uri_advance_parts.cpp b/src/detail/uri_advance_parts.cpp index b7b905f4..7fe35a1c 100644 --- a/src/detail/uri_advance_parts.cpp +++ b/src/detail/uri_advance_parts.cpp @@ -9,8 +9,8 @@ #include namespace network_detail = network::detail; -using network::detail::uri_part; using network::string_view; +using network::detail::uri_part; namespace { template diff --git a/src/detail/uri_advance_parts.hpp b/src/detail/uri_advance_parts.hpp index 4d9fd767..6b3eb7e3 100644 --- a/src/detail/uri_advance_parts.hpp +++ b/src/detail/uri_advance_parts.hpp @@ -10,8 +10,7 @@ namespace network { namespace detail { -uri_part copy_part(const std::string &part, - string_view::const_iterator &it); +uri_part copy_part(const std::string &part, string_view::const_iterator &it); void advance_parts(string_view uri_view, uri_parts &parts, const uri_parts &existing_parts); diff --git a/src/detail/uri_normalize.cpp b/src/detail/uri_normalize.cpp index dd84c893..a6846f93 100644 --- a/src/detail/uri_normalize.cpp +++ b/src/detail/uri_normalize.cpp @@ -11,7 +11,7 @@ #include #include namespace network_boost = boost; -#else // NETWORK_URI_EXTERNAL_BOOST +#else // NETWORK_URI_EXTERNAL_BOOST #include "../boost/algorithm/string/split.hpp" #include "../boost/algorithm/string/join.hpp" #endif // NETWORK_URI_EXTERNAL_BOOST @@ -27,23 +27,20 @@ std::string normalize_path_segments(string_view path) { if (!path.empty()) { std::vector path_segments; - network_boost::split(path_segments, path, [](char ch) { - return ch == '/'; - }); + network_boost::split(path_segments, path, + [](char ch) { return ch == '/'; }); bool last_segment_is_slash = path_segments.back().empty(); std::vector normalized_segments; for (const auto &segment : path_segments) { if (segment.empty() || (segment == ".")) { continue; - } - else if (segment == "..") { + } else if (segment == "..") { if (normalized_segments.empty()) { throw uri_builder_error(); } normalized_segments.pop_back(); - } - else { + } else { normalized_segments.push_back(segment); } } @@ -72,10 +69,9 @@ std::string normalize_path(string_view path, uri_comparison_level level) { detail::for_each(result, percent_encoded_to_upper()); // % encoding normalization - result.erase( - detail::decode_encoded_unreserved_chars(std::begin(result), - std::end(result)), - std::end(result)); + result.erase(detail::decode_encoded_unreserved_chars(std::begin(result), + std::end(result)), + std::end(result)); // % path segment normalization result = normalize_path_segments(result); diff --git a/src/detail/uri_parse.cpp b/src/detail/uri_parse.cpp index 46dd1b0f..7f771480 100644 --- a/src/detail/uri_parse.cpp +++ b/src/detail/uri_parse.cpp @@ -12,12 +12,7 @@ namespace network { namespace detail { namespace { -enum class uri_state { - scheme, - hier_part, - query, - fragment -}; +enum class uri_state { scheme, hier_part, query, fragment }; enum class hier_part_state { first_slash, @@ -44,8 +39,7 @@ bool validate_scheme(string_view::const_iterator &it, while (it != last) { if (*it == ':') { break; - } - else if (!isalnum(it, last) && !is_in(it, last, "+-.")) { + } else if (!isalnum(it, last) && !is_in(it, last, "+-.")) { return false; } } @@ -56,10 +50,8 @@ bool validate_scheme(string_view::const_iterator &it, bool validate_user_info(string_view::const_iterator it, string_view::const_iterator last) { while (it != last) { - if (!is_unreserved(it, last) && - !is_pct_encoded(it, last) && - !is_sub_delim(it, last) && - !is_in(it, last, ":")) { + if (!is_unreserved(it, last) && !is_pct_encoded(it, last) && + !is_sub_delim(it, last) && !is_in(it, last, ":")) { return false; } } @@ -72,8 +64,7 @@ bool set_host_and_port(string_view::const_iterator first, uri_parts &parts) { if (first >= last_colon) { parts.hier_part.host = uri_part(first, last); - } - else { + } else { auto port_start = last_colon; ++port_start; parts.hier_part.host = uri_part(first, last_colon); @@ -94,7 +85,7 @@ bool validate_fragment(string_view::const_iterator &it, } return true; } -} // namespace +} // namespace bool parse(string_view::const_iterator &it, string_view::const_iterator last, uri_parts &parts) { @@ -111,8 +102,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, // move past the scheme delimiter ++it; state = uri_state::hier_part; - } - else { + } else { return false; } @@ -128,25 +118,21 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, first = it; ++it; continue; - } - else { + } else { hp_state = hier_part_state::path; first = it; } - } - else if (hp_state == hier_part_state::second_slash) { + } else if (hp_state == hier_part_state::second_slash) { if (*it == '/') { hp_state = hier_part_state::authority; ++it; first = it; continue; - } - else { + } else { // it's a valid URI, and this is the beginning of the path hp_state = hier_part_state::path; } - } - else if (hp_state == hier_part_state::authority) { + } else if (hp_state == hier_part_state::authority) { if (is_in(first, last, "@:")) { return false; } @@ -171,17 +157,14 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, } continue; - } - else if (*it == '[') { + } else if (*it == '[') { // this is an IPv6 address hp_state = hier_part_state::host_ipv6; first = it; continue; - } - else if (*it == ':') { + } else if (*it == ':') { last_colon = it; - } - else if (*it == '/') { + } else if (*it == '/') { // we skipped right past the host and port, and are at the path. if (!set_host_and_port(first, it, last_colon, parts)) { return false; @@ -189,8 +172,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, hp_state = hier_part_state::path; first = it; continue; - } - else if (*it == '?') { + } else if (*it == '?') { // the path is empty, but valid, and the next part is the query if (!set_host_and_port(first, it, last_colon, parts)) { return false; @@ -200,8 +182,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, ++it; first = it; break; - } - else if (*it == '#') { + } else if (*it == '#') { // the path is empty, but valid, and the next part is the fragment if (!set_host_and_port(first, it, last_colon, parts)) { return false; @@ -212,8 +193,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, first = it; break; } - } - else if (hp_state == hier_part_state::host) { + } else if (hp_state == hier_part_state::host) { if (*first == ':') { return false; } @@ -224,14 +204,12 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, ++it; first = it; continue; - } - else if (*it == '/') { + } else if (*it == '/') { parts.hier_part.host = uri_part(first, it); hp_state = hier_part_state::path; first = it; continue; - } - else if (*it == '?') { + } else if (*it == '?') { // the path is empty, but valid, and the next part is the query parts.hier_part.host = uri_part(first, it); parts.hier_part.path = uri_part(it, it); @@ -239,8 +217,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, ++it; first = it; break; - } - else if (*it == '#') { + } else if (*it == '#') { // the path is empty, but valid, and the next part is the fragment parts.hier_part.host = uri_part(first, it); parts.hier_part.path = uri_part(it, it); @@ -249,8 +226,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, first = it; break; } - } - else if (hp_state == hier_part_state::host_ipv6) { + } else if (hp_state == hier_part_state::host_ipv6) { if (*first != '[') { return false; } @@ -260,27 +236,23 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, // Then test if the next part is a host, part, or the end of the file if (it == last) { break; - } - else if (*it == ':') { + } else if (*it == ':') { parts.hier_part.host = uri_part(first, it); hp_state = hier_part_state::port; ++it; first = it; - } - else if (*it == '/') { + } else if (*it == '/') { parts.hier_part.host = uri_part(first, it); hp_state = hier_part_state::path; first = it; - } - else if (*it == '?') { + } else if (*it == '?') { parts.hier_part.host = uri_part(first, it); parts.hier_part.path = uri_part(it, it); state = uri_state::query; ++it; first = it; break; - } - else if (*it == '#') { + } else if (*it == '#') { parts.hier_part.host = uri_part(first, it); parts.hier_part.path = uri_part(it, it); state = uri_state::fragment; @@ -290,8 +262,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, } continue; } - } - else if (hp_state == hier_part_state::port) { + } else if (hp_state == hier_part_state::port) { if (*first == '/') { // the port is empty, but valid if (!is_valid_port(first)) { @@ -312,13 +283,11 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, hp_state = hier_part_state::path; first = it; continue; - } - else if (!isdigit(it, last)) { + } else if (!isdigit(it, last)) { return false; } continue; - } - else if (hp_state == hier_part_state::path) { + } else if (hp_state == hier_part_state::path) { if (*it == '?') { parts.hier_part.path = uri_part(first, it); // move past the query delimiter @@ -326,8 +295,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, first = it; state = uri_state::query; break; - } - else if (*it == '#') { + } else if (*it == '#') { parts.hier_part.path = uri_part(first, it); // move past the fragment delimiter ++it; @@ -338,8 +306,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, if (!is_pchar(it, last) && !is_in(it, last, "/")) { return false; - } - else { + } else { continue; } } @@ -358,8 +325,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, first = it; state = uri_state::fragment; break; - } - else { + } else { return false; } } @@ -383,8 +349,7 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, return false; } parts.hier_part.path = uri_part(last, last); - } - else if (hp_state == hier_part_state::host) { + } else if (hp_state == hier_part_state::host) { if (first == last) { return false; } @@ -393,28 +358,23 @@ bool parse(string_view::const_iterator &it, string_view::const_iterator last, return false; } parts.hier_part.path = uri_part(last, last); - } - else if (hp_state == hier_part_state::host_ipv6) { + } else if (hp_state == hier_part_state::host_ipv6) { if (!set_host_and_port(first, last, last_colon, parts)) { return false; } parts.hier_part.path = uri_part(last, last); - } - else if (hp_state == hier_part_state::port) { + } else if (hp_state == hier_part_state::port) { if (!is_valid_port(first)) { return false; } parts.hier_part.port = uri_part(first, last); parts.hier_part.path = uri_part(last, last); - } - else if (hp_state == hier_part_state::path) { + } else if (hp_state == hier_part_state::path) { parts.hier_part.path = uri_part(first, last); } - } - else if (state == uri_state::query) { + } else if (state == uri_state::query) { parts.query = uri_part(first, last); - } - else if (state == uri_state::fragment) { + } else if (state == uri_state::fragment) { parts.fragment = uri_part(first, last); } diff --git a/src/detail/uri_parse.hpp b/src/detail/uri_parse.hpp index 73835c36..5eb5420b 100644 --- a/src/detail/uri_parse.hpp +++ b/src/detail/uri_parse.hpp @@ -12,7 +12,8 @@ namespace network { namespace detail { struct uri_parts; -bool parse(string_view::const_iterator &first, string_view::const_iterator last, uri_parts &parts); +bool parse(string_view::const_iterator &first, string_view::const_iterator last, + uri_parts &parts); } // namespace detail } // namespace network diff --git a/src/detail/uri_parse_authority.cpp b/src/detail/uri_parse_authority.cpp index 0db307f1..29b7de7f 100644 --- a/src/detail/uri_parse_authority.cpp +++ b/src/detail/uri_parse_authority.cpp @@ -12,18 +12,12 @@ namespace network { namespace detail { namespace { -enum class authority_state { - user_info, - host, - host_ipv6, - port -}; +enum class authority_state { user_info, host, host_ipv6, port }; } // namespace bool parse_authority(string_view::const_iterator &it, string_view::const_iterator last, - optional &user_info, - optional &host, + optional &user_info, optional &host, optional &port) { auto first = it; @@ -40,23 +34,21 @@ bool parse_authority(string_view::const_iterator &it, ++it; first = it; continue; - } - else if (*it == '[') { + } else if (*it == '[') { // this is an IPv6 address state = authority_state::host_ipv6; first = it; continue; - } - else if (*it == ':') { - // this is actually the host, and the next part is expected to be the port + } else if (*it == ':') { + // this is actually the host, and the next part is expected to be the + // port host = uri_part(first, it); state = authority_state::port; ++it; first = it; continue; } - } - else if (state == authority_state::host) { + } else if (state == authority_state::host) { if (*first == ':') { return false; } @@ -68,8 +60,7 @@ bool parse_authority(string_view::const_iterator &it, first = it; continue; } - } - else if (state == authority_state::host_ipv6) { + } else if (state == authority_state::host_ipv6) { if (*first != '[') { return false; } @@ -80,16 +71,14 @@ bool parse_authority(string_view::const_iterator &it, // Then test if the next part is a host, part, or the end of the file if (it == last) { break; - } - else if (*it == ':') { + } else if (*it == ':') { host = uri_part(first, it); state = authority_state::port; ++it; first = it; } } - } - else if (state == authority_state::port) { + } else if (state == authority_state::port) { if (*first == '/') { // the port is empty, but valid port = uri_part(first, it); @@ -110,14 +99,11 @@ bool parse_authority(string_view::const_iterator &it, if (state == authority_state::user_info) { host = uri_part(first, last); - } - else if (state == authority_state::host) { + } else if (state == authority_state::host) { host = uri_part(first, last); - } - else if (state == authority_state::host_ipv6) { + } else if (state == authority_state::host_ipv6) { host = uri_part(first, last); - } - else if (state == authority_state::port) { + } else if (state == authority_state::port) { port = uri_part(first, last); if (!is_valid_port(std::begin(*port))) { return false; diff --git a/src/detail/uri_parse_authority.hpp b/src/detail/uri_parse_authority.hpp index cb371042..df1d7d5b 100644 --- a/src/detail/uri_parse_authority.hpp +++ b/src/detail/uri_parse_authority.hpp @@ -12,10 +12,9 @@ namespace network { namespace detail { bool parse_authority(string_view::const_iterator &first, string_view::const_iterator last, - optional &user_info, - optional &host, + optional &user_info, optional &host, optional &port); } // namespace detail } // namespace network -#endif // NETWORK_DETAIL_URI_PARSE_AUTHORITY_INC +#endif // NETWORK_DETAIL_URI_PARSE_AUTHORITY_INC diff --git a/src/detail/uri_percent_encode.hpp b/src/detail/uri_percent_encode.hpp index ab5134db..0f39a472 100644 --- a/src/detail/uri_percent_encode.hpp +++ b/src/detail/uri_percent_encode.hpp @@ -43,17 +43,16 @@ struct percent_encoded_to_upper { template Iter decode_encoded_unreserved_chars(Iter first, Iter last) { - // unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" - - const auto is_unreserved = [](char c) - { + // clang-format off + const auto is_unreserved = [](char c) { return std::isalnum(c, std::locale()) || '-' == c || '.' == c || '_' == c || '~' == c; - }; + }; + // clang-format on auto it = first, it2 = first; while (it != last) { @@ -62,15 +61,16 @@ Iter decode_encoded_unreserved_chars(Iter first, Iter last) { const auto opt_char = percent_encode(sfirst); if (opt_char && is_unreserved(*opt_char)) { *it2 = *opt_char; - ++it; ++it; + ++it; + ++it; } else { *it2 = *it; } - } - else { + } else { *it2 = *it; } - ++it; ++it2; + ++it; + ++it2; } return it2; } diff --git a/src/detail/uri_resolve.cpp b/src/detail/uri_resolve.cpp index c8882690..195f6536 100644 --- a/src/detail/uri_resolve.cpp +++ b/src/detail/uri_resolve.cpp @@ -13,7 +13,7 @@ #include #include namespace network_boost = boost; -#else // NETWORK_URI_EXTERNAL_BOOST +#else // NETWORK_URI_EXTERNAL_BOOST #include "../boost/algorithm/string/find.hpp" #include "../boost/algorithm/string/erase.hpp" #include "../boost/algorithm/string/replace.hpp" @@ -23,8 +23,7 @@ namespace network_boost = boost; namespace network { namespace detail { // remove_dot_segments -inline -void remove_last_segment(std::string& path) { +inline void remove_last_segment(std::string &path) { while (!path.empty()) { if (path.back() == '/') { path.pop_back(); @@ -35,8 +34,7 @@ void remove_last_segment(std::string& path) { } // implementation of http://tools.ietf.org/html/rfc3986#section-5.2.4 -static -std::string remove_dot_segments(std::string input) { +static std::string remove_dot_segments(std::string input) { std::string result; while (!input.empty()) { @@ -54,11 +52,11 @@ std::string remove_dot_segments(std::string input) { } else if (network_boost::starts_with(input, "/..")) { network_boost::replace_head(input, 3, "/"); remove_last_segment(result); - } else if (network_boost::algorithm::all(input, [](char ch) { return ch == '.'; })) { + } else if (network_boost::algorithm::all( + input, [](char ch) { return ch == '.'; })) { input.clear(); - } - else { - int n = (input.front() == '/')? 1 : 0; + } else { + int n = (input.front() == '/') ? 1 : 0; auto slash = network_boost::find_nth(input, "/", n); result.append(std::begin(input), std::begin(slash)); input.erase(std::begin(input), std::begin(slash)); @@ -72,13 +70,13 @@ std::string remove_dot_segments(string_view path) { } // implementation of http://tools.ietf.org/html/rfc3986#section-5.2.3 -std::string merge_paths(const uri& base, const uri& reference) { +std::string merge_paths(const uri &base, const uri &reference) { std::string result; if (!base.has_path() || base.path().empty()) { result = "/"; } else { - const auto& base_path = base.path(); + const auto &base_path = base.path(); auto last_slash = network_boost::find_last(base_path, "/"); result.append(std::begin(base_path), std::end(last_slash)); } From f2f44d7299f0e6059f54c1158ae79b8892265beb Mon Sep 17 00:00:00 2001 From: Vasily Lobaskin Date: Sat, 21 Mar 2020 21:32:10 +0300 Subject: [PATCH 09/15] Apply codestyle to leftovers sources --- src/uri.cpp | 95 +++++++++++++++++++++----------------------- src/uri_builder.cpp | 19 +++++---- src/uri_errors.cpp | 97 ++++++++++++++++++++++----------------------- 3 files changed, 101 insertions(+), 110 deletions(-) diff --git a/src/uri.cpp b/src/uri.cpp index 9910423d..b4b71888 100644 --- a/src/uri.cpp +++ b/src/uri.cpp @@ -149,7 +149,7 @@ void uri::initialize(optional scheme, } if (path) { - uri_parts_.hier_part.path = detail::copy_part(*path, it); + uri_parts_.hier_part.path = detail::copy_part(*path, it); } if (query) { @@ -174,9 +174,10 @@ uri::uri(const uri_builder &builder) { builder.path_, builder.query_, builder.fragment_); } -uri::uri(uri &&other) noexcept : uri_(std::move(other.uri_)), - uri_view_(uri_), - uri_parts_(std::move(other.uri_parts_)) { +uri::uri(uri &&other) noexcept + : uri_(std::move(other.uri_)), + uri_view_(uri_), + uri_parts_(std::move(other.uri_parts_)) { detail::advance_parts(uri_view_, uri_parts_, other.uri_parts_); other.uri_.clear(); other.uri_view_ = string_view(other.uri_); @@ -220,9 +221,8 @@ bool uri::has_user_info() const noexcept { } uri::string_view uri::user_info() const noexcept { - return has_user_info() - ? to_string_view(uri_, *uri_parts_.hier_part.user_info) - : string_view{}; + return has_user_info() ? to_string_view(uri_, *uri_parts_.hier_part.user_info) + : string_view{}; } bool uri::has_host() const noexcept { @@ -263,50 +263,48 @@ uri::string_view uri::query() const noexcept { uri::query_iterator::query_iterator() : query_{}, kvp_{} {} uri::query_iterator::query_iterator(optional query) - : query_(query) - , kvp_{} { + : query_(query), kvp_{} { if (query_ && query_->empty()) { query_ = nullopt; - } - else { + } else { assign_kvp(); } } uri::query_iterator::query_iterator(const query_iterator &other) - : query_(other.query_) - , kvp_(other.kvp_) {} + : query_(other.query_), kvp_(other.kvp_) {} -uri::query_iterator &uri::query_iterator::operator = (const query_iterator &other) { +uri::query_iterator &uri::query_iterator::operator=( + const query_iterator &other) { auto tmp(other); swap(tmp); return *this; } -uri::query_iterator::reference uri::query_iterator::operator ++ () noexcept { +uri::query_iterator::reference uri::query_iterator::operator++() noexcept { increment(); return kvp_; } -uri::query_iterator::value_type uri::query_iterator::operator ++ (int) noexcept { +uri::query_iterator::value_type uri::query_iterator::operator++(int) noexcept { auto original = kvp_; increment(); return original; } -uri::query_iterator::reference uri::query_iterator::operator * () const noexcept { +uri::query_iterator::reference uri::query_iterator::operator*() const noexcept { return kvp_; } -uri::query_iterator::pointer uri::query_iterator::operator -> () const noexcept { +uri::query_iterator::pointer uri::query_iterator::operator->() const noexcept { return std::addressof(kvp_); } -bool uri::query_iterator::operator==(const query_iterator &other) const noexcept { +bool uri::query_iterator::operator==(const query_iterator &other) const + noexcept { if (!query_ && !other.query_) { return true; - } - else if (query_ && other.query_) { + } else if (query_ && other.query_) { // since we're comparing substrings, the address of the first // element in each iterator must be the same return std::addressof(kvp_.first) == std::addressof(other.kvp_.first); @@ -326,7 +324,7 @@ void uri::query_iterator::advance_to_next_kvp() noexcept { first, last, [](char c) -> bool { return c == '&' || c == ';'; }); if (sep_it != last) { - ++sep_it; // skip next separator + ++sep_it; // skip next separator } // reassign query to the next element @@ -343,9 +341,10 @@ void uri::query_iterator::assign_kvp() noexcept { kvp_.first = string_view(std::addressof(*first), std::distance(first, eq_it)); if (eq_it != sep_it) { - ++eq_it; // skip '=' symbol + ++eq_it; // skip '=' symbol } - kvp_.second = string_view(std::addressof(*eq_it), std::distance(eq_it, sep_it)); + kvp_.second = + string_view(std::addressof(*eq_it), std::distance(eq_it, sep_it)); } void uri::query_iterator::increment() noexcept { @@ -362,7 +361,8 @@ void uri::query_iterator::increment() noexcept { } uri::query_iterator uri::query_begin() const noexcept { - return has_query()? uri::query_iterator{uri_parts_.query} : uri::query_iterator{}; + return has_query() ? uri::query_iterator{uri_parts_.query} + : uri::query_iterator{}; } uri::query_iterator uri::query_end() const noexcept { @@ -378,9 +378,7 @@ uri::string_view uri::fragment() const noexcept { : string_view{}; } -bool uri::has_authority() const noexcept { - return has_host(); -} +bool uri::has_authority() const noexcept { return has_host(); } uri::string_view uri::authority() const noexcept { if (!has_host()) { @@ -402,26 +400,22 @@ uri::string_view uri::authority() const noexcept { auto first = std::begin(host), last = std::end(host); if (has_user_info() && !user_info.empty()) { first = std::begin(user_info); - } - else if (host.empty() && has_port() && !port.empty()) { + } else if (host.empty() && has_port() && !port.empty()) { first = std::begin(port); - --first; // include ':' before port + --first; // include ':' before port } if (host.empty()) { if (has_port() && !port.empty()) { last = std::end(port); - } - else if (has_user_info() && !user_info.empty()) { + } else if (has_user_info() && !user_info.empty()) { last = std::end(user_info); - ++last; // include '@' + ++last; // include '@' } - } - else if (has_port()) { + } else if (has_port()) { if (port.empty()) { - ++last; // include ':' after host - } - else { + ++last; // include ':' after host + } else { last = std::end(port); } } @@ -443,9 +437,7 @@ std::u32string uri::u32string() const { return std::u32string(std::begin(*this), std::end(*this)); } -uri::string_view uri::view() const noexcept { - return uri_view_; -} +uri::string_view uri::view() const noexcept { return uri_view_; } bool uri::empty() const noexcept { return uri_.empty(); } @@ -473,13 +465,15 @@ uri uri::normalize(uri_comparison_level level) const { // if (parts.hier_part.host) { // std::string::iterator first, last; - // std::tie(first, last) = mutable_part(normalized, *parts.hier_part.host); - // std::transform(first, last, first, - // [](char ch) { return std::tolower(ch, std::locale()); }); + // std::tie(first, last) = mutable_part(normalized, + // *parts.hier_part.host); std::transform(first, last, first, + // [](char ch) { return std::tolower(ch, std::locale()); + // }); // } // ...except when used in percent encoding - detail::for_each(normalized, detail::percent_encoded_to_upper()); + detail::for_each(normalized, + detail::percent_encoded_to_upper()); // parts are invalidated here // there's got to be a better way of doing this that doesn't @@ -490,7 +484,8 @@ uri uri::normalize(uri_comparison_level level) const { normalized_view = string_view(normalized); // need to parse the parts again as the underlying string has changed - const_iterator it = std::begin(normalized_view), last = std::end(normalized_view); + const_iterator it = std::begin(normalized_view), + last = std::end(normalized_view); bool is_valid = detail::parse(it, last, parts); ignore(is_valid); assert(is_valid); @@ -550,9 +545,9 @@ uri uri::make_relative(const uri &other) const { } auto path = - detail::normalize_path(this->path(), uri_comparison_level::syntax_based); - auto other_path = detail::normalize_path(other.path(), - uri_comparison_level::syntax_based); + detail::normalize_path(this->path(), uri_comparison_level::syntax_based); + auto other_path = + detail::normalize_path(other.path(), uri_comparison_level::syntax_based); optional query, fragment; if (other.has_query()) { diff --git a/src/uri_builder.cpp b/src/uri_builder.cpp index c8d767ab..e47e8acb 100644 --- a/src/uri_builder.cpp +++ b/src/uri_builder.cpp @@ -48,7 +48,7 @@ void uri_builder::set_scheme(string_type &&scheme) { // validate scheme is valid and normalize scheme_ = scheme; detail::transform(*scheme_, std::begin(*scheme_), - [] (char ch) { return std::tolower(ch, std::locale()); }); + [](char ch) { return std::tolower(ch, std::locale()); }); } void uri_builder::set_user_info(string_type &&user_info) { @@ -114,24 +114,23 @@ uri_builder &uri_builder::clear_path() { void uri_builder::append_query_component(string_type &&name) { if (!query_) { query_ = string_type(); - } - else { + } else { query_->append("&"); } - network::uri::encode_query_component( - std::begin(name), std::end(name), std::back_inserter(*query_)); + network::uri::encode_query_component(std::begin(name), std::end(name), + std::back_inserter(*query_)); } -void uri_builder::append_query_key_value_pair(string_type &&key, string_type &&value) { +void uri_builder::append_query_key_value_pair(string_type &&key, + string_type &&value) { if (!query_) { query_ = string_type(); } else { query_->push_back('&'); } - network::uri::encode_query_key_value_pair( - std::begin(key), std::end(key), - std::begin(value), std::end(value), - std::back_inserter(*query_)); + network::uri::encode_query_key_value_pair(std::begin(key), std::end(key), + std::begin(value), std::end(value), + std::back_inserter(*query_)); } uri_builder &uri_builder::clear_query() { diff --git a/src/uri_errors.cpp b/src/uri_errors.cpp index b718cff5..815ac083 100644 --- a/src/uri_errors.cpp +++ b/src/uri_errors.cpp @@ -8,65 +8,62 @@ namespace network { - class uri_category_impl : public std::error_category { - - public: - - uri_category_impl() = default; - - virtual ~uri_category_impl() noexcept; - - virtual const char *name() const noexcept; - - virtual std::string message(int ev) const; - - }; - - uri_category_impl::~uri_category_impl() noexcept {} - - const char *uri_category_impl::name() const noexcept { - static const char name[] = "uri_error"; - return name; - } - - std::string uri_category_impl::message(int ev) const { - switch (uri_error(ev)) { - case uri_error::invalid_syntax: - return "Unable to parse URI string."; - case uri_error::not_enough_input: - return "Percent decoding: Not enough input."; - case uri_error::non_hex_input: - return "Percent decoding: Non-hex input."; - case uri_error::conversion_failed: - return "Percent decoding: Conversion failed."; +class uri_category_impl : public std::error_category { + public: + uri_category_impl() = default; + + virtual ~uri_category_impl() noexcept; + + virtual const char *name() const noexcept; + + virtual std::string message(int ev) const; +}; + +uri_category_impl::~uri_category_impl() noexcept {} + +const char *uri_category_impl::name() const noexcept { + static const char name[] = "uri_error"; + return name; +} + +std::string uri_category_impl::message(int ev) const { + switch (uri_error(ev)) { + case uri_error::invalid_syntax: + return "Unable to parse URI string."; + case uri_error::not_enough_input: + return "Percent decoding: Not enough input."; + case uri_error::non_hex_input: + return "Percent decoding: Non-hex input."; + case uri_error::conversion_failed: + return "Percent decoding: Conversion failed."; default: - break; - } - return "Unknown URI error."; + break; } + return "Unknown URI error."; +} - const std::error_category &uri_category() { - static uri_category_impl uri_category; - return uri_category; - } +const std::error_category &uri_category() { + static uri_category_impl uri_category; + return uri_category; +} - std::error_code make_error_code(uri_error e) { - return std::error_code(static_cast(e), uri_category()); - } +std::error_code make_error_code(uri_error e) { + return std::error_code(static_cast(e), uri_category()); +} - uri_syntax_error::uri_syntax_error() - : std::system_error(make_error_code(uri_error::invalid_syntax)) {} +uri_syntax_error::uri_syntax_error() + : std::system_error(make_error_code(uri_error::invalid_syntax)) {} - uri_syntax_error::~uri_syntax_error() noexcept {} +uri_syntax_error::~uri_syntax_error() noexcept {} - uri_builder_error::uri_builder_error() - : std::system_error(make_error_code(uri_error::invalid_uri)) {} +uri_builder_error::uri_builder_error() + : std::system_error(make_error_code(uri_error::invalid_uri)) {} - uri_builder_error::~uri_builder_error() noexcept {} +uri_builder_error::~uri_builder_error() noexcept {} - percent_decoding_error::percent_decoding_error(uri_error error) - : std::system_error(make_error_code(error)) {} +percent_decoding_error::percent_decoding_error(uri_error error) + : std::system_error(make_error_code(error)) {} - percent_decoding_error::~percent_decoding_error() noexcept {} +percent_decoding_error::~percent_decoding_error() noexcept {} } // namespace network From 2bc48d72a440a85148252131298d04464fc2b900 Mon Sep 17 00:00:00 2001 From: Vasily Lobaskin Date: Sat, 21 Mar 2020 21:35:34 +0300 Subject: [PATCH 10/15] remove boost files --- src/boost/algorithm/algorithm.hpp | 86 - src/boost/algorithm/clamp.hpp | 175 - src/boost/algorithm/cxx11/all_of.hpp | 86 - src/boost/algorithm/cxx11/any_of.hpp | 85 - src/boost/algorithm/cxx11/copy_if.hpp | 131 - src/boost/algorithm/cxx11/copy_n.hpp | 39 - src/boost/algorithm/cxx11/find_if_not.hpp | 55 - src/boost/algorithm/cxx11/iota.hpp | 69 - src/boost/algorithm/cxx11/is_partitioned.hpp | 60 - src/boost/algorithm/cxx11/is_permutation.hpp | 189 - src/boost/algorithm/cxx11/is_sorted.hpp | 281 -- src/boost/algorithm/cxx11/none_of.hpp | 83 - src/boost/algorithm/cxx11/one_of.hpp | 82 - src/boost/algorithm/cxx11/partition_copy.hpp | 73 - src/boost/algorithm/cxx11/partition_point.hpp | 67 - src/boost/algorithm/cxx14/equal.hpp | 97 - src/boost/algorithm/cxx14/is_permutation.hpp | 84 - src/boost/algorithm/cxx14/mismatch.hpp | 65 - src/boost/algorithm/gather.hpp | 123 - src/boost/algorithm/hex.hpp | 260 -- src/boost/algorithm/minmax.hpp | 47 - src/boost/algorithm/minmax_element.hpp | 553 --- src/boost/algorithm/searching/boyer_moore.hpp | 268 -- .../searching/boyer_moore_horspool.hpp | 199 -- .../algorithm/searching/detail/bm_traits.hpp | 113 - .../algorithm/searching/detail/debugging.hpp | 30 - .../searching/knuth_morris_pratt.hpp | 258 -- src/boost/algorithm/string.hpp | 31 - src/boost/algorithm/string/case_conv.hpp | 176 - src/boost/algorithm/string/classification.hpp | 312 -- src/boost/algorithm/string/compare.hpp | 199 -- src/boost/algorithm/string/concept.hpp | 83 - src/boost/algorithm/string/config.hpp | 28 - src/boost/algorithm/string/constants.hpp | 36 - .../algorithm/string/detail/case_conv.hpp | 123 - .../string/detail/classification.hpp | 353 -- .../algorithm/string/detail/find_format.hpp | 204 -- .../string/detail/find_format_all.hpp | 273 -- .../string/detail/find_format_store.hpp | 89 - .../algorithm/string/detail/find_iterator.hpp | 87 - src/boost/algorithm/string/detail/finder.hpp | 639 ---- .../algorithm/string/detail/finder_regex.hpp | 122 - .../algorithm/string/detail/formatter.hpp | 119 - .../string/detail/formatter_regex.hpp | 61 - .../algorithm/string/detail/predicate.hpp | 77 - .../string/detail/replace_storage.hpp | 159 - .../algorithm/string/detail/sequence.hpp | 200 -- src/boost/algorithm/string/detail/trim.hpp | 95 - src/boost/algorithm/string/detail/util.hpp | 106 - src/boost/algorithm/string/erase.hpp | 844 ----- src/boost/algorithm/string/find.hpp | 334 -- src/boost/algorithm/string/find_format.hpp | 287 -- src/boost/algorithm/string/find_iterator.hpp | 388 --- src/boost/algorithm/string/finder.hpp | 270 -- src/boost/algorithm/string/formatter.hpp | 120 - src/boost/algorithm/string/iter_find.hpp | 193 -- src/boost/algorithm/string/join.hpp | 145 - src/boost/algorithm/string/predicate.hpp | 475 --- .../algorithm/string/predicate_facade.hpp | 42 - src/boost/algorithm/string/regex.hpp | 646 ---- .../algorithm/string/regex_find_format.hpp | 90 - src/boost/algorithm/string/replace.hpp | 928 ----- .../algorithm/string/sequence_traits.hpp | 120 - src/boost/algorithm/string/split.hpp | 163 - .../algorithm/string/std/list_traits.hpp | 68 - .../algorithm/string/std/rope_traits.hpp | 81 - .../algorithm/string/std/slist_traits.hpp | 69 - .../algorithm/string/std/string_traits.hpp | 44 - .../string/std_containers_traits.hpp | 26 - src/boost/algorithm/string/trim.hpp | 398 --- src/boost/algorithm/string/trim_all.hpp | 217 -- src/boost/algorithm/string/yes_no_type.hpp | 33 - src/boost/algorithm/string_regex.hpp | 23 - src/boost/aligned_storage.hpp | 18 - src/boost/array.hpp | 446 --- src/boost/assert.hpp | 85 - src/boost/bind.hpp | 41 - src/boost/bind/arg.hpp | 62 - src/boost/bind/bind.hpp | 2256 ------------ src/boost/bind/bind_cc.hpp | 117 - src/boost/bind/bind_mf2_cc.hpp | 228 -- src/boost/bind/bind_mf_cc.hpp | 441 --- src/boost/bind/bind_template.hpp | 345 -- src/boost/bind/mem_fn.hpp | 389 --- src/boost/bind/mem_fn_cc.hpp | 103 - src/boost/bind/mem_fn_template.hpp | 1047 ------ src/boost/bind/mem_fn_vw.hpp | 130 - src/boost/bind/placeholders.hpp | 62 - src/boost/bind/storage.hpp | 475 --- src/boost/call_traits.hpp | 20 - src/boost/checked_delete.hpp | 17 - src/boost/concept/assert.hpp | 45 - .../concept/detail/backward_compatibility.hpp | 16 - src/boost/concept/detail/borland.hpp | 30 - src/boost/concept/detail/concept_def.hpp | 34 - src/boost/concept/detail/concept_undef.hpp | 5 - src/boost/concept/detail/general.hpp | 77 - src/boost/concept/detail/has_constraints.hpp | 50 - src/boost/concept/detail/msvc.hpp | 123 - src/boost/concept/usage.hpp | 36 - src/boost/concept_check.hpp | 1082 ------ src/boost/config.hpp | 67 - src/boost/config/abi/borland_prefix.hpp | 27 - src/boost/config/abi/borland_suffix.hpp | 12 - src/boost/config/abi/msvc_prefix.hpp | 22 - src/boost/config/abi/msvc_suffix.hpp | 8 - src/boost/config/abi_prefix.hpp | 25 - src/boost/config/abi_suffix.hpp | 27 - src/boost/config/auto_link.hpp | 439 --- src/boost/config/compiler/borland.hpp | 318 -- src/boost/config/compiler/clang.hpp | 279 -- src/boost/config/compiler/codegear.hpp | 220 -- src/boost/config/compiler/comeau.hpp | 59 - src/boost/config/compiler/common_edg.hpp | 143 - src/boost/config/compiler/compaq_cxx.hpp | 19 - src/boost/config/compiler/cray.hpp | 92 - src/boost/config/compiler/digitalmars.hpp | 124 - src/boost/config/compiler/gcc.hpp | 314 -- src/boost/config/compiler/gcc_xml.hpp | 95 - src/boost/config/compiler/greenhills.hpp | 28 - src/boost/config/compiler/hp_acc.hpp | 145 - src/boost/config/compiler/intel.hpp | 535 --- src/boost/config/compiler/kai.hpp | 33 - src/boost/config/compiler/metrowerks.hpp | 179 - src/boost/config/compiler/mpw.hpp | 121 - src/boost/config/compiler/nvcc.hpp | 16 - src/boost/config/compiler/pathscale.hpp | 114 - src/boost/config/compiler/pgi.hpp | 155 - src/boost/config/compiler/sgi_mipspro.hpp | 29 - src/boost/config/compiler/sunpro_cc.hpp | 190 - src/boost/config/compiler/vacpp.hpp | 162 - src/boost/config/compiler/visualc.hpp | 298 -- src/boost/config/compiler/xlcpp.hpp | 258 -- src/boost/config/no_tr1/cmath.hpp | 28 - src/boost/config/no_tr1/complex.hpp | 28 - src/boost/config/no_tr1/functional.hpp | 28 - src/boost/config/no_tr1/memory.hpp | 28 - src/boost/config/no_tr1/utility.hpp | 28 - src/boost/config/platform/aix.hpp | 33 - src/boost/config/platform/amigaos.hpp | 15 - src/boost/config/platform/beos.hpp | 26 - src/boost/config/platform/bsd.hpp | 86 - src/boost/config/platform/cloudabi.hpp | 18 - src/boost/config/platform/cray.hpp | 18 - src/boost/config/platform/cygwin.hpp | 58 - src/boost/config/platform/haiku.hpp | 31 - src/boost/config/platform/hpux.hpp | 87 - src/boost/config/platform/irix.hpp | 31 - src/boost/config/platform/linux.hpp | 105 - src/boost/config/platform/macos.hpp | 87 - src/boost/config/platform/qnxnto.hpp | 31 - src/boost/config/platform/solaris.hpp | 31 - src/boost/config/platform/symbian.hpp | 97 - src/boost/config/platform/vms.hpp | 25 - src/boost/config/platform/vxworks.hpp | 369 -- src/boost/config/platform/win32.hpp | 90 - src/boost/config/posix_features.hpp | 95 - src/boost/config/requires_threads.hpp | 92 - src/boost/config/select_compiler_config.hpp | 148 - src/boost/config/select_platform_config.hpp | 137 - src/boost/config/select_stdlib_config.hpp | 105 - src/boost/config/stdlib/dinkumware.hpp | 198 -- src/boost/config/stdlib/libcomo.hpp | 83 - src/boost/config/stdlib/libcpp.hpp | 80 - src/boost/config/stdlib/libstdcpp3.hpp | 281 -- src/boost/config/stdlib/modena.hpp | 69 - src/boost/config/stdlib/msl.hpp | 88 - src/boost/config/stdlib/roguewave.hpp | 198 -- src/boost/config/stdlib/sgi.hpp | 158 - src/boost/config/stdlib/stlport.hpp | 248 -- src/boost/config/stdlib/vacpp.hpp | 64 - src/boost/config/suffix.hpp | 1007 ------ src/boost/config/user.hpp | 133 - src/boost/config/warning_disable.hpp | 47 - src/boost/container/allocator_traits.hpp | 470 --- src/boost/container/container_fwd.hpp | 317 -- src/boost/container/detail/config_begin.hpp | 51 - src/boost/container/detail/config_end.hpp | 13 - src/boost/container/detail/mpl.hpp | 87 - src/boost/container/detail/placement_new.hpp | 30 - src/boost/container/detail/std_fwd.hpp | 56 - src/boost/container/detail/type_traits.hpp | 70 - src/boost/container/detail/workaround.hpp | 79 - src/boost/core/addressof.hpp | 162 - src/boost/core/checked_delete.hpp | 69 - src/boost/core/demangle.hpp | 128 - src/boost/core/enable_if.hpp | 128 - src/boost/core/explicit_operator_bool.hpp | 154 - src/boost/core/ignore_unused.hpp | 70 - src/boost/core/is_same.hpp | 40 - src/boost/core/no_exceptions_support.hpp | 44 - src/boost/core/noncopyable.hpp | 48 - src/boost/core/ref.hpp | 301 -- src/boost/core/swap.hpp | 60 - src/boost/core/typeinfo.hpp | 151 - src/boost/cregex.hpp | 39 - src/boost/cstdint.hpp | 546 --- src/boost/cstdlib.hpp | 41 - src/boost/current_function.hpp | 71 - src/boost/detail/call_traits.hpp | 172 - src/boost/detail/container_fwd.hpp | 157 - src/boost/detail/fenv.hpp | 101 - src/boost/detail/indirect_traits.hpp | 204 -- src/boost/detail/iterator.hpp | 26 - src/boost/detail/lightweight_mutex.hpp | 22 - src/boost/detail/no_exceptions_support.hpp | 17 - src/boost/detail/reference_content.hpp | 120 - src/boost/detail/select_type.hpp | 36 - src/boost/detail/sp_typeinfo.hpp | 36 - src/boost/detail/workaround.hpp | 267 -- src/boost/exception/all.hpp | 36 - .../exception/current_exception_cast.hpp | 43 - .../detail/clone_current_exception.hpp | 56 - .../exception/detail/error_info_impl.hpp | 74 - src/boost/exception/detail/exception_ptr.hpp | 513 --- .../exception/detail/is_output_streamable.hpp | 60 - .../exception/detail/object_hex_dump.hpp | 50 - src/boost/exception/detail/type_info.hpp | 81 - .../exception/diagnostic_information.hpp | 201 -- src/boost/exception/errinfo_api_function.hpp | 22 - src/boost/exception/errinfo_at_line.hpp | 18 - src/boost/exception/errinfo_errno.hpp | 44 - src/boost/exception/errinfo_file_handle.hpp | 20 - src/boost/exception/errinfo_file_name.hpp | 26 - .../exception/errinfo_file_open_mode.hpp | 26 - .../exception/errinfo_nested_exception.hpp | 18 - .../exception/errinfo_type_info_name.hpp | 23 - src/boost/exception/error_info.hpp | 9 - src/boost/exception/exception.hpp | 499 --- src/boost/exception/get_error_info.hpp | 130 - src/boost/exception/info.hpp | 198 -- src/boost/exception/info_tuple.hpp | 100 - src/boost/exception/to_string.hpp | 88 - src/boost/exception/to_string_stub.hpp | 117 - src/boost/exception_ptr.hpp | 11 - src/boost/function.hpp | 66 - .../function/detail/function_iterate.hpp | 16 - .../function/detail/gen_maybe_include.pl | 37 - src/boost/function/detail/maybe_include.hpp | 267 -- src/boost/function/detail/prologue.hpp | 26 - src/boost/function/function0.hpp | 12 - src/boost/function/function1.hpp | 12 - src/boost/function/function10.hpp | 12 - src/boost/function/function2.hpp | 12 - src/boost/function/function3.hpp | 12 - src/boost/function/function4.hpp | 12 - src/boost/function/function5.hpp | 12 - src/boost/function/function6.hpp | 12 - src/boost/function/function7.hpp | 12 - src/boost/function/function8.hpp | 12 - src/boost/function/function9.hpp | 12 - src/boost/function/function_base.hpp | 896 ----- src/boost/function/function_fwd.hpp | 69 - src/boost/function/function_template.hpp | 1191 ------- src/boost/function_equal.hpp | 28 - src/boost/functional/hash.hpp | 7 - .../hash/detail/float_functions.hpp | 336 -- .../functional/hash/detail/hash_float.hpp | 271 -- src/boost/functional/hash/detail/limits.hpp | 62 - src/boost/functional/hash/extensions.hpp | 318 -- src/boost/functional/hash/hash.hpp | 559 --- src/boost/functional/hash/hash_fwd.hpp | 36 - src/boost/functional/hash_fwd.hpp | 11 - src/boost/get_pointer.hpp | 76 - src/boost/integer.hpp | 262 -- src/boost/integer/static_log2.hpp | 127 - src/boost/integer_fwd.hpp | 187 - src/boost/integer_traits.hpp | 256 -- src/boost/intrusive/detail/config_begin.hpp | 51 - src/boost/intrusive/detail/config_end.hpp | 15 - .../has_member_function_callable_with.hpp | 340 -- src/boost/intrusive/detail/mpl.hpp | 206 -- .../intrusive/detail/pointer_element.hpp | 168 - src/boost/intrusive/detail/workaround.hpp | 38 - src/boost/intrusive/pointer_rebind.hpp | 188 - src/boost/intrusive/pointer_traits.hpp | 318 -- src/boost/io/ios_state.hpp | 439 --- src/boost/io_fwd.hpp | 67 - src/boost/is_placeholder.hpp | 31 - src/boost/iterator.hpp | 20 - src/boost/iterator/detail/config_def.hpp | 128 - src/boost/iterator/detail/config_undef.hpp | 24 - src/boost/iterator/detail/enable_if.hpp | 83 - .../detail/facade_iterator_category.hpp | 193 -- src/boost/iterator/interoperable.hpp | 54 - src/boost/iterator/iterator_adaptor.hpp | 360 -- src/boost/iterator/iterator_categories.hpp | 215 -- src/boost/iterator/iterator_concepts.hpp | 275 -- src/boost/iterator/iterator_facade.hpp | 980 ------ src/boost/iterator/iterator_traits.hpp | 60 - src/boost/iterator/reverse_iterator.hpp | 74 - src/boost/iterator/transform_iterator.hpp | 171 - src/boost/limits.hpp | 146 - src/boost/mem_fn.hpp | 24 - src/boost/move/algorithm.hpp | 282 -- src/boost/move/core.hpp | 501 --- src/boost/move/detail/config_begin.hpp | 19 - src/boost/move/detail/config_end.hpp | 12 - src/boost/move/detail/fwd_macros.hpp | 661 ---- src/boost/move/detail/iterator_traits.hpp | 73 - src/boost/move/detail/meta_utils.hpp | 564 --- src/boost/move/detail/meta_utils_core.hpp | 120 - src/boost/move/detail/std_ns_begin.hpp | 30 - src/boost/move/detail/std_ns_end.hpp | 14 - src/boost/move/detail/type_traits.hpp | 1078 ------ src/boost/move/detail/workaround.hpp | 55 - src/boost/move/iterator.hpp | 312 -- src/boost/move/move.hpp | 35 - src/boost/move/traits.hpp | 77 - src/boost/move/utility.hpp | 149 - src/boost/move/utility_core.hpp | 317 -- src/boost/mpl/always.hpp | 38 - src/boost/mpl/and.hpp | 60 - src/boost/mpl/apply.hpp | 229 -- src/boost/mpl/apply_fwd.hpp | 107 - src/boost/mpl/apply_wrap.hpp | 234 -- src/boost/mpl/arg.hpp | 131 - src/boost/mpl/arg_fwd.hpp | 28 - src/boost/mpl/assert.hpp | 439 --- src/boost/mpl/aux_/adl_barrier.hpp | 48 - src/boost/mpl/aux_/arg_typedef.hpp | 31 - src/boost/mpl/aux_/arithmetic_op.hpp | 92 - src/boost/mpl/aux_/arity.hpp | 39 - src/boost/mpl/aux_/arity_spec.hpp | 67 - src/boost/mpl/aux_/begin_end_impl.hpp | 101 - src/boost/mpl/aux_/common_name_wknd.hpp | 34 - src/boost/mpl/aux_/comparison_op.hpp | 83 - src/boost/mpl/aux_/config/adl.hpp | 40 - src/boost/mpl/aux_/config/arrays.hpp | 30 - src/boost/mpl/aux_/config/bcc.hpp | 28 - src/boost/mpl/aux_/config/bind.hpp | 33 - src/boost/mpl/aux_/config/compiler.hpp | 66 - src/boost/mpl/aux_/config/ctps.hpp | 30 - .../mpl/aux_/config/dmc_ambiguous_ctps.hpp | 27 - src/boost/mpl/aux_/config/dtp.hpp | 46 - src/boost/mpl/aux_/config/eti.hpp | 47 - src/boost/mpl/aux_/config/forwarding.hpp | 27 - src/boost/mpl/aux_/config/gcc.hpp | 23 - src/boost/mpl/aux_/config/gpu.hpp | 35 - src/boost/mpl/aux_/config/has_apply.hpp | 32 - src/boost/mpl/aux_/config/has_xxx.hpp | 34 - src/boost/mpl/aux_/config/integral.hpp | 38 - src/boost/mpl/aux_/config/intel.hpp | 21 - src/boost/mpl/aux_/config/lambda.hpp | 32 - src/boost/mpl/aux_/config/msvc.hpp | 21 - src/boost/mpl/aux_/config/msvc_typename.hpp | 26 - src/boost/mpl/aux_/config/nttp.hpp | 41 - .../mpl/aux_/config/overload_resolution.hpp | 29 - src/boost/mpl/aux_/config/pp_counter.hpp | 26 - src/boost/mpl/aux_/config/preprocessor.hpp | 39 - src/boost/mpl/aux_/config/static_constant.hpp | 25 - src/boost/mpl/aux_/config/ttp.hpp | 41 - .../mpl/aux_/config/use_preprocessed.hpp | 19 - src/boost/mpl/aux_/config/workaround.hpp | 19 - src/boost/mpl/aux_/count_args.hpp | 105 - src/boost/mpl/aux_/full_lambda.hpp | 354 -- src/boost/mpl/aux_/has_apply.hpp | 32 - src/boost/mpl/aux_/has_begin.hpp | 23 - src/boost/mpl/aux_/has_rebind.hpp | 99 - src/boost/mpl/aux_/has_tag.hpp | 23 - src/boost/mpl/aux_/has_type.hpp | 23 - src/boost/mpl/aux_/include_preprocessed.hpp | 42 - src/boost/mpl/aux_/integral_wrapper.hpp | 93 - src/boost/mpl/aux_/is_msvc_eti_arg.hpp | 64 - src/boost/mpl/aux_/lambda_arity_param.hpp | 25 - src/boost/mpl/aux_/lambda_no_ctps.hpp | 193 -- src/boost/mpl/aux_/lambda_support.hpp | 169 - src/boost/mpl/aux_/largest_int.hpp | 63 - src/boost/mpl/aux_/logical_op.hpp | 165 - src/boost/mpl/aux_/msvc_dtw.hpp | 68 - src/boost/mpl/aux_/msvc_eti_base.hpp | 77 - src/boost/mpl/aux_/msvc_is_class.hpp | 58 - src/boost/mpl/aux_/msvc_never_true.hpp | 34 - src/boost/mpl/aux_/msvc_type.hpp | 62 - src/boost/mpl/aux_/na.hpp | 95 - src/boost/mpl/aux_/na_assert.hpp | 34 - src/boost/mpl/aux_/na_fwd.hpp | 31 - src/boost/mpl/aux_/na_spec.hpp | 175 - src/boost/mpl/aux_/nested_type_wknd.hpp | 48 - src/boost/mpl/aux_/nttp_decl.hpp | 35 - src/boost/mpl/aux_/numeric_cast_utils.hpp | 77 - src/boost/mpl/aux_/numeric_op.hpp | 315 -- .../preprocessed/bcc/advance_backward.hpp | 97 - .../aux_/preprocessed/bcc/advance_forward.hpp | 97 - src/boost/mpl/aux_/preprocessed/bcc/and.hpp | 69 - src/boost/mpl/aux_/preprocessed/bcc/apply.hpp | 169 - .../mpl/aux_/preprocessed/bcc/apply_fwd.hpp | 52 - .../mpl/aux_/preprocessed/bcc/apply_wrap.hpp | 461 --- src/boost/mpl/aux_/preprocessed/bcc/arg.hpp | 117 - .../mpl/aux_/preprocessed/bcc/basic_bind.hpp | 300 -- src/boost/mpl/aux_/preprocessed/bcc/bind.hpp | 397 --- .../mpl/aux_/preprocessed/bcc/bind_fwd.hpp | 46 - .../mpl/aux_/preprocessed/bcc/bitand.hpp | 147 - src/boost/mpl/aux_/preprocessed/bcc/bitor.hpp | 147 - .../mpl/aux_/preprocessed/bcc/bitxor.hpp | 147 - src/boost/mpl/aux_/preprocessed/bcc/deque.hpp | 323 -- .../mpl/aux_/preprocessed/bcc/divides.hpp | 146 - .../mpl/aux_/preprocessed/bcc/equal_to.hpp | 94 - .../mpl/aux_/preprocessed/bcc/fold_impl.hpp | 180 - .../mpl/aux_/preprocessed/bcc/full_lambda.hpp | 558 --- .../mpl/aux_/preprocessed/bcc/greater.hpp | 94 - .../aux_/preprocessed/bcc/greater_equal.hpp | 94 - .../mpl/aux_/preprocessed/bcc/inherit.hpp | 139 - .../preprocessed/bcc/iter_fold_if_impl.hpp | 133 - .../aux_/preprocessed/bcc/iter_fold_impl.hpp | 180 - .../aux_/preprocessed/bcc/lambda_no_ctps.hpp | 229 -- src/boost/mpl/aux_/preprocessed/bcc/less.hpp | 94 - .../mpl/aux_/preprocessed/bcc/less_equal.hpp | 94 - src/boost/mpl/aux_/preprocessed/bcc/list.hpp | 323 -- .../mpl/aux_/preprocessed/bcc/list_c.hpp | 328 -- src/boost/mpl/aux_/preprocessed/bcc/map.hpp | 323 -- src/boost/mpl/aux_/preprocessed/bcc/minus.hpp | 146 - .../mpl/aux_/preprocessed/bcc/modulus.hpp | 101 - .../aux_/preprocessed/bcc/not_equal_to.hpp | 94 - src/boost/mpl/aux_/preprocessed/bcc/or.hpp | 69 - .../aux_/preprocessed/bcc/placeholders.hpp | 105 - src/boost/mpl/aux_/preprocessed/bcc/plus.hpp | 146 - src/boost/mpl/aux_/preprocessed/bcc/quote.hpp | 119 - .../preprocessed/bcc/reverse_fold_impl.hpp | 295 -- .../bcc/reverse_iter_fold_impl.hpp | 295 -- src/boost/mpl/aux_/preprocessed/bcc/set.hpp | 323 -- src/boost/mpl/aux_/preprocessed/bcc/set_c.hpp | 328 -- .../mpl/aux_/preprocessed/bcc/shift_left.hpp | 99 - .../mpl/aux_/preprocessed/bcc/shift_right.hpp | 99 - .../aux_/preprocessed/bcc/template_arity.hpp | 40 - src/boost/mpl/aux_/preprocessed/bcc/times.hpp | 146 - .../mpl/aux_/preprocessed/bcc/unpack_args.hpp | 97 - .../mpl/aux_/preprocessed/bcc/vector.hpp | 323 -- .../mpl/aux_/preprocessed/bcc/vector_c.hpp | 309 -- .../preprocessed/bcc551/advance_backward.hpp | 97 - .../preprocessed/bcc551/advance_forward.hpp | 97 - .../mpl/aux_/preprocessed/bcc551/and.hpp | 69 - .../mpl/aux_/preprocessed/bcc551/apply.hpp | 169 - .../aux_/preprocessed/bcc551/apply_fwd.hpp | 52 - .../aux_/preprocessed/bcc551/apply_wrap.hpp | 456 --- .../mpl/aux_/preprocessed/bcc551/arg.hpp | 123 - .../aux_/preprocessed/bcc551/basic_bind.hpp | 306 -- .../mpl/aux_/preprocessed/bcc551/bind.hpp | 403 --- .../mpl/aux_/preprocessed/bcc551/bind_fwd.hpp | 46 - .../mpl/aux_/preprocessed/bcc551/bitand.hpp | 147 - .../mpl/aux_/preprocessed/bcc551/bitor.hpp | 147 - .../mpl/aux_/preprocessed/bcc551/bitxor.hpp | 147 - .../mpl/aux_/preprocessed/bcc551/deque.hpp | 323 -- .../mpl/aux_/preprocessed/bcc551/divides.hpp | 146 - .../mpl/aux_/preprocessed/bcc551/equal_to.hpp | 94 - .../aux_/preprocessed/bcc551/fold_impl.hpp | 180 - .../aux_/preprocessed/bcc551/full_lambda.hpp | 558 --- .../mpl/aux_/preprocessed/bcc551/greater.hpp | 94 - .../preprocessed/bcc551/greater_equal.hpp | 94 - .../mpl/aux_/preprocessed/bcc551/inherit.hpp | 141 - .../preprocessed/bcc551/iter_fold_if_impl.hpp | 133 - .../preprocessed/bcc551/iter_fold_impl.hpp | 180 - .../preprocessed/bcc551/lambda_no_ctps.hpp | 229 -- .../mpl/aux_/preprocessed/bcc551/less.hpp | 94 - .../aux_/preprocessed/bcc551/less_equal.hpp | 94 - .../mpl/aux_/preprocessed/bcc551/list.hpp | 323 -- .../mpl/aux_/preprocessed/bcc551/list_c.hpp | 328 -- .../mpl/aux_/preprocessed/bcc551/map.hpp | 323 -- .../mpl/aux_/preprocessed/bcc551/minus.hpp | 146 - .../mpl/aux_/preprocessed/bcc551/modulus.hpp | 101 - .../aux_/preprocessed/bcc551/not_equal_to.hpp | 94 - src/boost/mpl/aux_/preprocessed/bcc551/or.hpp | 69 - .../aux_/preprocessed/bcc551/placeholders.hpp | 105 - .../mpl/aux_/preprocessed/bcc551/plus.hpp | 146 - .../mpl/aux_/preprocessed/bcc551/quote.hpp | 11 - .../preprocessed/bcc551/reverse_fold_impl.hpp | 295 -- .../bcc551/reverse_iter_fold_impl.hpp | 295 -- .../mpl/aux_/preprocessed/bcc551/set.hpp | 323 -- .../mpl/aux_/preprocessed/bcc551/set_c.hpp | 328 -- .../aux_/preprocessed/bcc551/shift_left.hpp | 99 - .../aux_/preprocessed/bcc551/shift_right.hpp | 99 - .../preprocessed/bcc551/template_arity.hpp | 40 - .../mpl/aux_/preprocessed/bcc551/times.hpp | 146 - .../aux_/preprocessed/bcc551/unpack_args.hpp | 97 - .../mpl/aux_/preprocessed/bcc551/vector.hpp | 323 -- .../mpl/aux_/preprocessed/bcc551/vector_c.hpp | 309 -- .../bcc_pre590/advance_backward.hpp | 97 - .../bcc_pre590/advance_forward.hpp | 97 - .../mpl/aux_/preprocessed/bcc_pre590/and.hpp | 69 - .../aux_/preprocessed/bcc_pre590/apply.hpp | 169 - .../preprocessed/bcc_pre590/apply_fwd.hpp | 52 - .../preprocessed/bcc_pre590/apply_wrap.hpp | 456 --- .../mpl/aux_/preprocessed/bcc_pre590/arg.hpp | 117 - .../preprocessed/bcc_pre590/basic_bind.hpp | 300 -- .../mpl/aux_/preprocessed/bcc_pre590/bind.hpp | 397 --- .../aux_/preprocessed/bcc_pre590/bind_fwd.hpp | 46 - .../aux_/preprocessed/bcc_pre590/bitand.hpp | 147 - .../aux_/preprocessed/bcc_pre590/bitor.hpp | 147 - .../aux_/preprocessed/bcc_pre590/bitxor.hpp | 147 - .../aux_/preprocessed/bcc_pre590/deque.hpp | 323 -- .../aux_/preprocessed/bcc_pre590/divides.hpp | 146 - .../aux_/preprocessed/bcc_pre590/equal_to.hpp | 94 - .../preprocessed/bcc_pre590/fold_impl.hpp | 180 - .../preprocessed/bcc_pre590/full_lambda.hpp | 558 --- .../aux_/preprocessed/bcc_pre590/greater.hpp | 94 - .../preprocessed/bcc_pre590/greater_equal.hpp | 94 - .../aux_/preprocessed/bcc_pre590/inherit.hpp | 139 - .../bcc_pre590/iter_fold_if_impl.hpp | 133 - .../bcc_pre590/iter_fold_impl.hpp | 180 - .../bcc_pre590/lambda_no_ctps.hpp | 229 -- .../mpl/aux_/preprocessed/bcc_pre590/less.hpp | 94 - .../preprocessed/bcc_pre590/less_equal.hpp | 94 - .../mpl/aux_/preprocessed/bcc_pre590/list.hpp | 323 -- .../aux_/preprocessed/bcc_pre590/list_c.hpp | 328 -- .../mpl/aux_/preprocessed/bcc_pre590/map.hpp | 323 -- .../aux_/preprocessed/bcc_pre590/minus.hpp | 146 - .../aux_/preprocessed/bcc_pre590/modulus.hpp | 101 - .../preprocessed/bcc_pre590/not_equal_to.hpp | 94 - .../mpl/aux_/preprocessed/bcc_pre590/or.hpp | 69 - .../preprocessed/bcc_pre590/placeholders.hpp | 105 - .../mpl/aux_/preprocessed/bcc_pre590/plus.hpp | 146 - .../aux_/preprocessed/bcc_pre590/quote.hpp | 11 - .../bcc_pre590/reverse_fold_impl.hpp | 295 -- .../bcc_pre590/reverse_iter_fold_impl.hpp | 295 -- .../mpl/aux_/preprocessed/bcc_pre590/set.hpp | 323 -- .../aux_/preprocessed/bcc_pre590/set_c.hpp | 328 -- .../preprocessed/bcc_pre590/shift_left.hpp | 99 - .../preprocessed/bcc_pre590/shift_right.hpp | 99 - .../bcc_pre590/template_arity.hpp | 40 - .../aux_/preprocessed/bcc_pre590/times.hpp | 146 - .../preprocessed/bcc_pre590/unpack_args.hpp | 97 - .../aux_/preprocessed/bcc_pre590/vector.hpp | 323 -- .../aux_/preprocessed/bcc_pre590/vector_c.hpp | 309 -- .../preprocessed/dmc/advance_backward.hpp | 97 - .../aux_/preprocessed/dmc/advance_forward.hpp | 97 - src/boost/mpl/aux_/preprocessed/dmc/and.hpp | 69 - src/boost/mpl/aux_/preprocessed/dmc/apply.hpp | 169 - .../mpl/aux_/preprocessed/dmc/apply_fwd.hpp | 52 - .../mpl/aux_/preprocessed/dmc/apply_wrap.hpp | 84 - src/boost/mpl/aux_/preprocessed/dmc/arg.hpp | 123 - .../mpl/aux_/preprocessed/dmc/basic_bind.hpp | 406 --- src/boost/mpl/aux_/preprocessed/dmc/bind.hpp | 515 --- .../mpl/aux_/preprocessed/dmc/bind_fwd.hpp | 53 - .../mpl/aux_/preprocessed/dmc/bitand.hpp | 147 - src/boost/mpl/aux_/preprocessed/dmc/bitor.hpp | 147 - .../mpl/aux_/preprocessed/dmc/bitxor.hpp | 147 - src/boost/mpl/aux_/preprocessed/dmc/deque.hpp | 323 -- .../mpl/aux_/preprocessed/dmc/divides.hpp | 146 - .../mpl/aux_/preprocessed/dmc/equal_to.hpp | 94 - .../mpl/aux_/preprocessed/dmc/fold_impl.hpp | 180 - .../mpl/aux_/preprocessed/dmc/full_lambda.hpp | 536 --- .../mpl/aux_/preprocessed/dmc/greater.hpp | 94 - .../aux_/preprocessed/dmc/greater_equal.hpp | 94 - .../mpl/aux_/preprocessed/dmc/inherit.hpp | 141 - .../preprocessed/dmc/iter_fold_if_impl.hpp | 133 - .../aux_/preprocessed/dmc/iter_fold_impl.hpp | 180 - .../aux_/preprocessed/dmc/lambda_no_ctps.hpp | 229 -- src/boost/mpl/aux_/preprocessed/dmc/less.hpp | 94 - .../mpl/aux_/preprocessed/dmc/less_equal.hpp | 94 - src/boost/mpl/aux_/preprocessed/dmc/list.hpp | 323 -- .../mpl/aux_/preprocessed/dmc/list_c.hpp | 328 -- src/boost/mpl/aux_/preprocessed/dmc/map.hpp | 323 -- src/boost/mpl/aux_/preprocessed/dmc/minus.hpp | 146 - .../mpl/aux_/preprocessed/dmc/modulus.hpp | 101 - .../aux_/preprocessed/dmc/not_equal_to.hpp | 94 - src/boost/mpl/aux_/preprocessed/dmc/or.hpp | 69 - .../aux_/preprocessed/dmc/placeholders.hpp | 105 - src/boost/mpl/aux_/preprocessed/dmc/plus.hpp | 146 - src/boost/mpl/aux_/preprocessed/dmc/quote.hpp | 123 - .../preprocessed/dmc/reverse_fold_impl.hpp | 231 -- .../dmc/reverse_iter_fold_impl.hpp | 231 -- src/boost/mpl/aux_/preprocessed/dmc/set.hpp | 323 -- src/boost/mpl/aux_/preprocessed/dmc/set_c.hpp | 328 -- .../mpl/aux_/preprocessed/dmc/shift_left.hpp | 99 - .../mpl/aux_/preprocessed/dmc/shift_right.hpp | 99 - .../aux_/preprocessed/dmc/template_arity.hpp | 11 - src/boost/mpl/aux_/preprocessed/dmc/times.hpp | 146 - .../mpl/aux_/preprocessed/dmc/unpack_args.hpp | 94 - .../mpl/aux_/preprocessed/dmc/vector.hpp | 323 -- .../mpl/aux_/preprocessed/dmc/vector_c.hpp | 309 -- .../preprocessed/gcc/advance_backward.hpp | 97 - .../aux_/preprocessed/gcc/advance_forward.hpp | 97 - src/boost/mpl/aux_/preprocessed/gcc/and.hpp | 69 - src/boost/mpl/aux_/preprocessed/gcc/apply.hpp | 169 - .../mpl/aux_/preprocessed/gcc/apply_fwd.hpp | 52 - .../mpl/aux_/preprocessed/gcc/apply_wrap.hpp | 84 - src/boost/mpl/aux_/preprocessed/gcc/arg.hpp | 123 - .../mpl/aux_/preprocessed/gcc/basic_bind.hpp | 440 --- src/boost/mpl/aux_/preprocessed/gcc/bind.hpp | 561 --- .../mpl/aux_/preprocessed/gcc/bind_fwd.hpp | 52 - .../mpl/aux_/preprocessed/gcc/bitand.hpp | 147 - src/boost/mpl/aux_/preprocessed/gcc/bitor.hpp | 147 - .../mpl/aux_/preprocessed/gcc/bitxor.hpp | 147 - src/boost/mpl/aux_/preprocessed/gcc/deque.hpp | 323 -- .../mpl/aux_/preprocessed/gcc/divides.hpp | 146 - .../mpl/aux_/preprocessed/gcc/equal_to.hpp | 94 - .../mpl/aux_/preprocessed/gcc/fold_impl.hpp | 180 - .../mpl/aux_/preprocessed/gcc/full_lambda.hpp | 558 --- .../mpl/aux_/preprocessed/gcc/greater.hpp | 94 - .../aux_/preprocessed/gcc/greater_equal.hpp | 94 - .../mpl/aux_/preprocessed/gcc/inherit.hpp | 141 - .../preprocessed/gcc/iter_fold_if_impl.hpp | 133 - .../aux_/preprocessed/gcc/iter_fold_impl.hpp | 180 - .../aux_/preprocessed/gcc/lambda_no_ctps.hpp | 229 -- src/boost/mpl/aux_/preprocessed/gcc/less.hpp | 94 - .../mpl/aux_/preprocessed/gcc/less_equal.hpp | 94 - src/boost/mpl/aux_/preprocessed/gcc/list.hpp | 323 -- .../mpl/aux_/preprocessed/gcc/list_c.hpp | 328 -- src/boost/mpl/aux_/preprocessed/gcc/map.hpp | 323 -- src/boost/mpl/aux_/preprocessed/gcc/minus.hpp | 146 - .../mpl/aux_/preprocessed/gcc/modulus.hpp | 101 - .../aux_/preprocessed/gcc/not_equal_to.hpp | 94 - src/boost/mpl/aux_/preprocessed/gcc/or.hpp | 69 - .../aux_/preprocessed/gcc/placeholders.hpp | 105 - src/boost/mpl/aux_/preprocessed/gcc/plus.hpp | 146 - src/boost/mpl/aux_/preprocessed/gcc/quote.hpp | 123 - .../preprocessed/gcc/reverse_fold_impl.hpp | 231 -- .../gcc/reverse_iter_fold_impl.hpp | 231 -- src/boost/mpl/aux_/preprocessed/gcc/set.hpp | 323 -- src/boost/mpl/aux_/preprocessed/gcc/set_c.hpp | 328 -- .../mpl/aux_/preprocessed/gcc/shift_left.hpp | 99 - .../mpl/aux_/preprocessed/gcc/shift_right.hpp | 99 - .../aux_/preprocessed/gcc/template_arity.hpp | 97 - src/boost/mpl/aux_/preprocessed/gcc/times.hpp | 146 - .../mpl/aux_/preprocessed/gcc/unpack_args.hpp | 94 - .../mpl/aux_/preprocessed/gcc/vector.hpp | 323 -- .../mpl/aux_/preprocessed/gcc/vector_c.hpp | 309 -- .../preprocessed/msvc60/advance_backward.hpp | 132 - .../preprocessed/msvc60/advance_forward.hpp | 132 - .../mpl/aux_/preprocessed/msvc60/and.hpp | 73 - .../mpl/aux_/preprocessed/msvc60/apply.hpp | 166 - .../aux_/preprocessed/msvc60/apply_fwd.hpp | 46 - .../aux_/preprocessed/msvc60/apply_wrap.hpp | 247 -- .../mpl/aux_/preprocessed/msvc60/arg.hpp | 123 - .../aux_/preprocessed/msvc60/basic_bind.hpp | 328 -- .../mpl/aux_/preprocessed/msvc60/bind.hpp | 432 --- .../mpl/aux_/preprocessed/msvc60/bind_fwd.hpp | 46 - .../mpl/aux_/preprocessed/msvc60/bitand.hpp | 149 - .../mpl/aux_/preprocessed/msvc60/bitor.hpp | 149 - .../mpl/aux_/preprocessed/msvc60/bitxor.hpp | 149 - .../mpl/aux_/preprocessed/msvc60/deque.hpp | 556 --- .../mpl/aux_/preprocessed/msvc60/divides.hpp | 148 - .../mpl/aux_/preprocessed/msvc60/equal_to.hpp | 102 - .../aux_/preprocessed/msvc60/fold_impl.hpp | 293 -- .../aux_/preprocessed/msvc60/full_lambda.hpp | 554 --- .../mpl/aux_/preprocessed/msvc60/greater.hpp | 102 - .../preprocessed/msvc60/greater_equal.hpp | 102 - .../mpl/aux_/preprocessed/msvc60/inherit.hpp | 166 - .../preprocessed/msvc60/iter_fold_if_impl.hpp | 133 - .../preprocessed/msvc60/iter_fold_impl.hpp | 293 -- .../preprocessed/msvc60/lambda_no_ctps.hpp | 229 -- .../mpl/aux_/preprocessed/msvc60/less.hpp | 102 - .../aux_/preprocessed/msvc60/less_equal.hpp | 102 - .../mpl/aux_/preprocessed/msvc60/list.hpp | 556 --- .../mpl/aux_/preprocessed/msvc60/list_c.hpp | 534 --- .../mpl/aux_/preprocessed/msvc60/map.hpp | 556 --- .../mpl/aux_/preprocessed/msvc60/minus.hpp | 148 - .../mpl/aux_/preprocessed/msvc60/modulus.hpp | 115 - .../aux_/preprocessed/msvc60/not_equal_to.hpp | 102 - src/boost/mpl/aux_/preprocessed/msvc60/or.hpp | 73 - .../aux_/preprocessed/msvc60/placeholders.hpp | 105 - .../mpl/aux_/preprocessed/msvc60/plus.hpp | 148 - .../mpl/aux_/preprocessed/msvc60/quote.hpp | 11 - .../preprocessed/msvc60/reverse_fold_impl.hpp | 343 -- .../msvc60/reverse_iter_fold_impl.hpp | 343 -- .../mpl/aux_/preprocessed/msvc60/set.hpp | 556 --- .../mpl/aux_/preprocessed/msvc60/set_c.hpp | 534 --- .../aux_/preprocessed/msvc60/shift_left.hpp | 114 - .../aux_/preprocessed/msvc60/shift_right.hpp | 114 - .../preprocessed/msvc60/template_arity.hpp | 46 - .../mpl/aux_/preprocessed/msvc60/times.hpp | 148 - .../aux_/preprocessed/msvc60/unpack_args.hpp | 109 - .../mpl/aux_/preprocessed/msvc60/vector.hpp | 556 --- .../mpl/aux_/preprocessed/msvc60/vector_c.hpp | 534 --- .../preprocessed/msvc70/advance_backward.hpp | 97 - .../preprocessed/msvc70/advance_forward.hpp | 97 - .../mpl/aux_/preprocessed/msvc70/and.hpp | 71 - .../mpl/aux_/preprocessed/msvc70/apply.hpp | 160 - .../aux_/preprocessed/msvc70/apply_fwd.hpp | 46 - .../aux_/preprocessed/msvc70/apply_wrap.hpp | 138 - .../mpl/aux_/preprocessed/msvc70/arg.hpp | 123 - .../aux_/preprocessed/msvc70/basic_bind.hpp | 328 -- .../mpl/aux_/preprocessed/msvc70/bind.hpp | 432 --- .../mpl/aux_/preprocessed/msvc70/bind_fwd.hpp | 46 - .../mpl/aux_/preprocessed/msvc70/bitand.hpp | 151 - .../mpl/aux_/preprocessed/msvc70/bitor.hpp | 151 - .../mpl/aux_/preprocessed/msvc70/bitxor.hpp | 151 - .../mpl/aux_/preprocessed/msvc70/deque.hpp | 556 --- .../mpl/aux_/preprocessed/msvc70/divides.hpp | 150 - .../mpl/aux_/preprocessed/msvc70/equal_to.hpp | 102 - .../aux_/preprocessed/msvc70/fold_impl.hpp | 245 -- .../aux_/preprocessed/msvc70/full_lambda.hpp | 554 --- .../mpl/aux_/preprocessed/msvc70/greater.hpp | 102 - .../preprocessed/msvc70/greater_equal.hpp | 102 - .../mpl/aux_/preprocessed/msvc70/inherit.hpp | 166 - .../preprocessed/msvc70/iter_fold_if_impl.hpp | 133 - .../preprocessed/msvc70/iter_fold_impl.hpp | 245 -- .../preprocessed/msvc70/lambda_no_ctps.hpp | 229 -- .../mpl/aux_/preprocessed/msvc70/less.hpp | 102 - .../aux_/preprocessed/msvc70/less_equal.hpp | 102 - .../mpl/aux_/preprocessed/msvc70/list.hpp | 556 --- .../mpl/aux_/preprocessed/msvc70/list_c.hpp | 534 --- .../mpl/aux_/preprocessed/msvc70/map.hpp | 556 --- .../mpl/aux_/preprocessed/msvc70/minus.hpp | 150 - .../mpl/aux_/preprocessed/msvc70/modulus.hpp | 115 - .../aux_/preprocessed/msvc70/not_equal_to.hpp | 102 - src/boost/mpl/aux_/preprocessed/msvc70/or.hpp | 71 - .../aux_/preprocessed/msvc70/placeholders.hpp | 105 - .../mpl/aux_/preprocessed/msvc70/plus.hpp | 150 - .../mpl/aux_/preprocessed/msvc70/quote.hpp | 116 - .../preprocessed/msvc70/reverse_fold_impl.hpp | 295 -- .../msvc70/reverse_iter_fold_impl.hpp | 295 -- .../mpl/aux_/preprocessed/msvc70/set.hpp | 556 --- .../mpl/aux_/preprocessed/msvc70/set_c.hpp | 534 --- .../aux_/preprocessed/msvc70/shift_left.hpp | 114 - .../aux_/preprocessed/msvc70/shift_right.hpp | 114 - .../preprocessed/msvc70/template_arity.hpp | 46 - .../mpl/aux_/preprocessed/msvc70/times.hpp | 150 - .../aux_/preprocessed/msvc70/unpack_args.hpp | 109 - .../mpl/aux_/preprocessed/msvc70/vector.hpp | 556 --- .../mpl/aux_/preprocessed/msvc70/vector_c.hpp | 534 --- .../preprocessed/mwcw/advance_backward.hpp | 97 - .../preprocessed/mwcw/advance_forward.hpp | 97 - src/boost/mpl/aux_/preprocessed/mwcw/and.hpp | 69 - .../mpl/aux_/preprocessed/mwcw/apply.hpp | 169 - .../mpl/aux_/preprocessed/mwcw/apply_fwd.hpp | 52 - .../mpl/aux_/preprocessed/mwcw/apply_wrap.hpp | 456 --- src/boost/mpl/aux_/preprocessed/mwcw/arg.hpp | 123 - .../mpl/aux_/preprocessed/mwcw/basic_bind.hpp | 440 --- src/boost/mpl/aux_/preprocessed/mwcw/bind.hpp | 561 --- .../mpl/aux_/preprocessed/mwcw/bind_fwd.hpp | 52 - .../mpl/aux_/preprocessed/mwcw/bitand.hpp | 147 - .../mpl/aux_/preprocessed/mwcw/bitor.hpp | 147 - .../mpl/aux_/preprocessed/mwcw/bitxor.hpp | 147 - .../mpl/aux_/preprocessed/mwcw/deque.hpp | 323 -- .../mpl/aux_/preprocessed/mwcw/divides.hpp | 146 - .../mpl/aux_/preprocessed/mwcw/equal_to.hpp | 94 - .../mpl/aux_/preprocessed/mwcw/fold_impl.hpp | 180 - .../aux_/preprocessed/mwcw/full_lambda.hpp | 554 --- .../mpl/aux_/preprocessed/mwcw/greater.hpp | 94 - .../aux_/preprocessed/mwcw/greater_equal.hpp | 94 - .../mpl/aux_/preprocessed/mwcw/inherit.hpp | 141 - .../preprocessed/mwcw/iter_fold_if_impl.hpp | 133 - .../aux_/preprocessed/mwcw/iter_fold_impl.hpp | 180 - .../aux_/preprocessed/mwcw/lambda_no_ctps.hpp | 229 -- src/boost/mpl/aux_/preprocessed/mwcw/less.hpp | 94 - .../mpl/aux_/preprocessed/mwcw/less_equal.hpp | 94 - src/boost/mpl/aux_/preprocessed/mwcw/list.hpp | 323 -- .../mpl/aux_/preprocessed/mwcw/list_c.hpp | 328 -- src/boost/mpl/aux_/preprocessed/mwcw/map.hpp | 323 -- .../mpl/aux_/preprocessed/mwcw/minus.hpp | 146 - .../mpl/aux_/preprocessed/mwcw/modulus.hpp | 101 - .../aux_/preprocessed/mwcw/not_equal_to.hpp | 94 - src/boost/mpl/aux_/preprocessed/mwcw/or.hpp | 69 - .../aux_/preprocessed/mwcw/placeholders.hpp | 105 - src/boost/mpl/aux_/preprocessed/mwcw/plus.hpp | 146 - .../mpl/aux_/preprocessed/mwcw/quote.hpp | 123 - .../preprocessed/mwcw/reverse_fold_impl.hpp | 231 -- .../mwcw/reverse_iter_fold_impl.hpp | 231 -- src/boost/mpl/aux_/preprocessed/mwcw/set.hpp | 323 -- .../mpl/aux_/preprocessed/mwcw/set_c.hpp | 328 -- .../mpl/aux_/preprocessed/mwcw/shift_left.hpp | 99 - .../aux_/preprocessed/mwcw/shift_right.hpp | 99 - .../aux_/preprocessed/mwcw/template_arity.hpp | 11 - .../mpl/aux_/preprocessed/mwcw/times.hpp | 146 - .../aux_/preprocessed/mwcw/unpack_args.hpp | 94 - .../mpl/aux_/preprocessed/mwcw/vector.hpp | 323 -- .../mpl/aux_/preprocessed/mwcw/vector_c.hpp | 309 -- .../preprocessed/no_ctps/advance_backward.hpp | 97 - .../preprocessed/no_ctps/advance_forward.hpp | 97 - .../mpl/aux_/preprocessed/no_ctps/and.hpp | 73 - .../mpl/aux_/preprocessed/no_ctps/apply.hpp | 268 -- .../aux_/preprocessed/no_ctps/apply_fwd.hpp | 50 - .../aux_/preprocessed/no_ctps/apply_wrap.hpp | 78 - .../mpl/aux_/preprocessed/no_ctps/arg.hpp | 123 - .../aux_/preprocessed/no_ctps/basic_bind.hpp | 486 --- .../mpl/aux_/preprocessed/no_ctps/bind.hpp | 590 ---- .../aux_/preprocessed/no_ctps/bind_fwd.hpp | 52 - .../mpl/aux_/preprocessed/no_ctps/bitand.hpp | 134 - .../mpl/aux_/preprocessed/no_ctps/bitor.hpp | 134 - .../mpl/aux_/preprocessed/no_ctps/bitxor.hpp | 134 - .../mpl/aux_/preprocessed/no_ctps/deque.hpp | 556 --- .../mpl/aux_/preprocessed/no_ctps/divides.hpp | 133 - .../aux_/preprocessed/no_ctps/equal_to.hpp | 94 - .../aux_/preprocessed/no_ctps/fold_impl.hpp | 245 -- .../aux_/preprocessed/no_ctps/full_lambda.hpp | 554 --- .../mpl/aux_/preprocessed/no_ctps/greater.hpp | 94 - .../preprocessed/no_ctps/greater_equal.hpp | 94 - .../mpl/aux_/preprocessed/no_ctps/inherit.hpp | 166 - .../no_ctps/iter_fold_if_impl.hpp | 133 - .../preprocessed/no_ctps/iter_fold_impl.hpp | 245 -- .../preprocessed/no_ctps/lambda_no_ctps.hpp | 229 -- .../mpl/aux_/preprocessed/no_ctps/less.hpp | 94 - .../aux_/preprocessed/no_ctps/less_equal.hpp | 94 - .../mpl/aux_/preprocessed/no_ctps/list.hpp | 556 --- .../mpl/aux_/preprocessed/no_ctps/list_c.hpp | 534 --- .../mpl/aux_/preprocessed/no_ctps/map.hpp | 556 --- .../mpl/aux_/preprocessed/no_ctps/minus.hpp | 133 - .../mpl/aux_/preprocessed/no_ctps/modulus.hpp | 101 - .../preprocessed/no_ctps/not_equal_to.hpp | 94 - .../mpl/aux_/preprocessed/no_ctps/or.hpp | 73 - .../preprocessed/no_ctps/placeholders.hpp | 105 - .../mpl/aux_/preprocessed/no_ctps/plus.hpp | 133 - .../mpl/aux_/preprocessed/no_ctps/quote.hpp | 116 - .../no_ctps/reverse_fold_impl.hpp | 295 -- .../no_ctps/reverse_iter_fold_impl.hpp | 295 -- .../mpl/aux_/preprocessed/no_ctps/set.hpp | 556 --- .../mpl/aux_/preprocessed/no_ctps/set_c.hpp | 534 --- .../aux_/preprocessed/no_ctps/shift_left.hpp | 99 - .../aux_/preprocessed/no_ctps/shift_right.hpp | 99 - .../preprocessed/no_ctps/template_arity.hpp | 40 - .../mpl/aux_/preprocessed/no_ctps/times.hpp | 133 - .../aux_/preprocessed/no_ctps/unpack_args.hpp | 109 - .../mpl/aux_/preprocessed/no_ctps/vector.hpp | 556 --- .../aux_/preprocessed/no_ctps/vector_c.hpp | 534 --- .../preprocessed/no_ttp/advance_backward.hpp | 97 - .../preprocessed/no_ttp/advance_forward.hpp | 97 - .../mpl/aux_/preprocessed/no_ttp/and.hpp | 69 - .../mpl/aux_/preprocessed/no_ttp/apply.hpp | 169 - .../aux_/preprocessed/no_ttp/apply_fwd.hpp | 52 - .../aux_/preprocessed/no_ttp/apply_wrap.hpp | 84 - .../mpl/aux_/preprocessed/no_ttp/arg.hpp | 123 - .../aux_/preprocessed/no_ttp/basic_bind.hpp | 369 -- .../mpl/aux_/preprocessed/no_ttp/bind.hpp | 466 --- .../mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp | 52 - .../mpl/aux_/preprocessed/no_ttp/bitand.hpp | 157 - .../mpl/aux_/preprocessed/no_ttp/bitor.hpp | 157 - .../mpl/aux_/preprocessed/no_ttp/bitxor.hpp | 157 - .../mpl/aux_/preprocessed/no_ttp/deque.hpp | 323 -- .../mpl/aux_/preprocessed/no_ttp/divides.hpp | 156 - .../mpl/aux_/preprocessed/no_ttp/equal_to.hpp | 98 - .../aux_/preprocessed/no_ttp/fold_impl.hpp | 180 - .../aux_/preprocessed/no_ttp/full_lambda.hpp | 554 --- .../mpl/aux_/preprocessed/no_ttp/greater.hpp | 98 - .../preprocessed/no_ttp/greater_equal.hpp | 98 - .../mpl/aux_/preprocessed/no_ttp/inherit.hpp | 141 - .../preprocessed/no_ttp/iter_fold_if_impl.hpp | 133 - .../preprocessed/no_ttp/iter_fold_impl.hpp | 180 - .../preprocessed/no_ttp/lambda_no_ctps.hpp | 229 -- .../mpl/aux_/preprocessed/no_ttp/less.hpp | 98 - .../aux_/preprocessed/no_ttp/less_equal.hpp | 98 - .../mpl/aux_/preprocessed/no_ttp/list.hpp | 323 -- .../mpl/aux_/preprocessed/no_ttp/list_c.hpp | 328 -- .../mpl/aux_/preprocessed/no_ttp/map.hpp | 323 -- .../mpl/aux_/preprocessed/no_ttp/minus.hpp | 156 - .../mpl/aux_/preprocessed/no_ttp/modulus.hpp | 111 - .../aux_/preprocessed/no_ttp/not_equal_to.hpp | 98 - src/boost/mpl/aux_/preprocessed/no_ttp/or.hpp | 69 - .../aux_/preprocessed/no_ttp/placeholders.hpp | 105 - .../mpl/aux_/preprocessed/no_ttp/plus.hpp | 156 - .../mpl/aux_/preprocessed/no_ttp/quote.hpp | 11 - .../preprocessed/no_ttp/reverse_fold_impl.hpp | 231 -- .../no_ttp/reverse_iter_fold_impl.hpp | 231 -- .../mpl/aux_/preprocessed/no_ttp/set.hpp | 323 -- .../mpl/aux_/preprocessed/no_ttp/set_c.hpp | 328 -- .../aux_/preprocessed/no_ttp/shift_left.hpp | 110 - .../aux_/preprocessed/no_ttp/shift_right.hpp | 110 - .../preprocessed/no_ttp/template_arity.hpp | 40 - .../mpl/aux_/preprocessed/no_ttp/times.hpp | 156 - .../aux_/preprocessed/no_ttp/unpack_args.hpp | 94 - .../mpl/aux_/preprocessed/no_ttp/vector.hpp | 323 -- .../mpl/aux_/preprocessed/no_ttp/vector_c.hpp | 309 -- .../preprocessed/plain/advance_backward.hpp | 97 - .../preprocessed/plain/advance_forward.hpp | 97 - src/boost/mpl/aux_/preprocessed/plain/and.hpp | 64 - .../mpl/aux_/preprocessed/plain/apply.hpp | 139 - .../mpl/aux_/preprocessed/plain/apply_fwd.hpp | 52 - .../aux_/preprocessed/plain/apply_wrap.hpp | 84 - src/boost/mpl/aux_/preprocessed/plain/arg.hpp | 123 - .../aux_/preprocessed/plain/basic_bind.hpp | 440 --- .../mpl/aux_/preprocessed/plain/bind.hpp | 561 --- .../mpl/aux_/preprocessed/plain/bind_fwd.hpp | 52 - .../mpl/aux_/preprocessed/plain/bitand.hpp | 142 - .../mpl/aux_/preprocessed/plain/bitor.hpp | 142 - .../mpl/aux_/preprocessed/plain/bitxor.hpp | 142 - .../mpl/aux_/preprocessed/plain/deque.hpp | 323 -- .../mpl/aux_/preprocessed/plain/divides.hpp | 141 - .../mpl/aux_/preprocessed/plain/equal_to.hpp | 92 - .../mpl/aux_/preprocessed/plain/fold_impl.hpp | 180 - .../aux_/preprocessed/plain/full_lambda.hpp | 554 --- .../mpl/aux_/preprocessed/plain/greater.hpp | 92 - .../aux_/preprocessed/plain/greater_equal.hpp | 92 - .../mpl/aux_/preprocessed/plain/inherit.hpp | 125 - .../preprocessed/plain/iter_fold_if_impl.hpp | 133 - .../preprocessed/plain/iter_fold_impl.hpp | 180 - .../preprocessed/plain/lambda_no_ctps.hpp | 228 -- .../mpl/aux_/preprocessed/plain/less.hpp | 92 - .../aux_/preprocessed/plain/less_equal.hpp | 92 - .../mpl/aux_/preprocessed/plain/list.hpp | 323 -- .../mpl/aux_/preprocessed/plain/list_c.hpp | 328 -- src/boost/mpl/aux_/preprocessed/plain/map.hpp | 323 -- .../mpl/aux_/preprocessed/plain/minus.hpp | 141 - .../mpl/aux_/preprocessed/plain/modulus.hpp | 99 - .../aux_/preprocessed/plain/not_equal_to.hpp | 92 - src/boost/mpl/aux_/preprocessed/plain/or.hpp | 64 - .../aux_/preprocessed/plain/placeholders.hpp | 105 - .../mpl/aux_/preprocessed/plain/plus.hpp | 141 - .../mpl/aux_/preprocessed/plain/quote.hpp | 123 - .../preprocessed/plain/reverse_fold_impl.hpp | 231 -- .../plain/reverse_iter_fold_impl.hpp | 231 -- src/boost/mpl/aux_/preprocessed/plain/set.hpp | 323 -- .../mpl/aux_/preprocessed/plain/set_c.hpp | 328 -- .../aux_/preprocessed/plain/shift_left.hpp | 97 - .../aux_/preprocessed/plain/shift_right.hpp | 97 - .../preprocessed/plain/template_arity.hpp | 11 - .../mpl/aux_/preprocessed/plain/times.hpp | 141 - .../aux_/preprocessed/plain/unpack_args.hpp | 94 - .../mpl/aux_/preprocessed/plain/vector.hpp | 323 -- .../mpl/aux_/preprocessed/plain/vector_c.hpp | 309 -- src/boost/mpl/aux_/preprocessor/add.hpp | 65 - .../mpl/aux_/preprocessor/def_params_tail.hpp | 105 - .../mpl/aux_/preprocessor/default_params.hpp | 67 - src/boost/mpl/aux_/preprocessor/enum.hpp | 62 - .../mpl/aux_/preprocessor/ext_params.hpp | 78 - .../mpl/aux_/preprocessor/filter_params.hpp | 28 - src/boost/mpl/aux_/preprocessor/params.hpp | 65 - .../aux_/preprocessor/partial_spec_params.hpp | 32 - src/boost/mpl/aux_/preprocessor/range.hpp | 30 - src/boost/mpl/aux_/preprocessor/repeat.hpp | 51 - src/boost/mpl/aux_/preprocessor/sub.hpp | 65 - src/boost/mpl/aux_/preprocessor/tuple.hpp | 29 - src/boost/mpl/aux_/static_cast.hpp | 27 - src/boost/mpl/aux_/template_arity.hpp | 189 - src/boost/mpl/aux_/template_arity_fwd.hpp | 23 - src/boost/mpl/aux_/traits_lambda_spec.hpp | 63 - src/boost/mpl/aux_/type_wrapper.hpp | 47 - src/boost/mpl/aux_/unwrap.hpp | 51 - src/boost/mpl/aux_/value_wknd.hpp | 89 - src/boost/mpl/aux_/yes_no.hpp | 58 - src/boost/mpl/begin_end.hpp | 57 - src/boost/mpl/begin_end_fwd.hpp | 27 - src/boost/mpl/bind.hpp | 551 --- src/boost/mpl/bind_fwd.hpp | 99 - src/boost/mpl/bool.hpp | 39 - src/boost/mpl/bool_fwd.hpp | 33 - src/boost/mpl/deref.hpp | 41 - src/boost/mpl/equal_to.hpp | 21 - src/boost/mpl/eval_if.hpp | 71 - src/boost/mpl/for_each.hpp | 123 - src/boost/mpl/has_xxx.hpp | 647 ---- src/boost/mpl/identity.hpp | 45 - src/boost/mpl/if.hpp | 135 - src/boost/mpl/int.hpp | 22 - src/boost/mpl/int_fwd.hpp | 27 - src/boost/mpl/integral_c.hpp | 51 - src/boost/mpl/integral_c_fwd.hpp | 32 - src/boost/mpl/integral_c_tag.hpp | 26 - src/boost/mpl/is_placeholder.hpp | 67 - src/boost/mpl/is_sequence.hpp | 112 - src/boost/mpl/lambda.hpp | 29 - src/boost/mpl/lambda_fwd.hpp | 57 - src/boost/mpl/less.hpp | 21 - src/boost/mpl/limits/arity.hpp | 21 - src/boost/mpl/logical.hpp | 21 - src/boost/mpl/multiplies.hpp | 53 - src/boost/mpl/next.hpp | 19 - src/boost/mpl/next_prior.hpp | 49 - src/boost/mpl/not.hpp | 51 - src/boost/mpl/numeric_cast.hpp | 41 - src/boost/mpl/or.hpp | 61 - src/boost/mpl/placeholders.hpp | 100 - src/boost/mpl/protect.hpp | 55 - src/boost/mpl/quote.hpp | 151 - src/boost/mpl/sequence_tag.hpp | 124 - src/boost/mpl/sequence_tag_fwd.hpp | 26 - src/boost/mpl/tag.hpp | 52 - src/boost/mpl/times.hpp | 21 - src/boost/mpl/void.hpp | 76 - src/boost/mpl/void_fwd.hpp | 26 - src/boost/next_prior.hpp | 165 - src/boost/noncopyable.hpp | 17 - src/boost/none.hpp | 59 - src/boost/none_t.hpp | 40 - .../numeric/conversion/conversion_traits.hpp | 39 - .../conversion/detail/conversion_traits.hpp | 97 - .../conversion/detail/int_float_mixture.hpp | 72 - .../conversion/detail/is_subranged.hpp | 234 -- src/boost/numeric/conversion/detail/meta.hpp | 120 - .../conversion/detail/sign_mixture.hpp | 72 - .../conversion/detail/udt_builtin_mixture.hpp | 69 - .../conversion/int_float_mixture_enum.hpp | 29 - .../numeric/conversion/sign_mixture_enum.hpp | 29 - .../conversion/udt_builtin_mixture_enum.hpp | 26 - src/boost/optional.hpp | 18 - src/boost/optional/bad_optional_access.hpp | 32 - src/boost/optional/optional.hpp | 1567 --------- src/boost/optional/optional_fwd.hpp | 30 - src/boost/pointer_to_other.hpp | 55 - src/boost/predef.h | 24 - src/boost/predef/architecture.h | 32 - src/boost/predef/architecture/alpha.h | 59 - src/boost/predef/architecture/arm.h | 70 - src/boost/predef/architecture/blackfin.h | 46 - src/boost/predef/architecture/convex.h | 65 - src/boost/predef/architecture/ia64.h | 49 - src/boost/predef/architecture/m68k.h | 82 - src/boost/predef/architecture/mips.h | 73 - src/boost/predef/architecture/parisc.h | 64 - src/boost/predef/architecture/ppc.h | 72 - src/boost/predef/architecture/pyramid.h | 42 - src/boost/predef/architecture/rs6k.h | 56 - src/boost/predef/architecture/sparc.h | 54 - src/boost/predef/architecture/superh.h | 67 - src/boost/predef/architecture/sys370.h | 43 - src/boost/predef/architecture/sys390.h | 43 - src/boost/predef/architecture/x86.h | 38 - src/boost/predef/architecture/x86/32.h | 87 - src/boost/predef/architecture/x86/64.h | 50 - src/boost/predef/architecture/z.h | 42 - src/boost/predef/compiler.h | 43 - src/boost/predef/compiler/borland.h | 63 - src/boost/predef/compiler/clang.h | 56 - src/boost/predef/compiler/comeau.h | 61 - src/boost/predef/compiler/compaq.h | 66 - src/boost/predef/compiler/diab.h | 56 - src/boost/predef/compiler/digitalmars.h | 56 - src/boost/predef/compiler/dignus.h | 56 - src/boost/predef/compiler/edg.h | 56 - src/boost/predef/compiler/ekopath.h | 57 - src/boost/predef/compiler/gcc.h | 68 - src/boost/predef/compiler/gcc_xml.h | 53 - src/boost/predef/compiler/greenhills.h | 66 - src/boost/predef/compiler/hp_acc.h | 61 - src/boost/predef/compiler/iar.h | 56 - src/boost/predef/compiler/ibm.h | 72 - src/boost/predef/compiler/intel.h | 65 - src/boost/predef/compiler/kai.h | 56 - src/boost/predef/compiler/llvm.h | 57 - src/boost/predef/compiler/metaware.h | 53 - src/boost/predef/compiler/metrowerks.h | 77 - src/boost/predef/compiler/microtec.h | 53 - src/boost/predef/compiler/mpw.h | 63 - src/boost/predef/compiler/palm.h | 56 - src/boost/predef/compiler/pgi.h | 60 - src/boost/predef/compiler/sgi_mipspro.h | 66 - src/boost/predef/compiler/sunpro.h | 76 - src/boost/predef/compiler/tendra.h | 53 - src/boost/predef/compiler/visualc.h | 91 - src/boost/predef/compiler/watcom.h | 56 - src/boost/predef/detail/_cassert.h | 17 - src/boost/predef/detail/_exception.h | 15 - src/boost/predef/detail/comp_detected.h | 10 - src/boost/predef/detail/os_detected.h | 10 - src/boost/predef/detail/platform_detected.h | 10 - src/boost/predef/detail/test.h | 17 - src/boost/predef/hardware.h | 16 - src/boost/predef/hardware/simd.h | 107 - src/boost/predef/hardware/simd/arm.h | 57 - src/boost/predef/hardware/simd/arm/versions.h | 32 - src/boost/predef/hardware/simd/ppc.h | 69 - src/boost/predef/hardware/simd/ppc/versions.h | 51 - src/boost/predef/hardware/simd/x86.h | 123 - src/boost/predef/hardware/simd/x86/versions.h | 129 - src/boost/predef/hardware/simd/x86_amd.h | 87 - .../predef/hardware/simd/x86_amd/versions.h | 51 - src/boost/predef/language.h | 17 - src/boost/predef/language/objc.h | 42 - src/boost/predef/language/stdc.h | 53 - src/boost/predef/language/stdcpp.h | 121 - src/boost/predef/library.h | 16 - src/boost/predef/library/c.h | 20 - src/boost/predef/library/c/_prefix.h | 13 - src/boost/predef/library/c/gnu.h | 61 - src/boost/predef/library/c/uc.h | 47 - src/boost/predef/library/c/vms.h | 47 - src/boost/predef/library/c/zos.h | 56 - src/boost/predef/library/std.h | 25 - src/boost/predef/library/std/_prefix.h | 23 - src/boost/predef/library/std/cxx.h | 46 - src/boost/predef/library/std/dinkumware.h | 52 - src/boost/predef/library/std/libcomo.h | 47 - src/boost/predef/library/std/modena.h | 45 - src/boost/predef/library/std/msl.h | 53 - src/boost/predef/library/std/roguewave.h | 56 - src/boost/predef/library/std/sgi.h | 51 - src/boost/predef/library/std/stdcpp3.h | 53 - src/boost/predef/library/std/stlport.h | 59 - src/boost/predef/library/std/vacpp.h | 44 - src/boost/predef/make.h | 89 - src/boost/predef/os.h | 33 - src/boost/predef/os/aix.h | 66 - src/boost/predef/os/amigaos.h | 46 - src/boost/predef/os/android.h | 45 - src/boost/predef/os/beos.h | 45 - src/boost/predef/os/bsd.h | 103 - src/boost/predef/os/bsd/bsdi.h | 48 - src/boost/predef/os/bsd/dragonfly.h | 50 - src/boost/predef/os/bsd/free.h | 60 - src/boost/predef/os/bsd/net.h | 84 - src/boost/predef/os/bsd/open.h | 171 - src/boost/predef/os/cygwin.h | 45 - src/boost/predef/os/haiku.h | 46 - src/boost/predef/os/hpux.h | 47 - src/boost/predef/os/ios.h | 51 - src/boost/predef/os/irix.h | 46 - src/boost/predef/os/linux.h | 46 - src/boost/predef/os/macos.h | 65 - src/boost/predef/os/os400.h | 45 - src/boost/predef/os/qnxnto.h | 59 - src/boost/predef/os/solaris.h | 46 - src/boost/predef/os/unix.h | 76 - src/boost/predef/os/vms.h | 52 - src/boost/predef/os/windows.h | 51 - src/boost/predef/other.h | 16 - src/boost/predef/other/endian.h | 204 -- src/boost/predef/platform.h | 21 - src/boost/predef/platform/mingw.h | 69 - src/boost/predef/platform/windows_desktop.h | 45 - src/boost/predef/platform/windows_phone.h | 43 - src/boost/predef/platform/windows_runtime.h | 45 - src/boost/predef/platform/windows_store.h | 43 - src/boost/predef/version.h | 15 - src/boost/predef/version_number.h | 53 - src/boost/preprocessor/arithmetic/add.hpp | 51 - src/boost/preprocessor/arithmetic/dec.hpp | 289 -- .../arithmetic/detail/div_base.hpp | 61 - src/boost/preprocessor/arithmetic/inc.hpp | 288 -- src/boost/preprocessor/arithmetic/mod.hpp | 39 - src/boost/preprocessor/arithmetic/sub.hpp | 50 - src/boost/preprocessor/array/data.hpp | 28 - src/boost/preprocessor/array/elem.hpp | 29 - src/boost/preprocessor/array/size.hpp | 28 - src/boost/preprocessor/cat.hpp | 35 - src/boost/preprocessor/comma_if.hpp | 17 - src/boost/preprocessor/comparison/equal.hpp | 34 - .../preprocessor/comparison/less_equal.hpp | 39 - .../preprocessor/comparison/not_equal.hpp | 814 ----- src/boost/preprocessor/config/config.hpp | 104 - src/boost/preprocessor/control/deduce_d.hpp | 22 - .../preprocessor/control/detail/dmc/while.hpp | 536 --- .../preprocessor/control/detail/edg/while.hpp | 534 --- .../control/detail/msvc/while.hpp | 277 -- .../preprocessor/control/detail/while.hpp | 536 --- src/boost/preprocessor/control/expr_if.hpp | 30 - src/boost/preprocessor/control/expr_iif.hpp | 31 - src/boost/preprocessor/control/if.hpp | 30 - src/boost/preprocessor/control/iif.hpp | 34 - src/boost/preprocessor/control/while.hpp | 312 -- src/boost/preprocessor/debug/error.hpp | 33 - src/boost/preprocessor/dec.hpp | 17 - src/boost/preprocessor/detail/auto_rec.hpp | 293 -- src/boost/preprocessor/detail/check.hpp | 48 - .../preprocessor/detail/dmc/auto_rec.hpp | 286 -- src/boost/preprocessor/detail/is_binary.hpp | 30 - src/boost/preprocessor/detail/split.hpp | 35 - src/boost/preprocessor/empty.hpp | 17 - src/boost/preprocessor/enum.hpp | 17 - src/boost/preprocessor/enum_params.hpp | 17 - .../preprocessor/enum_shifted_params.hpp | 17 - src/boost/preprocessor/expr_if.hpp | 17 - .../facilities/detail/is_empty.hpp | 55 - src/boost/preprocessor/facilities/empty.hpp | 23 - src/boost/preprocessor/facilities/expand.hpp | 28 - .../preprocessor/facilities/identity.hpp | 27 - .../preprocessor/facilities/intercept.hpp | 277 -- src/boost/preprocessor/facilities/is_1.hpp | 23 - .../preprocessor/facilities/is_empty.hpp | 56 - .../facilities/is_empty_variadic.hpp | 57 - .../preprocessor/facilities/overload.hpp | 25 - src/boost/preprocessor/identity.hpp | 17 - src/boost/preprocessor/inc.hpp | 17 - src/boost/preprocessor/iterate.hpp | 17 - .../iteration/detail/bounds/lower1.hpp | 99 - .../iteration/detail/bounds/lower2.hpp | 99 - .../iteration/detail/bounds/lower3.hpp | 99 - .../iteration/detail/bounds/lower4.hpp | 99 - .../iteration/detail/bounds/lower5.hpp | 99 - .../iteration/detail/bounds/upper1.hpp | 99 - .../iteration/detail/bounds/upper2.hpp | 99 - .../iteration/detail/bounds/upper3.hpp | 99 - .../iteration/detail/bounds/upper4.hpp | 99 - .../iteration/detail/bounds/upper5.hpp | 99 - .../preprocessor/iteration/detail/finish.hpp | 99 - .../iteration/detail/iter/forward1.hpp | 1342 ------- .../iteration/detail/iter/forward2.hpp | 1338 ------- .../iteration/detail/iter/forward3.hpp | 1338 ------- .../iteration/detail/iter/forward4.hpp | 1338 ------- .../iteration/detail/iter/forward5.hpp | 1338 ------- .../iteration/detail/iter/reverse1.hpp | 1296 ------- .../iteration/detail/iter/reverse2.hpp | 1296 ------- .../iteration/detail/iter/reverse3.hpp | 1296 ------- .../iteration/detail/iter/reverse4.hpp | 1296 ------- .../iteration/detail/iter/reverse5.hpp | 1296 ------- .../preprocessor/iteration/detail/local.hpp | 812 ----- .../preprocessor/iteration/detail/rlocal.hpp | 782 ----- .../preprocessor/iteration/detail/self.hpp | 21 - .../preprocessor/iteration/detail/start.hpp | 99 - src/boost/preprocessor/iteration/iterate.hpp | 82 - src/boost/preprocessor/iteration/local.hpp | 26 - src/boost/preprocessor/iteration/self.hpp | 19 - src/boost/preprocessor/list/adt.hpp | 73 - .../list/detail/dmc/fold_left.hpp | 279 -- .../list/detail/edg/fold_left.hpp | 536 --- .../list/detail/edg/fold_right.hpp | 794 ----- .../preprocessor/list/detail/fold_left.hpp | 279 -- .../preprocessor/list/detail/fold_right.hpp | 277 -- src/boost/preprocessor/list/fold_left.hpp | 303 -- src/boost/preprocessor/list/fold_right.hpp | 40 - src/boost/preprocessor/list/for_each_i.hpp | 65 - src/boost/preprocessor/list/reverse.hpp | 40 - src/boost/preprocessor/logical/and.hpp | 30 - src/boost/preprocessor/logical/bitand.hpp | 38 - src/boost/preprocessor/logical/bool.hpp | 288 -- src/boost/preprocessor/logical/compl.hpp | 36 - src/boost/preprocessor/logical/not.hpp | 30 - src/boost/preprocessor/punctuation/comma.hpp | 21 - .../preprocessor/punctuation/comma_if.hpp | 31 - .../punctuation/detail/is_begin_parens.hpp | 48 - .../punctuation/is_begin_parens.hpp | 51 - src/boost/preprocessor/repeat.hpp | 17 - .../repetition/detail/dmc/for.hpp | 536 --- .../repetition/detail/edg/for.hpp | 534 --- .../preprocessor/repetition/detail/for.hpp | 536 --- .../repetition/detail/msvc/for.hpp | 277 -- src/boost/preprocessor/repetition/enum.hpp | 66 - .../repetition/enum_binary_params.hpp | 54 - .../preprocessor/repetition/enum_params.hpp | 41 - .../repetition/enum_shifted_params.hpp | 44 - .../repetition/enum_trailing_params.hpp | 38 - src/boost/preprocessor/repetition/for.hpp | 324 -- src/boost/preprocessor/repetition/repeat.hpp | 825 ----- .../repetition/repeat_from_to.hpp | 87 - src/boost/preprocessor/seq/cat.hpp | 49 - .../preprocessor/seq/detail/is_empty.hpp | 49 - src/boost/preprocessor/seq/detail/split.hpp | 284 -- src/boost/preprocessor/seq/elem.hpp | 304 -- src/boost/preprocessor/seq/enum.hpp | 288 -- src/boost/preprocessor/seq/first_n.hpp | 30 - src/boost/preprocessor/seq/fold_left.hpp | 1070 ------ src/boost/preprocessor/seq/for_each.hpp | 107 - src/boost/preprocessor/seq/for_each_i.hpp | 109 - src/boost/preprocessor/seq/rest_n.hpp | 46 - src/boost/preprocessor/seq/seq.hpp | 44 - src/boost/preprocessor/seq/size.hpp | 548 --- src/boost/preprocessor/seq/subseq.hpp | 28 - src/boost/preprocessor/seq/to_tuple.hpp | 27 - src/boost/preprocessor/seq/transform.hpp | 48 - .../preprocessor/slot/detail/counter.hpp | 269 -- src/boost/preprocessor/slot/detail/def.hpp | 49 - src/boost/preprocessor/slot/detail/shared.hpp | 247 -- src/boost/preprocessor/slot/detail/slot1.hpp | 267 -- src/boost/preprocessor/slot/detail/slot2.hpp | 267 -- src/boost/preprocessor/slot/detail/slot3.hpp | 267 -- src/boost/preprocessor/slot/detail/slot4.hpp | 267 -- src/boost/preprocessor/slot/detail/slot5.hpp | 267 -- src/boost/preprocessor/slot/slot.hpp | 32 - src/boost/preprocessor/stringize.hpp | 33 - .../tuple/detail/is_single_return.hpp | 28 - src/boost/preprocessor/tuple/eat.hpp | 115 - src/boost/preprocessor/tuple/elem.hpp | 201 -- src/boost/preprocessor/tuple/rem.hpp | 149 - src/boost/preprocessor/tuple/size.hpp | 28 - src/boost/preprocessor/tuple/to_list.hpp | 118 - src/boost/preprocessor/variadic/elem.hpp | 94 - src/boost/preprocessor/variadic/size.hpp | 30 - src/boost/range/algorithm/equal.hpp | 200 -- src/boost/range/as_literal.hpp | 127 - src/boost/range/begin.hpp | 135 - src/boost/range/concepts.hpp | 386 --- src/boost/range/config.hpp | 56 - src/boost/range/const_iterator.hpp | 76 - src/boost/range/detail/as_literal.hpp | 33 - src/boost/range/detail/begin.hpp | 83 - src/boost/range/detail/common.hpp | 118 - src/boost/range/detail/detail_str.hpp | 376 -- src/boost/range/detail/end.hpp | 86 - .../range/detail/extract_optional_type.hpp | 48 - src/boost/range/detail/has_member_size.hpp | 66 - .../range/detail/implementation_help.hpp | 114 - src/boost/range/detail/misc_concept.hpp | 33 - .../detail/msvc_has_iterator_workaround.hpp | 132 - src/boost/range/detail/remove_extent.hpp | 157 - src/boost/range/detail/safe_bool.hpp | 72 - src/boost/range/detail/sfinae.hpp | 77 - src/boost/range/detail/size_type.hpp | 55 - src/boost/range/detail/str_types.hpp | 38 - src/boost/range/detail/value_type.hpp | 72 - src/boost/range/difference_type.hpp | 47 - src/boost/range/distance.hpp | 34 - src/boost/range/empty.hpp | 34 - src/boost/range/end.hpp | 128 - src/boost/range/functions.hpp | 27 - src/boost/range/has_range_iterator.hpp | 83 - src/boost/range/iterator.hpp | 74 - src/boost/range/iterator_range.hpp | 16 - src/boost/range/iterator_range_core.hpp | 883 ----- src/boost/range/iterator_range_io.hpp | 93 - src/boost/range/mutable_iterator.hpp | 79 - src/boost/range/range_fwd.hpp | 63 - src/boost/range/rbegin.hpp | 65 - src/boost/range/rend.hpp | 65 - src/boost/range/reverse_iterator.hpp | 42 - src/boost/range/size.hpp | 76 - src/boost/range/size_type.hpp | 95 - src/boost/range/value_type.hpp | 30 - src/boost/ref.hpp | 17 - src/boost/regex.hpp | 37 - src/boost/regex/config.hpp | 477 --- src/boost/regex/config/borland.hpp | 72 - src/boost/regex/config/cwchar.hpp | 207 -- src/boost/regex/icu.hpp | 1022 ------ src/boost/regex/pattern_except.hpp | 100 - src/boost/regex/pending/object_cache.hpp | 165 - src/boost/regex/pending/static_mutex.hpp | 182 - src/boost/regex/pending/unicode_iterator.hpp | 782 ----- src/boost/regex/regex_traits.hpp | 35 - src/boost/regex/user.hpp | 93 - src/boost/regex/v4/basic_regex.hpp | 781 ----- src/boost/regex/v4/basic_regex_creator.hpp | 1558 --------- src/boost/regex/v4/basic_regex_parser.hpp | 3071 ----------------- src/boost/regex/v4/c_regex_traits.hpp | 211 -- src/boost/regex/v4/char_regex_traits.hpp | 81 - src/boost/regex/v4/cpp_regex_traits.hpp | 1154 ------- src/boost/regex/v4/cregex.hpp | 330 -- src/boost/regex/v4/error_type.hpp | 59 - src/boost/regex/v4/fileiter.hpp | 455 --- src/boost/regex/v4/instances.hpp | 225 -- src/boost/regex/v4/iterator_category.hpp | 91 - src/boost/regex/v4/iterator_traits.hpp | 135 - src/boost/regex/v4/match_flags.hpp | 138 - src/boost/regex/v4/match_results.hpp | 707 ---- src/boost/regex/v4/mem_block_cache.hpp | 99 - src/boost/regex/v4/perl_matcher.hpp | 613 ---- src/boost/regex/v4/perl_matcher_common.hpp | 1020 ------ .../regex/v4/perl_matcher_non_recursive.hpp | 1817 ---------- src/boost/regex/v4/perl_matcher_recursive.hpp | 1097 ------ src/boost/regex/v4/primary_transform.hpp | 146 - src/boost/regex/v4/protected_call.hpp | 81 - src/boost/regex/v4/regbase.hpp | 180 - src/boost/regex/v4/regex.hpp | 202 -- src/boost/regex/v4/regex_format.hpp | 1156 ------- src/boost/regex/v4/regex_fwd.hpp | 73 - src/boost/regex/v4/regex_grep.hpp | 155 - src/boost/regex/v4/regex_iterator.hpp | 201 -- src/boost/regex/v4/regex_match.hpp | 382 -- src/boost/regex/v4/regex_merge.hpp | 93 - src/boost/regex/v4/regex_raw_buffer.hpp | 210 -- src/boost/regex/v4/regex_replace.hpp | 99 - src/boost/regex/v4/regex_search.hpp | 217 -- src/boost/regex/v4/regex_split.hpp | 172 - src/boost/regex/v4/regex_token_iterator.hpp | 333 -- src/boost/regex/v4/regex_traits.hpp | 189 - src/boost/regex/v4/regex_traits_defaults.hpp | 377 -- src/boost/regex/v4/regex_workaround.hpp | 233 -- src/boost/regex/v4/states.hpp | 321 -- src/boost/regex/v4/sub_match.hpp | 516 --- src/boost/regex/v4/syntax_type.hpp | 105 - src/boost/regex/v4/u32regex_iterator.hpp | 193 -- .../regex/v4/u32regex_token_iterator.hpp | 368 -- src/boost/regex/v4/w32_regex_traits.hpp | 743 ---- src/boost/regex_fwd.hpp | 33 - src/boost/scoped_array.hpp | 16 - src/boost/scoped_ptr.hpp | 16 - src/boost/shared_ptr.hpp | 19 - src/boost/smart_ptr/bad_weak_ptr.hpp | 59 - .../smart_ptr/detail/lightweight_mutex.hpp | 42 - src/boost/smart_ptr/detail/lwm_nop.hpp | 37 - src/boost/smart_ptr/detail/lwm_pthreads.hpp | 87 - src/boost/smart_ptr/detail/lwm_win32_cs.hpp | 119 - src/boost/smart_ptr/detail/operator_bool.hpp | 64 - .../smart_ptr/detail/quick_allocator.hpp | 199 -- src/boost/smart_ptr/detail/shared_count.hpp | 709 ---- src/boost/smart_ptr/detail/sp_convertible.hpp | 92 - .../smart_ptr/detail/sp_counted_base.hpp | 93 - .../detail/sp_counted_base_acc_ia64.hpp | 151 - .../smart_ptr/detail/sp_counted_base_aix.hpp | 143 - .../detail/sp_counted_base_clang.hpp | 140 - .../detail/sp_counted_base_cw_ppc.hpp | 171 - .../detail/sp_counted_base_gcc_ia64.hpp | 158 - .../detail/sp_counted_base_gcc_mips.hpp | 182 - .../detail/sp_counted_base_gcc_ppc.hpp | 182 - .../detail/sp_counted_base_gcc_sparc.hpp | 167 - .../detail/sp_counted_base_gcc_x86.hpp | 174 - .../smart_ptr/detail/sp_counted_base_nt.hpp | 108 - .../smart_ptr/detail/sp_counted_base_pt.hpp | 137 - .../detail/sp_counted_base_snc_ps3.hpp | 162 - .../smart_ptr/detail/sp_counted_base_spin.hpp | 132 - .../detail/sp_counted_base_std_atomic.hpp | 137 - .../smart_ptr/detail/sp_counted_base_sync.hpp | 156 - .../detail/sp_counted_base_vacpp_ppc.hpp | 151 - .../smart_ptr/detail/sp_counted_base_w32.hpp | 131 - .../smart_ptr/detail/sp_counted_impl.hpp | 271 -- .../detail/sp_disable_deprecated.hpp | 40 - src/boost/smart_ptr/detail/sp_has_sync.hpp | 69 - src/boost/smart_ptr/detail/sp_interlocked.hpp | 163 - src/boost/smart_ptr/detail/sp_nullptr_t.hpp | 45 - src/boost/smart_ptr/detail/spinlock.hpp | 65 - .../smart_ptr/detail/spinlock_gcc_arm.hpp | 121 - src/boost/smart_ptr/detail/spinlock_nt.hpp | 89 - src/boost/smart_ptr/detail/spinlock_pool.hpp | 91 - src/boost/smart_ptr/detail/spinlock_pt.hpp | 79 - .../smart_ptr/detail/spinlock_std_atomic.hpp | 83 - src/boost/smart_ptr/detail/spinlock_sync.hpp | 87 - src/boost/smart_ptr/detail/spinlock_w32.hpp | 113 - src/boost/smart_ptr/detail/yield_k.hpp | 177 - src/boost/smart_ptr/scoped_array.hpp | 132 - src/boost/smart_ptr/scoped_ptr.hpp | 167 - src/boost/smart_ptr/shared_ptr.hpp | 1077 ------ src/boost/static_assert.hpp | 180 - src/boost/swap.hpp | 17 - src/boost/test/debug.hpp | 138 - src/boost/test/debug_config.hpp | 24 - src/boost/test/detail/config.hpp | 127 - src/boost/test/detail/enable_warnings.hpp | 36 - src/boost/test/detail/fwd_decl.hpp | 45 - src/boost/test/detail/global_typedef.hpp | 93 - src/boost/test/detail/log_level.hpp | 40 - src/boost/test/detail/pp_variadic.hpp | 49 - src/boost/test/detail/suppress_warnings.hpp | 38 - src/boost/test/detail/throw_exception.hpp | 72 - src/boost/test/detail/workaround.hpp | 56 - src/boost/test/execution_monitor.hpp | 518 --- src/boost/test/framework.hpp | 275 -- .../test/impl/compiler_log_formatter.ipp | 290 -- src/boost/test/impl/cpp_main.ipp | 136 - src/boost/test/impl/debug.ipp | 977 ------ src/boost/test/impl/decorator.ipp | 202 -- src/boost/test/impl/execution_monitor.ipp | 1438 -------- src/boost/test/impl/framework.ipp | 1295 ------- .../test/impl/plain_report_formatter.ipp | 207 -- src/boost/test/impl/progress_monitor.ipp | 185 - src/boost/test/impl/results_collector.ipp | 276 -- src/boost/test/impl/results_reporter.ipp | 197 -- src/boost/test/impl/test_main.ipp | 65 - src/boost/test/impl/test_tools.ipp | 680 ---- src/boost/test/impl/test_tree.ipp | 460 --- src/boost/test/impl/unit_test_log.ipp | 469 --- src/boost/test/impl/unit_test_main.ipp | 293 -- src/boost/test/impl/unit_test_monitor.ipp | 75 - src/boost/test/impl/unit_test_parameters.ipp | 729 ---- src/boost/test/impl/xml_log_formatter.ipp | 223 -- src/boost/test/impl/xml_report_formatter.ipp | 111 - .../test/output/compiler_log_formatter.hpp | 72 - .../test/output/plain_report_formatter.hpp | 59 - src/boost/test/output/xml_log_formatter.hpp | 72 - .../test/output/xml_report_formatter.hpp | 52 - src/boost/test/progress_monitor.hpp | 66 - src/boost/test/results_collector.hpp | 128 - src/boost/test/results_reporter.hpp | 122 - src/boost/test/test_tools.hpp | 68 - src/boost/test/tools/assertion.hpp | 410 --- src/boost/test/tools/assertion_result.hpp | 90 - .../test/tools/collection_comparison_op.hpp | 378 -- src/boost/test/tools/context.hpp | 65 - .../test/tools/cstring_comparison_op.hpp | 91 - src/boost/test/tools/detail/bitwise_manip.hpp | 123 - .../test/tools/detail/expression_holder.hpp | 70 - src/boost/test/tools/detail/fwd.hpp | 121 - src/boost/test/tools/detail/indirections.hpp | 94 - src/boost/test/tools/detail/it_pair.hpp | 74 - .../test/tools/detail/lexicographic_manip.hpp | 69 - .../test/tools/detail/per_element_manip.hpp | 69 - src/boost/test/tools/detail/print_helper.hpp | 199 -- .../test/tools/detail/tolerance_manip.hpp | 130 - .../test/tools/floating_point_comparison.hpp | 315 -- src/boost/test/tools/fpc_op.hpp | 224 -- src/boost/test/tools/fpc_tolerance.hpp | 103 - src/boost/test/tools/interface.hpp | 376 -- src/boost/test/tools/old/impl.hpp | 358 -- src/boost/test/tools/old/interface.hpp | 282 -- src/boost/test/tools/output_test_stream.hpp | 96 - src/boost/test/tree/auto_registration.hpp | 53 - src/boost/test/tree/decorator.hpp | 277 -- src/boost/test/tree/fixture.hpp | 116 - src/boost/test/tree/global_fixture.hpp | 68 - src/boost/test/tree/observer.hpp | 70 - src/boost/test/tree/test_case_counter.hpp | 54 - src/boost/test/tree/test_case_template.hpp | 144 - src/boost/test/tree/test_unit.hpp | 275 -- src/boost/test/tree/traverse.hpp | 58 - src/boost/test/tree/visitor.hpp | 52 - src/boost/test/unit_test.hpp | 70 - src/boost/test/unit_test_log.hpp | 172 - src/boost/test/unit_test_log_formatter.hpp | 248 -- src/boost/test/unit_test_monitor.hpp | 60 - src/boost/test/unit_test_parameters.hpp | 128 - src/boost/test/unit_test_suite.hpp | 366 -- src/boost/test/utils/algorithm.hpp | 222 -- src/boost/test/utils/assign_op.hpp | 39 - .../utils/basic_cstring/basic_cstring.hpp | 738 ---- .../utils/basic_cstring/basic_cstring_fwd.hpp | 40 - .../utils/basic_cstring/bcs_char_traits.hpp | 150 - .../test/utils/basic_cstring/compare.hpp | 147 - src/boost/test/utils/basic_cstring/io.hpp | 73 - src/boost/test/utils/class_properties.hpp | 195 -- src/boost/test/utils/custom_manip.hpp | 61 - src/boost/test/utils/foreach.hpp | 316 -- src/boost/test/utils/is_cstring.hpp | 58 - src/boost/test/utils/is_forward_iterable.hpp | 166 - .../utils/iterator/input_iterator_facade.hpp | 105 - .../test/utils/iterator/token_iterator.hpp | 417 --- src/boost/test/utils/lazy_ostream.hpp | 128 - src/boost/test/utils/named_params.hpp | 388 --- src/boost/test/utils/rtti.hpp | 63 - src/boost/test/utils/runtime/argument.hpp | 131 - .../test/utils/runtime/argument_factory.hpp | 242 -- .../test/utils/runtime/cla/argv_traverser.hpp | 105 - src/boost/test/utils/runtime/cla/parser.hpp | 491 --- src/boost/test/utils/runtime/env/fetch.hpp | 108 - src/boost/test/utils/runtime/errors.hpp | 195 -- src/boost/test/utils/runtime/finalize.hpp | 56 - src/boost/test/utils/runtime/fwd.hpp | 45 - src/boost/test/utils/runtime/modifier.hpp | 101 - src/boost/test/utils/runtime/parameter.hpp | 472 --- src/boost/test/utils/setcolor.hpp | 126 - src/boost/test/utils/string_cast.hpp | 69 - src/boost/test/utils/trivial_singleton.hpp | 79 - src/boost/test/utils/wrap_stringstream.hpp | 162 - src/boost/test/utils/xml_printer.hpp | 143 - src/boost/throw_exception.hpp | 102 - src/boost/timer.hpp | 72 - src/boost/tuple/detail/tuple_basic.hpp | 989 ------ src/boost/tuple/tuple.hpp | 67 - src/boost/type.hpp | 18 - src/boost/type_traits/add_const.hpp | 46 - src/boost/type_traits/add_cv.hpp | 41 - .../type_traits/add_lvalue_reference.hpp | 27 - src/boost/type_traits/add_pointer.hpp | 61 - src/boost/type_traits/add_reference.hpp | 59 - .../type_traits/add_rvalue_reference.hpp | 64 - src/boost/type_traits/add_volatile.hpp | 40 - src/boost/type_traits/aligned_storage.hpp | 138 - src/boost/type_traits/alignment_of.hpp | 119 - src/boost/type_traits/common_type.hpp | 144 - src/boost/type_traits/composite_traits.hpp | 29 - src/boost/type_traits/conditional.hpp | 20 - src/boost/type_traits/conversion_traits.hpp | 17 - src/boost/type_traits/copy_cv.hpp | 34 - src/boost/type_traits/cv_traits.hpp | 24 - src/boost/type_traits/decay.hpp | 43 - src/boost/type_traits/declval.hpp | 44 - .../detail/common_arithmetic_type.hpp | 212 -- .../type_traits/detail/common_type_impl.hpp | 107 - .../detail/composite_member_pointer_type.hpp | 113 - .../detail/composite_pointer_type.hpp | 153 - src/boost/type_traits/detail/config.hpp | 72 - .../detail/has_binary_operator.hpp | 222 -- .../detail/is_function_ptr_helper.hpp | 176 - .../detail/is_function_ptr_tester.hpp | 449 --- .../detail/is_mem_fun_pointer_impl.hpp | 723 ---- .../detail/is_mem_fun_pointer_tester.hpp | 1800 ---------- src/boost/type_traits/detail/mp_defer.hpp | 56 - src/boost/type_traits/detail/yes_no_type.hpp | 26 - src/boost/type_traits/function_traits.hpp | 174 - src/boost/type_traits/has_minus.hpp | 60 - src/boost/type_traits/has_minus_assign.hpp | 65 - src/boost/type_traits/has_nothrow_assign.hpp | 83 - .../type_traits/has_nothrow_constructor.hpp | 72 - src/boost/type_traits/has_nothrow_copy.hpp | 82 - src/boost/type_traits/has_plus.hpp | 54 - src/boost/type_traits/has_plus_assign.hpp | 66 - src/boost/type_traits/has_trivial_assign.hpp | 51 - .../type_traits/has_trivial_constructor.hpp | 57 - src/boost/type_traits/has_trivial_copy.hpp | 62 - .../type_traits/has_trivial_destructor.hpp | 48 - .../type_traits/has_trivial_move_assign.hpp | 72 - .../has_trivial_move_constructor.hpp | 77 - src/boost/type_traits/integral_constant.hpp | 106 - src/boost/type_traits/integral_promotion.hpp | 181 - src/boost/type_traits/intrinsics.hpp | 380 -- src/boost/type_traits/is_abstract.hpp | 149 - src/boost/type_traits/is_arithmetic.hpp | 22 - src/boost/type_traits/is_array.hpp | 43 - src/boost/type_traits/is_assignable.hpp | 76 - src/boost/type_traits/is_base_and_derived.hpp | 244 -- src/boost/type_traits/is_base_of.hpp | 39 - src/boost/type_traits/is_class.hpp | 114 - src/boost/type_traits/is_const.hpp | 46 - src/boost/type_traits/is_constructible.hpp | 80 - src/boost/type_traits/is_convertible.hpp | 488 --- .../type_traits/is_copy_constructible.hpp | 187 - .../type_traits/is_default_constructible.hpp | 64 - src/boost/type_traits/is_destructible.hpp | 60 - src/boost/type_traits/is_empty.hpp | 120 - src/boost/type_traits/is_enum.hpp | 166 - src/boost/type_traits/is_floating_point.hpp | 30 - src/boost/type_traits/is_function.hpp | 102 - src/boost/type_traits/is_fundamental.hpp | 26 - src/boost/type_traits/is_integral.hpp | 89 - src/boost/type_traits/is_lvalue_reference.hpp | 50 - .../is_member_function_pointer.hpp | 120 - src/boost/type_traits/is_member_pointer.hpp | 45 - .../is_nothrow_move_assignable.hpp | 81 - .../is_nothrow_move_constructible.hpp | 86 - src/boost/type_traits/is_pod.hpp | 58 - src/boost/type_traits/is_pointer.hpp | 47 - src/boost/type_traits/is_polymorphic.hpp | 122 - src/boost/type_traits/is_reference.hpp | 30 - src/boost/type_traits/is_rvalue_reference.hpp | 25 - src/boost/type_traits/is_same.hpp | 41 - src/boost/type_traits/is_scalar.hpp | 27 - src/boost/type_traits/is_signed.hpp | 163 - src/boost/type_traits/is_union.hpp | 31 - src/boost/type_traits/is_unsigned.hpp | 163 - src/boost/type_traits/is_void.hpp | 26 - src/boost/type_traits/is_volatile.hpp | 45 - src/boost/type_traits/make_signed.hpp | 131 - src/boost/type_traits/make_unsigned.hpp | 130 - src/boost/type_traits/remove_all_extents.hpp | 35 - src/boost/type_traits/remove_bounds.hpp | 21 - src/boost/type_traits/remove_const.hpp | 33 - src/boost/type_traits/remove_cv.hpp | 40 - src/boost/type_traits/remove_extent.hpp | 35 - src/boost/type_traits/remove_pointer.hpp | 77 - src/boost/type_traits/remove_reference.hpp | 54 - src/boost/type_traits/remove_volatile.hpp | 34 - src/boost/type_traits/type_identity.hpp | 22 - src/boost/type_traits/type_with_alignment.hpp | 261 -- src/boost/unordered/detail/allocate.hpp | 1128 ------ src/boost/unordered/detail/buckets.hpp | 928 ----- src/boost/unordered/detail/equivalent.hpp | 686 ---- src/boost/unordered/detail/extract_key.hpp | 188 - src/boost/unordered/detail/fwd.hpp | 23 - src/boost/unordered/detail/table.hpp | 873 ----- src/boost/unordered/detail/unique.hpp | 628 ---- src/boost/unordered/detail/util.hpp | 266 -- src/boost/unordered/unordered_map.hpp | 1657 --------- src/boost/unordered/unordered_map_fwd.hpp | 65 - src/boost/unordered_map.hpp | 19 - src/boost/utility.hpp | 21 - src/boost/utility/addressof.hpp | 17 - src/boost/utility/base_from_member.hpp | 171 - src/boost/utility/binary.hpp | 708 ---- src/boost/utility/compare_pointees.hpp | 68 - src/boost/utility/declval.hpp | 13 - .../utility/detail/result_of_iterate.hpp | 221 -- src/boost/utility/enable_if.hpp | 17 - src/boost/utility/identity_type.hpp | 46 - src/boost/utility/result_of.hpp | 210 -- src/boost/utility/swap.hpp | 17 - src/boost/utility/value_init.hpp | 281 -- src/boost/version.hpp | 32 - src/boost/visit_each.hpp | 27 - 1623 files changed, 283384 deletions(-) delete mode 100644 src/boost/algorithm/algorithm.hpp delete mode 100644 src/boost/algorithm/clamp.hpp delete mode 100644 src/boost/algorithm/cxx11/all_of.hpp delete mode 100644 src/boost/algorithm/cxx11/any_of.hpp delete mode 100644 src/boost/algorithm/cxx11/copy_if.hpp delete mode 100644 src/boost/algorithm/cxx11/copy_n.hpp delete mode 100644 src/boost/algorithm/cxx11/find_if_not.hpp delete mode 100644 src/boost/algorithm/cxx11/iota.hpp delete mode 100644 src/boost/algorithm/cxx11/is_partitioned.hpp delete mode 100644 src/boost/algorithm/cxx11/is_permutation.hpp delete mode 100644 src/boost/algorithm/cxx11/is_sorted.hpp delete mode 100644 src/boost/algorithm/cxx11/none_of.hpp delete mode 100644 src/boost/algorithm/cxx11/one_of.hpp delete mode 100644 src/boost/algorithm/cxx11/partition_copy.hpp delete mode 100644 src/boost/algorithm/cxx11/partition_point.hpp delete mode 100644 src/boost/algorithm/cxx14/equal.hpp delete mode 100644 src/boost/algorithm/cxx14/is_permutation.hpp delete mode 100644 src/boost/algorithm/cxx14/mismatch.hpp delete mode 100644 src/boost/algorithm/gather.hpp delete mode 100644 src/boost/algorithm/hex.hpp delete mode 100644 src/boost/algorithm/minmax.hpp delete mode 100644 src/boost/algorithm/minmax_element.hpp delete mode 100644 src/boost/algorithm/searching/boyer_moore.hpp delete mode 100644 src/boost/algorithm/searching/boyer_moore_horspool.hpp delete mode 100644 src/boost/algorithm/searching/detail/bm_traits.hpp delete mode 100644 src/boost/algorithm/searching/detail/debugging.hpp delete mode 100644 src/boost/algorithm/searching/knuth_morris_pratt.hpp delete mode 100644 src/boost/algorithm/string.hpp delete mode 100644 src/boost/algorithm/string/case_conv.hpp delete mode 100644 src/boost/algorithm/string/classification.hpp delete mode 100644 src/boost/algorithm/string/compare.hpp delete mode 100644 src/boost/algorithm/string/concept.hpp delete mode 100644 src/boost/algorithm/string/config.hpp delete mode 100644 src/boost/algorithm/string/constants.hpp delete mode 100644 src/boost/algorithm/string/detail/case_conv.hpp delete mode 100644 src/boost/algorithm/string/detail/classification.hpp delete mode 100644 src/boost/algorithm/string/detail/find_format.hpp delete mode 100644 src/boost/algorithm/string/detail/find_format_all.hpp delete mode 100644 src/boost/algorithm/string/detail/find_format_store.hpp delete mode 100644 src/boost/algorithm/string/detail/find_iterator.hpp delete mode 100644 src/boost/algorithm/string/detail/finder.hpp delete mode 100644 src/boost/algorithm/string/detail/finder_regex.hpp delete mode 100644 src/boost/algorithm/string/detail/formatter.hpp delete mode 100644 src/boost/algorithm/string/detail/formatter_regex.hpp delete mode 100644 src/boost/algorithm/string/detail/predicate.hpp delete mode 100644 src/boost/algorithm/string/detail/replace_storage.hpp delete mode 100644 src/boost/algorithm/string/detail/sequence.hpp delete mode 100644 src/boost/algorithm/string/detail/trim.hpp delete mode 100644 src/boost/algorithm/string/detail/util.hpp delete mode 100644 src/boost/algorithm/string/erase.hpp delete mode 100644 src/boost/algorithm/string/find.hpp delete mode 100644 src/boost/algorithm/string/find_format.hpp delete mode 100644 src/boost/algorithm/string/find_iterator.hpp delete mode 100644 src/boost/algorithm/string/finder.hpp delete mode 100644 src/boost/algorithm/string/formatter.hpp delete mode 100644 src/boost/algorithm/string/iter_find.hpp delete mode 100644 src/boost/algorithm/string/join.hpp delete mode 100644 src/boost/algorithm/string/predicate.hpp delete mode 100644 src/boost/algorithm/string/predicate_facade.hpp delete mode 100644 src/boost/algorithm/string/regex.hpp delete mode 100644 src/boost/algorithm/string/regex_find_format.hpp delete mode 100644 src/boost/algorithm/string/replace.hpp delete mode 100644 src/boost/algorithm/string/sequence_traits.hpp delete mode 100644 src/boost/algorithm/string/split.hpp delete mode 100644 src/boost/algorithm/string/std/list_traits.hpp delete mode 100644 src/boost/algorithm/string/std/rope_traits.hpp delete mode 100644 src/boost/algorithm/string/std/slist_traits.hpp delete mode 100644 src/boost/algorithm/string/std/string_traits.hpp delete mode 100644 src/boost/algorithm/string/std_containers_traits.hpp delete mode 100644 src/boost/algorithm/string/trim.hpp delete mode 100644 src/boost/algorithm/string/trim_all.hpp delete mode 100644 src/boost/algorithm/string/yes_no_type.hpp delete mode 100644 src/boost/algorithm/string_regex.hpp delete mode 100644 src/boost/aligned_storage.hpp delete mode 100644 src/boost/array.hpp delete mode 100644 src/boost/assert.hpp delete mode 100644 src/boost/bind.hpp delete mode 100644 src/boost/bind/arg.hpp delete mode 100644 src/boost/bind/bind.hpp delete mode 100644 src/boost/bind/bind_cc.hpp delete mode 100644 src/boost/bind/bind_mf2_cc.hpp delete mode 100644 src/boost/bind/bind_mf_cc.hpp delete mode 100644 src/boost/bind/bind_template.hpp delete mode 100644 src/boost/bind/mem_fn.hpp delete mode 100644 src/boost/bind/mem_fn_cc.hpp delete mode 100644 src/boost/bind/mem_fn_template.hpp delete mode 100644 src/boost/bind/mem_fn_vw.hpp delete mode 100644 src/boost/bind/placeholders.hpp delete mode 100644 src/boost/bind/storage.hpp delete mode 100644 src/boost/call_traits.hpp delete mode 100644 src/boost/checked_delete.hpp delete mode 100644 src/boost/concept/assert.hpp delete mode 100644 src/boost/concept/detail/backward_compatibility.hpp delete mode 100644 src/boost/concept/detail/borland.hpp delete mode 100644 src/boost/concept/detail/concept_def.hpp delete mode 100644 src/boost/concept/detail/concept_undef.hpp delete mode 100644 src/boost/concept/detail/general.hpp delete mode 100644 src/boost/concept/detail/has_constraints.hpp delete mode 100644 src/boost/concept/detail/msvc.hpp delete mode 100644 src/boost/concept/usage.hpp delete mode 100644 src/boost/concept_check.hpp delete mode 100644 src/boost/config.hpp delete mode 100644 src/boost/config/abi/borland_prefix.hpp delete mode 100644 src/boost/config/abi/borland_suffix.hpp delete mode 100644 src/boost/config/abi/msvc_prefix.hpp delete mode 100644 src/boost/config/abi/msvc_suffix.hpp delete mode 100644 src/boost/config/abi_prefix.hpp delete mode 100644 src/boost/config/abi_suffix.hpp delete mode 100644 src/boost/config/auto_link.hpp delete mode 100644 src/boost/config/compiler/borland.hpp delete mode 100644 src/boost/config/compiler/clang.hpp delete mode 100644 src/boost/config/compiler/codegear.hpp delete mode 100644 src/boost/config/compiler/comeau.hpp delete mode 100644 src/boost/config/compiler/common_edg.hpp delete mode 100644 src/boost/config/compiler/compaq_cxx.hpp delete mode 100644 src/boost/config/compiler/cray.hpp delete mode 100644 src/boost/config/compiler/digitalmars.hpp delete mode 100644 src/boost/config/compiler/gcc.hpp delete mode 100644 src/boost/config/compiler/gcc_xml.hpp delete mode 100644 src/boost/config/compiler/greenhills.hpp delete mode 100644 src/boost/config/compiler/hp_acc.hpp delete mode 100644 src/boost/config/compiler/intel.hpp delete mode 100644 src/boost/config/compiler/kai.hpp delete mode 100644 src/boost/config/compiler/metrowerks.hpp delete mode 100644 src/boost/config/compiler/mpw.hpp delete mode 100644 src/boost/config/compiler/nvcc.hpp delete mode 100644 src/boost/config/compiler/pathscale.hpp delete mode 100644 src/boost/config/compiler/pgi.hpp delete mode 100644 src/boost/config/compiler/sgi_mipspro.hpp delete mode 100644 src/boost/config/compiler/sunpro_cc.hpp delete mode 100644 src/boost/config/compiler/vacpp.hpp delete mode 100644 src/boost/config/compiler/visualc.hpp delete mode 100644 src/boost/config/compiler/xlcpp.hpp delete mode 100644 src/boost/config/no_tr1/cmath.hpp delete mode 100644 src/boost/config/no_tr1/complex.hpp delete mode 100644 src/boost/config/no_tr1/functional.hpp delete mode 100644 src/boost/config/no_tr1/memory.hpp delete mode 100644 src/boost/config/no_tr1/utility.hpp delete mode 100644 src/boost/config/platform/aix.hpp delete mode 100644 src/boost/config/platform/amigaos.hpp delete mode 100644 src/boost/config/platform/beos.hpp delete mode 100644 src/boost/config/platform/bsd.hpp delete mode 100644 src/boost/config/platform/cloudabi.hpp delete mode 100644 src/boost/config/platform/cray.hpp delete mode 100644 src/boost/config/platform/cygwin.hpp delete mode 100644 src/boost/config/platform/haiku.hpp delete mode 100644 src/boost/config/platform/hpux.hpp delete mode 100644 src/boost/config/platform/irix.hpp delete mode 100644 src/boost/config/platform/linux.hpp delete mode 100644 src/boost/config/platform/macos.hpp delete mode 100644 src/boost/config/platform/qnxnto.hpp delete mode 100644 src/boost/config/platform/solaris.hpp delete mode 100644 src/boost/config/platform/symbian.hpp delete mode 100644 src/boost/config/platform/vms.hpp delete mode 100644 src/boost/config/platform/vxworks.hpp delete mode 100644 src/boost/config/platform/win32.hpp delete mode 100644 src/boost/config/posix_features.hpp delete mode 100644 src/boost/config/requires_threads.hpp delete mode 100644 src/boost/config/select_compiler_config.hpp delete mode 100644 src/boost/config/select_platform_config.hpp delete mode 100644 src/boost/config/select_stdlib_config.hpp delete mode 100644 src/boost/config/stdlib/dinkumware.hpp delete mode 100644 src/boost/config/stdlib/libcomo.hpp delete mode 100644 src/boost/config/stdlib/libcpp.hpp delete mode 100644 src/boost/config/stdlib/libstdcpp3.hpp delete mode 100644 src/boost/config/stdlib/modena.hpp delete mode 100644 src/boost/config/stdlib/msl.hpp delete mode 100644 src/boost/config/stdlib/roguewave.hpp delete mode 100644 src/boost/config/stdlib/sgi.hpp delete mode 100644 src/boost/config/stdlib/stlport.hpp delete mode 100644 src/boost/config/stdlib/vacpp.hpp delete mode 100644 src/boost/config/suffix.hpp delete mode 100644 src/boost/config/user.hpp delete mode 100644 src/boost/config/warning_disable.hpp delete mode 100644 src/boost/container/allocator_traits.hpp delete mode 100644 src/boost/container/container_fwd.hpp delete mode 100644 src/boost/container/detail/config_begin.hpp delete mode 100644 src/boost/container/detail/config_end.hpp delete mode 100644 src/boost/container/detail/mpl.hpp delete mode 100644 src/boost/container/detail/placement_new.hpp delete mode 100644 src/boost/container/detail/std_fwd.hpp delete mode 100644 src/boost/container/detail/type_traits.hpp delete mode 100644 src/boost/container/detail/workaround.hpp delete mode 100644 src/boost/core/addressof.hpp delete mode 100644 src/boost/core/checked_delete.hpp delete mode 100644 src/boost/core/demangle.hpp delete mode 100644 src/boost/core/enable_if.hpp delete mode 100644 src/boost/core/explicit_operator_bool.hpp delete mode 100644 src/boost/core/ignore_unused.hpp delete mode 100644 src/boost/core/is_same.hpp delete mode 100644 src/boost/core/no_exceptions_support.hpp delete mode 100644 src/boost/core/noncopyable.hpp delete mode 100644 src/boost/core/ref.hpp delete mode 100644 src/boost/core/swap.hpp delete mode 100644 src/boost/core/typeinfo.hpp delete mode 100644 src/boost/cregex.hpp delete mode 100644 src/boost/cstdint.hpp delete mode 100644 src/boost/cstdlib.hpp delete mode 100644 src/boost/current_function.hpp delete mode 100644 src/boost/detail/call_traits.hpp delete mode 100644 src/boost/detail/container_fwd.hpp delete mode 100644 src/boost/detail/fenv.hpp delete mode 100644 src/boost/detail/indirect_traits.hpp delete mode 100644 src/boost/detail/iterator.hpp delete mode 100644 src/boost/detail/lightweight_mutex.hpp delete mode 100644 src/boost/detail/no_exceptions_support.hpp delete mode 100644 src/boost/detail/reference_content.hpp delete mode 100644 src/boost/detail/select_type.hpp delete mode 100644 src/boost/detail/sp_typeinfo.hpp delete mode 100644 src/boost/detail/workaround.hpp delete mode 100644 src/boost/exception/all.hpp delete mode 100644 src/boost/exception/current_exception_cast.hpp delete mode 100644 src/boost/exception/detail/clone_current_exception.hpp delete mode 100644 src/boost/exception/detail/error_info_impl.hpp delete mode 100644 src/boost/exception/detail/exception_ptr.hpp delete mode 100644 src/boost/exception/detail/is_output_streamable.hpp delete mode 100644 src/boost/exception/detail/object_hex_dump.hpp delete mode 100644 src/boost/exception/detail/type_info.hpp delete mode 100644 src/boost/exception/diagnostic_information.hpp delete mode 100644 src/boost/exception/errinfo_api_function.hpp delete mode 100644 src/boost/exception/errinfo_at_line.hpp delete mode 100644 src/boost/exception/errinfo_errno.hpp delete mode 100644 src/boost/exception/errinfo_file_handle.hpp delete mode 100644 src/boost/exception/errinfo_file_name.hpp delete mode 100644 src/boost/exception/errinfo_file_open_mode.hpp delete mode 100644 src/boost/exception/errinfo_nested_exception.hpp delete mode 100644 src/boost/exception/errinfo_type_info_name.hpp delete mode 100644 src/boost/exception/error_info.hpp delete mode 100644 src/boost/exception/exception.hpp delete mode 100644 src/boost/exception/get_error_info.hpp delete mode 100644 src/boost/exception/info.hpp delete mode 100644 src/boost/exception/info_tuple.hpp delete mode 100644 src/boost/exception/to_string.hpp delete mode 100644 src/boost/exception/to_string_stub.hpp delete mode 100644 src/boost/exception_ptr.hpp delete mode 100644 src/boost/function.hpp delete mode 100644 src/boost/function/detail/function_iterate.hpp delete mode 100644 src/boost/function/detail/gen_maybe_include.pl delete mode 100644 src/boost/function/detail/maybe_include.hpp delete mode 100644 src/boost/function/detail/prologue.hpp delete mode 100644 src/boost/function/function0.hpp delete mode 100644 src/boost/function/function1.hpp delete mode 100644 src/boost/function/function10.hpp delete mode 100644 src/boost/function/function2.hpp delete mode 100644 src/boost/function/function3.hpp delete mode 100644 src/boost/function/function4.hpp delete mode 100644 src/boost/function/function5.hpp delete mode 100644 src/boost/function/function6.hpp delete mode 100644 src/boost/function/function7.hpp delete mode 100644 src/boost/function/function8.hpp delete mode 100644 src/boost/function/function9.hpp delete mode 100644 src/boost/function/function_base.hpp delete mode 100644 src/boost/function/function_fwd.hpp delete mode 100644 src/boost/function/function_template.hpp delete mode 100644 src/boost/function_equal.hpp delete mode 100644 src/boost/functional/hash.hpp delete mode 100644 src/boost/functional/hash/detail/float_functions.hpp delete mode 100644 src/boost/functional/hash/detail/hash_float.hpp delete mode 100644 src/boost/functional/hash/detail/limits.hpp delete mode 100644 src/boost/functional/hash/extensions.hpp delete mode 100644 src/boost/functional/hash/hash.hpp delete mode 100644 src/boost/functional/hash/hash_fwd.hpp delete mode 100644 src/boost/functional/hash_fwd.hpp delete mode 100644 src/boost/get_pointer.hpp delete mode 100644 src/boost/integer.hpp delete mode 100644 src/boost/integer/static_log2.hpp delete mode 100644 src/boost/integer_fwd.hpp delete mode 100644 src/boost/integer_traits.hpp delete mode 100644 src/boost/intrusive/detail/config_begin.hpp delete mode 100644 src/boost/intrusive/detail/config_end.hpp delete mode 100644 src/boost/intrusive/detail/has_member_function_callable_with.hpp delete mode 100644 src/boost/intrusive/detail/mpl.hpp delete mode 100644 src/boost/intrusive/detail/pointer_element.hpp delete mode 100644 src/boost/intrusive/detail/workaround.hpp delete mode 100644 src/boost/intrusive/pointer_rebind.hpp delete mode 100644 src/boost/intrusive/pointer_traits.hpp delete mode 100644 src/boost/io/ios_state.hpp delete mode 100644 src/boost/io_fwd.hpp delete mode 100644 src/boost/is_placeholder.hpp delete mode 100644 src/boost/iterator.hpp delete mode 100644 src/boost/iterator/detail/config_def.hpp delete mode 100644 src/boost/iterator/detail/config_undef.hpp delete mode 100644 src/boost/iterator/detail/enable_if.hpp delete mode 100644 src/boost/iterator/detail/facade_iterator_category.hpp delete mode 100644 src/boost/iterator/interoperable.hpp delete mode 100644 src/boost/iterator/iterator_adaptor.hpp delete mode 100644 src/boost/iterator/iterator_categories.hpp delete mode 100644 src/boost/iterator/iterator_concepts.hpp delete mode 100644 src/boost/iterator/iterator_facade.hpp delete mode 100644 src/boost/iterator/iterator_traits.hpp delete mode 100644 src/boost/iterator/reverse_iterator.hpp delete mode 100644 src/boost/iterator/transform_iterator.hpp delete mode 100644 src/boost/limits.hpp delete mode 100644 src/boost/mem_fn.hpp delete mode 100644 src/boost/move/algorithm.hpp delete mode 100644 src/boost/move/core.hpp delete mode 100644 src/boost/move/detail/config_begin.hpp delete mode 100644 src/boost/move/detail/config_end.hpp delete mode 100644 src/boost/move/detail/fwd_macros.hpp delete mode 100644 src/boost/move/detail/iterator_traits.hpp delete mode 100644 src/boost/move/detail/meta_utils.hpp delete mode 100644 src/boost/move/detail/meta_utils_core.hpp delete mode 100644 src/boost/move/detail/std_ns_begin.hpp delete mode 100644 src/boost/move/detail/std_ns_end.hpp delete mode 100644 src/boost/move/detail/type_traits.hpp delete mode 100644 src/boost/move/detail/workaround.hpp delete mode 100644 src/boost/move/iterator.hpp delete mode 100644 src/boost/move/move.hpp delete mode 100644 src/boost/move/traits.hpp delete mode 100644 src/boost/move/utility.hpp delete mode 100644 src/boost/move/utility_core.hpp delete mode 100644 src/boost/mpl/always.hpp delete mode 100644 src/boost/mpl/and.hpp delete mode 100644 src/boost/mpl/apply.hpp delete mode 100644 src/boost/mpl/apply_fwd.hpp delete mode 100644 src/boost/mpl/apply_wrap.hpp delete mode 100644 src/boost/mpl/arg.hpp delete mode 100644 src/boost/mpl/arg_fwd.hpp delete mode 100644 src/boost/mpl/assert.hpp delete mode 100644 src/boost/mpl/aux_/adl_barrier.hpp delete mode 100644 src/boost/mpl/aux_/arg_typedef.hpp delete mode 100644 src/boost/mpl/aux_/arithmetic_op.hpp delete mode 100644 src/boost/mpl/aux_/arity.hpp delete mode 100644 src/boost/mpl/aux_/arity_spec.hpp delete mode 100644 src/boost/mpl/aux_/begin_end_impl.hpp delete mode 100644 src/boost/mpl/aux_/common_name_wknd.hpp delete mode 100644 src/boost/mpl/aux_/comparison_op.hpp delete mode 100644 src/boost/mpl/aux_/config/adl.hpp delete mode 100644 src/boost/mpl/aux_/config/arrays.hpp delete mode 100644 src/boost/mpl/aux_/config/bcc.hpp delete mode 100644 src/boost/mpl/aux_/config/bind.hpp delete mode 100644 src/boost/mpl/aux_/config/compiler.hpp delete mode 100644 src/boost/mpl/aux_/config/ctps.hpp delete mode 100644 src/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp delete mode 100644 src/boost/mpl/aux_/config/dtp.hpp delete mode 100644 src/boost/mpl/aux_/config/eti.hpp delete mode 100644 src/boost/mpl/aux_/config/forwarding.hpp delete mode 100644 src/boost/mpl/aux_/config/gcc.hpp delete mode 100644 src/boost/mpl/aux_/config/gpu.hpp delete mode 100644 src/boost/mpl/aux_/config/has_apply.hpp delete mode 100644 src/boost/mpl/aux_/config/has_xxx.hpp delete mode 100644 src/boost/mpl/aux_/config/integral.hpp delete mode 100644 src/boost/mpl/aux_/config/intel.hpp delete mode 100644 src/boost/mpl/aux_/config/lambda.hpp delete mode 100644 src/boost/mpl/aux_/config/msvc.hpp delete mode 100644 src/boost/mpl/aux_/config/msvc_typename.hpp delete mode 100644 src/boost/mpl/aux_/config/nttp.hpp delete mode 100644 src/boost/mpl/aux_/config/overload_resolution.hpp delete mode 100644 src/boost/mpl/aux_/config/pp_counter.hpp delete mode 100644 src/boost/mpl/aux_/config/preprocessor.hpp delete mode 100644 src/boost/mpl/aux_/config/static_constant.hpp delete mode 100644 src/boost/mpl/aux_/config/ttp.hpp delete mode 100644 src/boost/mpl/aux_/config/use_preprocessed.hpp delete mode 100644 src/boost/mpl/aux_/config/workaround.hpp delete mode 100644 src/boost/mpl/aux_/count_args.hpp delete mode 100644 src/boost/mpl/aux_/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/has_apply.hpp delete mode 100644 src/boost/mpl/aux_/has_begin.hpp delete mode 100644 src/boost/mpl/aux_/has_rebind.hpp delete mode 100644 src/boost/mpl/aux_/has_tag.hpp delete mode 100644 src/boost/mpl/aux_/has_type.hpp delete mode 100644 src/boost/mpl/aux_/include_preprocessed.hpp delete mode 100644 src/boost/mpl/aux_/integral_wrapper.hpp delete mode 100644 src/boost/mpl/aux_/is_msvc_eti_arg.hpp delete mode 100644 src/boost/mpl/aux_/lambda_arity_param.hpp delete mode 100644 src/boost/mpl/aux_/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/lambda_support.hpp delete mode 100644 src/boost/mpl/aux_/largest_int.hpp delete mode 100644 src/boost/mpl/aux_/logical_op.hpp delete mode 100644 src/boost/mpl/aux_/msvc_dtw.hpp delete mode 100644 src/boost/mpl/aux_/msvc_eti_base.hpp delete mode 100644 src/boost/mpl/aux_/msvc_is_class.hpp delete mode 100644 src/boost/mpl/aux_/msvc_never_true.hpp delete mode 100644 src/boost/mpl/aux_/msvc_type.hpp delete mode 100644 src/boost/mpl/aux_/na.hpp delete mode 100644 src/boost/mpl/aux_/na_assert.hpp delete mode 100644 src/boost/mpl/aux_/na_fwd.hpp delete mode 100644 src/boost/mpl/aux_/na_spec.hpp delete mode 100644 src/boost/mpl/aux_/nested_type_wknd.hpp delete mode 100644 src/boost/mpl/aux_/nttp_decl.hpp delete mode 100644 src/boost/mpl/aux_/numeric_cast_utils.hpp delete mode 100644 src/boost/mpl/aux_/numeric_op.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/and.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/apply.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/arg.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/bind.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/bitand.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/bitor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/bitxor.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/deque.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/divides.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/greater.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/inherit.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/less.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/less_equal.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/list.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/list_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/map.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/minus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/modulus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/or.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/placeholders.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/plus.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/quote.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/set.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/set_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/shift_left.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/shift_right.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/times.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/vector.hpp delete mode 100644 src/boost/mpl/aux_/preprocessed/plain/vector_c.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/add.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/def_params_tail.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/default_params.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/enum.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/ext_params.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/filter_params.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/params.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/partial_spec_params.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/range.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/repeat.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/sub.hpp delete mode 100644 src/boost/mpl/aux_/preprocessor/tuple.hpp delete mode 100644 src/boost/mpl/aux_/static_cast.hpp delete mode 100644 src/boost/mpl/aux_/template_arity.hpp delete mode 100644 src/boost/mpl/aux_/template_arity_fwd.hpp delete mode 100644 src/boost/mpl/aux_/traits_lambda_spec.hpp delete mode 100644 src/boost/mpl/aux_/type_wrapper.hpp delete mode 100644 src/boost/mpl/aux_/unwrap.hpp delete mode 100644 src/boost/mpl/aux_/value_wknd.hpp delete mode 100644 src/boost/mpl/aux_/yes_no.hpp delete mode 100644 src/boost/mpl/begin_end.hpp delete mode 100644 src/boost/mpl/begin_end_fwd.hpp delete mode 100644 src/boost/mpl/bind.hpp delete mode 100644 src/boost/mpl/bind_fwd.hpp delete mode 100644 src/boost/mpl/bool.hpp delete mode 100644 src/boost/mpl/bool_fwd.hpp delete mode 100644 src/boost/mpl/deref.hpp delete mode 100644 src/boost/mpl/equal_to.hpp delete mode 100644 src/boost/mpl/eval_if.hpp delete mode 100644 src/boost/mpl/for_each.hpp delete mode 100644 src/boost/mpl/has_xxx.hpp delete mode 100644 src/boost/mpl/identity.hpp delete mode 100644 src/boost/mpl/if.hpp delete mode 100644 src/boost/mpl/int.hpp delete mode 100644 src/boost/mpl/int_fwd.hpp delete mode 100644 src/boost/mpl/integral_c.hpp delete mode 100644 src/boost/mpl/integral_c_fwd.hpp delete mode 100644 src/boost/mpl/integral_c_tag.hpp delete mode 100644 src/boost/mpl/is_placeholder.hpp delete mode 100644 src/boost/mpl/is_sequence.hpp delete mode 100644 src/boost/mpl/lambda.hpp delete mode 100644 src/boost/mpl/lambda_fwd.hpp delete mode 100644 src/boost/mpl/less.hpp delete mode 100644 src/boost/mpl/limits/arity.hpp delete mode 100644 src/boost/mpl/logical.hpp delete mode 100644 src/boost/mpl/multiplies.hpp delete mode 100644 src/boost/mpl/next.hpp delete mode 100644 src/boost/mpl/next_prior.hpp delete mode 100644 src/boost/mpl/not.hpp delete mode 100644 src/boost/mpl/numeric_cast.hpp delete mode 100644 src/boost/mpl/or.hpp delete mode 100644 src/boost/mpl/placeholders.hpp delete mode 100644 src/boost/mpl/protect.hpp delete mode 100644 src/boost/mpl/quote.hpp delete mode 100644 src/boost/mpl/sequence_tag.hpp delete mode 100644 src/boost/mpl/sequence_tag_fwd.hpp delete mode 100644 src/boost/mpl/tag.hpp delete mode 100644 src/boost/mpl/times.hpp delete mode 100644 src/boost/mpl/void.hpp delete mode 100644 src/boost/mpl/void_fwd.hpp delete mode 100644 src/boost/next_prior.hpp delete mode 100644 src/boost/noncopyable.hpp delete mode 100644 src/boost/none.hpp delete mode 100644 src/boost/none_t.hpp delete mode 100644 src/boost/numeric/conversion/conversion_traits.hpp delete mode 100644 src/boost/numeric/conversion/detail/conversion_traits.hpp delete mode 100644 src/boost/numeric/conversion/detail/int_float_mixture.hpp delete mode 100644 src/boost/numeric/conversion/detail/is_subranged.hpp delete mode 100644 src/boost/numeric/conversion/detail/meta.hpp delete mode 100644 src/boost/numeric/conversion/detail/sign_mixture.hpp delete mode 100644 src/boost/numeric/conversion/detail/udt_builtin_mixture.hpp delete mode 100644 src/boost/numeric/conversion/int_float_mixture_enum.hpp delete mode 100644 src/boost/numeric/conversion/sign_mixture_enum.hpp delete mode 100644 src/boost/numeric/conversion/udt_builtin_mixture_enum.hpp delete mode 100644 src/boost/optional.hpp delete mode 100644 src/boost/optional/bad_optional_access.hpp delete mode 100644 src/boost/optional/optional.hpp delete mode 100644 src/boost/optional/optional_fwd.hpp delete mode 100644 src/boost/pointer_to_other.hpp delete mode 100644 src/boost/predef.h delete mode 100644 src/boost/predef/architecture.h delete mode 100644 src/boost/predef/architecture/alpha.h delete mode 100644 src/boost/predef/architecture/arm.h delete mode 100644 src/boost/predef/architecture/blackfin.h delete mode 100644 src/boost/predef/architecture/convex.h delete mode 100644 src/boost/predef/architecture/ia64.h delete mode 100644 src/boost/predef/architecture/m68k.h delete mode 100644 src/boost/predef/architecture/mips.h delete mode 100644 src/boost/predef/architecture/parisc.h delete mode 100644 src/boost/predef/architecture/ppc.h delete mode 100644 src/boost/predef/architecture/pyramid.h delete mode 100644 src/boost/predef/architecture/rs6k.h delete mode 100644 src/boost/predef/architecture/sparc.h delete mode 100644 src/boost/predef/architecture/superh.h delete mode 100644 src/boost/predef/architecture/sys370.h delete mode 100644 src/boost/predef/architecture/sys390.h delete mode 100644 src/boost/predef/architecture/x86.h delete mode 100644 src/boost/predef/architecture/x86/32.h delete mode 100644 src/boost/predef/architecture/x86/64.h delete mode 100644 src/boost/predef/architecture/z.h delete mode 100644 src/boost/predef/compiler.h delete mode 100644 src/boost/predef/compiler/borland.h delete mode 100644 src/boost/predef/compiler/clang.h delete mode 100644 src/boost/predef/compiler/comeau.h delete mode 100644 src/boost/predef/compiler/compaq.h delete mode 100644 src/boost/predef/compiler/diab.h delete mode 100644 src/boost/predef/compiler/digitalmars.h delete mode 100644 src/boost/predef/compiler/dignus.h delete mode 100644 src/boost/predef/compiler/edg.h delete mode 100644 src/boost/predef/compiler/ekopath.h delete mode 100644 src/boost/predef/compiler/gcc.h delete mode 100644 src/boost/predef/compiler/gcc_xml.h delete mode 100644 src/boost/predef/compiler/greenhills.h delete mode 100644 src/boost/predef/compiler/hp_acc.h delete mode 100644 src/boost/predef/compiler/iar.h delete mode 100644 src/boost/predef/compiler/ibm.h delete mode 100644 src/boost/predef/compiler/intel.h delete mode 100644 src/boost/predef/compiler/kai.h delete mode 100644 src/boost/predef/compiler/llvm.h delete mode 100644 src/boost/predef/compiler/metaware.h delete mode 100644 src/boost/predef/compiler/metrowerks.h delete mode 100644 src/boost/predef/compiler/microtec.h delete mode 100644 src/boost/predef/compiler/mpw.h delete mode 100644 src/boost/predef/compiler/palm.h delete mode 100644 src/boost/predef/compiler/pgi.h delete mode 100644 src/boost/predef/compiler/sgi_mipspro.h delete mode 100644 src/boost/predef/compiler/sunpro.h delete mode 100644 src/boost/predef/compiler/tendra.h delete mode 100644 src/boost/predef/compiler/visualc.h delete mode 100644 src/boost/predef/compiler/watcom.h delete mode 100644 src/boost/predef/detail/_cassert.h delete mode 100644 src/boost/predef/detail/_exception.h delete mode 100644 src/boost/predef/detail/comp_detected.h delete mode 100644 src/boost/predef/detail/os_detected.h delete mode 100644 src/boost/predef/detail/platform_detected.h delete mode 100644 src/boost/predef/detail/test.h delete mode 100644 src/boost/predef/hardware.h delete mode 100644 src/boost/predef/hardware/simd.h delete mode 100644 src/boost/predef/hardware/simd/arm.h delete mode 100644 src/boost/predef/hardware/simd/arm/versions.h delete mode 100644 src/boost/predef/hardware/simd/ppc.h delete mode 100644 src/boost/predef/hardware/simd/ppc/versions.h delete mode 100644 src/boost/predef/hardware/simd/x86.h delete mode 100644 src/boost/predef/hardware/simd/x86/versions.h delete mode 100644 src/boost/predef/hardware/simd/x86_amd.h delete mode 100644 src/boost/predef/hardware/simd/x86_amd/versions.h delete mode 100644 src/boost/predef/language.h delete mode 100644 src/boost/predef/language/objc.h delete mode 100644 src/boost/predef/language/stdc.h delete mode 100644 src/boost/predef/language/stdcpp.h delete mode 100644 src/boost/predef/library.h delete mode 100644 src/boost/predef/library/c.h delete mode 100644 src/boost/predef/library/c/_prefix.h delete mode 100644 src/boost/predef/library/c/gnu.h delete mode 100644 src/boost/predef/library/c/uc.h delete mode 100644 src/boost/predef/library/c/vms.h delete mode 100644 src/boost/predef/library/c/zos.h delete mode 100644 src/boost/predef/library/std.h delete mode 100644 src/boost/predef/library/std/_prefix.h delete mode 100644 src/boost/predef/library/std/cxx.h delete mode 100644 src/boost/predef/library/std/dinkumware.h delete mode 100644 src/boost/predef/library/std/libcomo.h delete mode 100644 src/boost/predef/library/std/modena.h delete mode 100644 src/boost/predef/library/std/msl.h delete mode 100644 src/boost/predef/library/std/roguewave.h delete mode 100644 src/boost/predef/library/std/sgi.h delete mode 100644 src/boost/predef/library/std/stdcpp3.h delete mode 100644 src/boost/predef/library/std/stlport.h delete mode 100644 src/boost/predef/library/std/vacpp.h delete mode 100644 src/boost/predef/make.h delete mode 100644 src/boost/predef/os.h delete mode 100644 src/boost/predef/os/aix.h delete mode 100644 src/boost/predef/os/amigaos.h delete mode 100644 src/boost/predef/os/android.h delete mode 100644 src/boost/predef/os/beos.h delete mode 100644 src/boost/predef/os/bsd.h delete mode 100644 src/boost/predef/os/bsd/bsdi.h delete mode 100644 src/boost/predef/os/bsd/dragonfly.h delete mode 100644 src/boost/predef/os/bsd/free.h delete mode 100644 src/boost/predef/os/bsd/net.h delete mode 100644 src/boost/predef/os/bsd/open.h delete mode 100644 src/boost/predef/os/cygwin.h delete mode 100644 src/boost/predef/os/haiku.h delete mode 100644 src/boost/predef/os/hpux.h delete mode 100644 src/boost/predef/os/ios.h delete mode 100644 src/boost/predef/os/irix.h delete mode 100644 src/boost/predef/os/linux.h delete mode 100644 src/boost/predef/os/macos.h delete mode 100644 src/boost/predef/os/os400.h delete mode 100644 src/boost/predef/os/qnxnto.h delete mode 100644 src/boost/predef/os/solaris.h delete mode 100644 src/boost/predef/os/unix.h delete mode 100644 src/boost/predef/os/vms.h delete mode 100644 src/boost/predef/os/windows.h delete mode 100644 src/boost/predef/other.h delete mode 100644 src/boost/predef/other/endian.h delete mode 100644 src/boost/predef/platform.h delete mode 100644 src/boost/predef/platform/mingw.h delete mode 100644 src/boost/predef/platform/windows_desktop.h delete mode 100644 src/boost/predef/platform/windows_phone.h delete mode 100644 src/boost/predef/platform/windows_runtime.h delete mode 100644 src/boost/predef/platform/windows_store.h delete mode 100644 src/boost/predef/version.h delete mode 100644 src/boost/predef/version_number.h delete mode 100644 src/boost/preprocessor/arithmetic/add.hpp delete mode 100644 src/boost/preprocessor/arithmetic/dec.hpp delete mode 100644 src/boost/preprocessor/arithmetic/detail/div_base.hpp delete mode 100644 src/boost/preprocessor/arithmetic/inc.hpp delete mode 100644 src/boost/preprocessor/arithmetic/mod.hpp delete mode 100644 src/boost/preprocessor/arithmetic/sub.hpp delete mode 100644 src/boost/preprocessor/array/data.hpp delete mode 100644 src/boost/preprocessor/array/elem.hpp delete mode 100644 src/boost/preprocessor/array/size.hpp delete mode 100644 src/boost/preprocessor/cat.hpp delete mode 100644 src/boost/preprocessor/comma_if.hpp delete mode 100644 src/boost/preprocessor/comparison/equal.hpp delete mode 100644 src/boost/preprocessor/comparison/less_equal.hpp delete mode 100644 src/boost/preprocessor/comparison/not_equal.hpp delete mode 100644 src/boost/preprocessor/config/config.hpp delete mode 100644 src/boost/preprocessor/control/deduce_d.hpp delete mode 100644 src/boost/preprocessor/control/detail/dmc/while.hpp delete mode 100644 src/boost/preprocessor/control/detail/edg/while.hpp delete mode 100644 src/boost/preprocessor/control/detail/msvc/while.hpp delete mode 100644 src/boost/preprocessor/control/detail/while.hpp delete mode 100644 src/boost/preprocessor/control/expr_if.hpp delete mode 100644 src/boost/preprocessor/control/expr_iif.hpp delete mode 100644 src/boost/preprocessor/control/if.hpp delete mode 100644 src/boost/preprocessor/control/iif.hpp delete mode 100644 src/boost/preprocessor/control/while.hpp delete mode 100644 src/boost/preprocessor/debug/error.hpp delete mode 100644 src/boost/preprocessor/dec.hpp delete mode 100644 src/boost/preprocessor/detail/auto_rec.hpp delete mode 100644 src/boost/preprocessor/detail/check.hpp delete mode 100644 src/boost/preprocessor/detail/dmc/auto_rec.hpp delete mode 100644 src/boost/preprocessor/detail/is_binary.hpp delete mode 100644 src/boost/preprocessor/detail/split.hpp delete mode 100644 src/boost/preprocessor/empty.hpp delete mode 100644 src/boost/preprocessor/enum.hpp delete mode 100644 src/boost/preprocessor/enum_params.hpp delete mode 100644 src/boost/preprocessor/enum_shifted_params.hpp delete mode 100644 src/boost/preprocessor/expr_if.hpp delete mode 100644 src/boost/preprocessor/facilities/detail/is_empty.hpp delete mode 100644 src/boost/preprocessor/facilities/empty.hpp delete mode 100644 src/boost/preprocessor/facilities/expand.hpp delete mode 100644 src/boost/preprocessor/facilities/identity.hpp delete mode 100644 src/boost/preprocessor/facilities/intercept.hpp delete mode 100644 src/boost/preprocessor/facilities/is_1.hpp delete mode 100644 src/boost/preprocessor/facilities/is_empty.hpp delete mode 100644 src/boost/preprocessor/facilities/is_empty_variadic.hpp delete mode 100644 src/boost/preprocessor/facilities/overload.hpp delete mode 100644 src/boost/preprocessor/identity.hpp delete mode 100644 src/boost/preprocessor/inc.hpp delete mode 100644 src/boost/preprocessor/iterate.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/bounds/lower1.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/bounds/lower2.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/bounds/lower3.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/bounds/lower4.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/bounds/lower5.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/bounds/upper1.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/bounds/upper2.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/bounds/upper3.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/bounds/upper4.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/bounds/upper5.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/finish.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/iter/forward1.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/iter/forward2.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/iter/forward3.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/iter/forward4.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/iter/forward5.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/iter/reverse1.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/iter/reverse2.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/iter/reverse3.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/iter/reverse4.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/iter/reverse5.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/local.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/rlocal.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/self.hpp delete mode 100644 src/boost/preprocessor/iteration/detail/start.hpp delete mode 100644 src/boost/preprocessor/iteration/iterate.hpp delete mode 100644 src/boost/preprocessor/iteration/local.hpp delete mode 100644 src/boost/preprocessor/iteration/self.hpp delete mode 100644 src/boost/preprocessor/list/adt.hpp delete mode 100644 src/boost/preprocessor/list/detail/dmc/fold_left.hpp delete mode 100644 src/boost/preprocessor/list/detail/edg/fold_left.hpp delete mode 100644 src/boost/preprocessor/list/detail/edg/fold_right.hpp delete mode 100644 src/boost/preprocessor/list/detail/fold_left.hpp delete mode 100644 src/boost/preprocessor/list/detail/fold_right.hpp delete mode 100644 src/boost/preprocessor/list/fold_left.hpp delete mode 100644 src/boost/preprocessor/list/fold_right.hpp delete mode 100644 src/boost/preprocessor/list/for_each_i.hpp delete mode 100644 src/boost/preprocessor/list/reverse.hpp delete mode 100644 src/boost/preprocessor/logical/and.hpp delete mode 100644 src/boost/preprocessor/logical/bitand.hpp delete mode 100644 src/boost/preprocessor/logical/bool.hpp delete mode 100644 src/boost/preprocessor/logical/compl.hpp delete mode 100644 src/boost/preprocessor/logical/not.hpp delete mode 100644 src/boost/preprocessor/punctuation/comma.hpp delete mode 100644 src/boost/preprocessor/punctuation/comma_if.hpp delete mode 100644 src/boost/preprocessor/punctuation/detail/is_begin_parens.hpp delete mode 100644 src/boost/preprocessor/punctuation/is_begin_parens.hpp delete mode 100644 src/boost/preprocessor/repeat.hpp delete mode 100644 src/boost/preprocessor/repetition/detail/dmc/for.hpp delete mode 100644 src/boost/preprocessor/repetition/detail/edg/for.hpp delete mode 100644 src/boost/preprocessor/repetition/detail/for.hpp delete mode 100644 src/boost/preprocessor/repetition/detail/msvc/for.hpp delete mode 100644 src/boost/preprocessor/repetition/enum.hpp delete mode 100644 src/boost/preprocessor/repetition/enum_binary_params.hpp delete mode 100644 src/boost/preprocessor/repetition/enum_params.hpp delete mode 100644 src/boost/preprocessor/repetition/enum_shifted_params.hpp delete mode 100644 src/boost/preprocessor/repetition/enum_trailing_params.hpp delete mode 100644 src/boost/preprocessor/repetition/for.hpp delete mode 100644 src/boost/preprocessor/repetition/repeat.hpp delete mode 100644 src/boost/preprocessor/repetition/repeat_from_to.hpp delete mode 100644 src/boost/preprocessor/seq/cat.hpp delete mode 100644 src/boost/preprocessor/seq/detail/is_empty.hpp delete mode 100644 src/boost/preprocessor/seq/detail/split.hpp delete mode 100644 src/boost/preprocessor/seq/elem.hpp delete mode 100644 src/boost/preprocessor/seq/enum.hpp delete mode 100644 src/boost/preprocessor/seq/first_n.hpp delete mode 100644 src/boost/preprocessor/seq/fold_left.hpp delete mode 100644 src/boost/preprocessor/seq/for_each.hpp delete mode 100644 src/boost/preprocessor/seq/for_each_i.hpp delete mode 100644 src/boost/preprocessor/seq/rest_n.hpp delete mode 100644 src/boost/preprocessor/seq/seq.hpp delete mode 100644 src/boost/preprocessor/seq/size.hpp delete mode 100644 src/boost/preprocessor/seq/subseq.hpp delete mode 100644 src/boost/preprocessor/seq/to_tuple.hpp delete mode 100644 src/boost/preprocessor/seq/transform.hpp delete mode 100644 src/boost/preprocessor/slot/detail/counter.hpp delete mode 100644 src/boost/preprocessor/slot/detail/def.hpp delete mode 100644 src/boost/preprocessor/slot/detail/shared.hpp delete mode 100644 src/boost/preprocessor/slot/detail/slot1.hpp delete mode 100644 src/boost/preprocessor/slot/detail/slot2.hpp delete mode 100644 src/boost/preprocessor/slot/detail/slot3.hpp delete mode 100644 src/boost/preprocessor/slot/detail/slot4.hpp delete mode 100644 src/boost/preprocessor/slot/detail/slot5.hpp delete mode 100644 src/boost/preprocessor/slot/slot.hpp delete mode 100644 src/boost/preprocessor/stringize.hpp delete mode 100644 src/boost/preprocessor/tuple/detail/is_single_return.hpp delete mode 100644 src/boost/preprocessor/tuple/eat.hpp delete mode 100644 src/boost/preprocessor/tuple/elem.hpp delete mode 100644 src/boost/preprocessor/tuple/rem.hpp delete mode 100644 src/boost/preprocessor/tuple/size.hpp delete mode 100644 src/boost/preprocessor/tuple/to_list.hpp delete mode 100644 src/boost/preprocessor/variadic/elem.hpp delete mode 100644 src/boost/preprocessor/variadic/size.hpp delete mode 100644 src/boost/range/algorithm/equal.hpp delete mode 100644 src/boost/range/as_literal.hpp delete mode 100644 src/boost/range/begin.hpp delete mode 100644 src/boost/range/concepts.hpp delete mode 100644 src/boost/range/config.hpp delete mode 100644 src/boost/range/const_iterator.hpp delete mode 100644 src/boost/range/detail/as_literal.hpp delete mode 100644 src/boost/range/detail/begin.hpp delete mode 100644 src/boost/range/detail/common.hpp delete mode 100644 src/boost/range/detail/detail_str.hpp delete mode 100644 src/boost/range/detail/end.hpp delete mode 100644 src/boost/range/detail/extract_optional_type.hpp delete mode 100644 src/boost/range/detail/has_member_size.hpp delete mode 100644 src/boost/range/detail/implementation_help.hpp delete mode 100644 src/boost/range/detail/misc_concept.hpp delete mode 100644 src/boost/range/detail/msvc_has_iterator_workaround.hpp delete mode 100644 src/boost/range/detail/remove_extent.hpp delete mode 100644 src/boost/range/detail/safe_bool.hpp delete mode 100644 src/boost/range/detail/sfinae.hpp delete mode 100644 src/boost/range/detail/size_type.hpp delete mode 100644 src/boost/range/detail/str_types.hpp delete mode 100644 src/boost/range/detail/value_type.hpp delete mode 100644 src/boost/range/difference_type.hpp delete mode 100644 src/boost/range/distance.hpp delete mode 100644 src/boost/range/empty.hpp delete mode 100644 src/boost/range/end.hpp delete mode 100644 src/boost/range/functions.hpp delete mode 100644 src/boost/range/has_range_iterator.hpp delete mode 100644 src/boost/range/iterator.hpp delete mode 100644 src/boost/range/iterator_range.hpp delete mode 100644 src/boost/range/iterator_range_core.hpp delete mode 100644 src/boost/range/iterator_range_io.hpp delete mode 100644 src/boost/range/mutable_iterator.hpp delete mode 100644 src/boost/range/range_fwd.hpp delete mode 100644 src/boost/range/rbegin.hpp delete mode 100644 src/boost/range/rend.hpp delete mode 100644 src/boost/range/reverse_iterator.hpp delete mode 100644 src/boost/range/size.hpp delete mode 100644 src/boost/range/size_type.hpp delete mode 100644 src/boost/range/value_type.hpp delete mode 100644 src/boost/ref.hpp delete mode 100644 src/boost/regex.hpp delete mode 100644 src/boost/regex/config.hpp delete mode 100644 src/boost/regex/config/borland.hpp delete mode 100644 src/boost/regex/config/cwchar.hpp delete mode 100644 src/boost/regex/icu.hpp delete mode 100644 src/boost/regex/pattern_except.hpp delete mode 100644 src/boost/regex/pending/object_cache.hpp delete mode 100644 src/boost/regex/pending/static_mutex.hpp delete mode 100644 src/boost/regex/pending/unicode_iterator.hpp delete mode 100644 src/boost/regex/regex_traits.hpp delete mode 100644 src/boost/regex/user.hpp delete mode 100644 src/boost/regex/v4/basic_regex.hpp delete mode 100644 src/boost/regex/v4/basic_regex_creator.hpp delete mode 100644 src/boost/regex/v4/basic_regex_parser.hpp delete mode 100644 src/boost/regex/v4/c_regex_traits.hpp delete mode 100644 src/boost/regex/v4/char_regex_traits.hpp delete mode 100644 src/boost/regex/v4/cpp_regex_traits.hpp delete mode 100644 src/boost/regex/v4/cregex.hpp delete mode 100644 src/boost/regex/v4/error_type.hpp delete mode 100644 src/boost/regex/v4/fileiter.hpp delete mode 100644 src/boost/regex/v4/instances.hpp delete mode 100644 src/boost/regex/v4/iterator_category.hpp delete mode 100644 src/boost/regex/v4/iterator_traits.hpp delete mode 100644 src/boost/regex/v4/match_flags.hpp delete mode 100644 src/boost/regex/v4/match_results.hpp delete mode 100644 src/boost/regex/v4/mem_block_cache.hpp delete mode 100644 src/boost/regex/v4/perl_matcher.hpp delete mode 100644 src/boost/regex/v4/perl_matcher_common.hpp delete mode 100644 src/boost/regex/v4/perl_matcher_non_recursive.hpp delete mode 100644 src/boost/regex/v4/perl_matcher_recursive.hpp delete mode 100644 src/boost/regex/v4/primary_transform.hpp delete mode 100644 src/boost/regex/v4/protected_call.hpp delete mode 100644 src/boost/regex/v4/regbase.hpp delete mode 100644 src/boost/regex/v4/regex.hpp delete mode 100644 src/boost/regex/v4/regex_format.hpp delete mode 100644 src/boost/regex/v4/regex_fwd.hpp delete mode 100644 src/boost/regex/v4/regex_grep.hpp delete mode 100644 src/boost/regex/v4/regex_iterator.hpp delete mode 100644 src/boost/regex/v4/regex_match.hpp delete mode 100644 src/boost/regex/v4/regex_merge.hpp delete mode 100644 src/boost/regex/v4/regex_raw_buffer.hpp delete mode 100644 src/boost/regex/v4/regex_replace.hpp delete mode 100644 src/boost/regex/v4/regex_search.hpp delete mode 100644 src/boost/regex/v4/regex_split.hpp delete mode 100644 src/boost/regex/v4/regex_token_iterator.hpp delete mode 100644 src/boost/regex/v4/regex_traits.hpp delete mode 100644 src/boost/regex/v4/regex_traits_defaults.hpp delete mode 100644 src/boost/regex/v4/regex_workaround.hpp delete mode 100644 src/boost/regex/v4/states.hpp delete mode 100644 src/boost/regex/v4/sub_match.hpp delete mode 100644 src/boost/regex/v4/syntax_type.hpp delete mode 100644 src/boost/regex/v4/u32regex_iterator.hpp delete mode 100644 src/boost/regex/v4/u32regex_token_iterator.hpp delete mode 100644 src/boost/regex/v4/w32_regex_traits.hpp delete mode 100644 src/boost/regex_fwd.hpp delete mode 100644 src/boost/scoped_array.hpp delete mode 100644 src/boost/scoped_ptr.hpp delete mode 100644 src/boost/shared_ptr.hpp delete mode 100644 src/boost/smart_ptr/bad_weak_ptr.hpp delete mode 100644 src/boost/smart_ptr/detail/lightweight_mutex.hpp delete mode 100644 src/boost/smart_ptr/detail/lwm_nop.hpp delete mode 100644 src/boost/smart_ptr/detail/lwm_pthreads.hpp delete mode 100644 src/boost/smart_ptr/detail/lwm_win32_cs.hpp delete mode 100644 src/boost/smart_ptr/detail/operator_bool.hpp delete mode 100644 src/boost/smart_ptr/detail/quick_allocator.hpp delete mode 100644 src/boost/smart_ptr/detail/shared_count.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_convertible.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_aix.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_clang.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_nt.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_pt.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_spin.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_sync.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_base_w32.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_counted_impl.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_disable_deprecated.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_has_sync.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_interlocked.hpp delete mode 100644 src/boost/smart_ptr/detail/sp_nullptr_t.hpp delete mode 100644 src/boost/smart_ptr/detail/spinlock.hpp delete mode 100644 src/boost/smart_ptr/detail/spinlock_gcc_arm.hpp delete mode 100644 src/boost/smart_ptr/detail/spinlock_nt.hpp delete mode 100644 src/boost/smart_ptr/detail/spinlock_pool.hpp delete mode 100644 src/boost/smart_ptr/detail/spinlock_pt.hpp delete mode 100644 src/boost/smart_ptr/detail/spinlock_std_atomic.hpp delete mode 100644 src/boost/smart_ptr/detail/spinlock_sync.hpp delete mode 100644 src/boost/smart_ptr/detail/spinlock_w32.hpp delete mode 100644 src/boost/smart_ptr/detail/yield_k.hpp delete mode 100644 src/boost/smart_ptr/scoped_array.hpp delete mode 100644 src/boost/smart_ptr/scoped_ptr.hpp delete mode 100644 src/boost/smart_ptr/shared_ptr.hpp delete mode 100644 src/boost/static_assert.hpp delete mode 100644 src/boost/swap.hpp delete mode 100644 src/boost/test/debug.hpp delete mode 100644 src/boost/test/debug_config.hpp delete mode 100644 src/boost/test/detail/config.hpp delete mode 100644 src/boost/test/detail/enable_warnings.hpp delete mode 100644 src/boost/test/detail/fwd_decl.hpp delete mode 100644 src/boost/test/detail/global_typedef.hpp delete mode 100644 src/boost/test/detail/log_level.hpp delete mode 100644 src/boost/test/detail/pp_variadic.hpp delete mode 100644 src/boost/test/detail/suppress_warnings.hpp delete mode 100644 src/boost/test/detail/throw_exception.hpp delete mode 100644 src/boost/test/detail/workaround.hpp delete mode 100644 src/boost/test/execution_monitor.hpp delete mode 100644 src/boost/test/framework.hpp delete mode 100644 src/boost/test/impl/compiler_log_formatter.ipp delete mode 100644 src/boost/test/impl/cpp_main.ipp delete mode 100644 src/boost/test/impl/debug.ipp delete mode 100644 src/boost/test/impl/decorator.ipp delete mode 100644 src/boost/test/impl/execution_monitor.ipp delete mode 100644 src/boost/test/impl/framework.ipp delete mode 100644 src/boost/test/impl/plain_report_formatter.ipp delete mode 100644 src/boost/test/impl/progress_monitor.ipp delete mode 100644 src/boost/test/impl/results_collector.ipp delete mode 100644 src/boost/test/impl/results_reporter.ipp delete mode 100644 src/boost/test/impl/test_main.ipp delete mode 100644 src/boost/test/impl/test_tools.ipp delete mode 100644 src/boost/test/impl/test_tree.ipp delete mode 100644 src/boost/test/impl/unit_test_log.ipp delete mode 100644 src/boost/test/impl/unit_test_main.ipp delete mode 100644 src/boost/test/impl/unit_test_monitor.ipp delete mode 100644 src/boost/test/impl/unit_test_parameters.ipp delete mode 100644 src/boost/test/impl/xml_log_formatter.ipp delete mode 100644 src/boost/test/impl/xml_report_formatter.ipp delete mode 100644 src/boost/test/output/compiler_log_formatter.hpp delete mode 100644 src/boost/test/output/plain_report_formatter.hpp delete mode 100644 src/boost/test/output/xml_log_formatter.hpp delete mode 100644 src/boost/test/output/xml_report_formatter.hpp delete mode 100644 src/boost/test/progress_monitor.hpp delete mode 100644 src/boost/test/results_collector.hpp delete mode 100644 src/boost/test/results_reporter.hpp delete mode 100644 src/boost/test/test_tools.hpp delete mode 100644 src/boost/test/tools/assertion.hpp delete mode 100644 src/boost/test/tools/assertion_result.hpp delete mode 100644 src/boost/test/tools/collection_comparison_op.hpp delete mode 100644 src/boost/test/tools/context.hpp delete mode 100644 src/boost/test/tools/cstring_comparison_op.hpp delete mode 100644 src/boost/test/tools/detail/bitwise_manip.hpp delete mode 100644 src/boost/test/tools/detail/expression_holder.hpp delete mode 100644 src/boost/test/tools/detail/fwd.hpp delete mode 100644 src/boost/test/tools/detail/indirections.hpp delete mode 100644 src/boost/test/tools/detail/it_pair.hpp delete mode 100644 src/boost/test/tools/detail/lexicographic_manip.hpp delete mode 100644 src/boost/test/tools/detail/per_element_manip.hpp delete mode 100644 src/boost/test/tools/detail/print_helper.hpp delete mode 100644 src/boost/test/tools/detail/tolerance_manip.hpp delete mode 100644 src/boost/test/tools/floating_point_comparison.hpp delete mode 100644 src/boost/test/tools/fpc_op.hpp delete mode 100644 src/boost/test/tools/fpc_tolerance.hpp delete mode 100644 src/boost/test/tools/interface.hpp delete mode 100644 src/boost/test/tools/old/impl.hpp delete mode 100644 src/boost/test/tools/old/interface.hpp delete mode 100644 src/boost/test/tools/output_test_stream.hpp delete mode 100644 src/boost/test/tree/auto_registration.hpp delete mode 100644 src/boost/test/tree/decorator.hpp delete mode 100644 src/boost/test/tree/fixture.hpp delete mode 100644 src/boost/test/tree/global_fixture.hpp delete mode 100644 src/boost/test/tree/observer.hpp delete mode 100644 src/boost/test/tree/test_case_counter.hpp delete mode 100644 src/boost/test/tree/test_case_template.hpp delete mode 100644 src/boost/test/tree/test_unit.hpp delete mode 100644 src/boost/test/tree/traverse.hpp delete mode 100644 src/boost/test/tree/visitor.hpp delete mode 100644 src/boost/test/unit_test.hpp delete mode 100644 src/boost/test/unit_test_log.hpp delete mode 100644 src/boost/test/unit_test_log_formatter.hpp delete mode 100644 src/boost/test/unit_test_monitor.hpp delete mode 100644 src/boost/test/unit_test_parameters.hpp delete mode 100644 src/boost/test/unit_test_suite.hpp delete mode 100644 src/boost/test/utils/algorithm.hpp delete mode 100644 src/boost/test/utils/assign_op.hpp delete mode 100644 src/boost/test/utils/basic_cstring/basic_cstring.hpp delete mode 100644 src/boost/test/utils/basic_cstring/basic_cstring_fwd.hpp delete mode 100644 src/boost/test/utils/basic_cstring/bcs_char_traits.hpp delete mode 100644 src/boost/test/utils/basic_cstring/compare.hpp delete mode 100644 src/boost/test/utils/basic_cstring/io.hpp delete mode 100644 src/boost/test/utils/class_properties.hpp delete mode 100644 src/boost/test/utils/custom_manip.hpp delete mode 100644 src/boost/test/utils/foreach.hpp delete mode 100644 src/boost/test/utils/is_cstring.hpp delete mode 100644 src/boost/test/utils/is_forward_iterable.hpp delete mode 100644 src/boost/test/utils/iterator/input_iterator_facade.hpp delete mode 100644 src/boost/test/utils/iterator/token_iterator.hpp delete mode 100644 src/boost/test/utils/lazy_ostream.hpp delete mode 100644 src/boost/test/utils/named_params.hpp delete mode 100644 src/boost/test/utils/rtti.hpp delete mode 100644 src/boost/test/utils/runtime/argument.hpp delete mode 100644 src/boost/test/utils/runtime/argument_factory.hpp delete mode 100644 src/boost/test/utils/runtime/cla/argv_traverser.hpp delete mode 100644 src/boost/test/utils/runtime/cla/parser.hpp delete mode 100644 src/boost/test/utils/runtime/env/fetch.hpp delete mode 100644 src/boost/test/utils/runtime/errors.hpp delete mode 100644 src/boost/test/utils/runtime/finalize.hpp delete mode 100644 src/boost/test/utils/runtime/fwd.hpp delete mode 100644 src/boost/test/utils/runtime/modifier.hpp delete mode 100644 src/boost/test/utils/runtime/parameter.hpp delete mode 100644 src/boost/test/utils/setcolor.hpp delete mode 100644 src/boost/test/utils/string_cast.hpp delete mode 100644 src/boost/test/utils/trivial_singleton.hpp delete mode 100644 src/boost/test/utils/wrap_stringstream.hpp delete mode 100644 src/boost/test/utils/xml_printer.hpp delete mode 100644 src/boost/throw_exception.hpp delete mode 100644 src/boost/timer.hpp delete mode 100644 src/boost/tuple/detail/tuple_basic.hpp delete mode 100644 src/boost/tuple/tuple.hpp delete mode 100644 src/boost/type.hpp delete mode 100644 src/boost/type_traits/add_const.hpp delete mode 100644 src/boost/type_traits/add_cv.hpp delete mode 100644 src/boost/type_traits/add_lvalue_reference.hpp delete mode 100644 src/boost/type_traits/add_pointer.hpp delete mode 100644 src/boost/type_traits/add_reference.hpp delete mode 100644 src/boost/type_traits/add_rvalue_reference.hpp delete mode 100644 src/boost/type_traits/add_volatile.hpp delete mode 100644 src/boost/type_traits/aligned_storage.hpp delete mode 100644 src/boost/type_traits/alignment_of.hpp delete mode 100644 src/boost/type_traits/common_type.hpp delete mode 100644 src/boost/type_traits/composite_traits.hpp delete mode 100644 src/boost/type_traits/conditional.hpp delete mode 100644 src/boost/type_traits/conversion_traits.hpp delete mode 100644 src/boost/type_traits/copy_cv.hpp delete mode 100644 src/boost/type_traits/cv_traits.hpp delete mode 100644 src/boost/type_traits/decay.hpp delete mode 100644 src/boost/type_traits/declval.hpp delete mode 100644 src/boost/type_traits/detail/common_arithmetic_type.hpp delete mode 100644 src/boost/type_traits/detail/common_type_impl.hpp delete mode 100644 src/boost/type_traits/detail/composite_member_pointer_type.hpp delete mode 100644 src/boost/type_traits/detail/composite_pointer_type.hpp delete mode 100644 src/boost/type_traits/detail/config.hpp delete mode 100644 src/boost/type_traits/detail/has_binary_operator.hpp delete mode 100644 src/boost/type_traits/detail/is_function_ptr_helper.hpp delete mode 100644 src/boost/type_traits/detail/is_function_ptr_tester.hpp delete mode 100644 src/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp delete mode 100644 src/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp delete mode 100644 src/boost/type_traits/detail/mp_defer.hpp delete mode 100644 src/boost/type_traits/detail/yes_no_type.hpp delete mode 100644 src/boost/type_traits/function_traits.hpp delete mode 100644 src/boost/type_traits/has_minus.hpp delete mode 100644 src/boost/type_traits/has_minus_assign.hpp delete mode 100644 src/boost/type_traits/has_nothrow_assign.hpp delete mode 100644 src/boost/type_traits/has_nothrow_constructor.hpp delete mode 100644 src/boost/type_traits/has_nothrow_copy.hpp delete mode 100644 src/boost/type_traits/has_plus.hpp delete mode 100644 src/boost/type_traits/has_plus_assign.hpp delete mode 100644 src/boost/type_traits/has_trivial_assign.hpp delete mode 100644 src/boost/type_traits/has_trivial_constructor.hpp delete mode 100644 src/boost/type_traits/has_trivial_copy.hpp delete mode 100644 src/boost/type_traits/has_trivial_destructor.hpp delete mode 100644 src/boost/type_traits/has_trivial_move_assign.hpp delete mode 100644 src/boost/type_traits/has_trivial_move_constructor.hpp delete mode 100644 src/boost/type_traits/integral_constant.hpp delete mode 100644 src/boost/type_traits/integral_promotion.hpp delete mode 100644 src/boost/type_traits/intrinsics.hpp delete mode 100644 src/boost/type_traits/is_abstract.hpp delete mode 100644 src/boost/type_traits/is_arithmetic.hpp delete mode 100644 src/boost/type_traits/is_array.hpp delete mode 100644 src/boost/type_traits/is_assignable.hpp delete mode 100644 src/boost/type_traits/is_base_and_derived.hpp delete mode 100644 src/boost/type_traits/is_base_of.hpp delete mode 100644 src/boost/type_traits/is_class.hpp delete mode 100644 src/boost/type_traits/is_const.hpp delete mode 100644 src/boost/type_traits/is_constructible.hpp delete mode 100644 src/boost/type_traits/is_convertible.hpp delete mode 100644 src/boost/type_traits/is_copy_constructible.hpp delete mode 100644 src/boost/type_traits/is_default_constructible.hpp delete mode 100644 src/boost/type_traits/is_destructible.hpp delete mode 100644 src/boost/type_traits/is_empty.hpp delete mode 100644 src/boost/type_traits/is_enum.hpp delete mode 100644 src/boost/type_traits/is_floating_point.hpp delete mode 100644 src/boost/type_traits/is_function.hpp delete mode 100644 src/boost/type_traits/is_fundamental.hpp delete mode 100644 src/boost/type_traits/is_integral.hpp delete mode 100644 src/boost/type_traits/is_lvalue_reference.hpp delete mode 100644 src/boost/type_traits/is_member_function_pointer.hpp delete mode 100644 src/boost/type_traits/is_member_pointer.hpp delete mode 100644 src/boost/type_traits/is_nothrow_move_assignable.hpp delete mode 100644 src/boost/type_traits/is_nothrow_move_constructible.hpp delete mode 100644 src/boost/type_traits/is_pod.hpp delete mode 100644 src/boost/type_traits/is_pointer.hpp delete mode 100644 src/boost/type_traits/is_polymorphic.hpp delete mode 100644 src/boost/type_traits/is_reference.hpp delete mode 100644 src/boost/type_traits/is_rvalue_reference.hpp delete mode 100644 src/boost/type_traits/is_same.hpp delete mode 100644 src/boost/type_traits/is_scalar.hpp delete mode 100644 src/boost/type_traits/is_signed.hpp delete mode 100644 src/boost/type_traits/is_union.hpp delete mode 100644 src/boost/type_traits/is_unsigned.hpp delete mode 100644 src/boost/type_traits/is_void.hpp delete mode 100644 src/boost/type_traits/is_volatile.hpp delete mode 100644 src/boost/type_traits/make_signed.hpp delete mode 100644 src/boost/type_traits/make_unsigned.hpp delete mode 100644 src/boost/type_traits/remove_all_extents.hpp delete mode 100644 src/boost/type_traits/remove_bounds.hpp delete mode 100644 src/boost/type_traits/remove_const.hpp delete mode 100644 src/boost/type_traits/remove_cv.hpp delete mode 100644 src/boost/type_traits/remove_extent.hpp delete mode 100644 src/boost/type_traits/remove_pointer.hpp delete mode 100644 src/boost/type_traits/remove_reference.hpp delete mode 100644 src/boost/type_traits/remove_volatile.hpp delete mode 100644 src/boost/type_traits/type_identity.hpp delete mode 100644 src/boost/type_traits/type_with_alignment.hpp delete mode 100644 src/boost/unordered/detail/allocate.hpp delete mode 100644 src/boost/unordered/detail/buckets.hpp delete mode 100644 src/boost/unordered/detail/equivalent.hpp delete mode 100644 src/boost/unordered/detail/extract_key.hpp delete mode 100644 src/boost/unordered/detail/fwd.hpp delete mode 100644 src/boost/unordered/detail/table.hpp delete mode 100644 src/boost/unordered/detail/unique.hpp delete mode 100644 src/boost/unordered/detail/util.hpp delete mode 100644 src/boost/unordered/unordered_map.hpp delete mode 100644 src/boost/unordered/unordered_map_fwd.hpp delete mode 100644 src/boost/unordered_map.hpp delete mode 100644 src/boost/utility.hpp delete mode 100644 src/boost/utility/addressof.hpp delete mode 100644 src/boost/utility/base_from_member.hpp delete mode 100644 src/boost/utility/binary.hpp delete mode 100644 src/boost/utility/compare_pointees.hpp delete mode 100644 src/boost/utility/declval.hpp delete mode 100644 src/boost/utility/detail/result_of_iterate.hpp delete mode 100644 src/boost/utility/enable_if.hpp delete mode 100644 src/boost/utility/identity_type.hpp delete mode 100644 src/boost/utility/result_of.hpp delete mode 100644 src/boost/utility/swap.hpp delete mode 100644 src/boost/utility/value_init.hpp delete mode 100644 src/boost/version.hpp delete mode 100644 src/boost/visit_each.hpp diff --git a/src/boost/algorithm/algorithm.hpp b/src/boost/algorithm/algorithm.hpp deleted file mode 100644 index d2d679cf..00000000 --- a/src/boost/algorithm/algorithm.hpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - Copyright (c) Marshall Clow 2014. - - Distributed under the 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: - 2 Dec 2014 mtc First version; power - -*/ - -/// \file algorithm.hpp -/// \brief Misc Algorithms -/// \author Marshall Clow -/// - -#ifndef BOOST_ALGORITHM_HPP -#define BOOST_ALGORITHM_HPP - -#include // for network_boost::disable_if -#include - -namespace network_boost { namespace algorithm { - -template -T identity_operation ( std::multiplies ) { return T(1); } - -template -T identity_operation ( std::plus ) { return T(0); } - - -/// \fn power ( T x, Integer n ) -/// \return the value "x" raised to the power "n" -/// -/// \param x The value to be exponentiated -/// \param n The exponent (must be >= 0) -/// -// \remark Taken from Knuth, The Art of Computer Programming, Volume 2: -// Seminumerical Algorithms, Section 4.6.3 -template -typename network_boost::enable_if, T>::type -power (T x, Integer n) { - T y = 1; // Should be "T y{1};" - if (n == 0) return y; - while (true) { - if (n % 2 == 1) { - y = x * y; - if (n == 1) - return y; - } - n = n / 2; - x = x * x; - } - return y; - } - -/// \fn power ( T x, Integer n, Operation op ) -/// \return the value "x" raised to the power "n" -/// using the operaton "op". -/// -/// \param x The value to be exponentiated -/// \param n The exponent (must be >= 0) -/// \param op The operation used -/// -// \remark Taken from Knuth, The Art of Computer Programming, Volume 2: -// Seminumerical Algorithms, Section 4.6.3 -template -typename network_boost::enable_if, T>::type -power (T x, Integer n, Operation op) { - T y = identity_operation(op); - if (n == 0) return y; - while (true) { - if (n % 2 == 1) { - y = op(x, y); - if (n == 1) - return y; - } - n = n / 2; - x = op(x, x); - } - return y; - } - -}} - -#endif // BOOST_ALGORITHM_HPP diff --git a/src/boost/algorithm/clamp.hpp b/src/boost/algorithm/clamp.hpp deleted file mode 100644 index 13dcb130..00000000 --- a/src/boost/algorithm/clamp.hpp +++ /dev/null @@ -1,175 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - Distributed under the 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: - 27 June 2009 mtc First version - 23 Oct 2010 mtc Added predicate version - -*/ - -/// \file clamp.hpp -/// \brief Clamp algorithm -/// \author Marshall Clow -/// -/// Suggested by olafvdspek in https://svn.boost.org/trac/boost/ticket/3215 - -#ifndef BOOST_ALGORITHM_CLAMP_HPP -#define BOOST_ALGORITHM_CLAMP_HPP - -#include // For std::less -#include // For std::iterator_traits -#include - -#include -#include -#include // for identity -#include // for network_boost::disable_if - -namespace network_boost { namespace algorithm { - -/// \fn clamp ( T const& val, -/// typename network_boost::mpl::identity::type const & lo, -/// typename network_boost::mpl::identity::type const & hi, Pred p ) -/// \return the value "val" brought into the range [ lo, hi ] -/// using the comparison predicate p. -/// If p ( val, lo ) return lo. -/// If p ( hi, val ) return hi. -/// Otherwise, return the original value. -/// -/// \param val The value to be clamped -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// \param p A predicate to use to compare the values. -/// p ( a, b ) returns a boolean. -/// - template - T const & clamp ( T const& val, - typename network_boost::mpl::identity::type const & lo, - typename network_boost::mpl::identity::type const & hi, Pred p ) - { -// assert ( !p ( hi, lo )); // Can't assert p ( lo, hi ) b/c they might be equal - return p ( val, lo ) ? lo : p ( hi, val ) ? hi : val; - } - - -/// \fn clamp ( T const& val, -/// typename network_boost::mpl::identity::type const & lo, -/// typename network_boost::mpl::identity::type const & hi ) -/// \return the value "val" brought into the range [ lo, hi ]. -/// If the value is less than lo, return lo. -/// If the value is greater than "hi", return hi. -/// Otherwise, return the original value. -/// -/// \param val The value to be clamped -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// - template - T const& clamp ( const T& val, - typename network_boost::mpl::identity::type const & lo, - typename network_boost::mpl::identity::type const & hi ) - { - return (clamp) ( val, lo, hi, std::less()); - } - -/// \fn clamp_range ( InputIterator first, InputIterator last, OutputIterator out, -/// std::iterator_traits::value_type const & lo, -/// std::iterator_traits::value_type const & hi ) -/// \return clamp the sequence of values [first, last) into [ lo, hi ] -/// -/// \param first The start of the range of values -/// \param last One past the end of the range of input values -/// \param out An output iterator to write the clamped values into -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// - template - OutputIterator clamp_range ( InputIterator first, InputIterator last, OutputIterator out, - typename std::iterator_traits::value_type const & lo, - typename std::iterator_traits::value_type const & hi ) - { - // this could also be written with bind and std::transform - while ( first != last ) - *out++ = clamp ( *first++, lo, hi ); - return out; - } - -/// \fn clamp_range ( const Range &r, OutputIterator out, -/// typename std::iterator_traits::type>::value_type const & lo, -/// typename std::iterator_traits::type>::value_type const & hi ) -/// \return clamp the sequence of values [first, last) into [ lo, hi ] -/// -/// \param r The range of values to be clamped -/// \param out An output iterator to write the clamped values into -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// - template - typename network_boost::disable_if_c::value, OutputIterator>::type - clamp_range ( const Range &r, OutputIterator out, - typename std::iterator_traits::type>::value_type const & lo, - typename std::iterator_traits::type>::value_type const & hi ) - { - return clamp_range ( network_boost::begin ( r ), network_boost::end ( r ), out, lo, hi ); - } - - -/// \fn clamp_range ( InputIterator first, InputIterator last, OutputIterator out, -/// std::iterator_traits::value_type const & lo, -/// std::iterator_traits::value_type const & hi, Pred p ) -/// \return clamp the sequence of values [first, last) into [ lo, hi ] -/// using the comparison predicate p. -/// -/// \param first The start of the range of values -/// \param last One past the end of the range of input values -/// \param out An output iterator to write the clamped values into -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// \param p A predicate to use to compare the values. -/// p ( a, b ) returns a boolean. - -/// - template - OutputIterator clamp_range ( InputIterator first, InputIterator last, OutputIterator out, - typename std::iterator_traits::value_type const & lo, - typename std::iterator_traits::value_type const & hi, Pred p ) - { - // this could also be written with bind and std::transform - while ( first != last ) - *out++ = clamp ( *first++, lo, hi, p ); - return out; - } - -/// \fn clamp_range ( const Range &r, OutputIterator out, -/// typename std::iterator_traits::type>::value_type const & lo, -/// typename std::iterator_traits::type>::value_type const & hi, -/// Pred p ) -/// \return clamp the sequence of values [first, last) into [ lo, hi ] -/// using the comparison predicate p. -/// -/// \param r The range of values to be clamped -/// \param out An output iterator to write the clamped values into -/// \param lo The lower bound of the range to be clamped to -/// \param hi The upper bound of the range to be clamped to -/// \param p A predicate to use to compare the values. -/// p ( a, b ) returns a boolean. -// -// Disable this template if the first two parameters are the same type; -// In that case, the user will get the two iterator version. - template - typename network_boost::disable_if_c::value, OutputIterator>::type - clamp_range ( const Range &r, OutputIterator out, - typename std::iterator_traits::type>::value_type const & lo, - typename std::iterator_traits::type>::value_type const & hi, - Pred p ) - { - return clamp_range ( network_boost::begin ( r ), network_boost::end ( r ), out, lo, hi, p ); - } - - -}} - -#endif // BOOST_ALGORITHM_CLAMP_HPP diff --git a/src/boost/algorithm/cxx11/all_of.hpp b/src/boost/algorithm/cxx11/all_of.hpp deleted file mode 100644 index bdf41f7b..00000000 --- a/src/boost/algorithm/cxx11/all_of.hpp +++ /dev/null @@ -1,86 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file all_of.hpp -/// \brief Test ranges to see if all elements match a value or predicate. -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_ALL_OF_HPP -#define BOOST_ALGORITHM_ALL_OF_HPP - -#include // for std::all_of, if available -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn all_of ( InputIterator first, InputIterator last, Predicate p ) -/// \return true if all elements in [first, last) satisfy the predicate 'p' -/// \note returns true on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p A predicate for testing the elements of the sequence -/// -/// \note This function is part of the C++2011 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template -bool all_of ( InputIterator first, InputIterator last, Predicate p ) -{ - for ( ; first != last; ++first ) - if ( !p(*first)) - return false; - return true; -} - -/// \fn all_of ( const Range &r, Predicate p ) -/// \return true if all elements in the range satisfy the predicate 'p' -/// \note returns true on an empty range -/// -/// \param r The input range -/// \param p A predicate for testing the elements of the range -/// -template -bool all_of ( const Range &r, Predicate p ) -{ - return network_boost::algorithm::all_of ( network_boost::begin (r), network_boost::end (r), p ); -} - -/// \fn all_of_equal ( InputIterator first, InputIterator last, const T &val ) -/// \return true if all elements in [first, last) are equal to 'val' -/// \note returns true on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param val A value to compare against -/// -template -bool all_of_equal ( InputIterator first, InputIterator last, const T &val ) -{ - for ( ; first != last; ++first ) - if ( val != *first ) - return false; - return true; -} - -/// \fn all_of_equal ( const Range &r, const T &val ) -/// \return true if all elements in the range are equal to 'val' -/// \note returns true on an empty range -/// -/// \param r The input range -/// \param val A value to compare against -/// -template -bool all_of_equal ( const Range &r, const T &val ) -{ - return network_boost::algorithm::all_of_equal ( network_boost::begin (r), network_boost::end (r), val ); -} - -}} // namespace network_boost and algorithm - -#endif // BOOST_ALGORITHM_ALL_OF_HPP diff --git a/src/boost/algorithm/cxx11/any_of.hpp b/src/boost/algorithm/cxx11/any_of.hpp deleted file mode 100644 index 15864ca0..00000000 --- a/src/boost/algorithm/cxx11/any_of.hpp +++ /dev/null @@ -1,85 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - Distributed under the 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 -*/ - -/// \file -/// \brief Test ranges to see if any elements match a value or predicate. -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_ANY_OF_HPP -#define BOOST_ALGORITHM_ANY_OF_HPP - -#include // for std::any_of, if available -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn any_of ( InputIterator first, InputIterator last, Predicate p ) -/// \return true if any of the elements in [first, last) satisfy the predicate -/// \note returns false on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p A predicate for testing the elements of the sequence -/// -template -bool any_of ( InputIterator first, InputIterator last, Predicate p ) -{ - for ( ; first != last; ++first ) - if ( p(*first)) - return true; - return false; -} - -/// \fn any_of ( const Range &r, Predicate p ) -/// \return true if any elements in the range satisfy the predicate 'p' -/// \note returns false on an empty range -/// -/// \param r The input range -/// \param p A predicate for testing the elements of the range -/// -template -bool any_of ( const Range &r, Predicate p ) -{ - return network_boost::algorithm::any_of (network_boost::begin (r), network_boost::end (r), p); -} - -/// \fn any_of_equal ( InputIterator first, InputIterator last, const V &val ) -/// \return true if any of the elements in [first, last) are equal to 'val' -/// \note returns false on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param val A value to compare against -/// -template -bool any_of_equal ( InputIterator first, InputIterator last, const V &val ) -{ - for ( ; first != last; ++first ) - if ( val == *first ) - return true; - return false; -} - -/// \fn any_of_equal ( const Range &r, const V &val ) -/// \return true if any of the elements in the range are equal to 'val' -/// \note returns false on an empty range -/// -/// \param r The input range -/// \param val A value to compare against -/// -template -bool any_of_equal ( const Range &r, const V &val ) -{ - return network_boost::algorithm::any_of_equal (network_boost::begin (r), network_boost::end (r), val); -} - -}} // namespace network_boost and algorithm - -#endif // BOOST_ALGORITHM_ANY_OF_HPP diff --git a/src/boost/algorithm/cxx11/copy_if.hpp b/src/boost/algorithm/cxx11/copy_if.hpp deleted file mode 100644 index 7fc19a5b..00000000 --- a/src/boost/algorithm/cxx11/copy_if.hpp +++ /dev/null @@ -1,131 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file copy_if.hpp -/// \brief Copy a subset of a sequence to a new sequence -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_COPY_IF_HPP -#define BOOST_ALGORITHM_COPY_IF_HPP - -#include // for std::copy_if, if available -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn copy_if ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -/// \brief Copies all the elements from the input range that satisfy the -/// predicate to the output range. -/// \return The updated output iterator -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// \note This function is part of the C++2011 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template -OutputIterator copy_if ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -{ - for ( ; first != last; ++first ) - if (p(*first)) - *result++ = *first; - return result; -} - -/// \fn copy_if ( const Range &r, OutputIterator result, Predicate p ) -/// \brief Copies all the elements from the input range that satisfy the -/// predicate to the output range. -/// \return The updated output iterator -/// -/// \param r The input range -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// -template -OutputIterator copy_if ( const Range &r, OutputIterator result, Predicate p ) -{ - return network_boost::algorithm::copy_if (network_boost::begin (r), network_boost::end(r), result, p); -} - - -/// \fn copy_while ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -/// \brief Copies all the elements at the start of the input range that -/// satisfy the predicate to the output range. -/// \return The updated input and output iterators -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// -template -std::pair -copy_while ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -{ - for ( ; first != last && p(*first); ++first ) - *result++ = *first; - return std::make_pair(first, result); -} - -/// \fn copy_while ( const Range &r, OutputIterator result, Predicate p ) -/// \brief Copies all the elements at the start of the input range that -/// satisfy the predicate to the output range. -/// \return The updated input and output iterators -/// -/// \param r The input range -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// -template -std::pair::type, OutputIterator> -copy_while ( const Range &r, OutputIterator result, Predicate p ) -{ - return network_boost::algorithm::copy_while (network_boost::begin (r), network_boost::end(r), result, p); -} - - -/// \fn copy_until ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -/// \brief Copies all the elements at the start of the input range that do not -/// satisfy the predicate to the output range. -/// \return The updated output iterator -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// -template -std::pair -copy_until ( InputIterator first, InputIterator last, OutputIterator result, Predicate p ) -{ - for ( ; first != last && !p(*first); ++first ) - *result++ = *first; - return std::make_pair(first, result); -} - -/// \fn copy_until ( const Range &r, OutputIterator result, Predicate p ) -/// \brief Copies all the elements at the start of the input range that do not -/// satisfy the predicate to the output range. -/// \return The updated output iterator -/// -/// \param r The input range -/// \param result An output iterator to write the results into -/// \param p A predicate for testing the elements of the range -/// -template -std::pair::type, OutputIterator> -copy_until ( const Range &r, OutputIterator result, Predicate p ) -{ - return network_boost::algorithm::copy_until (network_boost::begin (r), network_boost::end(r), result, p); -} - -}} // namespace network_boost and algorithm - -#endif // BOOST_ALGORITHM_COPY_IF_HPP diff --git a/src/boost/algorithm/cxx11/copy_n.hpp b/src/boost/algorithm/cxx11/copy_n.hpp deleted file mode 100644 index adc794b4..00000000 --- a/src/boost/algorithm/cxx11/copy_n.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file copy_n.hpp -/// \brief Copy n items from one sequence to another -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_COPY_N_HPP -#define BOOST_ALGORITHM_COPY_N_HPP - -#include // for std::copy_n, if available - -namespace network_boost { namespace algorithm { - -/// \fn copy_n ( InputIterator first, Size n, OutputIterator result ) -/// \brief Copies exactly n (n > 0) elements from the range starting at first to -/// the range starting at result. -/// \return The updated output iterator -/// -/// \param first The start of the input sequence -/// \param n The number of elements to copy -/// \param result An output iterator to write the results into -/// \note This function is part of the C++2011 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template -OutputIterator copy_n ( InputIterator first, Size n, OutputIterator result ) -{ - for ( ; n > 0; --n, ++first, ++result ) - *result = *first; - return result; -} -}} // namespace network_boost and algorithm - -#endif // BOOST_ALGORITHM_COPY_IF_HPP diff --git a/src/boost/algorithm/cxx11/find_if_not.hpp b/src/boost/algorithm/cxx11/find_if_not.hpp deleted file mode 100644 index 477b3ef1..00000000 --- a/src/boost/algorithm/cxx11/find_if_not.hpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file find_if_not.hpp -/// \brief Find the first element in a sequence that does not satisfy a predicate. -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_FIND_IF_NOT_HPP -#define BOOST_ALGORITHM_FIND_IF_NOT_HPP - -#include // for std::find_if_not, if it exists - -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn find_if_not(InputIterator first, InputIterator last, Predicate p) -/// \brief Finds the first element in the sequence that does not satisfy the predicate. -/// \return The iterator pointing to the desired element. -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p A predicate for testing the elements of the range -/// \note This function is part of the C++2011 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template -InputIterator find_if_not ( InputIterator first, InputIterator last, Predicate p ) -{ - for ( ; first != last; ++first ) - if ( !p(*first)) - break; - return first; -} - -/// \fn find_if_not ( const Range &r, Predicate p ) -/// \brief Finds the first element in the sequence that does not satisfy the predicate. -/// \return The iterator pointing to the desired element. -/// -/// \param r The input range -/// \param p A predicate for testing the elements of the range -/// -template -typename network_boost::range_iterator::type find_if_not ( const Range &r, Predicate p ) -{ - return network_boost::algorithm::find_if_not (network_boost::begin (r), network_boost::end(r), p); -} - -}} -#endif // BOOST_ALGORITHM_FIND_IF_NOT_HPP diff --git a/src/boost/algorithm/cxx11/iota.hpp b/src/boost/algorithm/cxx11/iota.hpp deleted file mode 100644 index a8e90092..00000000 --- a/src/boost/algorithm/cxx11/iota.hpp +++ /dev/null @@ -1,69 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file iota.hpp -/// \brief Generate an increasing series -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_IOTA_HPP -#define BOOST_ALGORITHM_IOTA_HPP - -#include - -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn iota ( ForwardIterator first, ForwardIterator last, T value ) -/// \brief Generates an increasing sequence of values, and stores them in [first, last) -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param value The initial value of the sequence to be generated -/// \note This function is part of the C++2011 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template -void iota ( ForwardIterator first, ForwardIterator last, T value ) -{ - for ( ; first != last; ++first, ++value ) - *first = value; -} - -/// \fn iota ( Range &r, T value ) -/// \brief Generates an increasing sequence of values, and stores them in the input Range. -/// -/// \param r The input range -/// \param value The initial value of the sequence to be generated -/// -template -void iota ( Range &r, T value ) -{ - network_boost::algorithm::iota (network_boost::begin(r), network_boost::end(r), value); -} - - -/// \fn iota_n ( OutputIterator out, T value, std::size_t n ) -/// \brief Generates an increasing sequence of values, and stores them in the input Range. -/// -/// \param out An output iterator to write the results into -/// \param value The initial value of the sequence to be generated -/// \param n The number of items to write -/// -template -OutputIterator iota_n ( OutputIterator out, T value, std::size_t n ) -{ - for ( ; n > 0; --n, ++value ) - *out++ = value; - - return out; -} - -}} - -#endif // BOOST_ALGORITHM_IOTA_HPP diff --git a/src/boost/algorithm/cxx11/is_partitioned.hpp b/src/boost/algorithm/cxx11/is_partitioned.hpp deleted file mode 100644 index f2afc4fe..00000000 --- a/src/boost/algorithm/cxx11/is_partitioned.hpp +++ /dev/null @@ -1,60 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file is_partitioned.hpp -/// \brief Tell if a sequence is partitioned -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_IS_PARTITIONED_HPP -#define BOOST_ALGORITHM_IS_PARTITIONED_HPP - -#include // for std::is_partitioned, if available - -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn is_partitioned ( InputIterator first, InputIterator last, UnaryPredicate p ) -/// \brief Tests to see if a sequence is partitioned according to a predicate -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p The predicate to test the values with -/// \note This function is part of the C++2011 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template -bool is_partitioned ( InputIterator first, InputIterator last, UnaryPredicate p ) -{ -// Run through the part that satisfy the predicate - for ( ; first != last; ++first ) - if ( !p (*first)) - break; -// Now the part that does not satisfy the predicate - for ( ; first != last; ++first ) - if ( p (*first)) - return false; - return true; -} - -/// \fn is_partitioned ( const Range &r, UnaryPredicate p ) -/// \brief Generates an increasing sequence of values, and stores them in the input Range. -/// -/// \param r The input range -/// \param p The predicate to test the values with -/// -template -bool is_partitioned ( const Range &r, UnaryPredicate p ) -{ - return network_boost::algorithm::is_partitioned (network_boost::begin(r), network_boost::end(r), p); -} - - -}} - -#endif // BOOST_ALGORITHM_IS_PARTITIONED_HPP diff --git a/src/boost/algorithm/cxx11/is_permutation.hpp b/src/boost/algorithm/cxx11/is_permutation.hpp deleted file mode 100644 index b55f4af5..00000000 --- a/src/boost/algorithm/cxx11/is_permutation.hpp +++ /dev/null @@ -1,189 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file is_permutation.hpp -/// \brief Is a sequence a permutation of another sequence -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_IS_PERMUTATION11_HPP -#define BOOST_ALGORITHM_IS_PERMUTATION11_HPP - -#include // for std::less, tie, mismatch and is_permutation (if available) -#include // for std::make_pair -#include // for std::equal_to -#include - -#include -#include -#include -#include - -namespace network_boost { namespace algorithm { - -/// \cond DOXYGEN_HIDE -namespace detail { - template - struct value_predicate { - value_predicate ( Predicate p, Iterator it ) : p_ ( p ), it_ ( it ) {} - - template - bool operator () ( const T1 &t1 ) const { return p_ ( *it_, t1 ); } - private: - Predicate p_; - Iterator it_; - }; - -// Preconditions: -// 1. The sequences are the same length -// 2. Any common elements on the front have been removed (not necessary for correctness, just for performance) - template< class ForwardIterator1, class ForwardIterator2, class BinaryPredicate > - bool is_permutation_inner ( ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, - BinaryPredicate p ) { - // for each unique value in the sequence [first1,last1), count how many times - // it occurs, and make sure it occurs the same number of times in [first2, last2) - for ( ForwardIterator1 iter = first1; iter != last1; ++iter ) { - value_predicate pred ( p, iter ); - - /* For each value we haven't seen yet... */ - if ( std::find_if ( first1, iter, pred ) == iter ) { - std::size_t dest_count = std::count_if ( first2, last2, pred ); - if ( dest_count == 0 || dest_count != (std::size_t) std::count_if ( iter, last1, pred )) - return false; - } - } - - return true; - } - - template< class ForwardIterator1, class ForwardIterator2, class BinaryPredicate> - bool is_permutation_tag ( ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, - BinaryPredicate p, - std::forward_iterator_tag, std::forward_iterator_tag ) { - - // Skip the common prefix (if any) - while ( first1 != last1 && first2 != last2 && p ( *first1, *first2 )) { - ++first1; - ++first2; - } - if ( first1 != last1 && first2 != last2 ) - return network_boost::algorithm::detail::is_permutation_inner ( first1, last1, first2, last2, - std::equal_to::value_type> ()); - return first1 == last1 && first2 == last2; - } - - template - bool is_permutation_tag ( RandomAccessIterator1 first1, RandomAccessIterator1 last1, - RandomAccessIterator2 first2, RandomAccessIterator2 last2, - BinaryPredicate p, - std::random_access_iterator_tag, std::random_access_iterator_tag ) { - // Cheap check - if ( std::distance ( first1, last1 ) != std::distance ( first2, last2 )) - return false; - // Skip the common prefix (if any) - while ( first1 != last1 && first2 != last2 && p ( *first1, *first2 )) { - ++first1; - ++first2; - } - - if ( first1 != last1 && first2 != last2 ) - return is_permutation_inner (first1, last1, first2, last2, p); - return first1 == last1 && first2 == last2; - } - -} -/// \endcond - -/// \fn is_permutation ( ForwardIterator1 first, ForwardIterator1 last, ForwardIterator2 first2, BinaryPredicate p ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param first1 The start of the input sequence -/// \param last1 One past the end of the input sequence -/// \param first2 The start of the second sequence -/// \param p The predicate to compare elements with -/// -/// \note This function is part of the C++2011 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template< class ForwardIterator1, class ForwardIterator2, class BinaryPredicate > -bool is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, BinaryPredicate p ) -{ -// Skip the common prefix (if any) - std::pair eq = std::mismatch (first1, last1, first2, p); - first1 = eq.first; - first2 = eq.second; - if ( first1 != last1 ) { - // Create last2 - ForwardIterator2 last2 = first2; - std::advance ( last2, std::distance (first1, last1)); - return network_boost::algorithm::detail::is_permutation_inner ( first1, last1, first2, last2, p ); - } - - return true; -} - -/// \fn is_permutation ( ForwardIterator1 first, ForwardIterator1 last, ForwardIterator2 first2 ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param first1 The start of the input sequence -/// \param last2 One past the end of the input sequence -/// \param first2 The start of the second sequence -/// \note This function is part of the C++2011 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template< class ForwardIterator1, class ForwardIterator2 > -bool is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2 ) -{ -// How should I deal with the idea that ForwardIterator1::value_type -// and ForwardIterator2::value_type could be different? Define my own comparison predicate? -// Skip the common prefix (if any) - std::pair eq = std::mismatch (first1, last1, first2 ); - first1 = eq.first; - first2 = eq.second; - if ( first1 != last1 ) { - // Create last2 - ForwardIterator2 last2 = first2; - std::advance ( last2, std::distance (first1, last1)); - return network_boost::algorithm::detail::is_permutation_inner ( first1, last1, first2, last2, - std::equal_to::value_type> ()); - } - return true; -} - - -/// \fn is_permutation ( const Range &r, ForwardIterator first2 ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param r The input range -/// \param first2 The start of the second sequence -template -bool is_permutation ( const Range &r, ForwardIterator first2 ) -{ - return network_boost::algorithm::is_permutation (network_boost::begin (r), network_boost::end (r), first2 ); -} - -/// \fn is_permutation ( const Range &r, ForwardIterator first2, BinaryPredicate pred ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param r The input range -/// \param first2 The start of the second sequence -/// \param pred The predicate to compare elements with -/// -// Disable this template when the first two parameters are the same type -// That way the non-range version will be chosen. -template -typename network_boost::disable_if_c::value, bool>::type -is_permutation ( const Range &r, ForwardIterator first2, BinaryPredicate pred ) -{ - return network_boost::algorithm::is_permutation (network_boost::begin (r), network_boost::end (r), first2, pred ); -} - -}} - -#endif // BOOST_ALGORITHM_IS_PERMUTATION11_HPP diff --git a/src/boost/algorithm/cxx11/is_sorted.hpp b/src/boost/algorithm/cxx11/is_sorted.hpp deleted file mode 100644 index 850fed41..00000000 --- a/src/boost/algorithm/cxx11/is_sorted.hpp +++ /dev/null @@ -1,281 +0,0 @@ -// Copyright (c) 2010 Nuovation System Designs, LLC -// Grant Erickson -// -// Reworked somewhat by Marshall Clow; August 2010 -// -// Distributed under the Boost Software License, Version 1.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 latest version. -// - -#ifndef BOOST_ALGORITHM_ORDERED_HPP -#define BOOST_ALGORITHM_ORDERED_HPP - -#include -#include -#include - -#include -#include - -#include -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn is_sorted_until ( ForwardIterator first, ForwardIterator last, Pred p ) -/// \return the point in the sequence [first, last) where the elements are unordered -/// (according to the comparison predicate 'p'). -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// \param p A binary predicate that returns true if two elements are ordered. -/// - template - ForwardIterator is_sorted_until ( ForwardIterator first, ForwardIterator last, Pred p ) - { - if ( first == last ) return last; // the empty sequence is ordered - ForwardIterator next = first; - while ( ++next != last ) - { - if ( p ( *next, *first )) - return next; - first = next; - } - return last; - } - -/// \fn is_sorted_until ( ForwardIterator first, ForwardIterator last ) -/// \return the point in the sequence [first, last) where the elements are unordered -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// - template - ForwardIterator is_sorted_until ( ForwardIterator first, ForwardIterator last ) - { - typedef typename std::iterator_traits::value_type value_type; - return network_boost::algorithm::is_sorted_until ( first, last, std::less()); - } - - -/// \fn is_sorted ( ForwardIterator first, ForwardIterator last, Pred p ) -/// \return whether or not the entire sequence is sorted -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// \param p A binary predicate that returns true if two elements are ordered. -/// - template - bool is_sorted ( ForwardIterator first, ForwardIterator last, Pred p ) - { - return network_boost::algorithm::is_sorted_until (first, last, p) == last; - } - -/// \fn is_sorted ( ForwardIterator first, ForwardIterator last ) -/// \return whether or not the entire sequence is sorted -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// - template - bool is_sorted ( ForwardIterator first, ForwardIterator last ) - { - return network_boost::algorithm::is_sorted_until (first, last) == last; - } - -/// -/// -- Range based versions of the C++11 functions -/// - -/// \fn is_sorted_until ( const R &range, Pred p ) -/// \return the point in the range R where the elements are unordered -/// (according to the comparison predicate 'p'). -/// -/// \param range The range to be tested. -/// \param p A binary predicate that returns true if two elements are ordered. -/// - template - typename network_boost::lazy_disable_if_c< - network_boost::is_same::value, - typename network_boost::range_iterator - >::type is_sorted_until ( const R &range, Pred p ) - { - return network_boost::algorithm::is_sorted_until ( network_boost::begin ( range ), network_boost::end ( range ), p ); - } - - -/// \fn is_sorted_until ( const R &range ) -/// \return the point in the range R where the elements are unordered -/// -/// \param range The range to be tested. -/// - template - typename network_boost::range_iterator::type is_sorted_until ( const R &range ) - { - return network_boost::algorithm::is_sorted_until ( network_boost::begin ( range ), network_boost::end ( range )); - } - -/// \fn is_sorted ( const R &range, Pred p ) -/// \return whether or not the entire range R is sorted -/// (according to the comparison predicate 'p'). -/// -/// \param range The range to be tested. -/// \param p A binary predicate that returns true if two elements are ordered. -/// - template - typename network_boost::lazy_disable_if_c< network_boost::is_same::value, network_boost::mpl::identity >::type - is_sorted ( const R &range, Pred p ) - { - return network_boost::algorithm::is_sorted ( network_boost::begin ( range ), network_boost::end ( range ), p ); - } - - -/// \fn is_sorted ( const R &range ) -/// \return whether or not the entire range R is sorted -/// -/// \param range The range to be tested. -/// - template - bool is_sorted ( const R &range ) - { - return network_boost::algorithm::is_sorted ( network_boost::begin ( range ), network_boost::end ( range )); - } - - -/// -/// -- Range based versions of the C++11 functions -/// - -/// \fn is_increasing ( ForwardIterator first, ForwardIterator last ) -/// \return true if the entire sequence is increasing; i.e, each item is greater than or -/// equal to the previous one. -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// -/// \note This function will return true for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_strictly_increasing instead. - template - bool is_increasing ( ForwardIterator first, ForwardIterator last ) - { - typedef typename std::iterator_traits::value_type value_type; - return network_boost::algorithm::is_sorted (first, last, std::less()); - } - - -/// \fn is_increasing ( const R &range ) -/// \return true if the entire sequence is increasing; i.e, each item is greater than or -/// equal to the previous one. -/// -/// \param range The range to be tested. -/// -/// \note This function will return true for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_strictly_increasing instead. - template - bool is_increasing ( const R &range ) - { - return is_increasing ( network_boost::begin ( range ), network_boost::end ( range )); - } - - - -/// \fn is_decreasing ( ForwardIterator first, ForwardIterator last ) -/// \return true if the entire sequence is decreasing; i.e, each item is less than -/// or equal to the previous one. -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// -/// \note This function will return true for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_strictly_decreasing instead. - template - bool is_decreasing ( ForwardIterator first, ForwardIterator last ) - { - typedef typename std::iterator_traits::value_type value_type; - return network_boost::algorithm::is_sorted (first, last, std::greater()); - } - -/// \fn is_decreasing ( const R &range ) -/// \return true if the entire sequence is decreasing; i.e, each item is less than -/// or equal to the previous one. -/// -/// \param range The range to be tested. -/// -/// \note This function will return true for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_strictly_decreasing instead. - template - bool is_decreasing ( const R &range ) - { - return is_decreasing ( network_boost::begin ( range ), network_boost::end ( range )); - } - - - -/// \fn is_strictly_increasing ( ForwardIterator first, ForwardIterator last ) -/// \return true if the entire sequence is strictly increasing; i.e, each item is greater -/// than the previous one -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// -/// \note This function will return false for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_increasing instead. - template - bool is_strictly_increasing ( ForwardIterator first, ForwardIterator last ) - { - typedef typename std::iterator_traits::value_type value_type; - return network_boost::algorithm::is_sorted (first, last, std::less_equal()); - } - -/// \fn is_strictly_increasing ( const R &range ) -/// \return true if the entire sequence is strictly increasing; i.e, each item is greater -/// than the previous one -/// -/// \param range The range to be tested. -/// -/// \note This function will return false for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_increasing instead. - template - bool is_strictly_increasing ( const R &range ) - { - return is_strictly_increasing ( network_boost::begin ( range ), network_boost::end ( range )); - } - - -/// \fn is_strictly_decreasing ( ForwardIterator first, ForwardIterator last ) -/// \return true if the entire sequence is strictly decreasing; i.e, each item is less than -/// the previous one -/// -/// \param first The start of the sequence to be tested. -/// \param last One past the end of the sequence -/// -/// \note This function will return false for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_decreasing instead. - template - bool is_strictly_decreasing ( ForwardIterator first, ForwardIterator last ) - { - typedef typename std::iterator_traits::value_type value_type; - return network_boost::algorithm::is_sorted (first, last, std::greater_equal()); - } - -/// \fn is_strictly_decreasing ( const R &range ) -/// \return true if the entire sequence is strictly decreasing; i.e, each item is less than -/// the previous one -/// -/// \param range The range to be tested. -/// -/// \note This function will return false for sequences that contain items that compare -/// equal. If that is not what you intended, you should use is_decreasing instead. - template - bool is_strictly_decreasing ( const R &range ) - { - return is_strictly_decreasing ( network_boost::begin ( range ), network_boost::end ( range )); - } - -}} // namespace network_boost - -#endif // BOOST_ALGORITHM_ORDERED_HPP diff --git a/src/boost/algorithm/cxx11/none_of.hpp b/src/boost/algorithm/cxx11/none_of.hpp deleted file mode 100644 index f65424b7..00000000 --- a/src/boost/algorithm/cxx11/none_of.hpp +++ /dev/null @@ -1,83 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file none_of.hpp -/// \brief Test ranges to see if no elements match a value or predicate. -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_NONE_OF_HPP -#define BOOST_ALGORITHM_NONE_OF_HPP - -#include // for std::none_of, if available -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn none_of ( InputIterator first, InputIterator last, Predicate p ) -/// \return true if none of the elements in [first, last) satisfy the predicate 'p' -/// \note returns true on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p A predicate for testing the elements of the sequence -/// -template -bool none_of ( InputIterator first, InputIterator last, Predicate p ) -{ -for ( ; first != last; ++first ) - if ( p(*first)) - return false; - return true; -} - -/// \fn none_of ( const Range &r, Predicate p ) -/// \return true if none of the elements in the range satisfy the predicate 'p' -/// \note returns true on an empty range -/// -/// \param r The input range -/// \param p A predicate for testing the elements of the range -/// -template -bool none_of ( const Range &r, Predicate p ) -{ - return network_boost::algorithm::none_of (network_boost::begin (r), network_boost::end (r), p ); -} - -/// \fn none_of_equal ( InputIterator first, InputIterator last, const V &val ) -/// \return true if none of the elements in [first, last) are equal to 'val' -/// \note returns true on an empty range -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param val A value to compare against -/// -template -bool none_of_equal ( InputIterator first, InputIterator last, const V &val ) -{ - for ( ; first != last; ++first ) - if ( val == *first ) - return false; - return true; -} - -/// \fn none_of_equal ( const Range &r, const V &val ) -/// \return true if none of the elements in the range are equal to 'val' -/// \note returns true on an empty range -/// -/// \param r The input range -/// \param val A value to compare against -/// -template -bool none_of_equal ( const Range &r, const V & val ) -{ - return network_boost::algorithm::none_of_equal (network_boost::begin (r), network_boost::end (r), val); -} - -}} // namespace network_boost and algorithm - -#endif // BOOST_ALGORITHM_NONE_OF_HPP diff --git a/src/boost/algorithm/cxx11/one_of.hpp b/src/boost/algorithm/cxx11/one_of.hpp deleted file mode 100644 index 96d5ba37..00000000 --- a/src/boost/algorithm/cxx11/one_of.hpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file one_of.hpp -/// \brief Test ranges to see if only one element matches a value or predicate. -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_ONE_OF_HPP -#define BOOST_ALGORITHM_ONE_OF_HPP - -#include // for std::find and std::find_if -#include - -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn one_of ( InputIterator first, InputIterator last, Predicate p ) -/// \return true if the predicate 'p' is true for exactly one item in [first, last). -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p A predicate for testing the elements of the sequence -/// -template -bool one_of ( InputIterator first, InputIterator last, Predicate p ) -{ - InputIterator i = std::find_if (first, last, p); - if (i == last) - return false; // Didn't occur at all - return network_boost::algorithm::none_of (++i, last, p); -} - -/// \fn one_of ( const Range &r, Predicate p ) -/// \return true if the predicate 'p' is true for exactly one item in the range. -/// -/// \param r The input range -/// \param p A predicate for testing the elements of the range -/// -template -bool one_of ( const Range &r, Predicate p ) -{ - return network_boost::algorithm::one_of ( network_boost::begin (r), network_boost::end (r), p ); -} - - -/// \fn one_of_equal ( InputIterator first, InputIterator last, const V &val ) -/// \return true if the value 'val' exists only once in [first, last). -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param val A value to compare against -/// -template -bool one_of_equal ( InputIterator first, InputIterator last, const V &val ) -{ - InputIterator i = std::find (first, last, val); // find first occurrence of 'val' - if (i == last) - return false; // Didn't occur at all - return network_boost::algorithm::none_of_equal (++i, last, val); -} - -/// \fn one_of_equal ( const Range &r, const V &val ) -/// \return true if the value 'val' exists only once in the range. -/// -/// \param r The input range -/// \param val A value to compare against -/// -template -bool one_of_equal ( const Range &r, const V &val ) -{ - return network_boost::algorithm::one_of_equal ( network_boost::begin (r), network_boost::end (r), val ); -} - -}} // namespace network_boost and algorithm - -#endif // BOOST_ALGORITHM_ALL_HPP diff --git a/src/boost/algorithm/cxx11/partition_copy.hpp b/src/boost/algorithm/cxx11/partition_copy.hpp deleted file mode 100644 index 0c3e6104..00000000 --- a/src/boost/algorithm/cxx11/partition_copy.hpp +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file partition_copy.hpp -/// \brief Copy a subset of a sequence to a new sequence -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_PARTITION_COPY_HPP -#define BOOST_ALGORITHM_PARTITION_COPY_HPP - -#include // for std::partition_copy, if available -#include // for make_pair - -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn partition_copy ( InputIterator first, InputIterator last, -/// OutputIterator1 out_true, OutputIterator2 out_false, UnaryPredicate p ) -/// \brief Copies the elements that satisfy the predicate p from the range [first, last) -/// to the range beginning at d_first_true, and -/// copies the elements that do not satisfy p to the range beginning at d_first_false. -/// -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param out_true An output iterator to write the elements that satisfy the predicate into -/// \param out_false An output iterator to write the elements that do not satisfy the predicate into -/// \param p A predicate for dividing the elements of the input sequence. -/// -/// \note This function is part of the C++2011 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template -std::pair -partition_copy ( InputIterator first, InputIterator last, - OutputIterator1 out_true, OutputIterator2 out_false, UnaryPredicate p ) -{ - for ( ; first != last; ++first ) - if ( p (*first)) - *out_true++ = *first; - else - *out_false++ = *first; - return std::pair ( out_true, out_false ); -} - -/// \fn partition_copy ( const Range &r, -/// OutputIterator1 out_true, OutputIterator2 out_false, UnaryPredicate p ) -/// -/// \param r The input range -/// \param out_true An output iterator to write the elements that satisfy the predicate into -/// \param out_false An output iterator to write the elements that do not satisfy the predicate into -/// \param p A predicate for dividing the elements of the input sequence. -/// -template -std::pair -partition_copy ( const Range &r, OutputIterator1 out_true, OutputIterator2 out_false, - UnaryPredicate p ) -{ - return network_boost::algorithm::partition_copy - (network_boost::begin(r), network_boost::end(r), out_true, out_false, p ); -} - -}} // namespace network_boost and algorithm - -#endif // BOOST_ALGORITHM_PARTITION_COPY_HPP diff --git a/src/boost/algorithm/cxx11/partition_point.hpp b/src/boost/algorithm/cxx11/partition_point.hpp deleted file mode 100644 index 844abca1..00000000 --- a/src/boost/algorithm/cxx11/partition_point.hpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file partition_point.hpp -/// \brief Find the partition point in a sequence -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_PARTITION_POINT_HPP -#define BOOST_ALGORITHM_PARTITION_POINT_HPP - -#include // for std::partition_point, if available - -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn partition_point ( ForwardIterator first, ForwardIterator last, Predicate p ) -/// \brief Given a partitioned range, returns the partition point, i.e, the first element -/// that does not satisfy p -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param p The predicate to test the values with -/// \note This function is part of the C++2011 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template -ForwardIterator partition_point ( ForwardIterator first, ForwardIterator last, Predicate p ) -{ - std::size_t dist = std::distance ( first, last ); - while ( first != last ) { - std::size_t d2 = dist / 2; - ForwardIterator ret_val = first; - std::advance (ret_val, d2); - if (p (*ret_val)) { - first = ++ret_val; - dist -= d2 + 1; - } - else { - last = ret_val; - dist = d2; - } - } - return first; -} - -/// \fn partition_point ( Range &r, Predicate p ) -/// \brief Given a partitioned range, returns the partition point -/// -/// \param r The input range -/// \param p The predicate to test the values with -/// -template -typename network_boost::range_iterator::type partition_point ( Range &r, Predicate p ) -{ - return network_boost::algorithm::partition_point (network_boost::begin(r), network_boost::end(r), p); -} - - -}} - -#endif // BOOST_ALGORITHM_PARTITION_POINT_HPP diff --git a/src/boost/algorithm/cxx14/equal.hpp b/src/boost/algorithm/cxx14/equal.hpp deleted file mode 100644 index fdbbe5e2..00000000 --- a/src/boost/algorithm/cxx14/equal.hpp +++ /dev/null @@ -1,97 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file equal.hpp -/// \brief Test ranges to if they are equal -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_EQUAL_HPP -#define BOOST_ALGORITHM_EQUAL_HPP - -#include // for std::equal -#include // for std::equal_to - -namespace network_boost { namespace algorithm { - -namespace detail { - - template - struct eq : public std::binary_function { - bool operator () ( const T1& v1, const T2& v2 ) const { return v1 == v2 ;} - }; - - template - bool equal ( RandomAccessIterator1 first1, RandomAccessIterator1 last1, - RandomAccessIterator2 first2, RandomAccessIterator2 last2, BinaryPredicate pred, - std::random_access_iterator_tag, std::random_access_iterator_tag ) - { - // Random-access iterators let is check the sizes in constant time - if ( std::distance ( first1, last1 ) != std::distance ( first2, last2 )) - return false; - // If we know that the sequences are the same size, the original version is fine - return std::equal ( first1, last1, first2, pred ); - } - - template - bool equal ( InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, BinaryPredicate pred, - std::input_iterator_tag, std::input_iterator_tag ) - { - for (; first1 != last1 && first2 != last2; ++first1, ++first2 ) - if ( !pred(*first1, *first2 )) - return false; - - return first1 == last1 && first2 == last2; - } -} - -/// \fn equal ( InputIterator1 first1, InputIterator1 last1, -/// InputIterator2 first2, InputIterator2 last2, -/// BinaryPredicate pred ) -/// \return true if all elements in the two ranges are equal -/// -/// \param first1 The start of the first range. -/// \param last1 One past the end of the first range. -/// \param first2 The start of the second range. -/// \param last2 One past the end of the second range. -/// \param pred A predicate for comparing the elements of the ranges -template -bool equal ( InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, BinaryPredicate pred ) -{ - return network_boost::algorithm::detail::equal ( - first1, last1, first2, last2, pred, - typename std::iterator_traits::iterator_category (), - typename std::iterator_traits::iterator_category ()); -} - -/// \fn equal ( InputIterator1 first1, InputIterator1 last1, -/// InputIterator2 first2, InputIterator2 last2 ) -/// \return true if all elements in the two ranges are equal -/// -/// \param first1 The start of the first range. -/// \param last1 One past the end of the first range. -/// \param first2 The start of the second range. -/// \param last2 One past the end of the second range. -template -bool equal ( InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2 ) -{ - return network_boost::algorithm::detail::equal ( - first1, last1, first2, last2, - network_boost::algorithm::detail::eq< - typename std::iterator_traits::value_type, - typename std::iterator_traits::value_type> (), - typename std::iterator_traits::iterator_category (), - typename std::iterator_traits::iterator_category ()); -} - -// There are already range-based versions of these. - -}} // namespace network_boost and algorithm - -#endif // BOOST_ALGORITHM_EQUAL_HPP diff --git a/src/boost/algorithm/cxx14/is_permutation.hpp b/src/boost/algorithm/cxx14/is_permutation.hpp deleted file mode 100644 index c5eee59d..00000000 --- a/src/boost/algorithm/cxx14/is_permutation.hpp +++ /dev/null @@ -1,84 +0,0 @@ -/* - Copyright (c) Marshall Clow 2014. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -*/ - -/// \file is_permutation.hpp -/// \brief Is a sequence a permutation of another sequence (four iterator versions) -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_IS_PERMUTATION14_HPP -#define BOOST_ALGORITHM_IS_PERMUTATION14_HPP - -#include // for std::less, tie, mismatch and is_permutation (if available) -#include // for std::make_pair -#include // for std::equal_to -#include - -#include -#include - -namespace network_boost { namespace algorithm { - -/// \fn is_permutation ( ForwardIterator1 first, ForwardIterator1 last, -/// ForwardIterator2 first2, ForwardIterator2 last2 ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param first1 The start of the input sequence -/// \param last2 One past the end of the input sequence -/// \param first2 The start of the second sequence -/// \param last1 One past the end of the second sequence -/// \note This function is part of the C++2014 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template< class ForwardIterator1, class ForwardIterator2 > -bool is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2 ) -{ -// How should I deal with the idea that ForwardIterator1::value_type -// and ForwardIterator2::value_type could be different? Define my own comparison predicate? - std::pair eq = network_boost::algorithm::mismatch - ( first1, last1, first2, last2 ); - if ( eq.first == last1 && eq.second == last2) - return true; - return network_boost::algorithm::detail::is_permutation_tag ( - eq.first, last1, eq.second, last2, - std::equal_to::value_type> (), - typename std::iterator_traits::iterator_category (), - typename std::iterator_traits::iterator_category ()); -} - -/// \fn is_permutation ( ForwardIterator1 first, ForwardIterator1 last, -/// ForwardIterator2 first2, ForwardIterator2 last2, -/// BinaryPredicate p ) -/// \brief Tests to see if the sequence [first,last) is a permutation of the sequence starting at first2 -/// -/// \param first1 The start of the input sequence -/// \param last1 One past the end of the input sequence -/// \param first2 The start of the second sequence -/// \param last2 One past the end of the second sequence -/// \param pred The predicate to compare elements with -/// -/// \note This function is part of the C++2014 standard library. -/// We will use the standard one if it is available, -/// otherwise we have our own implementation. -template< class ForwardIterator1, class ForwardIterator2, class BinaryPredicate > -bool is_permutation ( ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, - BinaryPredicate pred ) -{ - std::pair eq = network_boost::algorithm::mismatch - ( first1, last1, first2, last2, pred ); - if ( eq.first == last1 && eq.second == last2) - return true; - return network_boost::algorithm::detail::is_permutation_tag ( - first1, last1, first2, last2, pred, - typename std::iterator_traits::iterator_category (), - typename std::iterator_traits::iterator_category ()); -} - -}} - -#endif // BOOST_ALGORITHM_IS_PERMUTATION14_HPP diff --git a/src/boost/algorithm/cxx14/mismatch.hpp b/src/boost/algorithm/cxx14/mismatch.hpp deleted file mode 100644 index 4913aa2c..00000000 --- a/src/boost/algorithm/cxx14/mismatch.hpp +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (c) Marshall Clow 2008-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE10.txt or copy at http://www.boost.org/LICENSE10.txt) -*/ - -/// \file mismatch.hpp -/// \brief Find the first mismatched element in a sequence -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_MISMATCH_HPP -#define BOOST_ALGORITHM_MISMATCH_HPP - -#include // for std::mismatch -#include // for std::pair - -namespace network_boost { namespace algorithm { - -/// \fn mismatch ( InputIterator1 first1, InputIterator1 last1, -/// InputIterator2 first2, InputIterator2 last2, -/// BinaryPredicate pred ) -/// \return a pair of iterators pointing to the first elements in the sequence that do not match -/// -/// \param first1 The start of the first range. -/// \param last1 One past the end of the first range. -/// \param first2 The start of the second range. -/// \param last2 One past the end of the second range. -/// \param pred A predicate for comparing the elements of the ranges -template -std::pair mismatch ( - InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - BinaryPredicate pred ) -{ - for (; first1 != last1 && first2 != last2; ++first1, ++first2) - if ( !pred ( *first1, *first2 )) - break; - return std::pair(first1, first2); -} - -/// \fn mismatch ( InputIterator1 first1, InputIterator1 last1, -/// InputIterator2 first2, InputIterator2 last2 ) -/// \return a pair of iterators pointing to the first elements in the sequence that do not match -/// -/// \param first1 The start of the first range. -/// \param last1 One past the end of the first range. -/// \param first2 The start of the second range. -/// \param last2 One past the end of the second range. -template -std::pair mismatch ( - InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2 ) -{ - for (; first1 != last1 && first2 != last2; ++first1, ++first2) - if ( *first1 != *first2 ) - break; - return std::pair(first1, first2); -} - -// There are already range-based versions of these. - -}} // namespace network_boost and algorithm - -#endif // BOOST_ALGORITHM_MISMATCH_HPP diff --git a/src/boost/algorithm/gather.hpp b/src/boost/algorithm/gather.hpp deleted file mode 100644 index a28b3dfb..00000000 --- a/src/boost/algorithm/gather.hpp +++ /dev/null @@ -1,123 +0,0 @@ -/* - Copyright 2008 Adobe Systems Incorporated - - Distributed under the 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: - January 2008 mtc Version for Adobe Source Library - January 2013 mtc Version for Boost.Algorithm - -*/ - -/**************************************************************************************************/ - -/*! -\author Marshall Clow -\date January 2008 -*/ - -#ifndef BOOST_ALGORITHM_GATHER_HPP -#define BOOST_ALGORITHM_GATHER_HPP - -#include // for std::stable_partition -#include - -#include // for network_boost::bind -#include // for network_boost::begin(range) -#include // for network_boost::end(range) - - -/**************************************************************************************************/ -/*! - \defgroup gather gather - \ingroup mutating_algorithm - - \c gather() takes a collection of elements defined by a pair of iterators and moves - the ones satisfying a predicate to them to a position (called the pivot) within - the sequence. The algorithm is stable. The result is a pair of iterators that - contains the items that satisfy the predicate. - - Given an sequence containing: -
-    0 1 2 3 4 5 6 7 8 9
-    
- - a call to gather ( arr, arr + 10, arr + 4, IsEven ()) will result in: - -
-    1 3 0 2 4 6 8 5 7 9
-        |---|-----|
-      first |  second
-          pivot
-    
- - - The problem is broken down into two basic steps, namely, moving the items before the pivot - and then moving the items from the pivot to the end. These "moves" are done with calls to - stable_partition. - - \par Storage Requirements: - - The algorithm uses stable_partition, which will attempt to allocate temporary memory, - but will work in-situ if there is none available. - - \par Time Complexity: - - If there is sufficient memory available, the run time is linear in N. - If there is not any memory available, then the run time is O(N log N). -*/ - -/**************************************************************************************************/ - -namespace network_boost { namespace algorithm { - -/**************************************************************************************************/ - -/*! - \ingroup gather - \brief iterator-based gather implementation -*/ - -template < - typename BidirectionalIterator, // Iter models BidirectionalIterator - typename Pred> // Pred models UnaryPredicate -std::pair gather - ( BidirectionalIterator first, BidirectionalIterator last, BidirectionalIterator pivot, Pred pred ) -{ -// The first call partitions everything up to (but not including) the pivot element, -// while the second call partitions the rest of the sequence. - return std::make_pair ( - std::stable_partition ( first, pivot, !network_boost::bind ( pred, _1 )), - std::stable_partition ( pivot, last, network_boost::bind ( pred, _1 ))); -} - -/**************************************************************************************************/ - -/*! - \ingroup gather - \brief range-based gather implementation -*/ - -template < - typename BidirectionalRange, // - typename Pred> // Pred models UnaryPredicate -std::pair< - typename network_boost::range_iterator::type, - typename network_boost::range_iterator::type> -gather ( - const BidirectionalRange &range, - typename network_boost::range_iterator::type pivot, - Pred pred ) -{ - return network_boost::algorithm::gather ( network_boost::begin ( range ), network_boost::end ( range ), pivot, pred ); -} - -/**************************************************************************************************/ - -}} // namespace - -/**************************************************************************************************/ - -#endif - diff --git a/src/boost/algorithm/hex.hpp b/src/boost/algorithm/hex.hpp deleted file mode 100644 index d2d42cd0..00000000 --- a/src/boost/algorithm/hex.hpp +++ /dev/null @@ -1,260 +0,0 @@ -/* - Copyright (c) Marshall Clow 2011-2012. - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - Thanks to Nevin for his comments/help. -*/ - -/* - General problem - turn a sequence of integral types into a sequence of hexadecimal characters. - - and back. -*/ - -/// \file hex.hpp -/// \brief Convert sequence of integral types into a sequence of hexadecimal -/// characters and back. Based on the MySQL functions HEX and UNHEX -/// \author Marshall Clow - -#ifndef BOOST_ALGORITHM_HEXHPP -#define BOOST_ALGORITHM_HEXHPP - -#include // for std::iterator_traits -#include - -#include -#include -#include - -#include -#include - - -namespace network_boost { namespace algorithm { - -/*! - \struct hex_decode_error - \brief Base exception class for all hex decoding errors -*/ /*! - \struct non_hex_input - \brief Thrown when a non-hex value (0-9, A-F) encountered when decoding. - Contains the offending character -*/ /*! - \struct not_enough_input - \brief Thrown when the input sequence unexpectedly ends - -*/ -struct hex_decode_error : virtual network_boost::exception, virtual std::exception {}; -struct not_enough_input : virtual hex_decode_error {}; -struct non_hex_input : virtual hex_decode_error {}; -typedef network_boost::error_info bad_char; - -namespace detail { -/// \cond DOXYGEN_HIDE - - template - OutputIterator encode_one ( T val, OutputIterator out ) { - const std::size_t num_hex_digits = 2 * sizeof ( T ); - char res [ num_hex_digits ]; - char *p = res + num_hex_digits; - for ( std::size_t i = 0; i < num_hex_digits; ++i, val >>= 4 ) - *--p = "0123456789ABCDEF" [ val & 0x0F ]; - return std::copy ( res, res + num_hex_digits, out ); - } - - template - unsigned char hex_char_to_int ( T val ) { - char c = static_cast ( val ); - unsigned retval = 0; - if ( c >= '0' && c <= '9' ) retval = c - '0'; - else if ( c >= 'A' && c <= 'F' ) retval = c - 'A' + 10; - else if ( c >= 'a' && c <= 'f' ) retval = c - 'a' + 10; - else BOOST_THROW_EXCEPTION (non_hex_input() << bad_char (c)); - return retval; - } - -// My own iterator_traits class. -// It is here so that I can "reach inside" some kinds of output iterators -// and get the type to write. - template - struct hex_iterator_traits { - typedef typename std::iterator_traits::value_type value_type; - }; - - template - struct hex_iterator_traits< std::back_insert_iterator > { - typedef typename Container::value_type value_type; - }; - - template - struct hex_iterator_traits< std::front_insert_iterator > { - typedef typename Container::value_type value_type; - }; - - template - struct hex_iterator_traits< std::insert_iterator > { - typedef typename Container::value_type value_type; - }; - -// ostream_iterators have three template parameters. -// The first one is the output type, the second one is the character type of -// the underlying stream, the third is the character traits. -// We only care about the first one. - template - struct hex_iterator_traits< std::ostream_iterator > { - typedef T value_type; - }; - - template - bool iter_end ( Iterator current, Iterator last ) { return current == last; } - - template - bool ptr_end ( const T* ptr, const T* /*end*/ ) { return *ptr == '\0'; } - -// What can we assume here about the inputs? -// is std::iterator_traits::value_type always 'char' ? -// Could it be wchar_t, say? Does it matter? -// We are assuming ASCII for the values - but what about the storage? - template - typename network_boost::enable_if::value_type>, OutputIterator>::type - decode_one ( InputIterator &first, InputIterator last, OutputIterator out, EndPred pred ) { - typedef typename hex_iterator_traits::value_type T; - T res (0); - - // Need to make sure that we get can read that many chars here. - for ( std::size_t i = 0; i < 2 * sizeof ( T ); ++i, ++first ) { - if ( pred ( first, last )) - BOOST_THROW_EXCEPTION (not_enough_input ()); - res = ( 16 * res ) + hex_char_to_int (*first); - } - - *out = res; - return ++out; - } -/// \endcond - } - - -/// \fn hex ( InputIterator first, InputIterator last, OutputIterator out ) -/// \brief Converts a sequence of integral types into a hexadecimal sequence of characters. -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -typename network_boost::enable_if::value_type>, OutputIterator>::type -hex ( InputIterator first, InputIterator last, OutputIterator out ) { - for ( ; first != last; ++first ) - out = detail::encode_one ( *first, out ); - return out; - } - - -/// \fn hex ( const T *ptr, OutputIterator out ) -/// \brief Converts a sequence of integral types into a hexadecimal sequence of characters. -/// -/// \param ptr A pointer to a 0-terminated sequence of data. -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -typename network_boost::enable_if, OutputIterator>::type -hex ( const T *ptr, OutputIterator out ) { - while ( *ptr ) - out = detail::encode_one ( *ptr++, out ); - return out; - } - -/// \fn hex ( const Range &r, OutputIterator out ) -/// \brief Converts a sequence of integral types into a hexadecimal sequence of characters. -/// -/// \param r The input range -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -typename network_boost::enable_if::value_type>, OutputIterator>::type -hex ( const Range &r, OutputIterator out ) { - return hex (network_boost::begin(r), network_boost::end(r), out); -} - - -/// \fn unhex ( InputIterator first, InputIterator last, OutputIterator out ) -/// \brief Converts a sequence of hexadecimal characters into a sequence of integers. -/// -/// \param first The start of the input sequence -/// \param last One past the end of the input sequence -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -OutputIterator unhex ( InputIterator first, InputIterator last, OutputIterator out ) { - while ( first != last ) - out = detail::decode_one ( first, last, out, detail::iter_end ); - return out; - } - - -/// \fn unhex ( const T *ptr, OutputIterator out ) -/// \brief Converts a sequence of hexadecimal characters into a sequence of integers. -/// -/// \param ptr A pointer to a null-terminated input sequence. -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -OutputIterator unhex ( const T *ptr, OutputIterator out ) { -// If we run into the terminator while decoding, we will throw a -// malformed input exception. It would be nicer to throw a 'Not enough input' -// exception - but how much extra work would that require? - while ( *ptr ) - out = detail::decode_one ( ptr, (const T *) NULL, out, detail::ptr_end ); - return out; - } - - -/// \fn OutputIterator unhex ( const Range &r, OutputIterator out ) -/// \brief Converts a sequence of hexadecimal characters into a sequence of integers. -/// -/// \param r The input range -/// \param out An output iterator to the results into -/// \return The updated output iterator -/// \note Based on the MySQL function of the same name -template -OutputIterator unhex ( const Range &r, OutputIterator out ) { - return unhex (network_boost::begin(r), network_boost::end(r), out); - } - - -/// \fn String hex ( const String &input ) -/// \brief Converts a sequence of integral types into a hexadecimal sequence of characters. -/// -/// \param input A container to be converted -/// \return A container with the encoded text -template -String hex ( const String &input ) { - String output; - output.reserve (input.size () * (2 * sizeof (typename String::value_type))); - (void) hex (input, std::back_inserter (output)); - return output; - } - -/// \fn String unhex ( const String &input ) -/// \brief Converts a sequence of hexadecimal characters into a sequence of characters. -/// -/// \param input A container to be converted -/// \return A container with the decoded text -template -String unhex ( const String &input ) { - String output; - output.reserve (input.size () / (2 * sizeof (typename String::value_type))); - (void) unhex (input, std::back_inserter (output)); - return output; - } - -}} - -#endif // BOOST_ALGORITHM_HEXHPP diff --git a/src/boost/algorithm/minmax.hpp b/src/boost/algorithm/minmax.hpp deleted file mode 100644 index aae2ddb9..00000000 --- a/src/boost/algorithm/minmax.hpp +++ /dev/null @@ -1,47 +0,0 @@ -// (C) Copyright Herve Bronnimann 2004. -// -// Distributed under the 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: - 1 July 2004 - Split the code into two headers to lessen dependence on - Boost.tuple. (Herve) - 26 June 2004 - Added the code for the boost minmax library. (Herve) -*/ - -#ifndef BOOST_ALGORITHM_MINMAX_HPP -#define BOOST_ALGORITHM_MINMAX_HPP - -/* PROPOSED STANDARD EXTENSIONS: - * - * minmax(a, b) - * Effect: (b // for using pairs with network_boost::cref -#include - -namespace network_boost { - - template - tuple< T const&, T const& > - minmax(T const& a, T const& b) { - return (b - tuple< T const&, T const& > - minmax(T const& a, T const& b, BinaryPredicate comp) { - return comp(b,a) ? make_tuple(cref(b),cref(a)) : make_tuple(cref(a),cref(b)); - } - -} // namespace network_boost - -#endif // BOOST_ALGORITHM_MINMAX_HPP diff --git a/src/boost/algorithm/minmax_element.hpp b/src/boost/algorithm/minmax_element.hpp deleted file mode 100644 index aad6412c..00000000 --- a/src/boost/algorithm/minmax_element.hpp +++ /dev/null @@ -1,553 +0,0 @@ -// (C) Copyright Herve Bronnimann 2004. -// -// Distributed under the 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: - 1 July 2004 - Split the code into two headers to lessen dependence on - Boost.tuple. (Herve) - 26 June 2004 - Added the code for the boost minmax library. (Herve) -*/ - -#ifndef BOOST_ALGORITHM_MINMAX_ELEMENT_HPP -#define BOOST_ALGORITHM_MINMAX_ELEMENT_HPP - -/* PROPOSED STANDARD EXTENSIONS: - * - * minmax_element(first, last) - * Effect: std::make_pair( std::min_element(first, last), - * std::max_element(first, last) ); - * - * minmax_element(first, last, comp) - * Effect: std::make_pair( std::min_element(first, last, comp), - * std::max_element(first, last, comp) ); - */ - -#include // for std::pair and std::make_pair - -namespace network_boost { - - namespace detail { // for obtaining a uniform version of minmax_element - // that compiles with VC++ 6.0 -- avoid the iterator_traits by - // having comparison object over iterator, not over dereferenced value - - template - struct less_over_iter { - bool operator()(Iterator const& it1, - Iterator const& it2) const { return *it1 < *it2; } - }; - - template - struct binary_pred_over_iter { - explicit binary_pred_over_iter(BinaryPredicate const& p ) : m_p( p ) {} - bool operator()(Iterator const& it1, - Iterator const& it2) const { return m_p(*it1, *it2); } - private: - BinaryPredicate m_p; - }; - - // common base for the two minmax_element overloads - - template - std::pair - basic_minmax_element(ForwardIter first, ForwardIter last, Compare comp) - { - if (first == last) - return std::make_pair(last,last); - - ForwardIter min_result = first; - ForwardIter max_result = first; - - // if only one element - ForwardIter second = first; ++second; - if (second == last) - return std::make_pair(min_result, max_result); - - // treat first pair separately (only one comparison for first two elements) - ForwardIter potential_min_result = last; - if (comp(first, second)) - max_result = second; - else { - min_result = second; - potential_min_result = first; - } - - // then each element by pairs, with at most 3 comparisons per pair - first = ++second; if (first != last) ++second; - while (second != last) { - if (comp(first, second)) { - if (comp(first, min_result)) { - min_result = first; - potential_min_result = last; - } - if (comp(max_result, second)) - max_result = second; - } else { - if (comp(second, min_result)) { - min_result = second; - potential_min_result = first; - } - if (comp(max_result, first)) - max_result = first; - } - first = ++second; - if (first != last) ++second; - } - - // if odd number of elements, treat last element - if (first != last) { // odd number of elements - if (comp(first, min_result)) { - min_result = first; - potential_min_result = last; - } - else if (comp(max_result, first)) - max_result = first; - } - - // resolve min_result being incorrect with one extra comparison - // (in which case potential_min_result is necessarily the correct result) - if (potential_min_result != last - && !comp(min_result, potential_min_result)) - min_result = potential_min_result; - - return std::make_pair(min_result,max_result); - } - - } // namespace detail - - template - std::pair - minmax_element(ForwardIter first, ForwardIter last) - { - return detail::basic_minmax_element(first, last, - detail::less_over_iter() ); - } - - template - std::pair - minmax_element(ForwardIter first, ForwardIter last, BinaryPredicate comp) - { - return detail::basic_minmax_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - -} - -/* PROPOSED BOOST EXTENSIONS - * In the description below, [rfirst,rlast) denotes the reversed range - * of [first,last). Even though the iterator type of first and last may - * be only a Forward Iterator, it is possible to explain the semantics - * by assuming that it is a Bidirectional Iterator. In the sequel, - * reverse(ForwardIterator&) returns the reverse_iterator adaptor. - * This is not how the functions would be implemented! - * - * first_min_element(first, last) - * Effect: std::min_element(first, last); - * - * first_min_element(first, last, comp) - * Effect: std::min_element(first, last, comp); - * - * last_min_element(first, last) - * Effect: reverse( std::min_element(reverse(last), reverse(first)) ); - * - * last_min_element(first, last, comp) - * Effect: reverse( std::min_element(reverse(last), reverse(first), comp) ); - * - * first_max_element(first, last) - * Effect: std::max_element(first, last); - * - * first_max_element(first, last, comp) - * Effect: max_element(first, last); - * - * last_max_element(first, last) - * Effect: reverse( std::max_element(reverse(last), reverse(first)) ); - * - * last_max_element(first, last, comp) - * Effect: reverse( std::max_element(reverse(last), reverse(first), comp) ); - * - * first_min_first_max_element(first, last) - * Effect: std::make_pair( first_min_element(first, last), - * first_max_element(first, last) ); - * - * first_min_first_max_element(first, last, comp) - * Effect: std::make_pair( first_min_element(first, last, comp), - * first_max_element(first, last, comp) ); - * - * first_min_last_max_element(first, last) - * Effect: std::make_pair( first_min_element(first, last), - * last_max_element(first, last) ); - * - * first_min_last_max_element(first, last, comp) - * Effect: std::make_pair( first_min_element(first, last, comp), - * last_max_element(first, last, comp) ); - * - * last_min_first_max_element(first, last) - * Effect: std::make_pair( last_min_element(first, last), - * first_max_element(first, last) ); - * - * last_min_first_max_element(first, last, comp) - * Effect: std::make_pair( last_min_element(first, last, comp), - * first_max_element(first, last, comp) ); - * - * last_min_last_max_element(first, last) - * Effect: std::make_pair( last_min_element(first, last), - * last_max_element(first, last) ); - * - * last_min_last_max_element(first, last, comp) - * Effect: std::make_pair( last_min_element(first, last, comp), - * last_max_element(first, last, comp) ); - */ - -namespace network_boost { - - // Min_element and max_element variants - - namespace detail { // common base for the overloads - - template - ForwardIter - basic_first_min_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return last; - ForwardIter min_result = first; - while (++first != last) - if (comp(first, min_result)) - min_result = first; - return min_result; - } - - template - ForwardIter - basic_last_min_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return last; - ForwardIter min_result = first; - while (++first != last) - if (!comp(min_result, first)) - min_result = first; - return min_result; - } - - template - ForwardIter - basic_first_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return last; - ForwardIter max_result = first; - while (++first != last) - if (comp(max_result, first)) - max_result = first; - return max_result; - } - - template - ForwardIter - basic_last_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return last; - ForwardIter max_result = first; - while (++first != last) - if (!comp(first, max_result)) - max_result = first; - return max_result; - } - - } // namespace detail - - template - ForwardIter - first_min_element(ForwardIter first, ForwardIter last) - { - return detail::basic_first_min_element(first, last, - detail::less_over_iter() ); - } - - template - ForwardIter - first_min_element(ForwardIter first, ForwardIter last, BinaryPredicate comp) - { - return detail::basic_first_min_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - template - ForwardIter - last_min_element(ForwardIter first, ForwardIter last) - { - return detail::basic_last_min_element(first, last, - detail::less_over_iter() ); - } - - template - ForwardIter - last_min_element(ForwardIter first, ForwardIter last, BinaryPredicate comp) - { - return detail::basic_last_min_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - template - ForwardIter - first_max_element(ForwardIter first, ForwardIter last) - { - return detail::basic_first_max_element(first, last, - detail::less_over_iter() ); - } - - template - ForwardIter - first_max_element(ForwardIter first, ForwardIter last, BinaryPredicate comp) - { - return detail::basic_first_max_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - template - ForwardIter - last_max_element(ForwardIter first, ForwardIter last) - { - return detail::basic_last_max_element(first, last, - detail::less_over_iter() ); - } - - template - ForwardIter - last_max_element(ForwardIter first, ForwardIter last, BinaryPredicate comp) - { - return detail::basic_last_max_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - - // Minmax_element variants -- comments removed - - namespace detail { - - template - std::pair - basic_first_min_last_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) - return std::make_pair(last,last); - - ForwardIter min_result = first; - ForwardIter max_result = first; - - ForwardIter second = ++first; - if (second == last) - return std::make_pair(min_result, max_result); - - if (comp(second, min_result)) - min_result = second; - else - max_result = second; - - first = ++second; if (first != last) ++second; - while (second != last) { - if (!comp(second, first)) { - if (comp(first, min_result)) - min_result = first; - if (!comp(second, max_result)) - max_result = second; - } else { - if (comp(second, min_result)) - min_result = second; - if (!comp(first, max_result)) - max_result = first; - } - first = ++second; if (first != last) ++second; - } - - if (first != last) { - if (comp(first, min_result)) - min_result = first; - else if (!comp(first, max_result)) - max_result = first; - } - - return std::make_pair(min_result, max_result); - } - - template - std::pair - basic_last_min_first_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return std::make_pair(last,last); - - ForwardIter min_result = first; - ForwardIter max_result = first; - - ForwardIter second = ++first; - if (second == last) - return std::make_pair(min_result, max_result); - - if (comp(max_result, second)) - max_result = second; - else - min_result = second; - - first = ++second; if (first != last) ++second; - while (second != last) { - if (comp(first, second)) { - if (!comp(min_result, first)) - min_result = first; - if (comp(max_result, second)) - max_result = second; - } else { - if (!comp(min_result, second)) - min_result = second; - if (comp(max_result, first)) - max_result = first; - } - first = ++second; if (first != last) ++second; - } - - if (first != last) { - if (!comp(min_result, first)) - min_result = first; - else if (comp(max_result, first)) - max_result = first; - } - - return std::make_pair(min_result, max_result); - } - - template - std::pair - basic_last_min_last_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - if (first == last) return std::make_pair(last,last); - - ForwardIter min_result = first; - ForwardIter max_result = first; - - ForwardIter second = first; ++second; - if (second == last) - return std::make_pair(min_result,max_result); - - ForwardIter potential_max_result = last; - if (comp(first, second)) - max_result = second; - else { - min_result = second; - potential_max_result = second; - } - - first = ++second; if (first != last) ++second; - while (second != last) { - if (comp(first, second)) { - if (!comp(min_result, first)) - min_result = first; - if (!comp(second, max_result)) { - max_result = second; - potential_max_result = last; - } - } else { - if (!comp(min_result, second)) - min_result = second; - if (!comp(first, max_result)) { - max_result = first; - potential_max_result = second; - } - } - first = ++second; - if (first != last) ++second; - } - - if (first != last) { - if (!comp(min_result, first)) - min_result = first; - if (!comp(first, max_result)) { - max_result = first; - potential_max_result = last; - } - } - - if (potential_max_result != last - && !comp(potential_max_result, max_result)) - max_result = potential_max_result; - - return std::make_pair(min_result,max_result); - } - - } // namespace detail - - template - inline std::pair - first_min_first_max_element(ForwardIter first, ForwardIter last) - { - return minmax_element(first, last); - } - - template - inline std::pair - first_min_first_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - return minmax_element(first, last, comp); - } - - template - std::pair - first_min_last_max_element(ForwardIter first, ForwardIter last) - { - return detail::basic_first_min_last_max_element(first, last, - detail::less_over_iter() ); - } - - template - inline std::pair - first_min_last_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - return detail::basic_first_min_last_max_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - template - std::pair - last_min_first_max_element(ForwardIter first, ForwardIter last) - { - return detail::basic_last_min_first_max_element(first, last, - detail::less_over_iter() ); - } - - template - inline std::pair - last_min_first_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - return detail::basic_last_min_first_max_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - - template - std::pair - last_min_last_max_element(ForwardIter first, ForwardIter last) - { - return detail::basic_last_min_last_max_element(first, last, - detail::less_over_iter() ); - } - - template - inline std::pair - last_min_last_max_element(ForwardIter first, ForwardIter last, - BinaryPredicate comp) - { - return detail::basic_last_min_last_max_element(first, last, - detail::binary_pred_over_iter(comp) ); - } - -} // namespace network_boost - -#endif // BOOST_ALGORITHM_MINMAX_ELEMENT_HPP diff --git a/src/boost/algorithm/searching/boyer_moore.hpp b/src/boost/algorithm/searching/boyer_moore.hpp deleted file mode 100644 index e06314a3..00000000 --- a/src/boost/algorithm/searching/boyer_moore.hpp +++ /dev/null @@ -1,268 +0,0 @@ -/* - Copyright (c) Marshall Clow 2010-2012. - - Distributed under the 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_ALGORITHM_BOYER_MOORE_SEARCH_HPP -#define BOOST_ALGORITHM_BOYER_MOORE_SEARCH_HPP - -#include // for std::iterator_traits - -#include -#include - -#include -#include - -#include -#include - -#include -#include - -namespace network_boost { namespace algorithm { - -/* - A templated version of the boyer-moore searching algorithm. - -References: - http://www.cs.utexas.edu/users/moore/best-ideas/string-searching/ - http://www.cs.utexas.edu/~moore/publications/fstrpos.pdf - -Explanations: - http://en.wikipedia.org/wiki/Boyer%E2%80%93Moore_string_search_algorithm - http://www.movsd.com/bm.htm - http://www.cs.ucdavis.edu/~gusfield/cs224f09/bnotes.pdf - -The Boyer-Moore search algorithm uses two tables, a "bad character" table -to tell how far to skip ahead when it hits a character that is not in the pattern, -and a "good character" table to tell how far to skip ahead when it hits a -mismatch on a character that _is_ in the pattern. - -Requirements: - * Random access iterators - * The two iterator types (patIter and corpusIter) must - "point to" the same underlying type and be comparable. - * Additional requirements may be imposed but the skip table, such as: - ** Numeric type (array-based skip table) - ** Hashable type (map-based skip table) -*/ - - template > - class boyer_moore { - typedef typename std::iterator_traits::difference_type difference_type; - public: - boyer_moore ( patIter first, patIter last ) - : pat_first ( first ), pat_last ( last ), - k_pattern_length ( std::distance ( pat_first, pat_last )), - skip_ ( k_pattern_length, -1 ), - suffix_ ( k_pattern_length + 1 ) - { - this->build_skip_table ( first, last ); - this->build_suffix_table ( first, last ); - } - - ~boyer_moore () {} - - /// \fn operator ( corpusIter corpus_first, corpusIter corpus_last ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// - template - corpusIter operator () ( corpusIter corpus_first, corpusIter corpus_last ) const { - BOOST_STATIC_ASSERT (( network_boost::is_same< - typename std::iterator_traits::value_type, - typename std::iterator_traits::value_type>::value )); - - if ( corpus_first == corpus_last ) return corpus_last; // if nothing to search, we didn't find it! - if ( pat_first == pat_last ) return corpus_first; // empty pattern matches at start - - const difference_type k_corpus_length = std::distance ( corpus_first, corpus_last ); - // If the pattern is larger than the corpus, we can't find it! - if ( k_corpus_length < k_pattern_length ) - return corpus_last; - - // Do the search - return this->do_search ( corpus_first, corpus_last ); - } - - template - typename network_boost::range_iterator::type operator () ( Range &r ) const { - return (*this) (network_boost::begin(r), network_boost::end(r)); - } - - private: -/// \cond DOXYGEN_HIDE - patIter pat_first, pat_last; - const difference_type k_pattern_length; - typename traits::skip_table_t skip_; - std::vector suffix_; - - /// \fn operator ( corpusIter corpus_first, corpusIter corpus_last, Pred p ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// \param p A predicate used for the search comparisons. - /// - template - corpusIter do_search ( corpusIter corpus_first, corpusIter corpus_last ) const { - /* ---- Do the matching ---- */ - corpusIter curPos = corpus_first; - const corpusIter lastPos = corpus_last - k_pattern_length; - difference_type j, k, m; - - while ( curPos <= lastPos ) { - /* while ( std::distance ( curPos, corpus_last ) >= k_pattern_length ) { */ - // Do we match right where we are? - j = k_pattern_length; - while ( pat_first [j-1] == curPos [j-1] ) { - j--; - // We matched - we're done! - if ( j == 0 ) - return curPos; - } - - // Since we didn't match, figure out how far to skip forward - k = skip_ [ curPos [ j - 1 ]]; - m = j - k - 1; - if ( k < j && m > suffix_ [ j ] ) - curPos += m; - else - curPos += suffix_ [ j ]; - } - - return corpus_last; // We didn't find anything - } - - - void build_skip_table ( patIter first, patIter last ) { - for ( std::size_t i = 0; first != last; ++first, ++i ) - skip_.insert ( *first, i ); - } - - - template - void compute_bm_prefix ( Iter pat_first, Iter pat_last, Container &prefix ) { - const std::size_t count = std::distance ( pat_first, pat_last ); - BOOST_ASSERT ( count > 0 ); - BOOST_ASSERT ( prefix.size () == count ); - - prefix[0] = 0; - std::size_t k = 0; - for ( std::size_t i = 1; i < count; ++i ) { - BOOST_ASSERT ( k < count ); - while ( k > 0 && ( pat_first[k] != pat_first[i] )) { - BOOST_ASSERT ( k < count ); - k = prefix [ k - 1 ]; - } - - if ( pat_first[k] == pat_first[i] ) - k++; - prefix [ i ] = k; - } - } - - void build_suffix_table ( patIter pat_first, patIter pat_last ) { - const std::size_t count = (std::size_t) std::distance ( pat_first, pat_last ); - - if ( count > 0 ) { // empty pattern - std::vector::value_type> reversed(count); - (void) std::reverse_copy ( pat_first, pat_last, reversed.begin ()); - - std::vector prefix (count); - compute_bm_prefix ( pat_first, pat_last, prefix ); - - std::vector prefix_reversed (count); - compute_bm_prefix ( reversed.begin (), reversed.end (), prefix_reversed ); - - for ( std::size_t i = 0; i <= count; i++ ) - suffix_[i] = count - prefix [count-1]; - - for ( std::size_t i = 0; i < count; i++ ) { - const std::size_t j = count - prefix_reversed[i]; - const difference_type k = i - prefix_reversed[i] + 1; - - if (suffix_[j] > k) - suffix_[j] = k; - } - } - } -/// \endcond - }; - - -/* Two ranges as inputs gives us four possibilities; with 2,3,3,4 parameters - Use a bit of TMP to disambiguate the 3-argument templates */ - -/// \fn boyer_moore_search ( corpusIter corpus_first, corpusIter corpus_last, -/// patIter pat_first, patIter pat_last ) -/// \brief Searches the corpus for the pattern. -/// -/// \param corpus_first The start of the data to search (Random Access Iterator) -/// \param corpus_last One past the end of the data to search -/// \param pat_first The start of the pattern to search for (Random Access Iterator) -/// \param pat_last One past the end of the data to search for -/// - template - corpusIter boyer_moore_search ( - corpusIter corpus_first, corpusIter corpus_last, - patIter pat_first, patIter pat_last ) - { - boyer_moore bm ( pat_first, pat_last ); - return bm ( corpus_first, corpus_last ); - } - - template - corpusIter boyer_moore_search ( - corpusIter corpus_first, corpusIter corpus_last, const PatternRange &pattern ) - { - typedef typename network_boost::range_iterator::type pattern_iterator; - boyer_moore bm ( network_boost::begin(pattern), network_boost::end (pattern)); - return bm ( corpus_first, corpus_last ); - } - - template - typename network_boost::lazy_disable_if_c< - network_boost::is_same::value, typename network_boost::range_iterator > - ::type - boyer_moore_search ( CorpusRange &corpus, patIter pat_first, patIter pat_last ) - { - boyer_moore bm ( pat_first, pat_last ); - return bm (network_boost::begin (corpus), network_boost::end (corpus)); - } - - template - typename network_boost::range_iterator::type - boyer_moore_search ( CorpusRange &corpus, const PatternRange &pattern ) - { - typedef typename network_boost::range_iterator::type pattern_iterator; - boyer_moore bm ( network_boost::begin(pattern), network_boost::end (pattern)); - return bm (network_boost::begin (corpus), network_boost::end (corpus)); - } - - - // Creator functions -- take a pattern range, return an object - template - network_boost::algorithm::boyer_moore::type> - make_boyer_moore ( const Range &r ) { - return network_boost::algorithm::boyer_moore - ::type> (network_boost::begin(r), network_boost::end(r)); - } - - template - network_boost::algorithm::boyer_moore::type> - make_boyer_moore ( Range &r ) { - return network_boost::algorithm::boyer_moore - ::type> (network_boost::begin(r), network_boost::end(r)); - } - -}} - -#endif // BOOST_ALGORITHM_BOYER_MOORE_SEARCH_HPP diff --git a/src/boost/algorithm/searching/boyer_moore_horspool.hpp b/src/boost/algorithm/searching/boyer_moore_horspool.hpp deleted file mode 100644 index e32a8715..00000000 --- a/src/boost/algorithm/searching/boyer_moore_horspool.hpp +++ /dev/null @@ -1,199 +0,0 @@ -/* - Copyright (c) Marshall Clow 2010-2012. - - Distributed under the 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_ALGORITHM_BOYER_MOORE_HORSPOOOL_SEARCH_HPP -#define BOOST_ALGORITHM_BOYER_MOORE_HORSPOOOL_SEARCH_HPP - -#include // for std::iterator_traits - -#include -#include - -#include -#include - -#include -#include - -#include -#include - -// #define BOOST_ALGORITHM_BOYER_MOORE_HORSPOOL_DEBUG_HPP - -namespace network_boost { namespace algorithm { - -/* - A templated version of the boyer-moore-horspool searching algorithm. - - Requirements: - * Random access iterators - * The two iterator types (patIter and corpusIter) must - "point to" the same underlying type. - * Additional requirements may be imposed buy the skip table, such as: - ** Numeric type (array-based skip table) - ** Hashable type (map-based skip table) - -http://www-igm.univ-mlv.fr/%7Elecroq/string/node18.html - -*/ - - template > - class boyer_moore_horspool { - typedef typename std::iterator_traits::difference_type difference_type; - public: - boyer_moore_horspool ( patIter first, patIter last ) - : pat_first ( first ), pat_last ( last ), - k_pattern_length ( std::distance ( pat_first, pat_last )), - skip_ ( k_pattern_length, k_pattern_length ) { - - // Build the skip table - std::size_t i = 0; - if ( first != last ) // empty pattern? - for ( patIter iter = first; iter != last-1; ++iter, ++i ) - skip_.insert ( *iter, k_pattern_length - 1 - i ); -#ifdef BOOST_ALGORITHM_BOYER_MOORE_HORSPOOL_DEBUG_HPP - skip_.PrintSkipTable (); -#endif - } - - ~boyer_moore_horspool () {} - - /// \fn operator ( corpusIter corpus_first, corpusIter corpus_last, Pred p ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// \param p A predicate used for the search comparisons. - /// - template - corpusIter operator () ( corpusIter corpus_first, corpusIter corpus_last ) const { - BOOST_STATIC_ASSERT (( network_boost::is_same< - typename std::iterator_traits::value_type, - typename std::iterator_traits::value_type>::value )); - - if ( corpus_first == corpus_last ) return corpus_last; // if nothing to search, we didn't find it! - if ( pat_first == pat_last ) return corpus_first; // empty pattern matches at start - - const difference_type k_corpus_length = std::distance ( corpus_first, corpus_last ); - // If the pattern is larger than the corpus, we can't find it! - if ( k_corpus_length < k_pattern_length ) - return corpus_last; - - // Do the search - return this->do_search ( corpus_first, corpus_last ); - } - - template - typename network_boost::range_iterator::type operator () ( Range &r ) const { - return (*this) (network_boost::begin(r), network_boost::end(r)); - } - - private: -/// \cond DOXYGEN_HIDE - patIter pat_first, pat_last; - const difference_type k_pattern_length; - typename traits::skip_table_t skip_; - - /// \fn do_search ( corpusIter corpus_first, corpusIter corpus_last ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// \param k_corpus_length The length of the corpus to search - /// - template - corpusIter do_search ( corpusIter corpus_first, corpusIter corpus_last ) const { - corpusIter curPos = corpus_first; - const corpusIter lastPos = corpus_last - k_pattern_length; - while ( curPos <= lastPos ) { - // Do we match right where we are? - std::size_t j = k_pattern_length - 1; - while ( pat_first [j] == curPos [j] ) { - // We matched - we're done! - if ( j == 0 ) - return curPos; - j--; - } - - curPos += skip_ [ curPos [ k_pattern_length - 1 ]]; - } - - return corpus_last; - } -// \endcond - }; - -/* Two ranges as inputs gives us four possibilities; with 2,3,3,4 parameters - Use a bit of TMP to disambiguate the 3-argument templates */ - -/// \fn boyer_moore_horspool_search ( corpusIter corpus_first, corpusIter corpus_last, -/// patIter pat_first, patIter pat_last ) -/// \brief Searches the corpus for the pattern. -/// -/// \param corpus_first The start of the data to search (Random Access Iterator) -/// \param corpus_last One past the end of the data to search -/// \param pat_first The start of the pattern to search for (Random Access Iterator) -/// \param pat_last One past the end of the data to search for -/// - template - corpusIter boyer_moore_horspool_search ( - corpusIter corpus_first, corpusIter corpus_last, - patIter pat_first, patIter pat_last ) - { - boyer_moore_horspool bmh ( pat_first, pat_last ); - return bmh ( corpus_first, corpus_last ); - } - - template - corpusIter boyer_moore_horspool_search ( - corpusIter corpus_first, corpusIter corpus_last, const PatternRange &pattern ) - { - typedef typename network_boost::range_iterator::type pattern_iterator; - boyer_moore_horspool bmh ( network_boost::begin(pattern), network_boost::end (pattern)); - return bmh ( corpus_first, corpus_last ); - } - - template - typename network_boost::lazy_disable_if_c< - network_boost::is_same::value, typename network_boost::range_iterator > - ::type - boyer_moore_horspool_search ( CorpusRange &corpus, patIter pat_first, patIter pat_last ) - { - boyer_moore_horspool bmh ( pat_first, pat_last ); - return bm (network_boost::begin (corpus), network_boost::end (corpus)); - } - - template - typename network_boost::range_iterator::type - boyer_moore_horspool_search ( CorpusRange &corpus, const PatternRange &pattern ) - { - typedef typename network_boost::range_iterator::type pattern_iterator; - boyer_moore_horspool bmh ( network_boost::begin(pattern), network_boost::end (pattern)); - return bmh (network_boost::begin (corpus), network_boost::end (corpus)); - } - - - // Creator functions -- take a pattern range, return an object - template - network_boost::algorithm::boyer_moore_horspool::type> - make_boyer_moore_horspool ( const Range &r ) { - return network_boost::algorithm::boyer_moore_horspool - ::type> (network_boost::begin(r), network_boost::end(r)); - } - - template - network_boost::algorithm::boyer_moore_horspool::type> - make_boyer_moore_horspool ( Range &r ) { - return network_boost::algorithm::boyer_moore_horspool - ::type> (network_boost::begin(r), network_boost::end(r)); - } - -}} - -#endif // BOOST_ALGORITHM_BOYER_MOORE_HORSPOOOL_SEARCH_HPP diff --git a/src/boost/algorithm/searching/detail/bm_traits.hpp b/src/boost/algorithm/searching/detail/bm_traits.hpp deleted file mode 100644 index ca6dbcad..00000000 --- a/src/boost/algorithm/searching/detail/bm_traits.hpp +++ /dev/null @@ -1,113 +0,0 @@ -/* - Copyright (c) Marshall Clow 2010-2012. - - Distributed under the 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_ALGORITHM_SEARCH_DETAIL_BM_TRAITS_HPP -#define BOOST_ALGORITHM_SEARCH_DETAIL_BM_TRAITS_HPP - -#include // for CHAR_BIT -#include -#include // for std::iterator_traits - -#include -#include -#include -#include - -#include -#ifdef BOOST_NO_CXX11_HDR_UNORDERED_MAP -#include -#else -#include -#endif - -#include - -namespace network_boost { namespace algorithm { namespace detail { - -// -// Default implementations of the skip tables for B-M and B-M-H -// - template class skip_table; - -// General case for data searching other than bytes; use a map - template - class skip_table { - private: -#ifdef BOOST_NO_CXX11_HDR_UNORDERED_MAP - typedef network_boost::unordered_map skip_map; -#else - typedef std::unordered_map skip_map; -#endif - const value_type k_default_value; - skip_map skip_; - - public: - skip_table ( std::size_t patSize, value_type default_value ) - : k_default_value ( default_value ), skip_ ( patSize ) {} - - void insert ( key_type key, value_type val ) { - skip_ [ key ] = val; // Would skip_.insert (val) be better here? - } - - value_type operator [] ( key_type key ) const { - typename skip_map::const_iterator it = skip_.find ( key ); - return it == skip_.end () ? k_default_value : it->second; - } - - void PrintSkipTable () const { - std::cout << "BM(H) Skip Table :" << std::endl; - for ( typename skip_map::const_iterator it = skip_.begin (); it != skip_.end (); ++it ) - if ( it->second != k_default_value ) - std::cout << " " << it->first << ": " << it->second << std::endl; - std::cout << std::endl; - } - }; - - -// Special case small numeric values; use an array - template - class skip_table { - private: - typedef typename network_boost::make_unsigned::type unsigned_key_type; - typedef network_boost::array skip_map; - skip_map skip_; - const value_type k_default_value; - public: - skip_table ( std::size_t patSize, value_type default_value ) : k_default_value ( default_value ) { - std::fill_n ( skip_.begin(), skip_.size(), default_value ); - } - - void insert ( key_type key, value_type val ) { - skip_ [ static_cast ( key ) ] = val; - } - - value_type operator [] ( key_type key ) const { - return skip_ [ static_cast ( key ) ]; - } - - void PrintSkipTable () const { - std::cout << "BM(H) Skip Table :" << std::endl; - for ( typename skip_map::const_iterator it = skip_.begin (); it != skip_.end (); ++it ) - if ( *it != k_default_value ) - std::cout << " " << std::distance (skip_.begin (), it) << ": " << *it << std::endl; - std::cout << std::endl; - } - }; - - template - struct BM_traits { - typedef typename std::iterator_traits::difference_type value_type; - typedef typename std::iterator_traits::value_type key_type; - typedef network_boost::algorithm::detail::skip_table::value && (sizeof(key_type)==1)> skip_table_t; - }; - -}}} // namespaces - -#endif // BOOST_ALGORITHM_SEARCH_DETAIL_BM_TRAITS_HPP diff --git a/src/boost/algorithm/searching/detail/debugging.hpp b/src/boost/algorithm/searching/detail/debugging.hpp deleted file mode 100644 index 56011624..00000000 --- a/src/boost/algorithm/searching/detail/debugging.hpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (c) Marshall Clow 2010-2012. - - Distributed under the 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_ALGORITHM_SEARCH_DETAIL_DEBUG_HPP -#define BOOST_ALGORITHM_SEARCH_DETAIL_DEBUG_HPP - -#include -/// \cond DOXYGEN_HIDE - -namespace network_boost { namespace algorithm { namespace detail { - -// Debugging support - template - void PrintTable ( Iter first, Iter last ) { - std::cout << std::distance ( first, last ) << ": { "; - for ( Iter iter = first; iter != last; ++iter ) - std::cout << *iter << " "; - std::cout << "}" << std::endl; - } - -}}} -/// \endcond - -#endif // BOOST_ALGORITHM_SEARCH_DETAIL_DEBUG_HPP diff --git a/src/boost/algorithm/searching/knuth_morris_pratt.hpp b/src/boost/algorithm/searching/knuth_morris_pratt.hpp deleted file mode 100644 index 6696ef63..00000000 --- a/src/boost/algorithm/searching/knuth_morris_pratt.hpp +++ /dev/null @@ -1,258 +0,0 @@ -/* - Copyright (c) Marshall Clow 2010-2012. - - Distributed under the 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_ALGORITHM_KNUTH_MORRIS_PRATT_SEARCH_HPP -#define BOOST_ALGORITHM_KNUTH_MORRIS_PRATT_SEARCH_HPP - -#include -#include // for std::iterator_traits - -#include -#include - -#include -#include - -#include -#include - -#include - -// #define BOOST_ALGORITHM_KNUTH_MORRIS_PRATT_DEBUG - -namespace network_boost { namespace algorithm { - -// #define NEW_KMP - -/* - A templated version of the Knuth-Morris-Pratt searching algorithm. - - Requirements: - * Random-access iterators - * The two iterator types (I1 and I2) must "point to" the same underlying type. - - http://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm - http://www.inf.fh-flensburg.de/lang/algorithmen/pattern/kmpen.htm -*/ - - template - class knuth_morris_pratt { - typedef typename std::iterator_traits::difference_type difference_type; - public: - knuth_morris_pratt ( patIter first, patIter last ) - : pat_first ( first ), pat_last ( last ), - k_pattern_length ( std::distance ( pat_first, pat_last )), - skip_ ( k_pattern_length + 1 ) { -#ifdef NEW_KMP - preKmp ( pat_first, pat_last ); -#else - init_skip_table ( pat_first, pat_last ); -#endif -#ifdef BOOST_ALGORITHM_KNUTH_MORRIS_PRATT_DEBUG - detail::PrintTable ( skip_.begin (), skip_.end ()); -#endif - } - - ~knuth_morris_pratt () {} - - /// \fn operator ( corpusIter corpus_first, corpusIter corpus_last, Pred p ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// \param p A predicate used for the search comparisons. - /// - template - corpusIter operator () ( corpusIter corpus_first, corpusIter corpus_last ) const { - BOOST_STATIC_ASSERT (( network_boost::is_same< - typename std::iterator_traits::value_type, - typename std::iterator_traits::value_type>::value )); - if ( corpus_first == corpus_last ) return corpus_last; // if nothing to search, we didn't find it! - if ( pat_first == pat_last ) return corpus_first; // empty pattern matches at start - - const difference_type k_corpus_length = std::distance ( corpus_first, corpus_last ); - // If the pattern is larger than the corpus, we can't find it! - if ( k_corpus_length < k_pattern_length ) - return corpus_last; - - return do_search ( corpus_first, corpus_last, k_corpus_length ); - } - - template - typename network_boost::range_iterator::type operator () ( Range &r ) const { - return (*this) (network_boost::begin(r), network_boost::end(r)); - } - - private: -/// \cond DOXYGEN_HIDE - patIter pat_first, pat_last; - const difference_type k_pattern_length; - std::vector skip_; - - /// \fn operator ( corpusIter corpus_first, corpusIter corpus_last, Pred p ) - /// \brief Searches the corpus for the pattern that was passed into the constructor - /// - /// \param corpus_first The start of the data to search (Random Access Iterator) - /// \param corpus_last One past the end of the data to search - /// \param p A predicate used for the search comparisons. - /// - template - corpusIter do_search ( corpusIter corpus_first, corpusIter corpus_last, - difference_type k_corpus_length ) const { - difference_type match_start = 0; // position in the corpus that we're matching - -#ifdef NEW_KMP - int patternIdx = 0; - while ( match_start < k_corpus_length ) { - while ( patternIdx > -1 && pat_first[patternIdx] != corpus_first [match_start] ) - patternIdx = skip_ [patternIdx]; //<--- Shifting the pattern on mismatch - - patternIdx++; - match_start++; //<--- corpus is always increased by 1 - - if ( patternIdx >= (int) k_pattern_length ) - return corpus_first + match_start - patternIdx; - } - -#else -// At this point, we know: -// k_pattern_length <= k_corpus_length -// for all elements of skip, it holds -1 .. k_pattern_length -// -// In the loop, we have the following invariants -// idx is in the range 0 .. k_pattern_length -// match_start is in the range 0 .. k_corpus_length - k_pattern_length + 1 - - const difference_type last_match = k_corpus_length - k_pattern_length; - difference_type idx = 0; // position in the pattern we're comparing - - while ( match_start <= last_match ) { - while ( pat_first [ idx ] == corpus_first [ match_start + idx ] ) { - if ( ++idx == k_pattern_length ) - return corpus_first + match_start; - } - // Figure out where to start searching again - // assert ( idx - skip_ [ idx ] > 0 ); // we're always moving forward - match_start += idx - skip_ [ idx ]; - idx = skip_ [ idx ] >= 0 ? skip_ [ idx ] : 0; - // assert ( idx >= 0 && idx < k_pattern_length ); - } -#endif - - // We didn't find anything - return corpus_last; - } - - - void preKmp ( patIter first, patIter last ) { - const /*std::size_t*/ int count = std::distance ( first, last ); - - int i, j; - - i = 0; - j = skip_[0] = -1; - while (i < count) { - while (j > -1 && first[i] != first[j]) - j = skip_[j]; - i++; - j++; - if (first[i] == first[j]) - skip_[i] = skip_[j]; - else - skip_[i] = j; - } - } - - - void init_skip_table ( patIter first, patIter last ) { - const difference_type count = std::distance ( first, last ); - - int j; - skip_ [ 0 ] = -1; - for ( int i = 1; i <= count; ++i ) { - j = skip_ [ i - 1 ]; - while ( j >= 0 ) { - if ( first [ j ] == first [ i - 1 ] ) - break; - j = skip_ [ j ]; - } - skip_ [ i ] = j + 1; - } - } -// \endcond - }; - - -/* Two ranges as inputs gives us four possibilities; with 2,3,3,4 parameters - Use a bit of TMP to disambiguate the 3-argument templates */ - -/// \fn knuth_morris_pratt_search ( corpusIter corpus_first, corpusIter corpus_last, -/// patIter pat_first, patIter pat_last ) -/// \brief Searches the corpus for the pattern. -/// -/// \param corpus_first The start of the data to search (Random Access Iterator) -/// \param corpus_last One past the end of the data to search -/// \param pat_first The start of the pattern to search for (Random Access Iterator) -/// \param pat_last One past the end of the data to search for -/// - template - corpusIter knuth_morris_pratt_search ( - corpusIter corpus_first, corpusIter corpus_last, - patIter pat_first, patIter pat_last ) - { - knuth_morris_pratt kmp ( pat_first, pat_last ); - return kmp ( corpus_first, corpus_last ); - } - - template - corpusIter knuth_morris_pratt_search ( - corpusIter corpus_first, corpusIter corpus_last, const PatternRange &pattern ) - { - typedef typename network_boost::range_iterator::type pattern_iterator; - knuth_morris_pratt kmp ( network_boost::begin(pattern), network_boost::end (pattern)); - return kmp ( corpus_first, corpus_last ); - } - - template - typename network_boost::lazy_disable_if_c< - network_boost::is_same::value, typename network_boost::range_iterator > - ::type - knuth_morris_pratt_search ( CorpusRange &corpus, patIter pat_first, patIter pat_last ) - { - knuth_morris_pratt kmp ( pat_first, pat_last ); - return kmp (network_boost::begin (corpus), network_boost::end (corpus)); - } - - template - typename network_boost::range_iterator::type - knuth_morris_pratt_search ( CorpusRange &corpus, const PatternRange &pattern ) - { - typedef typename network_boost::range_iterator::type pattern_iterator; - knuth_morris_pratt kmp ( network_boost::begin(pattern), network_boost::end (pattern)); - return kmp (network_boost::begin (corpus), network_boost::end (corpus)); - } - - - // Creator functions -- take a pattern range, return an object - template - network_boost::algorithm::knuth_morris_pratt::type> - make_knuth_morris_pratt ( const Range &r ) { - return network_boost::algorithm::knuth_morris_pratt - ::type> (network_boost::begin(r), network_boost::end(r)); - } - - template - network_boost::algorithm::knuth_morris_pratt::type> - make_knuth_morris_pratt ( Range &r ) { - return network_boost::algorithm::knuth_morris_pratt - ::type> (network_boost::begin(r), network_boost::end(r)); - } -}} - -#endif // BOOST_ALGORITHM_KNUTH_MORRIS_PRATT_SEARCH_HPP diff --git a/src/boost/algorithm/string.hpp b/src/boost/algorithm/string.hpp deleted file mode 100644 index 07715173..00000000 --- a/src/boost/algorithm/string.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// Boost string_algo library string_algo.hpp header file ---------------------------// - -// Copyright Pavol Droba 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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_ALGO_HPP -#define BOOST_STRING_ALGO_HPP - -/*! \file - Cumulative include for string_algo library -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#endif // BOOST_STRING_ALGO_HPP diff --git a/src/boost/algorithm/string/case_conv.hpp b/src/boost/algorithm/string/case_conv.hpp deleted file mode 100644 index 8661c1e7..00000000 --- a/src/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 network_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 ::network_boost::algorithm::detail::transform_range_copy( - Output, - ::network_boost::as_literal(Input), - ::network_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 ::network_boost::algorithm::detail::transform_range_copy( - Input, - ::network_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()) - { - ::network_boost::algorithm::detail::transform_range( - ::network_boost::as_literal(Input), - ::network_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 ::network_boost::algorithm::detail::transform_range_copy( - Output, - ::network_boost::as_literal(Input), - ::network_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 ::network_boost::algorithm::detail::transform_range_copy( - Input, - ::network_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()) - { - ::network_boost::algorithm::detail::transform_range( - ::network_boost::as_literal(Input), - ::network_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 network_boost - -#endif // BOOST_STRING_CASE_CONV_HPP diff --git a/src/boost/algorithm/string/classification.hpp b/src/boost/algorithm/string/classification.hpp deleted file mode 100644 index 9b270ed8..00000000 --- a/src/boost/algorithm/string/classification.hpp +++ /dev/null @@ -1,312 +0,0 @@ -// Boost string_algo library classification.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_CLASSIFICATION_HPP -#define BOOST_STRING_CLASSIFICATION_HPP - -#include -#include -#include -#include -#include -#include - - -/*! \file - Classification predicates are included in the library to give - some more convenience when using algorithms like \c trim() and \c all(). - They wrap functionality of STL classification functions ( e.g. \c std::isspace() ) - into generic functors. -*/ - -namespace network_boost { - namespace algorithm { - -// classification functor generator -------------------------------------// - - //! is_classified predicate - /*! - Construct the \c is_classified predicate. This predicate holds if the input is - of specified \c std::ctype category. - - \param Type A \c std::ctype category - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_classified(std::ctype_base::mask Type, const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(Type, Loc); - } - - //! is_space predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::space category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_space(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::space, Loc); - } - - //! is_alnum predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::alnum category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_alnum(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::alnum, Loc); - } - - //! is_alpha predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::alpha category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_alpha(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::alpha, Loc); - } - - //! is_cntrl predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::cntrl category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_cntrl(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::cntrl, Loc); - } - - //! is_digit predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::digit category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_digit(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::digit, Loc); - } - - //! is_graph predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::graph category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_graph(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::graph, Loc); - } - - //! is_lower predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::lower category. - - \param Loc A locale used for classification - \return An instance of \c is_classified predicate - */ - inline detail::is_classifiedF - is_lower(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::lower, Loc); - } - - //! is_print predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::print category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_print(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::print, Loc); - } - - //! is_punct predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::punct category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_punct(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::punct, Loc); - } - - //! is_upper predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::upper category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_upper(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::upper, Loc); - } - - //! is_xdigit predicate - /*! - Construct the \c is_classified predicate for the \c ctype_base::xdigit category. - - \param Loc A locale used for classification - \return An instance of the \c is_classified predicate - */ - inline detail::is_classifiedF - is_xdigit(const std::locale& Loc=std::locale()) - { - return detail::is_classifiedF(std::ctype_base::xdigit, Loc); - } - - //! is_any_of predicate - /*! - Construct the \c is_any_of predicate. The predicate holds if the input - is included in the specified set of characters. - - \param Set A set of characters to be recognized - \return An instance of the \c is_any_of predicate - */ - template - inline detail::is_any_ofF< - BOOST_STRING_TYPENAME range_value::type> - is_any_of( const RangeT& Set ) - { - iterator_range::type> lit_set(network_boost::as_literal(Set)); - return detail::is_any_ofF::type>(lit_set); - } - - //! is_from_range predicate - /*! - Construct the \c is_from_range predicate. The predicate holds if the input - is included in the specified range. (i.e. From <= Ch <= To ) - - \param From The start of the range - \param To The end of the range - \return An instance of the \c is_from_range predicate - */ - template - inline detail::is_from_rangeF is_from_range(CharT From, CharT To) - { - return detail::is_from_rangeF(From,To); - } - - // predicate combinators ---------------------------------------------------// - - //! predicate 'and' composition predicate - /*! - Construct the \c class_and predicate. This predicate can be used - to logically combine two classification predicates. \c class_and holds, - if both predicates return true. - - \param Pred1 The first predicate - \param Pred2 The second predicate - \return An instance of the \c class_and predicate - */ - template - inline detail::pred_andF - operator&&( - const predicate_facade& Pred1, - const predicate_facade& Pred2 ) - { - // Doing the static_cast with the pointer instead of the reference - // is a workaround for some compilers which have problems with - // static_cast's of template references, i.e. CW8. /grafik/ - return detail::pred_andF( - *static_cast(&Pred1), - *static_cast(&Pred2) ); - } - - //! predicate 'or' composition predicate - /*! - Construct the \c class_or predicate. This predicate can be used - to logically combine two classification predicates. \c class_or holds, - if one of the predicates return true. - - \param Pred1 The first predicate - \param Pred2 The second predicate - \return An instance of the \c class_or predicate - */ - template - inline detail::pred_orF - operator||( - const predicate_facade& Pred1, - const predicate_facade& Pred2 ) - { - // Doing the static_cast with the pointer instead of the reference - // is a workaround for some compilers which have problems with - // static_cast's of template references, i.e. CW8. /grafik/ - return detail::pred_orF( - *static_cast(&Pred1), - *static_cast(&Pred2)); - } - - //! predicate negation operator - /*! - Construct the \c class_not predicate. This predicate represents a negation. - \c class_or holds if of the predicates return false. - - \param Pred The predicate to be negated - \return An instance of the \c class_not predicate - */ - template - inline detail::pred_notF - operator!( const predicate_facade& Pred ) - { - // Doing the static_cast with the pointer instead of the reference - // is a workaround for some compilers which have problems with - // static_cast's of template references, i.e. CW8. /grafik/ - return detail::pred_notF(*static_cast(&Pred)); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::is_classified; - using algorithm::is_space; - using algorithm::is_alnum; - using algorithm::is_alpha; - using algorithm::is_cntrl; - using algorithm::is_digit; - using algorithm::is_graph; - using algorithm::is_lower; - using algorithm::is_upper; - using algorithm::is_print; - using algorithm::is_punct; - using algorithm::is_xdigit; - using algorithm::is_any_of; - using algorithm::is_from_range; - -} // namespace network_boost - -#endif // BOOST_STRING_PREDICATE_HPP diff --git a/src/boost/algorithm/string/compare.hpp b/src/boost/algorithm/string/compare.hpp deleted file mode 100644 index b554a0c4..00000000 --- a/src/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 network_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 network_boost - - -#endif // BOOST_STRING_COMPARE_HPP diff --git a/src/boost/algorithm/string/concept.hpp b/src/boost/algorithm/string/concept.hpp deleted file mode 100644 index 1f7e8ec6..00000000 --- a/src/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 network_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 - ::network_boost::begin((*pFo)( (*pF)(i,i) )); - ::network_boost::end((*pFo)( (*pF)(i,i) )); - } - private: - IteratorT i; - FinderT* pF; - FormatterT *pFo; - }; // FormatterConcept; - - } // namespace algorithm -} // namespace network_boost - - - - -#endif // BOOST_STRING_CONCEPT_HPP diff --git a/src/boost/algorithm/string/config.hpp b/src/boost/algorithm/string/config.hpp deleted file mode 100644 index 559750ac..00000000 --- a/src/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/src/boost/algorithm/string/constants.hpp b/src/boost/algorithm/string/constants.hpp deleted file mode 100644 index 513ade55..00000000 --- a/src/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 network_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 network_boost - -#endif // BOOST_STRING_CONSTANTS_HPP - diff --git a/src/boost/algorithm/string/detail/case_conv.hpp b/src/boost/algorithm/string/detail/case_conv.hpp deleted file mode 100644 index 3bae1324..00000000 --- a/src/boost/algorithm/string/detail/case_conv.hpp +++ /dev/null @@ -1,123 +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 - -#include - -namespace network_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( static_cast::type> ( 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( static_cast::type> ( 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( - ::network_boost::begin(Input), - ::network_boost::end(Input), - Output, - Functor); - } - - // Transform a range (in-place) - template - void transform_range( - const RangeT& Input, - FunctorT Functor) - { - std::transform( - ::network_boost::begin(Input), - ::network_boost::end(Input), - ::network_boost::begin(Input), - Functor); - } - - template - inline SequenceT transform_range_copy( - const RangeT& Input, - FunctorT Functor) - { - return SequenceT( - ::network_boost::make_transform_iterator( - ::network_boost::begin(Input), - Functor), - ::network_boost::make_transform_iterator( - ::network_boost::end(Input), - Functor)); - } - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_CASE_CONV_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/classification.hpp b/src/boost/algorithm/string/detail/classification.hpp deleted file mode 100644 index 95384c40..00000000 --- a/src/boost/algorithm/string/detail/classification.hpp +++ /dev/null @@ -1,353 +0,0 @@ -// Boost string_algo library classification.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_CLASSIFICATION_DETAIL_HPP -#define BOOST_STRING_CLASSIFICATION_DETAIL_HPP - -#include -#include -#include -#include - -#include -#include - -#include -#include - -namespace network_boost { - namespace algorithm { - namespace detail { - -// classification functors -----------------------------------------------// - - // is_classified functor - struct is_classifiedF : - public predicate_facade - { - // Boost.ResultOf support - typedef bool result_type; - - // Constructor from a locale - is_classifiedF(std::ctype_base::mask Type, std::locale const & Loc = std::locale()) : - m_Type(Type), m_Locale(Loc) {} - // Operation - template - bool operator()( CharT Ch ) const - { - return std::use_facet< std::ctype >(m_Locale).is( m_Type, Ch ); - } - - #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x582) && !defined(_USE_OLD_RW_STL) - template<> - bool operator()( char const Ch ) const - { - return std::use_facet< std::ctype >(m_Locale).is( m_Type, Ch ); - } - #endif - - private: - std::ctype_base::mask m_Type; - std::locale m_Locale; - }; - - - // is_any_of functor - /* - returns true if the value is from the specified set - */ - template - struct is_any_ofF : - public predicate_facade > - { - private: - // set cannot operate on const value-type - typedef typename ::network_boost::remove_const::type set_value_type; - - public: - // Boost.ResultOf support - typedef bool result_type; - - // Constructor - template - is_any_ofF( const RangeT& Range ) : m_Size(0) - { - // Prepare storage - m_Storage.m_dynSet=0; - - std::size_t Size=::network_boost::distance(Range); - m_Size=Size; - set_value_type* Storage=0; - - if(use_fixed_storage(m_Size)) - { - // Use fixed storage - Storage=&m_Storage.m_fixSet[0]; - } - else - { - // Use dynamic storage - m_Storage.m_dynSet=new set_value_type[m_Size]; - Storage=m_Storage.m_dynSet; - } - - // Use fixed storage - ::std::copy(::network_boost::begin(Range), ::network_boost::end(Range), Storage); - ::std::sort(Storage, Storage+m_Size); - } - - // Copy constructor - is_any_ofF(const is_any_ofF& Other) : m_Size(Other.m_Size) - { - // Prepare storage - m_Storage.m_dynSet=0; - const set_value_type* SrcStorage=0; - set_value_type* DestStorage=0; - - if(use_fixed_storage(m_Size)) - { - // Use fixed storage - DestStorage=&m_Storage.m_fixSet[0]; - SrcStorage=&Other.m_Storage.m_fixSet[0]; - } - else - { - // Use dynamic storage - m_Storage.m_dynSet=new set_value_type[m_Size]; - DestStorage=m_Storage.m_dynSet; - SrcStorage=Other.m_Storage.m_dynSet; - } - - // Use fixed storage - ::std::memcpy(DestStorage, SrcStorage, sizeof(set_value_type)*m_Size); - } - - // Destructor - ~is_any_ofF() - { - if(!use_fixed_storage(m_Size) && m_Storage.m_dynSet!=0) - { - delete [] m_Storage.m_dynSet; - } - } - - // Assignment - is_any_ofF& operator=(const is_any_ofF& Other) - { - // Handle self assignment - if(this==&Other) return *this; - - // Prepare storage - const set_value_type* SrcStorage; - set_value_type* DestStorage; - - if(use_fixed_storage(Other.m_Size)) - { - // Use fixed storage - DestStorage=&m_Storage.m_fixSet[0]; - SrcStorage=&Other.m_Storage.m_fixSet[0]; - - // Delete old storage if was present - if(!use_fixed_storage(m_Size) && m_Storage.m_dynSet!=0) - { - delete [] m_Storage.m_dynSet; - } - - // Set new size - m_Size=Other.m_Size; - } - else - { - // Other uses dynamic storage - SrcStorage=Other.m_Storage.m_dynSet; - - // Check what kind of storage are we using right now - if(use_fixed_storage(m_Size)) - { - // Using fixed storage, allocate new - set_value_type* pTemp=new set_value_type[Other.m_Size]; - DestStorage=pTemp; - m_Storage.m_dynSet=pTemp; - m_Size=Other.m_Size; - } - else - { - // Using dynamic storage, check if can reuse - if(m_Storage.m_dynSet!=0 && m_Size>=Other.m_Size && m_Size - bool operator()( Char2T Ch ) const - { - const set_value_type* Storage= - (use_fixed_storage(m_Size)) - ? &m_Storage.m_fixSet[0] - : m_Storage.m_dynSet; - - return ::std::binary_search(Storage, Storage+m_Size, Ch); - } - private: - // check if the size is eligible for fixed storage - static bool use_fixed_storage(std::size_t size) - { - return size<=sizeof(set_value_type*)*2; - } - - - private: - // storage - // The actual used storage is selected on the type - union - { - set_value_type* m_dynSet; - set_value_type m_fixSet[sizeof(set_value_type*)*2]; - } - m_Storage; - - // storage size - ::std::size_t m_Size; - }; - - // is_from_range functor - /* - returns true if the value is from the specified range. - (i.e. x>=From && x>=To) - */ - template - struct is_from_rangeF : - public predicate_facade< is_from_rangeF > - { - // Boost.ResultOf support - typedef bool result_type; - - // Constructor - is_from_rangeF( CharT From, CharT To ) : m_From(From), m_To(To) {} - - // Operation - template - bool operator()( Char2T Ch ) const - { - return ( m_From <= Ch ) && ( Ch <= m_To ); - } - - private: - CharT m_From; - CharT m_To; - }; - - // class_and composition predicate - template - struct pred_andF : - public predicate_facade< pred_andF > - { - public: - - // Boost.ResultOf support - typedef bool result_type; - - // Constructor - pred_andF( Pred1T Pred1, Pred2T Pred2 ) : - m_Pred1(Pred1), m_Pred2(Pred2) {} - - // Operation - template - bool operator()( CharT Ch ) const - { - return m_Pred1(Ch) && m_Pred2(Ch); - } - - private: - Pred1T m_Pred1; - Pred2T m_Pred2; - }; - - // class_or composition predicate - template - struct pred_orF : - public predicate_facade< pred_orF > - { - public: - // Boost.ResultOf support - typedef bool result_type; - - // Constructor - pred_orF( Pred1T Pred1, Pred2T Pred2 ) : - m_Pred1(Pred1), m_Pred2(Pred2) {} - - // Operation - template - bool operator()( CharT Ch ) const - { - return m_Pred1(Ch) || m_Pred2(Ch); - } - - private: - Pred1T m_Pred1; - Pred2T m_Pred2; - }; - - // class_not composition predicate - template< typename PredT > - struct pred_notF : - public predicate_facade< pred_notF > - { - public: - // Boost.ResultOf support - typedef bool result_type; - - // Constructor - pred_notF( PredT Pred ) : m_Pred(Pred) {} - - // Operation - template - bool operator()( CharT Ch ) const - { - return !m_Pred(Ch); - } - - private: - PredT m_Pred; - }; - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_CLASSIFICATION_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/find_format.hpp b/src/boost/algorithm/string/detail/find_format.hpp deleted file mode 100644 index a3f59c6e..00000000 --- a/src/boost/algorithm/string/detail/find_format.hpp +++ /dev/null @@ -1,204 +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 network_boost { - namespace algorithm { - namespace detail { - -// find_format_copy (iterator variant) implementation -------------------------------// - - 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 - Output = std::copy( ::network_boost::begin(Input), ::network_boost::end(Input), Output ); - return Output; - } - - // Copy the beginning of the sequence - Output = std::copy( ::network_boost::begin(Input), ::network_boost::begin(M), Output ); - // Format find result - // Copy formatted result - Output = std::copy( ::network_boost::begin(M.format_result()), ::network_boost::end(M.format_result()), Output ); - // Copy the rest of the sequence - Output = std::copy( M.end(), ::network_boost::end(Input), Output ); - - return Output; - } - - 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 ) - { - if( ::network_boost::algorithm::detail::check_find_result(Input, FindResult) ) { - return ::network_boost::algorithm::detail::find_format_copy_impl2( - Output, - Input, - Formatter, - FindResult, - Formatter(FindResult) ); - } else { - return std::copy( ::network_boost::begin(Input), ::network_boost::end(Input), Output ); - } - } - - -// find_format_copy implementation --------------------------------------------------// - - 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 - network_boost::algorithm::detail::insert( Output, ::network_boost::end(Output), ::network_boost::begin(Input), M.begin() ); - // Copy formatted result - network_boost::algorithm::detail::insert( Output, ::network_boost::end(Output), M.format_result() ); - // Copy the rest of the sequence - network_boost::algorithm::detail::insert( Output, ::network_boost::end(Output), M.end(), ::network_boost::end(Input) ); - - return Output; - } - - template< - typename InputT, - typename FormatterT, - typename FindResultT > - inline InputT find_format_copy_impl( - const InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult) - { - if( ::network_boost::algorithm::detail::check_find_result(Input, FindResult) ) { - return ::network_boost::algorithm::detail::find_format_copy_impl2( - Input, - Formatter, - FindResult, - Formatter(FindResult) ); - } else { - return Input; - } - } - - // replace implementation ----------------------------------------------------// - - 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 - ::network_boost::algorithm::detail::replace( Input, M.begin(), M.end(), M.format_result() ); - } - - template< - typename InputT, - typename FormatterT, - typename FindResultT > - inline void find_format_impl( - InputT& Input, - FormatterT Formatter, - const FindResultT& FindResult) - { - if( ::network_boost::algorithm::detail::check_find_result(Input, FindResult) ) { - ::network_boost::algorithm::detail::find_format_impl2( - Input, - Formatter, - FindResult, - Formatter(FindResult) ); - } - } - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - -#endif // BOOST_STRING_FIND_FORMAT_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/find_format_all.hpp b/src/boost/algorithm/string/detail/find_format_all.hpp deleted file mode 100644 index 4ea98138..00000000 --- a/src/boost/algorithm/string/detail/find_format_all.hpp +++ /dev/null @@ -1,273 +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 network_boost { - namespace algorithm { - namespace detail { - -// find_format_all_copy (iterator variant) implementation ---------------------------// - - 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=::network_boost::begin(Input); - - // Iterate through all matches - while( M ) - { - // Copy the beginning of the sequence - Output = std::copy( LastMatch, M.begin(), Output ); - // Copy formatted result - Output = std::copy( ::network_boost::begin(M.format_result()), ::network_boost::end(M.format_result()), Output ); - - // Proceed to the next match - LastMatch=M.end(); - M=Finder( LastMatch, ::network_boost::end(Input) ); - } - - // Copy the rest of the sequence - Output = std::copy( LastMatch, ::network_boost::end(Input), Output ); - - return Output; - } - - 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 ) - { - if( ::network_boost::algorithm::detail::check_find_result(Input, FindResult) ) { - return ::network_boost::algorithm::detail::find_format_all_copy_impl2( - Output, - Input, - Finder, - Formatter, - FindResult, - Formatter(FindResult) ); - } else { - return std::copy( ::network_boost::begin(Input), ::network_boost::end(Input), Output ); - } - } - - // find_format_all_copy implementation ----------------------------------------------// - - 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=::network_boost::begin(Input); - - // Output temporary - InputT Output; - - // Iterate through all matches - while( M ) - { - // Copy the beginning of the sequence - network_boost::algorithm::detail::insert( Output, ::network_boost::end(Output), LastMatch, M.begin() ); - // Copy formatted result - network_boost::algorithm::detail::insert( Output, ::network_boost::end(Output), M.format_result() ); - - // Proceed to the next match - LastMatch=M.end(); - M=Finder( LastMatch, ::network_boost::end(Input) ); - } - - // Copy the rest of the sequence - ::network_boost::algorithm::detail::insert( Output, ::network_boost::end(Output), LastMatch, ::network_boost::end(Input) ); - - return Output; - } - - 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) - { - if( ::network_boost::algorithm::detail::check_find_result(Input, FindResult) ) { - return ::network_boost::algorithm::detail::find_format_all_copy_impl2( - Input, - Finder, - Formatter, - FindResult, - Formatter(FindResult) ); - } else { - return Input; - } - } - - // find_format_all implementation ------------------------------------------------// - - 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=::network_boost::begin(Input); - input_iterator_type SearchIt=::network_boost::begin(Input); - - while( M ) - { - // process the segment - InsertIt=process_segment( - Storage, - Input, - InsertIt, - SearchIt, - M.begin() ); - - // Adjust search iterator - SearchIt=M.end(); - - // Copy formatted replace to the storage - ::network_boost::algorithm::detail::copy_to_storage( Storage, M.format_result() ); - - // Find range for a next match - M=Finder( SearchIt, ::network_boost::end(Input) ); - } - - // process the last segment - InsertIt=::network_boost::algorithm::detail::process_segment( - Storage, - Input, - InsertIt, - SearchIt, - ::network_boost::end(Input) ); - - if ( Storage.empty() ) - { - // Truncate input - ::network_boost::algorithm::detail::erase( Input, InsertIt, ::network_boost::end(Input) ); - } - else - { - // Copy remaining data to the end of input - ::network_boost::algorithm::detail::insert( Input, ::network_boost::end(Input), Storage.begin(), Storage.end() ); - } - } - - template< - typename InputT, - typename FinderT, - typename FormatterT, - typename FindResultT > - inline void find_format_all_impl( - InputT& Input, - FinderT Finder, - FormatterT Formatter, - FindResultT FindResult) - { - if( ::network_boost::algorithm::detail::check_find_result(Input, FindResult) ) { - ::network_boost::algorithm::detail::find_format_all_impl2( - Input, - Finder, - Formatter, - FindResult, - Formatter(FindResult) ); - } - } - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - -#endif // BOOST_STRING_FIND_FORMAT_ALL_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/find_format_store.hpp b/src/boost/algorithm/string/detail/find_format_store.hpp deleted file mode 100644 index 2ad2480f..00000000 --- a/src/boost/algorithm/string/detail/find_format_store.hpp +++ /dev/null @@ -1,89 +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 network_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); - if( !this->empty() ) { - 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; - }; - - template - bool check_find_result(InputT&, FindResultT& FindResult) - { - typedef BOOST_STRING_TYPENAME - range_const_iterator::type input_iterator_type; - iterator_range ResultRange(FindResult); - return !ResultRange.empty(); - } - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -#pragma warning(pop) -#endif - } // namespace detail - } // namespace algorithm -} // namespace network_boost - -#endif // BOOST_STRING_FIND_FORMAT_STORE_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/find_iterator.hpp b/src/boost/algorithm/string/detail/find_iterator.hpp deleted file mode 100644 index 5528a383..00000000 --- a/src/boost/algorithm/string/detail/find_iterator.hpp +++ /dev/null @@ -1,87 +0,0 @@ -// Boost string_algo library find_iterator.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_ITERATOR_DETAIL_HPP -#define BOOST_STRING_FIND_ITERATOR_DETAIL_HPP - -#include -#include -#include -#include -#include - -namespace network_boost { - namespace algorithm { - namespace detail { - -// find_iterator base -----------------------------------------------// - - // Find iterator base - template - class find_iterator_base - { - protected: - // typedefs - typedef IteratorT input_iterator_type; - typedef iterator_range match_type; - typedef function2< - match_type, - input_iterator_type, - input_iterator_type> finder_type; - - protected: - // Protected construction/destruction - - // Default constructor - find_iterator_base() {}; - // Copy construction - find_iterator_base( const find_iterator_base& Other ) : - m_Finder(Other.m_Finder) {} - - // Constructor - template - find_iterator_base( FinderT Finder, int ) : - m_Finder(Finder) {} - - // Destructor - ~find_iterator_base() {} - - // Find operation - match_type do_find( - input_iterator_type Begin, - input_iterator_type End ) const - { - if (!m_Finder.empty()) - { - return m_Finder(Begin,End); - } - else - { - return match_type(End,End); - } - } - - // Check - bool is_null() const - { - return m_Finder.empty(); - } - - private: - // Finder - finder_type m_Finder; - }; - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_FIND_ITERATOR_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/finder.hpp b/src/boost/algorithm/string/detail/finder.hpp deleted file mode 100644 index 7f6a5139..00000000 --- a/src/boost/algorithm/string/detail/finder.hpp +++ /dev/null @@ -1,639 +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 network_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(::network_boost::begin(Search), ::network_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( network_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 subsequence 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(::network_boost::begin(Search), ::network_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( network_boost::empty(m_Search) ) - return result_type( End, End ); - - typedef BOOST_STRING_TYPENAME network_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 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( ::network_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(::network_boost::begin(Search), ::network_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 iterator_range result_type; - - // Sanity check - if( network_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( ::network_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 iterator_range result_type; - - // Sanity check - if( network_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, ::network_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 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 network_boost::detail:: - iterator_traits::iterator_category category; - - return ::network_boost::algorithm::detail::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 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 network_boost::detail:: - iterator_traits::iterator_category category; - - return ::network_boost::algorithm::detail::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 ::network_boost::algorithm::detail::find_head_impl( Begin, End, m_N ); - } - else - { - iterator_range Res= - ::network_boost::algorithm::detail::find_tail_impl( Begin, End, -m_N ); - - return ::network_boost::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 ::network_boost::algorithm::detail::find_tail_impl( Begin, End, m_N ); - } - else - { - iterator_range Res= - ::network_boost::algorithm::detail::find_head_impl( Begin, End, -m_N ); - - return ::network_boost::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); -#else - return m_Range; -#endif - } - - private: - iterator_range m_Range; - }; - - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - -#endif // BOOST_STRING_FINDER_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/finder_regex.hpp b/src/boost/algorithm/string/detail/finder_regex.hpp deleted file mode 100644 index 018f3d25..00000000 --- a/src/boost/algorithm/string/detail/finder_regex.hpp +++ /dev/null @@ -1,122 +0,0 @@ -// Boost string_algo library find_regex.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_FINDER_REGEX_DETAIL_HPP -#define BOOST_STRING_FINDER_REGEX_DETAIL_HPP - -#include -#include - -#include -#include -#include - -namespace network_boost { - namespace algorithm { - namespace detail { - -// regex find functor -----------------------------------------------// - - // regex search result - template - struct regex_search_result : - public iterator_range - { - typedef regex_search_result type; - typedef iterator_range base_type; - typedef BOOST_STRING_TYPENAME base_type::value_type value_type; - typedef BOOST_STRING_TYPENAME base_type::difference_type difference_type; - typedef BOOST_STRING_TYPENAME base_type::const_iterator const_iterator; - typedef BOOST_STRING_TYPENAME base_type::iterator iterator; - typedef network_boost::match_results match_results_type; - - // Construction - - // Construction from the match result - regex_search_result( const match_results_type& MatchResults ) : - base_type( MatchResults[0].first, MatchResults[0].second ), - m_MatchResults( MatchResults ) {} - - // Construction of empty match. End iterator has to be specified - regex_search_result( IteratorT End ) : - base_type( End, End ) {} - - regex_search_result( const regex_search_result& Other ) : - base_type( Other.begin(), Other.end() ), - m_MatchResults( Other.m_MatchResults ) {} - - // Assignment - regex_search_result& operator=( const regex_search_result& Other ) - { - base_type::operator=( Other ); - m_MatchResults=Other.m_MatchResults; - return *this; - } - - // Match result retrieval - const match_results_type& match_results() const - { - return m_MatchResults; - } - - private: - // Saved match result - match_results_type m_MatchResults; - }; - - // find_regex - /* - Regex based search functor - */ - template - struct find_regexF - { - typedef RegExT regex_type; - typedef const RegExT& regex_reference_type; - - // Construction - find_regexF( regex_reference_type Rx, match_flag_type MatchFlags = match_default ) : - m_Rx(Rx), m_MatchFlags(MatchFlags) {} - - // Operation - template< typename ForwardIteratorT > - regex_search_result - operator()( - ForwardIteratorT Begin, - ForwardIteratorT End ) const - { - typedef ForwardIteratorT input_iterator_type; - typedef regex_search_result result_type; - - // instantiate match result - match_results result; - // search for a match - if ( ::network_boost::regex_search( Begin, End, result, m_Rx, m_MatchFlags ) ) - { - // construct a result - return result_type( result ); - } - else - { - // empty result - return result_type( End ); - } - } - - private: - regex_reference_type m_Rx; // Regexp - match_flag_type m_MatchFlags; // match flags - }; - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - -#endif // BOOST_STRING_FIND_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/formatter.hpp b/src/boost/algorithm/string/detail/formatter.hpp deleted file mode 100644 index 957fb9c0..00000000 --- a/src/boost/algorithm/string/detail/formatter.hpp +++ /dev/null @@ -1,119 +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 network_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(::network_boost::begin(Format), ::network_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(::network_boost::begin(Replace), ::network_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(); - } - }; - -// dissect format functor ----------------------------------------------------// - - // dissect format functor - template - struct dissect_formatF - { - public: - // Construction - dissect_formatF(FinderT Finder) : - m_Finder(Finder) {} - - // Operation - template - inline iterator_range< - BOOST_STRING_TYPENAME range_const_iterator::type> - operator()(const RangeT& Replace) const - { - return m_Finder(::network_boost::begin(Replace), ::network_boost::end(Replace)); - } - - private: - FinderT m_Finder; - }; - - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - -#endif // BOOST_STRING_FORMATTER_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/formatter_regex.hpp b/src/boost/algorithm/string/detail/formatter_regex.hpp deleted file mode 100644 index c7006cbb..00000000 --- a/src/boost/algorithm/string/detail/formatter_regex.hpp +++ /dev/null @@ -1,61 +0,0 @@ -// Boost string_algo library formatter_regex.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_REGEX_DETAIL_HPP -#define BOOST_STRING_FORMATTER_REGEX_DETAIL_HPP - -#include -#include -#include -#include - -namespace network_boost { - namespace algorithm { - namespace detail { - -// regex format functor -----------------------------------------// - - // regex format functor - template - struct regex_formatF - { - private: - typedef StringT result_type; - typedef BOOST_STRING_TYPENAME StringT::value_type char_type; - - public: - // Construction - regex_formatF( const StringT& Fmt, match_flag_type Flags=format_default ) : - m_Fmt(Fmt), m_Flags( Flags ) {} - - template - result_type operator()( - const regex_search_result& Replace ) const - { - if ( Replace.empty() ) - { - return result_type(); - } - else - { - return Replace.match_results().format( m_Fmt, m_Flags ); - } - } - private: - const StringT& m_Fmt; - match_flag_type m_Flags; - }; - - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - -#endif // BOOST_STRING_FORMATTER_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/predicate.hpp b/src/boost/algorithm/string/detail/predicate.hpp deleted file mode 100644 index bbc4f1ef..00000000 --- a/src/boost/algorithm/string/detail/predicate.hpp +++ /dev/null @@ -1,77 +0,0 @@ -// Boost string_algo library predicate.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_PREDICATE_DETAIL_HPP -#define BOOST_STRING_PREDICATE_DETAIL_HPP - -#include -#include - -namespace network_boost { - namespace algorithm { - namespace detail { - -// ends_with predicate implementation ----------------------------------// - - template< - typename ForwardIterator1T, - typename ForwardIterator2T, - typename PredicateT> - inline bool ends_with_iter_select( - ForwardIterator1T Begin, - ForwardIterator1T End, - ForwardIterator2T SubBegin, - ForwardIterator2T SubEnd, - PredicateT Comp, - std::bidirectional_iterator_tag) - { - ForwardIterator1T it=End; - ForwardIterator2T pit=SubEnd; - for(;it!=Begin && pit!=SubBegin;) - { - if( !(Comp(*(--it),*(--pit))) ) - return false; - } - - return pit==SubBegin; - } - - template< - typename ForwardIterator1T, - typename ForwardIterator2T, - typename PredicateT> - inline bool ends_with_iter_select( - ForwardIterator1T Begin, - ForwardIterator1T End, - ForwardIterator2T SubBegin, - ForwardIterator2T SubEnd, - PredicateT Comp, - std::forward_iterator_tag) - { - if ( SubBegin==SubEnd ) - { - // empty subsequence check - return true; - } - - iterator_range Result - =last_finder( - ::network_boost::make_iterator_range(SubBegin, SubEnd), - Comp)(Begin, End); - - return !Result.empty() && Result.end()==End; - } - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_PREDICATE_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/replace_storage.hpp b/src/boost/algorithm/string/detail/replace_storage.hpp deleted file mode 100644 index a5c1870b..00000000 --- a/src/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 network_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(), ::network_boost::begin(What), ::network_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=::network_boost::algorithm::detail::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 - ::network_boost::algorithm::detail::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 network_boost - -#endif // BOOST_STRING_REPLACE_STORAGE_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/sequence.hpp b/src/boost/algorithm/string/detail/sequence.hpp deleted file mode 100644 index ebc3e087..00000000 --- a/src/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 network_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 ) - { - ::network_boost::algorithm::detail::insert( Input, At, ::network_boost::begin(Insert), ::network_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< - network_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) - { - ::network_boost::algorithm::detail::replace( Input, From, To, ::network_boost::begin(Insert), ::network_boost::end(Insert) ); - } - else - { - ::network_boost::algorithm::detail::insert( Input, From, ::network_boost::begin(Insert), ::network_boost::end(Insert) ); - } - } - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_DETAIL_SEQUENCE_HPP diff --git a/src/boost/algorithm/string/detail/trim.hpp b/src/boost/algorithm/string/detail/trim.hpp deleted file mode 100644 index c9d76ed1..00000000 --- a/src/boost/algorithm/string/detail/trim.hpp +++ /dev/null @@ -1,95 +0,0 @@ -// Boost string_algo library trim.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_TRIM_DETAIL_HPP -#define BOOST_STRING_TRIM_DETAIL_HPP - -#include -#include - -namespace network_boost { - namespace algorithm { - namespace detail { - -// trim iterator helper -----------------------------------------------// - - template< typename ForwardIteratorT, typename PredicateT > - inline ForwardIteratorT trim_end_iter_select( - ForwardIteratorT InBegin, - ForwardIteratorT InEnd, - PredicateT IsSpace, - std::forward_iterator_tag ) - { - ForwardIteratorT TrimIt=InBegin; - - for( ForwardIteratorT It=InBegin; It!=InEnd; ++It ) - { - if ( !IsSpace(*It) ) - { - TrimIt=It; - ++TrimIt; - } - } - - return TrimIt; - } - - template< typename ForwardIteratorT, typename PredicateT > - inline ForwardIteratorT trim_end_iter_select( - ForwardIteratorT InBegin, - ForwardIteratorT InEnd, - PredicateT IsSpace, - std::bidirectional_iterator_tag ) - { - for( ForwardIteratorT It=InEnd; It!=InBegin; ) - { - if ( !IsSpace(*(--It)) ) - return ++It; - } - - return InBegin; - } - // Search for first non matching character from the beginning of the sequence - template< typename ForwardIteratorT, typename PredicateT > - inline ForwardIteratorT trim_begin( - ForwardIteratorT InBegin, - ForwardIteratorT InEnd, - PredicateT IsSpace ) - { - ForwardIteratorT It=InBegin; - for(; It!=InEnd; ++It ) - { - if (!IsSpace(*It)) - return It; - } - - return It; - } - - // Search for first non matching character from the end of the sequence - template< typename ForwardIteratorT, typename PredicateT > - inline ForwardIteratorT trim_end( - ForwardIteratorT InBegin, - ForwardIteratorT InEnd, - PredicateT IsSpace ) - { - typedef BOOST_STRING_TYPENAME network_boost::detail:: - iterator_traits::iterator_category category; - - return ::network_boost::algorithm::detail::trim_end_iter_select( InBegin, InEnd, IsSpace, category() ); - } - - - } // namespace detail - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_TRIM_DETAIL_HPP diff --git a/src/boost/algorithm/string/detail/util.hpp b/src/boost/algorithm/string/detail/util.hpp deleted file mode 100644 index 24154391..00000000 --- a/src/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 network_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 network_boost - - -#endif // BOOST_STRING_UTIL_DETAIL_HPP diff --git a/src/boost/algorithm/string/erase.hpp b/src/boost/algorithm/string/erase.hpp deleted file mode 100644 index c11be1e5..00000000 --- a/src/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 network_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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::range_finder(SearchRange), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::range_finder(SearchRange), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::range_finder(SearchRange), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::empty_formatter(Input) ); - } - - //! Erase first algorithm - /*! - \overload - */ - template - inline SequenceT erase_first_copy( - const SequenceT& Input, - const RangeT& Search ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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() ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::last_finder(Search), - ::network_boost::algorithm::empty_formatter(Input) ); - } - - //! Erase last algorithm - /*! - \overload - */ - template - inline SequenceT erase_last_copy( - const SequenceT& Input, - const RangeT& Search ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::last_finder(Search), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::last_finder(Search), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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() ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::nth_finder(Search, Nth), - ::network_boost::algorithm::empty_formatter(Input) ); - } - - //! Erase nth algorithm - /*! - \overload - */ - template - inline SequenceT erase_nth_copy( - const SequenceT& Input, - const RangeT& Search, - int Nth ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::nth_finder(Search, Nth), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::nth_finder(Search, Nth), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::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() ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_all_copy( - Output, - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::empty_formatter(Input) ); - } - - //! Erase all algorithm - /*! - \overload - */ - template - inline SequenceT erase_all_copy( - const SequenceT& Input, - const RangeT& Search ) - { - return ::network_boost::algorithm::find_format_all_copy( - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format_all( - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_all_copy( - Output, - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_all_copy( - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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() ) - { - ::network_boost::algorithm::find_format_all( - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::head_finder(N), - ::network_boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase head algorithm - /*! - \overload - */ - template - inline SequenceT erase_head_copy( - const SequenceT& Input, - int N ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::head_finder(N), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::head_finder(N), - ::network_boost::algorithm::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 tail. - 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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::tail_finder(N), - ::network_boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase tail algorithm - /*! - \overload - */ - template - inline SequenceT erase_tail_copy( - const SequenceT& Input, - int N ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::tail_finder(N), - ::network_boost::algorithm::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 tail - 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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::tail_finder(N), - ::network_boost::algorithm::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 network_boost - - -#endif // BOOST_ERASE_HPP diff --git a/src/boost/algorithm/string/find.hpp b/src/boost/algorithm/string/find.hpp deleted file mode 100644 index 3852573d..00000000 --- a/src/boost/algorithm/string/find.hpp +++ /dev/null @@ -1,334 +0,0 @@ -// Boost string_algo library find.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_HPP -#define BOOST_STRING_FIND_HPP - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines a set of find algorithms. The algorithms are searching - for a substring of the input. The result is given as an \c iterator_range - delimiting the substring. -*/ - -namespace network_boost { - namespace algorithm { - -// Generic find -----------------------------------------------// - - //! Generic find algorithm - /*! - Search the input using the given finder. - - \param Input A string which will be searched. - \param Finder Finder object used for searching. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c RangeT::iterator or - \c RangeT::const_iterator, depending on the constness of - the input parameter. - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find( - RangeT& Input, - const FinderT& Finder) - { - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - - return Finder(::network_boost::begin(lit_input),::network_boost::end(lit_input)); - } - -// find_first -----------------------------------------------// - - //! Find first algorithm - /*! - Search for the first occurrence of the substring in the input. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c RangeT::iterator or - \c RangeT::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_first( - Range1T& Input, - const Range2T& Search) - { - return ::network_boost::algorithm::find(Input, ::network_boost::algorithm::first_finder(Search)); - } - - //! Find first algorithm ( case insensitive ) - /*! - Search for the first occurrence of the substring in the input. - Searching is case insensitive. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \param Loc A locale used for case insensitive comparison - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - ifind_first( - Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale()) - { - return ::network_boost::algorithm::find(Input, ::network_boost::algorithm::first_finder(Search,is_iequal(Loc))); - } - -// find_last -----------------------------------------------// - - //! Find last algorithm - /*! - Search for the last occurrence of the substring in the input. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_last( - Range1T& Input, - const Range2T& Search) - { - return ::network_boost::algorithm::find(Input, ::network_boost::algorithm::last_finder(Search)); - } - - //! Find last algorithm ( case insensitive ) - /*! - Search for the last match a string in the input. - Searching is case insensitive. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \param Loc A locale used for case insensitive comparison - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - ifind_last( - Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale()) - { - return ::network_boost::algorithm::find(Input, ::network_boost::algorithm::last_finder(Search, is_iequal(Loc))); - } - -// find_nth ----------------------------------------------------------------------// - - //! Find n-th algorithm - /*! - Search for the n-th (zero-indexed) occurrence of the substring in the - input. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \param Nth An index (zero-indexed) of the match to be found. - For negative N, the matches are counted from the end of string. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_nth( - Range1T& Input, - const Range2T& Search, - int Nth) - { - return ::network_boost::algorithm::find(Input, ::network_boost::algorithm::nth_finder(Search,Nth)); - } - - //! Find n-th algorithm ( case insensitive ). - /*! - Search for the n-th (zero-indexed) occurrence of the substring in the - input. Searching is case insensitive. - - \param Input A string which will be searched. - \param Search A substring to be searched for. - \param Nth An index (zero-indexed) of the match to be found. - For negative N, the matches are counted from the end of string. - \param Loc A locale used for case insensitive comparison - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - ifind_nth( - Range1T& Input, - const Range2T& Search, - int Nth, - const std::locale& Loc=std::locale()) - { - return ::network_boost::algorithm::find(Input, ::network_boost::algorithm::nth_finder(Search,Nth,is_iequal(Loc))); - } - -// find_head ----------------------------------------------------------------------// - - //! Find head algorithm - /*! - Get the head of the input. Head is a prefix of the string of the - given size. If the input is shorter then required, whole input is considered - to be the head. - - \param Input An input string - \param N Length of the head - For N>=0, at most N characters are extracted. - For N<0, at most size(Input)-|N| characters are extracted. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c Range1T::iterator or - \c Range1T::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_head( - RangeT& Input, - int N) - { - return ::network_boost::algorithm::find(Input, ::network_boost::algorithm::head_finder(N)); - } - -// find_tail ----------------------------------------------------------------------// - - //! Find tail algorithm - /*! - Get the tail of the input. Tail is a suffix of the string of the - given size. If the input is shorter then required, whole input is considered - to be the tail. - - \param Input An input string - \param N Length of the tail. - For N>=0, at most N characters are extracted. - For N<0, at most size(Input)-|N| characters are extracted. - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c RangeT::iterator or - \c RangeT::const_iterator, depending on the constness of - the input parameter. - - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_tail( - RangeT& Input, - int N) - { - return ::network_boost::algorithm::find(Input, ::network_boost::algorithm::tail_finder(N)); - } - -// find_token --------------------------------------------------------------------// - - //! Find token algorithm - /*! - Look for a given token in the string. Token is a character that matches the - given predicate. - If the "token compress mode" is enabled, adjacent tokens are considered to be one match. - - \param Input A input string. - \param Pred A unary predicate to identify a token - \param eCompress Enable/Disable compressing of adjacent tokens - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c RangeT::iterator or - \c RangeT::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type> - find_token( - RangeT& Input, - PredicateT Pred, - token_compress_mode_type eCompress=token_compress_off) - { - return ::network_boost::algorithm::find(Input, ::network_boost::algorithm::token_finder(Pred, eCompress)); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::find; - using algorithm::find_first; - using algorithm::ifind_first; - using algorithm::find_last; - using algorithm::ifind_last; - using algorithm::find_nth; - using algorithm::ifind_nth; - using algorithm::find_head; - using algorithm::find_tail; - using algorithm::find_token; - -} // namespace network_boost - - -#endif // BOOST_STRING_FIND_HPP diff --git a/src/boost/algorithm/string/find_format.hpp b/src/boost/algorithm/string/find_format.hpp deleted file mode 100644 index 058066f4..00000000 --- a/src/boost/algorithm/string/find_format.hpp +++ /dev/null @@ -1,287 +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 network_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 - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - - return detail::find_format_copy_impl( - Output, - lit_input, - Formatter, - Finder( ::network_boost::begin(lit_input), ::network_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 - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - return detail::find_format_copy_impl( - Input, - Formatter, - Finder(::network_boost::begin(Input), ::network_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 - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - detail::find_format_impl( - Input, - Formatter, - Finder(::network_boost::begin(Input), ::network_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 - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - - return detail::find_format_all_copy_impl( - Output, - lit_input, - Finder, - Formatter, - Finder(::network_boost::begin(lit_input), ::network_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 - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - return detail::find_format_all_copy_impl( - Input, - Finder, - Formatter, - Finder( ::network_boost::begin(Input), ::network_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 - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_const_iterator::type> - )); - BOOST_CONCEPT_ASSERT(( - FormatterConcept< - FormatterT, - FinderT,BOOST_STRING_TYPENAME range_const_iterator::type> - )); - - detail::find_format_all_impl( - Input, - Finder, - Formatter, - Finder(::network_boost::begin(Input), ::network_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 network_boost - - -#endif // BOOST_STRING_FIND_FORMAT_HPP diff --git a/src/boost/algorithm/string/find_iterator.hpp b/src/boost/algorithm/string/find_iterator.hpp deleted file mode 100644 index abc90932..00000000 --- a/src/boost/algorithm/string/find_iterator.hpp +++ /dev/null @@ -1,388 +0,0 @@ -// Boost string_algo library find_iterator.hpp header file ---------------------------// - -// Copyright Pavol Droba 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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_FIND_ITERATOR_HPP -#define BOOST_STRING_FIND_ITERATOR_HPP - -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -/*! \file - Defines find iterator classes. Find iterator repeatedly applies a Finder - to the specified input string to search for matches. Dereferencing - the iterator yields the current match or a range between the last and the current - match depending on the iterator used. -*/ - -namespace network_boost { - namespace algorithm { - -// find_iterator -----------------------------------------------// - - //! find_iterator - /*! - Find iterator encapsulates a Finder and allows - for incremental searching in a string. - Each increment moves the iterator to the next match. - - Find iterator is a readable forward traversal iterator. - - Dereferencing the iterator yields an iterator_range delimiting - the current match. - */ - template - class find_iterator : - public iterator_facade< - find_iterator, - const iterator_range, - forward_traversal_tag >, - private detail::find_iterator_base - { - private: - // facade support - friend class ::network_boost::iterator_core_access; - - private: - // typedefs - - typedef detail::find_iterator_base base_type; - typedef BOOST_STRING_TYPENAME - base_type::input_iterator_type input_iterator_type; - typedef BOOST_STRING_TYPENAME - base_type::match_type match_type; - - public: - //! Default constructor - /*! - Construct null iterator. All null iterators are equal. - - \post eof()==true - */ - find_iterator() {} - - //! Copy constructor - /*! - Construct a copy of the find_iterator - */ - find_iterator( const find_iterator& Other ) : - base_type(Other), - m_Match(Other.m_Match), - m_End(Other.m_End) {} - - //! Constructor - /*! - Construct new find_iterator for a given finder - and a range. - */ - template - find_iterator( - IteratorT Begin, - IteratorT End, - FinderT Finder ) : - detail::find_iterator_base(Finder,0), - m_Match(Begin,Begin), - m_End(End) - { - increment(); - } - - //! Constructor - /*! - Construct new find_iterator for a given finder - and a range. - */ - template - find_iterator( - RangeT& Col, - FinderT Finder ) : - detail::find_iterator_base(Finder,0) - { - iterator_range::type> lit_col(::network_boost::as_literal(Col)); - m_Match=::network_boost::make_iterator_range(::network_boost::begin(lit_col), ::network_boost::begin(lit_col)); - m_End=::network_boost::end(lit_col); - - increment(); - } - - private: - // iterator operations - - // dereference - const match_type& dereference() const - { - return m_Match; - } - - // increment - void increment() - { - m_Match=this->do_find(m_Match.end(),m_End); - } - - // comparison - bool equal( const find_iterator& Other ) const - { - bool bEof=eof(); - bool bOtherEof=Other.eof(); - - return bEof || bOtherEof ? bEof==bOtherEof : - ( - m_Match==Other.m_Match && - m_End==Other.m_End - ); - } - - public: - // operations - - //! Eof check - /*! - Check the eof condition. Eof condition means that - there is nothing more to be searched i.e. find_iterator - is after the last match. - */ - bool eof() const - { - return - this->is_null() || - ( - m_Match.begin() == m_End && - m_Match.end() == m_End - ); - } - - private: - // Attributes - match_type m_Match; - input_iterator_type m_End; - }; - - //! find iterator construction helper - /*! - * Construct a find iterator to iterate through the specified string - */ - template - inline find_iterator< - BOOST_STRING_TYPENAME range_iterator::type> - make_find_iterator( - RangeT& Collection, - FinderT Finder) - { - return find_iterator::type>( - Collection, Finder); - } - -// split iterator -----------------------------------------------// - - //! split_iterator - /*! - Split iterator encapsulates a Finder and allows - for incremental searching in a string. - Unlike the find iterator, split iterator iterates - through gaps between matches. - - Find iterator is a readable forward traversal iterator. - - Dereferencing the iterator yields an iterator_range delimiting - the current match. - */ - template - class split_iterator : - public iterator_facade< - split_iterator, - const iterator_range, - forward_traversal_tag >, - private detail::find_iterator_base - { - private: - // facade support - friend class ::network_boost::iterator_core_access; - - private: - // typedefs - - typedef detail::find_iterator_base base_type; - typedef BOOST_STRING_TYPENAME - base_type::input_iterator_type input_iterator_type; - typedef BOOST_STRING_TYPENAME - base_type::match_type match_type; - - public: - //! Default constructor - /*! - Construct null iterator. All null iterators are equal. - - \post eof()==true - */ - split_iterator() : - m_Next(), - m_End(), - m_bEof(true) - {} - - //! Copy constructor - /*! - Construct a copy of the split_iterator - */ - split_iterator( const split_iterator& Other ) : - base_type(Other), - m_Match(Other.m_Match), - m_Next(Other.m_Next), - m_End(Other.m_End), - m_bEof(Other.m_bEof) - {} - - //! Constructor - /*! - Construct new split_iterator for a given finder - and a range. - */ - template - split_iterator( - IteratorT Begin, - IteratorT End, - FinderT Finder ) : - detail::find_iterator_base(Finder,0), - m_Match(Begin,Begin), - m_Next(Begin), - m_End(End), - m_bEof(false) - { - // force the correct behavior for empty sequences and yield at least one token - if(Begin!=End) - { - increment(); - } - } - //! Constructor - /*! - Construct new split_iterator for a given finder - and a collection. - */ - template - split_iterator( - RangeT& Col, - FinderT Finder ) : - detail::find_iterator_base(Finder,0), - m_bEof(false) - { - iterator_range::type> lit_col(::network_boost::as_literal(Col)); - m_Match=make_iterator_range(::network_boost::begin(lit_col), ::network_boost::begin(lit_col)); - m_Next=::network_boost::begin(lit_col); - m_End=::network_boost::end(lit_col); - - // force the correct behavior for empty sequences and yield at least one token - if(m_Next!=m_End) - { - increment(); - } - } - - - private: - // iterator operations - - // dereference - const match_type& dereference() const - { - return m_Match; - } - - // increment - void increment() - { - match_type FindMatch=this->do_find( m_Next, m_End ); - - if(FindMatch.begin()==m_End && FindMatch.end()==m_End) - { - if(m_Match.end()==m_End) - { - // Mark iterator as eof - m_bEof=true; - } - } - - m_Match=match_type( m_Next, FindMatch.begin() ); - m_Next=FindMatch.end(); - } - - // comparison - bool equal( const split_iterator& Other ) const - { - bool bEof=eof(); - bool bOtherEof=Other.eof(); - - return bEof || bOtherEof ? bEof==bOtherEof : - ( - m_Match==Other.m_Match && - m_Next==Other.m_Next && - m_End==Other.m_End - ); - } - - public: - // operations - - //! Eof check - /*! - Check the eof condition. Eof condition means that - there is nothing more to be searched i.e. find_iterator - is after the last match. - */ - bool eof() const - { - return this->is_null() || m_bEof; - } - - private: - // Attributes - match_type m_Match; - input_iterator_type m_Next; - input_iterator_type m_End; - bool m_bEof; - }; - - //! split iterator construction helper - /*! - * Construct a split iterator to iterate through the specified collection - */ - template - inline split_iterator< - BOOST_STRING_TYPENAME range_iterator::type> - make_split_iterator( - RangeT& Collection, - FinderT Finder) - { - return split_iterator::type>( - Collection, Finder); - } - - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::find_iterator; - using algorithm::make_find_iterator; - using algorithm::split_iterator; - using algorithm::make_split_iterator; - -} // namespace network_boost - - -#endif // BOOST_STRING_FIND_ITERATOR_HPP diff --git a/src/boost/algorithm/string/finder.hpp b/src/boost/algorithm/string/finder.hpp deleted file mode 100644 index 282a12ac..00000000 --- a/src/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 network_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>( ::network_boost::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>( ::network_boost::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>( ::network_boost::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>( ::network_boost::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>( ::network_boost::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>( ::network_boost::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 network_boost - - -#endif // BOOST_STRING_FINDER_HPP diff --git a/src/boost/algorithm/string/formatter.hpp b/src/boost/algorithm/string/formatter.hpp deleted file mode 100644 index 4871035e..00000000 --- a/src/boost/algorithm/string/formatter.hpp +++ /dev/null @@ -1,120 +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 network_boost { - namespace algorithm { - -// generic formatters ---------------------------------------------------------------// - - //! Constant formatter - /*! - Constructs a \c const_formatter. Const formatter always returns - the same value, regardless of the parameter. - - \param Format A predefined value used as a result for formatting - \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> >(::network_boost::as_literal(Format)); - } - - //! Identity formatter - /*! - Constructs an \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 - /*! - Constructs an \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>(); - } - - //! Empty formatter - /*! - Constructs a \c dissect_formatter. Dissect formatter uses a specified finder - to extract a portion of the formatted sequence. The first finder's match is returned - as a result - - \param Finder a finder used to select a portion of the formatted sequence - \return An instance of the \c dissect_formatter object. - */ - template - inline detail::dissect_formatF< FinderT > - dissect_formatter(const FinderT& Finder) - { - return detail::dissect_formatF(Finder); - } - - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::const_formatter; - using algorithm::identity_formatter; - using algorithm::empty_formatter; - using algorithm::dissect_formatter; - -} // namespace network_boost - - -#endif // BOOST_FORMATTER_HPP diff --git a/src/boost/algorithm/string/iter_find.hpp b/src/boost/algorithm/string/iter_find.hpp deleted file mode 100644 index 6de92953..00000000 --- a/src/boost/algorithm/string/iter_find.hpp +++ /dev/null @@ -1,193 +0,0 @@ -// Boost string_algo library iter_find.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_ITER_FIND_HPP -#define BOOST_STRING_ITER_FIND_HPP - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines generic split algorithms. Split algorithms can be - used to divide a sequence into several part according - to a given criteria. Result is given as a 'container - of containers' where elements are copies or references - to extracted parts. - - There are two algorithms provided. One iterates over matching - substrings, the other one over the gaps between these matches. -*/ - -namespace network_boost { - namespace algorithm { - -// iterate find ---------------------------------------------------// - - //! Iter find algorithm - /*! - This algorithm executes a given finder in iteration on the input, - until the end of input is reached, or no match is found. - Iteration is done using built-in find_iterator, so the real - searching is performed only when needed. - In each iteration new match is found and added to the result. - - \param Result A 'container container' to contain the result of search. - Both outer and inner container must have constructor taking a pair - of iterators as an argument. - Typical type of the result is - \c std::vector> - (each element of such a vector will container a range delimiting - a match). - \param Input A container which will be searched. - \param Finder A Finder object used for searching - \return A reference to the result - - \note Prior content of the result will be overwritten. - */ - template< - typename SequenceSequenceT, - typename RangeT, - typename FinderT > - inline SequenceSequenceT& - iter_find( - SequenceSequenceT& Result, - RangeT& Input, - FinderT Finder ) - { - BOOST_CONCEPT_ASSERT(( - FinderConcept< - FinderT, - BOOST_STRING_TYPENAME range_iterator::type> - )); - - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - - typedef BOOST_STRING_TYPENAME - range_iterator::type input_iterator_type; - typedef find_iterator find_iterator_type; - typedef detail::copy_iterator_rangeF< - BOOST_STRING_TYPENAME - range_value::type, - input_iterator_type> copy_range_type; - - input_iterator_type InputEnd=::network_boost::end(lit_input); - - typedef transform_iterator - transform_iter_type; - - transform_iter_type itBegin= - ::network_boost::make_transform_iterator( - find_iterator_type( ::network_boost::begin(lit_input), InputEnd, Finder ), - copy_range_type()); - - transform_iter_type itEnd= - ::network_boost::make_transform_iterator( - find_iterator_type(), - copy_range_type()); - - SequenceSequenceT Tmp(itBegin, itEnd); - - Result.swap(Tmp); - return Result; - } - -// iterate split ---------------------------------------------------// - - //! Split find algorithm - /*! - This algorithm executes a given finder in iteration on the input, - until the end of input is reached, or no match is found. - Iteration is done using built-in find_iterator, so the real - searching is performed only when needed. - Each match is used as a separator of segments. These segments are then - returned in the result. - - \param Result A 'container container' to contain the result of search. - Both outer and inner container must have constructor taking a pair - of iterators as an argument. - Typical type of the result is - \c std::vector> - (each element of such a vector will container a range delimiting - a match). - \param Input A container which will be searched. - \param Finder A finder object used for searching - \return A reference to the result - - \note Prior content of the result will be overwritten. - */ - template< - typename SequenceSequenceT, - typename RangeT, - typename FinderT > - inline SequenceSequenceT& - iter_split( - SequenceSequenceT& Result, - RangeT& Input, - FinderT Finder ) - { - BOOST_CONCEPT_ASSERT(( - FinderConcept::type> - )); - - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - - typedef BOOST_STRING_TYPENAME - range_iterator::type input_iterator_type; - typedef split_iterator find_iterator_type; - typedef detail::copy_iterator_rangeF< - BOOST_STRING_TYPENAME - range_value::type, - input_iterator_type> copy_range_type; - - input_iterator_type InputEnd=::network_boost::end(lit_input); - - typedef transform_iterator - transform_iter_type; - - transform_iter_type itBegin= - ::network_boost::make_transform_iterator( - find_iterator_type( ::network_boost::begin(lit_input), InputEnd, Finder ), - copy_range_type() ); - - transform_iter_type itEnd= - ::network_boost::make_transform_iterator( - find_iterator_type(), - copy_range_type() ); - - SequenceSequenceT Tmp(itBegin, itEnd); - - Result.swap(Tmp); - return Result; - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::iter_find; - using algorithm::iter_split; - -} // namespace network_boost - - -#endif // BOOST_STRING_ITER_FIND_HPP diff --git a/src/boost/algorithm/string/join.hpp b/src/boost/algorithm/string/join.hpp deleted file mode 100644 index e415ddfb..00000000 --- a/src/boost/algorithm/string/join.hpp +++ /dev/null @@ -1,145 +0,0 @@ -// Boost string_algo library join.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_JOIN_HPP -#define BOOST_STRING_JOIN_HPP - -#include -#include -#include -#include - -/*! \file - Defines join algorithm. - - Join algorithm is a counterpart to split algorithms. - It joins strings from a 'list' by adding user defined separator. - Additionally there is a version that allows simple filtering - by providing a predicate. -*/ - -namespace network_boost { - namespace algorithm { - -// join --------------------------------------------------------------// - - //! Join algorithm - /*! - This algorithm joins all strings in a 'list' into one long string. - Segments are concatenated by given separator. - - \param Input A container that holds the input strings. It must be a container-of-containers. - \param Separator A string that will separate the joined segments. - \return Concatenated string. - - \note This function provides the strong exception-safety guarantee - */ - template< typename SequenceSequenceT, typename Range1T> - inline typename range_value::type - join( - const SequenceSequenceT& Input, - const Range1T& Separator) - { - // Define working types - typedef typename range_value::type ResultT; - typedef typename range_const_iterator::type InputIteratorT; - - // Parse input - InputIteratorT itBegin=::network_boost::begin(Input); - InputIteratorT itEnd=::network_boost::end(Input); - - // Construct container to hold the result - ResultT Result; - - // Append first element - if(itBegin!=itEnd) - { - detail::insert(Result, ::network_boost::end(Result), *itBegin); - ++itBegin; - } - - for(;itBegin!=itEnd; ++itBegin) - { - // Add separator - detail::insert(Result, ::network_boost::end(Result), ::network_boost::as_literal(Separator)); - // Add element - detail::insert(Result, ::network_boost::end(Result), *itBegin); - } - - return Result; - } - -// join_if ----------------------------------------------------------// - - //! Conditional join algorithm - /*! - This algorithm joins all strings in a 'list' into one long string. - Segments are concatenated by given separator. Only segments that - satisfy the predicate will be added to the result. - - \param Input A container that holds the input strings. It must be a container-of-containers. - \param Separator A string that will separate the joined segments. - \param Pred A segment selection predicate - \return Concatenated string. - - \note This function provides the strong exception-safety guarantee - */ - template< typename SequenceSequenceT, typename Range1T, typename PredicateT> - inline typename range_value::type - join_if( - const SequenceSequenceT& Input, - const Range1T& Separator, - PredicateT Pred) - { - // Define working types - typedef typename range_value::type ResultT; - typedef typename range_const_iterator::type InputIteratorT; - - // Parse input - InputIteratorT itBegin=::network_boost::begin(Input); - InputIteratorT itEnd=::network_boost::end(Input); - - // Construct container to hold the result - ResultT Result; - - // Roll to the first element that will be added - while(itBegin!=itEnd && !Pred(*itBegin)) ++itBegin; - // Add this element - if(itBegin!=itEnd) - { - detail::insert(Result, ::network_boost::end(Result), *itBegin); - ++itBegin; - } - - for(;itBegin!=itEnd; ++itBegin) - { - if(Pred(*itBegin)) - { - // Add separator - detail::insert(Result, ::network_boost::end(Result), ::network_boost::as_literal(Separator)); - // Add element - detail::insert(Result, ::network_boost::end(Result), *itBegin); - } - } - - return Result; - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::join; - using algorithm::join_if; - -} // namespace network_boost - - -#endif // BOOST_STRING_JOIN_HPP - diff --git a/src/boost/algorithm/string/predicate.hpp b/src/boost/algorithm/string/predicate.hpp deleted file mode 100644 index 0ba14b84..00000000 --- a/src/boost/algorithm/string/predicate.hpp +++ /dev/null @@ -1,475 +0,0 @@ -// Boost string_algo library predicate.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_PREDICATE_HPP -#define BOOST_STRING_PREDICATE_HPP - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file boost/algorithm/string/predicate.hpp - Defines string-related predicates. - The predicates determine whether a substring is contained in the input string - under various conditions: a string starts with the substring, ends with the - substring, simply contains the substring or if both strings are equal. - Additionaly the algorithm \c all() checks all elements of a container to satisfy a - condition. - - All predicates provide the strong exception guarantee. -*/ - -namespace network_boost { - namespace algorithm { - -// starts_with predicate -----------------------------------------------// - - //! 'Starts with' predicate - /*! - This predicate holds when the test string is a prefix of the Input. - In other words, if the input starts with the test. - When the optional predicate is specified, it is used for character-wise - comparison. - - \param Input An input sequence - \param Test A test sequence - \param Comp An element comparison predicate - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool starts_with( - const Range1T& Input, - const Range2T& Test, - PredicateT Comp) - { - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - iterator_range::type> lit_test(::network_boost::as_literal(Test)); - - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator1T; - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator2T; - - Iterator1T InputEnd=::network_boost::end(lit_input); - Iterator2T TestEnd=::network_boost::end(lit_test); - - Iterator1T it=::network_boost::begin(lit_input); - Iterator2T pit=::network_boost::begin(lit_test); - for(; - it!=InputEnd && pit!=TestEnd; - ++it,++pit) - { - if( !(Comp(*it,*pit)) ) - return false; - } - - return pit==TestEnd; - } - - //! 'Starts with' predicate - /*! - \overload - */ - template - inline bool starts_with( - const Range1T& Input, - const Range2T& Test) - { - return ::network_boost::algorithm::starts_with(Input, Test, is_equal()); - } - - //! 'Starts with' predicate ( case insensitive ) - /*! - This predicate holds when the test string is a prefix of the Input. - In other words, if the input starts with the test. - Elements are compared case insensitively. - - \param Input An input sequence - \param Test A test sequence - \param Loc A locale used for case insensitive comparison - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool istarts_with( - const Range1T& Input, - const Range2T& Test, - const std::locale& Loc=std::locale()) - { - return ::network_boost::algorithm::starts_with(Input, Test, is_iequal(Loc)); - } - - -// ends_with predicate -----------------------------------------------// - - //! 'Ends with' predicate - /*! - This predicate holds when the test string is a suffix of the Input. - In other words, if the input ends with the test. - When the optional predicate is specified, it is used for character-wise - comparison. - - - \param Input An input sequence - \param Test A test sequence - \param Comp An element comparison predicate - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool ends_with( - const Range1T& Input, - const Range2T& Test, - PredicateT Comp) - { - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - iterator_range::type> lit_test(::network_boost::as_literal(Test)); - - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator1T; - typedef BOOST_STRING_TYPENAME network_boost::detail:: - iterator_traits::iterator_category category; - - return detail:: - ends_with_iter_select( - ::network_boost::begin(lit_input), - ::network_boost::end(lit_input), - ::network_boost::begin(lit_test), - ::network_boost::end(lit_test), - Comp, - category()); - } - - - //! 'Ends with' predicate - /*! - \overload - */ - template - inline bool ends_with( - const Range1T& Input, - const Range2T& Test) - { - return ::network_boost::algorithm::ends_with(Input, Test, is_equal()); - } - - //! 'Ends with' predicate ( case insensitive ) - /*! - This predicate holds when the test container is a suffix of the Input. - In other words, if the input ends with the test. - Elements are compared case insensitively. - - \param Input An input sequence - \param Test A test sequence - \param Loc A locale used for case insensitive comparison - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool iends_with( - const Range1T& Input, - const Range2T& Test, - const std::locale& Loc=std::locale()) - { - return ::network_boost::algorithm::ends_with(Input, Test, is_iequal(Loc)); - } - -// contains predicate -----------------------------------------------// - - //! 'Contains' predicate - /*! - This predicate holds when the test container is contained in the Input. - When the optional predicate is specified, it is used for character-wise - comparison. - - \param Input An input sequence - \param Test A test sequence - \param Comp An element comparison predicate - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool contains( - const Range1T& Input, - const Range2T& Test, - PredicateT Comp) - { - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - iterator_range::type> lit_test(::network_boost::as_literal(Test)); - - if (::network_boost::empty(lit_test)) - { - // Empty range is contained always - return true; - } - - // Use the temporary variable to make VACPP happy - bool bResult=(::network_boost::algorithm::first_finder(lit_test,Comp)(::network_boost::begin(lit_input), ::network_boost::end(lit_input))); - return bResult; - } - - //! 'Contains' predicate - /*! - \overload - */ - template - inline bool contains( - const Range1T& Input, - const Range2T& Test) - { - return ::network_boost::algorithm::contains(Input, Test, is_equal()); - } - - //! 'Contains' predicate ( case insensitive ) - /*! - This predicate holds when the test container is contained in the Input. - Elements are compared case insensitively. - - \param Input An input sequence - \param Test A test sequence - \param Loc A locale used for case insensitive comparison - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool icontains( - const Range1T& Input, - const Range2T& Test, - const std::locale& Loc=std::locale()) - { - return ::network_boost::algorithm::contains(Input, Test, is_iequal(Loc)); - } - -// equals predicate -----------------------------------------------// - - //! 'Equals' predicate - /*! - This predicate holds when the test container is equal to the - input container i.e. all elements in both containers are same. - When the optional predicate is specified, it is used for character-wise - comparison. - - \param Input An input sequence - \param Test A test sequence - \param Comp An element comparison predicate - \return The result of the test - - \note This is a two-way version of \c std::equal algorithm - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool equals( - const Range1T& Input, - const Range2T& Test, - PredicateT Comp) - { - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - iterator_range::type> lit_test(::network_boost::as_literal(Test)); - - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator1T; - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator2T; - - Iterator1T InputEnd=::network_boost::end(lit_input); - Iterator2T TestEnd=::network_boost::end(lit_test); - - Iterator1T it=::network_boost::begin(lit_input); - Iterator2T pit=::network_boost::begin(lit_test); - for(; - it!=InputEnd && pit!=TestEnd; - ++it,++pit) - { - if( !(Comp(*it,*pit)) ) - return false; - } - - return (pit==TestEnd) && (it==InputEnd); - } - - //! 'Equals' predicate - /*! - \overload - */ - template - inline bool equals( - const Range1T& Input, - const Range2T& Test) - { - return ::network_boost::algorithm::equals(Input, Test, is_equal()); - } - - //! 'Equals' predicate ( case insensitive ) - /*! - This predicate holds when the test container is equal to the - input container i.e. all elements in both containers are same. - Elements are compared case insensitively. - - \param Input An input sequence - \param Test A test sequence - \param Loc A locale used for case insensitive comparison - \return The result of the test - - \note This is a two-way version of \c std::equal algorithm - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool iequals( - const Range1T& Input, - const Range2T& Test, - const std::locale& Loc=std::locale()) - { - return ::network_boost::algorithm::equals(Input, Test, is_iequal(Loc)); - } - -// lexicographical_compare predicate -----------------------------// - - //! Lexicographical compare predicate - /*! - This predicate is an overload of std::lexicographical_compare - for range arguments - - It check whether the first argument is lexicographically less - then the second one. - - If the optional predicate is specified, it is used for character-wise - comparison - - \param Arg1 First argument - \param Arg2 Second argument - \param Pred Comparison predicate - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool lexicographical_compare( - const Range1T& Arg1, - const Range2T& Arg2, - PredicateT Pred) - { - iterator_range::type> lit_arg1(::network_boost::as_literal(Arg1)); - iterator_range::type> lit_arg2(::network_boost::as_literal(Arg2)); - - return std::lexicographical_compare( - ::network_boost::begin(lit_arg1), - ::network_boost::end(lit_arg1), - ::network_boost::begin(lit_arg2), - ::network_boost::end(lit_arg2), - Pred); - } - - //! Lexicographical compare predicate - /*! - \overload - */ - template - inline bool lexicographical_compare( - const Range1T& Arg1, - const Range2T& Arg2) - { - return ::network_boost::algorithm::lexicographical_compare(Arg1, Arg2, is_less()); - } - - //! Lexicographical compare predicate (case-insensitive) - /*! - This predicate is an overload of std::lexicographical_compare - for range arguments. - It check whether the first argument is lexicographically less - then the second one. - Elements are compared case insensitively - - - \param Arg1 First argument - \param Arg2 Second argument - \param Loc A locale used for case insensitive comparison - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool ilexicographical_compare( - const Range1T& Arg1, - const Range2T& Arg2, - const std::locale& Loc=std::locale()) - { - return ::network_boost::algorithm::lexicographical_compare(Arg1, Arg2, is_iless(Loc)); - } - - -// all predicate -----------------------------------------------// - - //! 'All' predicate - /*! - This predicate holds it all its elements satisfy a given - condition, represented by the predicate. - - \param Input An input sequence - \param Pred A predicate - \return The result of the test - - \note This function provides the strong exception-safety guarantee - */ - template - inline bool all( - const RangeT& Input, - PredicateT Pred) - { - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - - typedef BOOST_STRING_TYPENAME - range_const_iterator::type Iterator1T; - - Iterator1T InputEnd=::network_boost::end(lit_input); - for( Iterator1T It=::network_boost::begin(lit_input); It!=InputEnd; ++It) - { - if (!Pred(*It)) - return false; - } - - return true; - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::starts_with; - using algorithm::istarts_with; - using algorithm::ends_with; - using algorithm::iends_with; - using algorithm::contains; - using algorithm::icontains; - using algorithm::equals; - using algorithm::iequals; - using algorithm::all; - using algorithm::lexicographical_compare; - using algorithm::ilexicographical_compare; - -} // namespace network_boost - - -#endif // BOOST_STRING_PREDICATE_HPP diff --git a/src/boost/algorithm/string/predicate_facade.hpp b/src/boost/algorithm/string/predicate_facade.hpp deleted file mode 100644 index 867ee455..00000000 --- a/src/boost/algorithm/string/predicate_facade.hpp +++ /dev/null @@ -1,42 +0,0 @@ -// Boost string_algo library predicate_facade.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_PREDICATE_FACADE_HPP -#define BOOST_STRING_PREDICATE_FACADE_HPP - -#include - -/* - \file boost/algorith/string/predicate_facade.hpp - This file contains predicate_facade definition. This template class is used - to identify classification predicates, so they can be combined using - composition operators. -*/ - -namespace network_boost { - namespace algorithm { - -// predicate facade ------------------------------------------------------// - - //! Predicate facade - /*! - This class allows to recognize classification - predicates, so that they can be combined using - composition operators. - Every classification predicate must be derived from this class. - */ - template - struct predicate_facade {}; - - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_CLASSIFICATION_DETAIL_HPP diff --git a/src/boost/algorithm/string/regex.hpp b/src/boost/algorithm/string/regex.hpp deleted file mode 100644 index 51f141ff..00000000 --- a/src/boost/algorithm/string/regex.hpp +++ /dev/null @@ -1,646 +0,0 @@ -// Boost string_algo library regex.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_REGEX_HPP -#define BOOST_STRING_REGEX_HPP - -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -/*! \file - Defines regex variants of the algorithms. -*/ - -namespace network_boost { - namespace algorithm { - -// find_regex -----------------------------------------------// - - //! Find regex algorithm - /*! - Search for a substring matching the given regex in the input. - - \param Input A container which will be searched. - \param Rx A regular expression - \param Flags Regex options - \return - An \c iterator_range delimiting the match. - Returned iterator is either \c RangeT::iterator or - \c RangeT::const_iterator, depending on the constness of - the input parameter. - - \note This function provides the strong exception-safety guarantee - */ - template< - typename RangeT, - typename CharT, - typename RegexTraitsT> - inline iterator_range< - BOOST_STRING_TYPENAME range_iterator::type > - find_regex( - RangeT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - iterator_range::type> lit_input(::network_boost::as_literal(Input)); - - return ::network_boost::algorithm::regex_finder(Rx,Flags)( - ::network_boost::begin(lit_input), ::network_boost::end(lit_input) ); - } - -// replace_regex --------------------------------------------------------------------// - - //! Replace regex algorithm - /*! - Search for a substring matching given regex and format it with - the specified format. - 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 Rx A regular expression - \param Format Regex format definition - \param Flags Regex options - \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 CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline OutputIteratorT replace_regex_copy( - OutputIteratorT Output, - const RangeT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - return ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::regex_formatter( Format, Flags ) ); - } - - //! Replace regex algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline SequenceT replace_regex_copy( - const SequenceT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::regex_formatter( Format, Flags ) ); - } - - //! Replace regex algorithm - /*! - Search for a substring matching given regex and format it with - the specified format. The input string is modified in-place. - - \param Input An input string - \param Rx A regular expression - \param Format Regex format definition - \param Flags Regex options - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline void replace_regex( - SequenceT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::regex_formatter( Format, Flags ) ); - } - -// replace_all_regex --------------------------------------------------------------------// - - //! Replace all regex algorithm - /*! - Format all substrings, matching given regex, with the specified format. - 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 Rx A regular expression - \param Format Regex format definition - \param Flags Regex options - \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 CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline OutputIteratorT replace_all_regex_copy( - OutputIteratorT Output, - const RangeT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - return ::network_boost::algorithm::find_format_all_copy( - Output, - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::regex_formatter( Format, Flags ) ); - } - - //! Replace all regex algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline SequenceT replace_all_regex_copy( - const SequenceT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - return ::network_boost::algorithm::find_format_all_copy( - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::regex_formatter( Format, Flags ) ); - } - - //! Replace all regex algorithm - /*! - Format all substrings, matching given regex, with the specified format. - The input string is modified in-place. - - \param Input An input string - \param Rx A regular expression - \param Format Regex format definition - \param Flags Regex options - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT, - typename FormatStringTraitsT, typename FormatStringAllocatorT > - inline void replace_all_regex( - SequenceT& Input, - const basic_regex& Rx, - const std::basic_string& Format, - match_flag_type Flags=match_default | format_default ) - { - ::network_boost::algorithm::find_format_all( - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::regex_formatter( Format, Flags ) ); - } - -// erase_regex --------------------------------------------------------------------// - - //! Erase regex algorithm - /*! - Remove a substring matching given regex 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 Rx A regular expression - \param Flags Regex options - \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 CharT, - typename RegexTraitsT > - inline OutputIteratorT erase_regex_copy( - OutputIteratorT Output, - const RangeT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase regex algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT > - inline SequenceT erase_regex_copy( - const SequenceT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase regex algorithm - /*! - Remove a substring matching given regex from the input. - The input string is modified in-place. - - \param Input An input string - \param Rx A regular expression - \param Flags Regex options - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT > - inline void erase_regex( - SequenceT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::empty_formatter( Input ) ); - } - -// erase_all_regex --------------------------------------------------------------------// - - //! Erase all regex algorithm - /*! - Erase all substrings, matching given regex, 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 Rx A regular expression - \param Flags Regex options - \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 CharT, - typename RegexTraitsT > - inline OutputIteratorT erase_all_regex_copy( - OutputIteratorT Output, - const RangeT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::network_boost::algorithm::find_format_all_copy( - Output, - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase all regex algorithm - /*! - \overload - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT > - inline SequenceT erase_all_regex_copy( - const SequenceT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::network_boost::algorithm::find_format_all_copy( - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::empty_formatter( Input ) ); - } - - //! Erase all regex algorithm - /*! - Erase all substrings, matching given regex, from the input. - The input string is modified in-place. - - \param Input An input string - \param Rx A regular expression - \param Flags Regex options - */ - template< - typename SequenceT, - typename CharT, - typename RegexTraitsT> - inline void erase_all_regex( - SequenceT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - ::network_boost::algorithm::find_format_all( - Input, - ::network_boost::algorithm::regex_finder( Rx, Flags ), - ::network_boost::algorithm::empty_formatter( Input ) ); - } - -// find_all_regex ------------------------------------------------------------------// - - //! Find all regex algorithm - /*! - This algorithm finds all substrings matching the give regex - in the input. - - Each part is copied and added as a new element to the output container. - Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> - - \param Result A container that can hold copies of references to the substrings. - \param Input A container which will be searched. - \param Rx A regular expression - \param Flags Regex options - \return A reference to the result - - \note Prior content of the result will be overwritten. - - \note This function provides the strong exception-safety guarantee - */ - template< - typename SequenceSequenceT, - typename RangeT, - typename CharT, - typename RegexTraitsT > - inline SequenceSequenceT& find_all_regex( - SequenceSequenceT& Result, - const RangeT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::network_boost::algorithm::iter_find( - Result, - Input, - ::network_boost::algorithm::regex_finder(Rx,Flags) ); - } - -// split_regex ------------------------------------------------------------------// - - //! Split regex algorithm - /*! - Tokenize expression. This function is equivalent to C strtok. Input - sequence is split into tokens, separated by separators. Separator - is an every match of the given regex. - Each part is copied and added as a new element to the output container. - Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> - - \param Result A container that can hold copies of references to the substrings. - \param Input A container which will be searched. - \param Rx A regular expression - \param Flags Regex options - \return A reference to the result - - \note Prior content of the result will be overwritten. - - \note This function provides the strong exception-safety guarantee - */ - template< - typename SequenceSequenceT, - typename RangeT, - typename CharT, - typename RegexTraitsT > - inline SequenceSequenceT& split_regex( - SequenceSequenceT& Result, - const RangeT& Input, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - return ::network_boost::algorithm::iter_split( - Result, - Input, - ::network_boost::algorithm::regex_finder(Rx,Flags) ); - } - -// join_if ------------------------------------------------------------------// - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - //! Conditional join algorithm - /*! - This algorithm joins all strings in a 'list' into one long string. - Segments are concatenated by given separator. Only segments that - match the given regular expression will be added to the result - - This is a specialization of join_if algorithm. - - \param Input A container that holds the input strings. It must be a container-of-containers. - \param Separator A string that will separate the joined segments. - \param Rx A regular expression - \param Flags Regex options - \return Concatenated string. - - \note This function provides the strong exception-safety guarantee - */ - template< - typename SequenceSequenceT, - typename Range1T, - typename CharT, - typename RegexTraitsT > - inline typename range_value::type - join_if( - const SequenceSequenceT& Input, - const Range1T& Separator, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - // Define working types - typedef typename range_value::type ResultT; - typedef typename range_const_iterator::type InputIteratorT; - - // Parse input - InputIteratorT itBegin=::network_boost::begin(Input); - InputIteratorT itEnd=::network_boost::end(Input); - - // Construct container to hold the result - ResultT Result; - - - // Roll to the first element that will be added - while( - itBegin!=itEnd && - !::network_boost::regex_match(::network_boost::begin(*itBegin), ::network_boost::end(*itBegin), Rx, Flags)) ++itBegin; - - // Add this element - if(itBegin!=itEnd) - { - detail::insert(Result, ::network_boost::end(Result), *itBegin); - ++itBegin; - } - - for(;itBegin!=itEnd; ++itBegin) - { - if(::network_boost::regex_match(::network_boost::begin(*itBegin), ::network_boost::end(*itBegin), Rx, Flags)) - { - // Add separator - detail::insert(Result, ::network_boost::end(Result), ::network_boost::as_literal(Separator)); - // Add element - detail::insert(Result, ::network_boost::end(Result), *itBegin); - } - } - - return Result; - } - -#else // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - //! Conditional join algorithm - /*! - This algorithm joins all strings in a 'list' into one long string. - Segments are concatenated by given separator. Only segments that - match the given regular expression will be added to the result - - This is a specialization of join_if algorithm. - - \param Input A container that holds the input strings. It must be a container-of-containers. - \param Separator A string that will separate the joined segments. - \param Rx A regular expression - \param Flags Regex options - \return Concatenated string. - - \note This function provides the strong exception-safety guarantee - */ - template< - typename SequenceSequenceT, - typename Range1T, - typename CharT, - typename RegexTraitsT > - inline typename range_value::type - join_if_regex( - const SequenceSequenceT& Input, - const Range1T& Separator, - const basic_regex& Rx, - match_flag_type Flags=match_default ) - { - // Define working types - typedef typename range_value::type ResultT; - typedef typename range_const_iterator::type InputIteratorT; - - // Parse input - InputIteratorT itBegin=::network_boost::begin(Input); - InputIteratorT itEnd=::network_boost::end(Input); - - // Construct container to hold the result - ResultT Result; - - - // Roll to the first element that will be added - while( - itBegin!=itEnd && - !::network_boost::regex_match(::network_boost::begin(*itBegin), ::network_boost::end(*itBegin), Rx, Flags)) ++itBegin; - - // Add this element - if(itBegin!=itEnd) - { - detail::insert(Result, ::network_boost::end(Result), *itBegin); - ++itBegin; - } - - for(;itBegin!=itEnd; ++itBegin) - { - if(::network_boost::regex_match(::network_boost::begin(*itBegin), ::network_boost::end(*itBegin), Rx, Flags)) - { - // Add separator - detail::insert(Result, ::network_boost::end(Result), ::network_boost::as_literal(Separator)); - // Add element - detail::insert(Result, ::network_boost::end(Result), *itBegin); - } - } - - return Result; - } - - -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - - } // namespace algorithm - - // pull names into the boost namespace - using algorithm::find_regex; - using algorithm::replace_regex; - using algorithm::replace_regex_copy; - using algorithm::replace_all_regex; - using algorithm::replace_all_regex_copy; - using algorithm::erase_regex; - using algorithm::erase_regex_copy; - using algorithm::erase_all_regex; - using algorithm::erase_all_regex_copy; - using algorithm::find_all_regex; - using algorithm::split_regex; - -#ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING - using algorithm::join_if; -#else // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - using algorithm::join_if_regex; -#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING - -} // namespace network_boost - - -#endif // BOOST_STRING_REGEX_HPP diff --git a/src/boost/algorithm/string/regex_find_format.hpp b/src/boost/algorithm/string/regex_find_format.hpp deleted file mode 100644 index f762f6c7..00000000 --- a/src/boost/algorithm/string/regex_find_format.hpp +++ /dev/null @@ -1,90 +0,0 @@ -// Boost string_algo library regex_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_REGEX_FIND_FORMAT_HPP -#define BOOST_STRING_REGEX_FIND_FORMAT_HPP - -#include -#include -#include -#include - -/*! \file - Defines the \c regex_finder and \c regex_formatter generators. These two functors - are designed to work together. \c regex_formatter uses additional information - about a match contained in the regex_finder search result. -*/ - -namespace network_boost { - namespace algorithm { - -// regex_finder -----------------------------------------------// - - //! "Regex" finder - /*! - Construct the \c regex_finder. Finder uses the regex engine to search - for a match. - Result is given in \c regex_search_result. This is an extension - of the iterator_range. In addition it contains match results - from the \c regex_search algorithm. - - \param Rx A regular expression - \param MatchFlags Regex search options - \return An instance of the \c regex_finder object - */ - template< - typename CharT, - typename RegexTraitsT> - inline detail::find_regexF< basic_regex > - regex_finder( - const basic_regex& Rx, - match_flag_type MatchFlags=match_default ) - { - return detail:: - find_regexF< - basic_regex >( Rx, MatchFlags ); - } - -// regex_formater ---------------------------------------------// - - //! Regex formatter - /*! - Construct the \c regex_formatter. Regex formatter uses the regex engine to - format a match found by the \c regex_finder. - This formatted it designed to closely cooperate with \c regex_finder. - - \param Format Regex format definition - \param Flags Format flags - \return An instance of the \c regex_formatter functor - */ - template< - typename CharT, - typename TraitsT, typename AllocT > - inline detail::regex_formatF< std::basic_string< CharT, TraitsT, AllocT > > - regex_formatter( - const std::basic_string& Format, - match_flag_type Flags=format_default ) - { - return - detail::regex_formatF< std::basic_string >( - Format, - Flags ); - } - - } // namespace algorithm - - // pull the names to the boost namespace - using algorithm::regex_finder; - using algorithm::regex_formatter; - -} // namespace network_boost - - -#endif // BOOST_STRING_REGEX_FIND_FORMAT_HPP diff --git a/src/boost/algorithm/string/replace.hpp b/src/boost/algorithm/string/replace.hpp deleted file mode 100644 index 52ea1b43..00000000 --- a/src/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 network_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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::range_finder(SearchRange), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::range_finder(SearchRange), - ::network_boost::algorithm::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) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::range_finder(SearchRange), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::const_formatter(Format) ); - } - - //! Replace first algorithm - /*! - \overload - */ - template - inline SequenceT replace_first_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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() ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::last_finder(Search), - ::network_boost::algorithm::const_formatter(Format) ); - } - - //! Replace last algorithm - /*! - \overload - */ - template - inline SequenceT replace_last_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::last_finder(Search), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::last_finder(Search), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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() ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::last_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::nth_finder(Search, Nth), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::nth_finder(Search, Nth), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::nth_finder(Search, Nth), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc) ), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)), - ::network_boost::algorithm::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() ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::nth_finder(Search, Nth, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_all_copy( - Output, - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::const_formatter(Format) ); - } - - //! Replace all algorithm - /*! - \overload - */ - template - inline SequenceT replace_all_copy( - const SequenceT& Input, - const Range1T& Search, - const Range2T& Format ) - { - return ::network_boost::algorithm::find_format_all_copy( - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format_all( - Input, - ::network_boost::algorithm::first_finder(Search), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_all_copy( - Output, - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_all_copy( - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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() ) - { - ::network_boost::algorithm::find_format_all( - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc)), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::head_finder(N), - ::network_boost::algorithm::const_formatter(Format) ); - } - - //! Replace head algorithm - /*! - \overload - */ - template - inline SequenceT replace_head_copy( - const SequenceT& Input, - int N, - const RangeT& Format ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::head_finder(N), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::head_finder(N), - ::network_boost::algorithm::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 ::network_boost::algorithm::find_format_copy( - Output, - Input, - ::network_boost::algorithm::tail_finder(N), - ::network_boost::algorithm::const_formatter(Format) ); - } - - //! Replace tail algorithm - /*! - \overload - */ - template - inline SequenceT replace_tail_copy( - const SequenceT& Input, - int N, - const RangeT& Format ) - { - return ::network_boost::algorithm::find_format_copy( - Input, - ::network_boost::algorithm::tail_finder(N), - ::network_boost::algorithm::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 ) - { - ::network_boost::algorithm::find_format( - Input, - ::network_boost::algorithm::tail_finder(N), - ::network_boost::algorithm::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 network_boost - -#endif // BOOST_REPLACE_HPP diff --git a/src/boost/algorithm/string/sequence_traits.hpp b/src/boost/algorithm/string/sequence_traits.hpp deleted file mode 100644 index 318f131a..00000000 --- a/src/boost/algorithm/string/sequence_traits.hpp +++ /dev/null @@ -1,120 +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 network_boost { - namespace algorithm { - -// sequence traits -----------------------------------------------// - - - //! Native replace trait - /*! - This trait specifies that the sequence has \c std::string like replace method - */ - template< typename T > - class has_native_replace - { - - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - - - 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 - { - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - - 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 - { - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - - 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 - { - public: -# if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = false }; -# else - BOOST_STATIC_CONSTANT(bool, value=false); -# endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - - typedef mpl::bool_::value> type; - }; - - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_SEQUENCE_TRAITS_HPP diff --git a/src/boost/algorithm/string/split.hpp b/src/boost/algorithm/string/split.hpp deleted file mode 100644 index 83174a5e..00000000 --- a/src/boost/algorithm/string/split.hpp +++ /dev/null @@ -1,163 +0,0 @@ -// Boost string_algo library split.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_SPLIT_HPP -#define BOOST_STRING_SPLIT_HPP - -#include - -#include -#include -#include - -/*! \file - Defines basic split algorithms. - Split algorithms can be used to divide a string - into several parts according to given criteria. - - Each part is copied and added as a new element to the - output container. - Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> -*/ - -namespace network_boost { - namespace algorithm { - -// find_all ------------------------------------------------------------// - - //! Find all algorithm - /*! - This algorithm finds all occurrences of the search string - in the input. - - Each part is copied and added as a new element to the - output container. - Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> - - \param Result A container that can hold copies of references to the substrings - \param Input A container which will be searched. - \param Search A substring to be searched for. - \return A reference the result - - \note Prior content of the result will be overwritten. - - \note This function provides the strong exception-safety guarantee - */ - template< typename SequenceSequenceT, typename Range1T, typename Range2T > - inline SequenceSequenceT& find_all( - SequenceSequenceT& Result, - Range1T& Input, - const Range2T& Search) - { - return ::network_boost::algorithm::iter_find( - Result, - Input, - ::network_boost::algorithm::first_finder(Search) ); - } - - //! Find all algorithm ( case insensitive ) - /*! - This algorithm finds all occurrences of the search string - in the input. - Each part is copied and added as a new element to the - output container. Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> - - Searching is case insensitive. - - \param Result A container that can hold copies of references to the substrings - \param Input A container which will be searched. - \param Search A substring to be searched for. - \param Loc A locale used for case insensitive comparison - \return A reference the result - - \note Prior content of the result will be overwritten. - - \note This function provides the strong exception-safety guarantee - */ - template< typename SequenceSequenceT, typename Range1T, typename Range2T > - inline SequenceSequenceT& ifind_all( - SequenceSequenceT& Result, - Range1T& Input, - const Range2T& Search, - const std::locale& Loc=std::locale() ) - { - return ::network_boost::algorithm::iter_find( - Result, - Input, - ::network_boost::algorithm::first_finder(Search, is_iequal(Loc) ) ); - } - - -// tokenize -------------------------------------------------------------// - - //! Split algorithm - /*! - Tokenize expression. This function is equivalent to C strtok. Input - sequence is split into tokens, separated by separators. Separators - are given by means of the predicate. - - Each part is copied and added as a new element to the - output container. - Thus the result container must be able to hold copies - of the matches (in a compatible structure like std::string) or - a reference to it (e.g. using the iterator range class). - Examples of such a container are \c std::vector - or \c std::list> - - \param Result A container that can hold copies of references to the substrings - \param Input A container which will be searched. - \param Pred A predicate to identify separators. This predicate is - supposed to return true if a given element is a separator. - \param eCompress If eCompress argument is set to token_compress_on, adjacent - separators are merged together. Otherwise, every two separators - delimit a token. - \return A reference the result - - \note Prior content of the result will be overwritten. - - \note This function provides the strong exception-safety guarantee - */ - template< typename SequenceSequenceT, typename RangeT, typename PredicateT > - inline SequenceSequenceT& split( - SequenceSequenceT& Result, - RangeT& Input, - PredicateT Pred, - token_compress_mode_type eCompress=token_compress_off ) - { - return ::network_boost::algorithm::iter_split( - Result, - Input, - ::network_boost::algorithm::token_finder( Pred, eCompress ) ); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::find_all; - using algorithm::ifind_all; - using algorithm::split; - -} // namespace network_boost - - -#endif // BOOST_STRING_SPLIT_HPP - diff --git a/src/boost/algorithm/string/std/list_traits.hpp b/src/boost/algorithm/string/std/list_traits.hpp deleted file mode 100644 index af0e04c3..00000000 --- a/src/boost/algorithm/string/std/list_traits.hpp +++ /dev/null @@ -1,68 +0,0 @@ -// Boost string_algo library list_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_STD_LIST_TRAITS_HPP -#define BOOST_STRING_STD_LIST_TRAITS_HPP - -#include -#include -#include - -namespace network_boost { - namespace algorithm { - -// std::list<> traits -----------------------------------------------// - - - // stable iterators trait - template - class has_stable_iterators< ::std::list > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - // const time insert trait - template - class has_const_time_insert< ::std::list > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - // const time erase trait - template - class has_const_time_erase< ::std::list > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_STD_LIST_TRAITS_HPP diff --git a/src/boost/algorithm/string/std/rope_traits.hpp b/src/boost/algorithm/string/std/rope_traits.hpp deleted file mode 100644 index 6c16cd15..00000000 --- a/src/boost/algorithm/string/std/rope_traits.hpp +++ /dev/null @@ -1,81 +0,0 @@ -// Boost string_algo library string_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_STD_ROPE_TRAITS_HPP -#define BOOST_STRING_STD_ROPE_TRAITS_HPP - -#include -#include -#include - -namespace network_boost { - namespace algorithm { - -// SGI's std::rope<> traits -----------------------------------------------// - - - // native replace trait - template - class has_native_replace< std::rope > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_ type; - }; - - // stable iterators trait - template - class has_stable_iterators< std::rope > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_ type; - }; - - // const time insert trait - template - class has_const_time_insert< std::rope > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_ type; - }; - - // const time erase trait - template - class has_const_time_erase< std::rope > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_ type; - }; - - - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_ROPE_TRAITS_HPP diff --git a/src/boost/algorithm/string/std/slist_traits.hpp b/src/boost/algorithm/string/std/slist_traits.hpp deleted file mode 100644 index bf8f2eef..00000000 --- a/src/boost/algorithm/string/std/slist_traits.hpp +++ /dev/null @@ -1,69 +0,0 @@ -// Boost string_algo library slist_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_STD_SLIST_TRAITS_HPP -#define BOOST_STRING_STD_SLIST_TRAITS_HPP - -#include -#include -#include BOOST_SLIST_HEADER -#include - -namespace network_boost { - namespace algorithm { - -// SGI's std::slist<> traits -----------------------------------------------// - - - // stable iterators trait - template - class has_stable_iterators< BOOST_STD_EXTENSION_NAMESPACE::slist > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - // const time insert trait - template - class has_const_time_insert< BOOST_STD_EXTENSION_NAMESPACE::slist > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - // const time erase trait - template - class has_const_time_erase< BOOST_STD_EXTENSION_NAMESPACE::slist > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true }; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - typedef mpl::bool_::value> type; - }; - - - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_STD_LIST_TRAITS_HPP diff --git a/src/boost/algorithm/string/std/string_traits.hpp b/src/boost/algorithm/string/std/string_traits.hpp deleted file mode 100644 index 7b1d5fea..00000000 --- a/src/boost/algorithm/string/std/string_traits.hpp +++ /dev/null @@ -1,44 +0,0 @@ -// Boost string_algo library string_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_STD_STRING_TRAITS_HPP -#define BOOST_STRING_STD_STRING_TRAITS_HPP - -#include -#include -#include - -namespace network_boost { - namespace algorithm { - -// std::basic_string<> traits -----------------------------------------------// - - - // native replace trait - template - class has_native_replace< std::basic_string > - { - public: -#if BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - enum { value = true } ; -#else - BOOST_STATIC_CONSTANT(bool, value=true); -#endif // BOOST_WORKAROUND( __IBMCPP__, <= 600 ) - - typedef mpl::bool_::value> type; - }; - - - - } // namespace algorithm -} // namespace network_boost - - -#endif // BOOST_STRING_LIST_TRAITS_HPP diff --git a/src/boost/algorithm/string/std_containers_traits.hpp b/src/boost/algorithm/string/std_containers_traits.hpp deleted file mode 100644 index 3f02246f..00000000 --- a/src/boost/algorithm/string/std_containers_traits.hpp +++ /dev/null @@ -1,26 +0,0 @@ -// Boost string_algo library std_containers_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_STD_CONTAINERS_TRAITS_HPP -#define BOOST_STRING_STD_CONTAINERS_TRAITS_HPP - -/*!\file - This file includes sequence traits for stl containers. -*/ - -#include -#include -#include - -#ifdef BOOST_HAS_SLIST -# include -#endif - -#endif // BOOST_STRING_STD_CONTAINERS_TRAITS_HPP diff --git a/src/boost/algorithm/string/trim.hpp b/src/boost/algorithm/string/trim.hpp deleted file mode 100644 index 272a1032..00000000 --- a/src/boost/algorithm/string/trim.hpp +++ /dev/null @@ -1,398 +0,0 @@ -// Boost string_algo library trim.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_TRIM_HPP -#define BOOST_STRING_TRIM_HPP - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -/*! \file - Defines trim algorithms. - Trim algorithms are used to remove trailing and leading spaces from a - sequence (string). Space is recognized using given locales. - - Parametric (\c _if) variants use a predicate (functor) to select which characters - are to be trimmed.. - Functions take a selection predicate as a parameter, which is used to determine - whether a character is a space. Common predicates are provided in classification.hpp header. - -*/ - -namespace network_boost { - namespace algorithm { - - // left trim -----------------------------------------------// - - - //! Left trim - parametric - /*! - Remove all leading spaces from the input. - The supplied predicate is used to determine which characters are considered spaces. - The result is a trimmed 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 range - \param IsSpace A unary predicate identifying spaces - \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 trim_left_copy_if( - OutputIteratorT Output, - const RangeT& Input, - PredicateT IsSpace) - { - iterator_range::type> lit_range(::network_boost::as_literal(Input)); - - std::copy( - ::network_boost::algorithm::detail::trim_begin( - ::network_boost::begin(lit_range), - ::network_boost::end(lit_range), - IsSpace ), - ::network_boost::end(lit_range), - Output); - - return Output; - } - - //! Left trim - parametric - /*! - \overload - */ - template - inline SequenceT trim_left_copy_if(const SequenceT& Input, PredicateT IsSpace) - { - return SequenceT( - ::network_boost::algorithm::detail::trim_begin( - ::network_boost::begin(Input), - ::network_boost::end(Input), - IsSpace ), - ::network_boost::end(Input)); - } - - //! Left trim - parametric - /*! - Remove all leading spaces from the input. - The result is a trimmed copy of the input. - - \param Input An input sequence - \param Loc a locale used for 'space' classification - \return A trimmed copy of the input - - \note This function provides the strong exception-safety guarantee - */ - template - inline SequenceT trim_left_copy(const SequenceT& Input, const std::locale& Loc=std::locale()) - { - return - ::network_boost::algorithm::trim_left_copy_if( - Input, - is_space(Loc)); - } - - //! Left trim - /*! - Remove all leading spaces from the input. The supplied predicate is - used to determine which characters are considered spaces. - The input sequence is modified in-place. - - \param Input An input sequence - \param IsSpace A unary predicate identifying spaces - */ - template - inline void trim_left_if(SequenceT& Input, PredicateT IsSpace) - { - Input.erase( - ::network_boost::begin(Input), - ::network_boost::algorithm::detail::trim_begin( - ::network_boost::begin(Input), - ::network_boost::end(Input), - IsSpace)); - } - - //! Left trim - /*! - Remove all leading spaces from the input. - The Input sequence is modified in-place. - - \param Input An input sequence - \param Loc A locale used for 'space' classification - */ - template - inline void trim_left(SequenceT& Input, const std::locale& Loc=std::locale()) - { - ::network_boost::algorithm::trim_left_if( - Input, - is_space(Loc)); - } - - // right trim -----------------------------------------------// - - //! Right trim - parametric - /*! - Remove all trailing spaces from the input. - The supplied predicate is used to determine which characters are considered spaces. - The result is a trimmed 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 range - \param IsSpace A unary predicate identifying spaces - \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 trim_right_copy_if( - OutputIteratorT Output, - const RangeT& Input, - PredicateT IsSpace ) - { - iterator_range::type> lit_range(::network_boost::as_literal(Input)); - - std::copy( - ::network_boost::begin(lit_range), - ::network_boost::algorithm::detail::trim_end( - ::network_boost::begin(lit_range), - ::network_boost::end(lit_range), - IsSpace ), - Output ); - - return Output; - } - - //! Right trim - parametric - /*! - \overload - */ - template - inline SequenceT trim_right_copy_if(const SequenceT& Input, PredicateT IsSpace) - { - return SequenceT( - ::network_boost::begin(Input), - ::network_boost::algorithm::detail::trim_end( - ::network_boost::begin(Input), - ::network_boost::end(Input), - IsSpace) - ); - } - - //! Right trim - /*! - Remove all trailing spaces from the input. - The result is a trimmed copy of the input - - \param Input An input sequence - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - - \note This function provides the strong exception-safety guarantee - */ - template - inline SequenceT trim_right_copy(const SequenceT& Input, const std::locale& Loc=std::locale()) - { - return - ::network_boost::algorithm::trim_right_copy_if( - Input, - is_space(Loc)); - } - - - //! Right trim - parametric - /*! - Remove all trailing spaces from the input. - The supplied predicate is used to determine which characters are considered spaces. - The input sequence is modified in-place. - - \param Input An input sequence - \param IsSpace A unary predicate identifying spaces - */ - template - inline void trim_right_if(SequenceT& Input, PredicateT IsSpace) - { - Input.erase( - ::network_boost::algorithm::detail::trim_end( - ::network_boost::begin(Input), - ::network_boost::end(Input), - IsSpace ), - ::network_boost::end(Input) - ); - } - - - //! Right trim - /*! - Remove all trailing spaces from the input. - The input sequence is modified in-place. - - \param Input An input sequence - \param Loc A locale used for 'space' classification - */ - template - inline void trim_right(SequenceT& Input, const std::locale& Loc=std::locale()) - { - ::network_boost::algorithm::trim_right_if( - Input, - is_space(Loc) ); - } - - // both side trim -----------------------------------------------// - - //! Trim - parametric - /*! - Remove all trailing and leading spaces from the input. - The supplied predicate is used to determine which characters are considered spaces. - The result is a trimmed 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 range - \param IsSpace A unary predicate identifying spaces - \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 trim_copy_if( - OutputIteratorT Output, - const RangeT& Input, - PredicateT IsSpace) - { - iterator_range::type> lit_range(::network_boost::as_literal(Input)); - - BOOST_STRING_TYPENAME - range_const_iterator::type TrimEnd= - ::network_boost::algorithm::detail::trim_end( - ::network_boost::begin(lit_range), - ::network_boost::end(lit_range), - IsSpace); - - std::copy( - detail::trim_begin( - ::network_boost::begin(lit_range), TrimEnd, IsSpace), - TrimEnd, - Output - ); - - return Output; - } - - //! Trim - parametric - /*! - \overload - */ - template - inline SequenceT trim_copy_if(const SequenceT& Input, PredicateT IsSpace) - { - BOOST_STRING_TYPENAME - range_const_iterator::type TrimEnd= - ::network_boost::algorithm::detail::trim_end( - ::network_boost::begin(Input), - ::network_boost::end(Input), - IsSpace); - - return SequenceT( - detail::trim_begin( - ::network_boost::begin(Input), - TrimEnd, - IsSpace), - TrimEnd - ); - } - - //! Trim - /*! - Remove all leading and trailing spaces from the input. - The result is a trimmed copy of the input - - \param Input An input sequence - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - - \note This function provides the strong exception-safety guarantee - */ - template - inline SequenceT trim_copy( const SequenceT& Input, const std::locale& Loc=std::locale() ) - { - return - ::network_boost::algorithm::trim_copy_if( - Input, - is_space(Loc) ); - } - - //! Trim - /*! - Remove all leading and trailing spaces from the input. - The supplied predicate is used to determine which characters are considered spaces. - The input sequence is modified in-place. - - \param Input An input sequence - \param IsSpace A unary predicate identifying spaces - */ - template - inline void trim_if(SequenceT& Input, PredicateT IsSpace) - { - ::network_boost::algorithm::trim_right_if( Input, IsSpace ); - ::network_boost::algorithm::trim_left_if( Input, IsSpace ); - } - - //! Trim - /*! - Remove all leading and trailing spaces from the input. - The input sequence is modified in-place. - - \param Input An input sequence - \param Loc A locale used for 'space' classification - */ - template - inline void trim(SequenceT& Input, const std::locale& Loc=std::locale()) - { - ::network_boost::algorithm::trim_if( - Input, - is_space( Loc ) ); - } - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::trim_left; - using algorithm::trim_left_if; - using algorithm::trim_left_copy; - using algorithm::trim_left_copy_if; - using algorithm::trim_right; - using algorithm::trim_right_if; - using algorithm::trim_right_copy; - using algorithm::trim_right_copy_if; - using algorithm::trim; - using algorithm::trim_if; - using algorithm::trim_copy; - using algorithm::trim_copy_if; - -} // namespace network_boost - -#endif // BOOST_STRING_TRIM_HPP diff --git a/src/boost/algorithm/string/trim_all.hpp b/src/boost/algorithm/string/trim_all.hpp deleted file mode 100644 index 6829c9a9..00000000 --- a/src/boost/algorithm/string/trim_all.hpp +++ /dev/null @@ -1,217 +0,0 @@ -// Boost string_algo library trim.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_TRIM_ALL_HPP -#define BOOST_STRING_TRIM_ALL_HPP - -#include - -#include -#include -#include -#include -#include -#include - -/*! \file - Defines trim_all algorithms. - - Just like \c trim, \c trim_all removes all trailing and leading spaces from a - sequence (string). In addition, spaces in the middle of the sequence are truncated - to just one character. Space is recognized using given locales. - - \c trim_fill acts as trim_all, but the spaces in the middle are replaces with - a user-define sequence of character. - - Parametric (\c _if) variants use a predicate (functor) to select which characters - are to be trimmed.. - Functions take a selection predicate as a parameter, which is used to determine - whether a character is a space. Common predicates are provided in classification.hpp header. - -*/ - -namespace network_boost { - namespace algorithm { - - // multi line trim ----------------------------------------------- // - - //! Trim All - parametric - /*! - Remove all leading and trailing spaces from the input and - compress all other spaces to a single character. - The result is a trimmed copy of the input - - \param Input An input sequence - \param IsSpace A unary predicate identifying spaces - \return A trimmed copy of the input - */ - template - inline SequenceT trim_all_copy_if(const SequenceT& Input, PredicateT IsSpace) - { - return - ::network_boost::find_format_all_copy( - ::network_boost::trim_copy_if(Input, IsSpace), - ::network_boost::token_finder(IsSpace, ::network_boost::token_compress_on), - ::network_boost::dissect_formatter(::network_boost::head_finder(1))); - } - - - //! Trim All - /*! - Remove all leading and trailing spaces from the input and - compress all other spaces to a single character. - The input sequence is modified in-place. - - \param Input An input sequence - \param IsSpace A unary predicate identifying spaces - */ - template - inline void trim_all_if(SequenceT& Input, PredicateT IsSpace) - { - ::network_boost::trim_if(Input, IsSpace); - ::network_boost::find_format_all( - Input, - ::network_boost::token_finder(IsSpace, ::network_boost::token_compress_on), - ::network_boost::dissect_formatter(::network_boost::head_finder(1))); - } - - - //! Trim All - /*! - Remove all leading and trailing spaces from the input and - compress all other spaces to a single character. - The result is a trimmed copy of the input - - \param Input An input sequence - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - */ - template - inline SequenceT trim_all_copy(const SequenceT& Input, const std::locale& Loc =std::locale()) - { - return trim_all_copy_if(Input, ::network_boost::is_space(Loc)); - } - - - //! Trim All - /*! - Remove all leading and trailing spaces from the input and - compress all other spaces to a single character. - The input sequence is modified in-place. - - \param Input An input sequence - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - */ - template - inline void trim_all(SequenceT& Input, const std::locale& Loc =std::locale()) - { - trim_all_if(Input, ::network_boost::is_space(Loc)); - } - - - //! Trim Fill - parametric - /*! - Remove all leading and trailing spaces from the input and - replace all every block of consecutive spaces with a fill string - defined by user. - The result is a trimmed copy of the input - - \param Input An input sequence - \param Fill A string used to fill the inner spaces - \param IsSpace A unary predicate identifying spaces - \return A trimmed copy of the input - */ - template - inline SequenceT trim_fill_copy_if(const SequenceT& Input, const RangeT& Fill, PredicateT IsSpace) - { - return - ::network_boost::find_format_all_copy( - ::network_boost::trim_copy_if(Input, IsSpace), - ::network_boost::token_finder(IsSpace, ::network_boost::token_compress_on), - ::network_boost::const_formatter(::network_boost::as_literal(Fill))); - } - - - //! Trim Fill - /*! - Remove all leading and trailing spaces from the input and - replace all every block of consecutive spaces with a fill string - defined by user. - The input sequence is modified in-place. - - \param Input An input sequence - \param Fill A string used to fill the inner spaces - \param IsSpace A unary predicate identifying spaces - */ - template - inline void trim_fill_if(SequenceT& Input, const RangeT& Fill, PredicateT IsSpace) - { - ::network_boost::trim_if(Input, IsSpace); - ::network_boost::find_format_all( - Input, - ::network_boost::token_finder(IsSpace, ::network_boost::token_compress_on), - ::network_boost::const_formatter(::network_boost::as_literal(Fill))); - } - - - //! Trim Fill - /*! - Remove all leading and trailing spaces from the input and - replace all every block of consecutive spaces with a fill string - defined by user. - The result is a trimmed copy of the input - - \param Input An input sequence - \param Fill A string used to fill the inner spaces - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - */ - template - inline SequenceT trim_fill_copy(const SequenceT& Input, const RangeT& Fill, const std::locale& Loc =std::locale()) - { - return trim_fill_copy_if(Input, Fill, ::network_boost::is_space(Loc)); - } - - - //! Trim Fill - /*! - Remove all leading and trailing spaces from the input and - replace all every block of consecutive spaces with a fill string - defined by user. - The input sequence is modified in-place. - - \param Input An input sequence - \param Fill A string used to fill the inner spaces - \param Loc A locale used for 'space' classification - \return A trimmed copy of the input - */ - template - inline void trim_fill(SequenceT& Input, const RangeT& Fill, const std::locale& Loc =std::locale()) - { - trim_fill_if(Input, Fill, ::network_boost::is_space(Loc)); - } - - - } // namespace algorithm - - // pull names to the boost namespace - using algorithm::trim_all; - using algorithm::trim_all_if; - using algorithm::trim_all_copy; - using algorithm::trim_all_copy_if; - using algorithm::trim_fill; - using algorithm::trim_fill_if; - using algorithm::trim_fill_copy; - using algorithm::trim_fill_copy_if; - -} // namespace network_boost - -#endif // BOOST_STRING_TRIM_ALL_HPP diff --git a/src/boost/algorithm/string/yes_no_type.hpp b/src/boost/algorithm/string/yes_no_type.hpp deleted file mode 100644 index 44ea47f7..00000000 --- a/src/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 network_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 network_boost - - -#endif // BOOST_STRING_YES_NO_TYPE_DETAIL_HPP diff --git a/src/boost/algorithm/string_regex.hpp b/src/boost/algorithm/string_regex.hpp deleted file mode 100644 index 791aa184..00000000 --- a/src/boost/algorithm/string_regex.hpp +++ /dev/null @@ -1,23 +0,0 @@ -// Boost string_algo library string_regex.hpp header file ---------------------------// - -// Copyright Pavol Droba 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/ for updates, documentation, and revision history. - -#ifndef BOOST_STRING_ALGO_REGEX_HPP -#define BOOST_STRING_ALGO_REGEX_HPP - -/*! \file - Cumulative include for string_algo library. - In addition to string.hpp contains also regex-related stuff. -*/ - -#include -#include -#include - -#endif // BOOST_STRING_ALGO_REGEX_HPP diff --git a/src/boost/aligned_storage.hpp b/src/boost/aligned_storage.hpp deleted file mode 100644 index f400fa9e..00000000 --- a/src/boost/aligned_storage.hpp +++ /dev/null @@ -1,18 +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 - -#endif // BOOST_ALIGNED_STORAGE_HPP diff --git a/src/boost/array.hpp b/src/boost/array.hpp deleted file mode 100644 index 782bd52b..00000000 --- a/src/boost/array.hpp +++ /dev/null @@ -1,446 +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) - * - * 14 Apr 2012 - (mtc) Added support for network_boost::hash - * 28 Dec 2010 - (mtc) Added cbegin and cend (and crbegin and crend) for C++Ox compatibility. - * 10 Mar 2010 - (mtc) fill method added, matching resolution of the standard library working group. - * See or Trac issue #3168 - * Eventually, we should remove "assign" which is now a synonym for "fill" (Marshall Clow) - * 10 Mar 2010 - added workaround for SUNCC and !STLPort [trac #3893] (Marshall Clow) - * 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 - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -# pragma warning(push) -# pragma warning(disable:4996) // 'std::equal': Function call with parameters that may be unsafe -# pragma warning(disable:4510) // network_boost::array' : default constructor could not be generated -# pragma warning(disable:4610) // warning C4610: class 'network_boost::array' can never be instantiated - user defined constructor required -#endif - -#include -#include -#include -#include - -// Handles broken standard libraries better than -#include -#include -#include -#include - -// FIXES for broken compilers -#include - - -namespace network_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; } - const_iterator cbegin() const { return elems; } - - iterator end() { return elems+N; } - const_iterator end() const { return elems+N; } - const_iterator cend() const { return elems+N; } - - // reverse iterator support -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) - 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; -#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) - 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()); - } - const_reverse_iterator crbegin() const { - return const_reverse_iterator(end()); - } - - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - const_reverse_iterator crend() const { - return const_reverse_iterator(begin()); - } - - // operator[] - reference operator[](size_type i) - { - BOOST_ASSERT_MSG( i < N, "out of range" ); - return elems[i]; - } - - const_reference operator[](size_type i) const - { - BOOST_ASSERT_MSG( 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) { - for (size_type i = 0; i < N; ++i) - network_boost::swap(elems[i],y.elems[i]); - } - - // 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) { fill ( value ); } // A synonym for fill - void fill (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()) { - std::out_of_range e("array<>: index out of range"); - network_boost::throw_exception(e); - } - } - - }; - -#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 ) ); } - const_iterator cbegin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); } - - iterator end() { return begin(); } - const_iterator end() const { return begin(); } - const_iterator cend() const { return cbegin(); } - - // reverse iterator support -#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) - 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; -#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) - 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()); - } - const_reverse_iterator crbegin() const { - return const_reverse_iterator(end()); - } - - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - const_reverse_iterator crend() const { - return const_reverse_iterator(begin()); - } - - // operator[] - reference operator[](size_type /*i*/) - { - 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& value) { fill ( value ); } - void fill (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"); - network_boost::throw_exception(e); -#if defined(BOOST_NO_EXCEPTIONS) || (!defined(BOOST_MSVC) && !defined(__PATHSCALE__)) - // - // We need to return something here to keep - // some compilers happy: however we will never - // actually get here.... - // - static T placeholder; - return placeholder; -#endif - } - }; -#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); - } - -#if defined(__SUNPRO_CC) -// Trac ticket #4757; the Sun Solaris compiler can't handle -// syntax like 'T(&get_c_array(network_boost::array& arg))[N]' -// -// We can't just use this for all compilers, because the -// borland compilers can't handle this form. - namespace detail { - template struct c_array - { - typedef T type[N]; - }; - } - - // Specific for network_boost::array: simply returns its elems data member. - template - typename detail::c_array::type& get_c_array(network_boost::array& arg) - { - return arg.elems; - } - - // Specific for network_boost::array: simply returns its elems data member. - template - typename const detail::c_array::type& get_c_array(const network_boost::array& arg) - { - return arg.elems; - } -#else -// Specific for network_boost::array: simply returns its elems data member. - template - T(&get_c_array(network_boost::array& arg))[N] - { - return arg.elems; - } - - // Const version. - template - const T(&get_c_array(const network_boost::array& arg))[N] - { - return arg.elems; - } -#endif - -#if 0 - // Overload for std::array, assuming that std::array will have - // explicit conversion functions as discussed at the WG21 meeting - // in Summit, March 2009. - template - T(&get_c_array(std::array& arg))[N] - { - return static_cast(arg); - } - - // Const version. - template - const T(&get_c_array(const std::array& arg))[N] - { - return static_cast(arg); - } -#endif - - - template - std::size_t hash_value(const array& arr) - { - return network_boost::hash_range(arr.begin(), arr.end()); - } - -} /* namespace network_boost */ - - -#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) -# pragma warning(pop) -#endif - -#endif /*BOOST_ARRAY_HPP*/ diff --git a/src/boost/assert.hpp b/src/boost/assert.hpp deleted file mode 100644 index ed7dfb43..00000000 --- a/src/boost/assert.hpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// boost/assert.hpp - BOOST_ASSERT(expr) -// BOOST_ASSERT_MSG(expr, msg) -// BOOST_VERIFY(expr) -// BOOST_VERIFY_MSG(expr, msg) -// BOOST_ASSERT_IS_VOID -// -// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd. -// Copyright (c) 2007, 2014 Peter Dimov -// Copyright (c) Beman Dawes 2011 -// Copyright (c) 2015 Ion Gaztanaga -// -// Distributed under the 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/assert/assert.html for documentation. -// - -// -// Stop inspect complaining about use of 'assert': -// -// boostinspect:naassert_macro -// - -// -// BOOST_ASSERT, BOOST_ASSERT_MSG, BOOST_ASSERT_IS_VOID -// - -#undef BOOST_ASSERT -#undef BOOST_ASSERT_MSG -#undef BOOST_ASSERT_IS_VOID - -#if defined(BOOST_DISABLE_ASSERTS) || ( defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && defined(NDEBUG) ) - -# define BOOST_ASSERT(expr) ((void)0) -# define BOOST_ASSERT_MSG(expr, msg) ((void)0) -# define BOOST_ASSERT_IS_VOID - -#elif defined(BOOST_ENABLE_ASSERT_HANDLER) || ( defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && !defined(NDEBUG) ) - -#include // for BOOST_LIKELY -#include - -namespace network_boost -{ - void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined - void assertion_failed_msg(char const * expr, char const * msg, char const * function, char const * file, long line); // user defined -} // namespace network_boost - -#define BOOST_ASSERT(expr) (BOOST_LIKELY(!!(expr))? ((void)0): ::network_boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) -#define BOOST_ASSERT_MSG(expr, msg) (BOOST_LIKELY(!!(expr))? ((void)0): ::network_boost::assertion_failed_msg(#expr, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__)) - -#else - -# include // .h to support old libraries w/o - effect is the same - -# define BOOST_ASSERT(expr) assert(expr) -# define BOOST_ASSERT_MSG(expr, msg) assert((expr)&&(msg)) -#if defined(NDEBUG) -# define BOOST_ASSERT_IS_VOID -#endif - -#endif - -// -// BOOST_VERIFY, BOOST_VERIFY_MSG -// - -#undef BOOST_VERIFY -#undef BOOST_VERIFY_MSG - -#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) ) - -# define BOOST_VERIFY(expr) ((void)(expr)) -# define BOOST_VERIFY_MSG(expr, msg) ((void)(expr)) - -#else - -# define BOOST_VERIFY(expr) BOOST_ASSERT(expr) -# define BOOST_VERIFY_MSG(expr, msg) BOOST_ASSERT_MSG(expr,msg) - -#endif diff --git a/src/boost/bind.hpp b/src/boost/bind.hpp deleted file mode 100644 index f11b7ba2..00000000 --- a/src/boost/bind.hpp +++ /dev/null @@ -1,41 +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, 2015 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 - -#ifndef BOOST_BIND_NO_PLACEHOLDERS - -#if defined(BOOST_CLANG) -# pragma clang diagnostic push -# if __has_warning("-Wheader-hygiene") -# pragma clang diagnostic ignored "-Wheader-hygiene" -# endif -#endif - -using namespace network_boost::placeholders; - -#if defined(BOOST_CLANG) -# pragma clang diagnostic pop -#endif - -#endif // #ifndef BOOST_BIND_NO_PLACEHOLDERS - -#endif // #ifndef BOOST_BIND_HPP_INCLUDED diff --git a/src/boost/bind/arg.hpp b/src/boost/bind/arg.hpp deleted file mode 100644 index ddb90116..00000000 --- a/src/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 -#include - -namespace network_boost -{ - -template< int I > struct arg -{ - BOOST_CONSTEXPR arg() - { - } - - template< class T > BOOST_CONSTEXPR arg( T const & /* t */ ) - { - BOOST_STATIC_ASSERT( I == is_placeholder::value ); - } -}; - -template< int I > BOOST_CONSTEXPR 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 network_boost - -#endif // #ifndef BOOST_BIND_ARG_HPP_INCLUDED diff --git a/src/boost/bind/bind.hpp b/src/boost/bind/bind.hpp deleted file mode 100644 index 7bb787d2..00000000 --- a/src/boost/bind/bind.hpp +++ /dev/null @@ -1,2256 +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 -#include -#include - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) -#include // std::forward -#endif - -// Borland-specific bug, visit_each() silently fails to produce code - -#if defined(__BORLANDC__) -# define BOOST_BIND_VISIT_EACH network_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 network_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; - } -}; - -#ifdef BOOST_MSVC -// MSVC is bright enough to realise that the parameter rhs -// in operator==may be unused for some template argument types: -#pragma warning(push) -#pragma warning(disable:4100) -#endif - -template< class A1 > class list1: private storage1< A1 > -{ -private: - - typedef storage1< A1 > base_type; - -public: - - explicit list1( A1 a1 ): base_type( a1 ) {} - - A1 operator[] (network_boost::arg<1>) const { return base_type::a1_; } - - A1 operator[] (network_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[] (network_boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2>) const { return base_type::a2_; } - - A1 operator[] (network_boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (network_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[] (network_boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3>) const { return base_type::a3_; } - - A1 operator[] (network_boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (network_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[] (network_boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4>) const { return base_type::a4_; } - - A1 operator[] (network_boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (network_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[] (network_boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (network_boost::arg<5>) const { return base_type::a5_; } - - A1 operator[] (network_boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (network_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[] (network_boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (network_boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (network_boost::arg<6>) const { return base_type::a6_; } - - A1 operator[] (network_boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (network_boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (network_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[] (network_boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (network_boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (network_boost::arg<6>) const { return base_type::a6_; } - A7 operator[] (network_boost::arg<7>) const { return base_type::a7_; } - - A1 operator[] (network_boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (network_boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (network_boost::arg<6> (*) ()) const { return base_type::a6_; } - A7 operator[] (network_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[] (network_boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (network_boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (network_boost::arg<6>) const { return base_type::a6_; } - A7 operator[] (network_boost::arg<7>) const { return base_type::a7_; } - A8 operator[] (network_boost::arg<8>) const { return base_type::a8_; } - - A1 operator[] (network_boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (network_boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (network_boost::arg<6> (*) ()) const { return base_type::a6_; } - A7 operator[] (network_boost::arg<7> (*) ()) const { return base_type::a7_; } - A8 operator[] (network_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[] (network_boost::arg<1>) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2>) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3>) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4>) const { return base_type::a4_; } - A5 operator[] (network_boost::arg<5>) const { return base_type::a5_; } - A6 operator[] (network_boost::arg<6>) const { return base_type::a6_; } - A7 operator[] (network_boost::arg<7>) const { return base_type::a7_; } - A8 operator[] (network_boost::arg<8>) const { return base_type::a8_; } - A9 operator[] (network_boost::arg<9>) const { return base_type::a9_; } - - A1 operator[] (network_boost::arg<1> (*) ()) const { return base_type::a1_; } - A2 operator[] (network_boost::arg<2> (*) ()) const { return base_type::a2_; } - A3 operator[] (network_boost::arg<3> (*) ()) const { return base_type::a3_; } - A4 operator[] (network_boost::arg<4> (*) ()) const { return base_type::a4_; } - A5 operator[] (network_boost::arg<5> (*) ()) const { return base_type::a5_; } - A6 operator[] (network_boost::arg<6> (*) ()) const { return base_type::a6_; } - A7 operator[] (network_boost::arg<7> (*) ()) const { return base_type::a7_; } - A8 operator[] (network_boost::arg<8> (*) ()) const { return base_type::a8_; } - A9 operator[] (network_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 ); - } -}; - -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif - -// bind_t - -#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES ) - -template< class A1 > class rrlist1 -{ -private: - - A1 & a1_; // not A1&& because of msvc-10.0 - -public: - - explicit rrlist1( A1 & a1 ): a1_( a1 ) {} - - A1 && operator[] (network_boost::arg<1>) const { return std::forward( a1_ ); } // not static_cast because of g++ 4.9 - - A1 && operator[] (network_boost::arg<1> (*) ()) const { return std::forward( 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< class A1, class A2 > class rrlist2 -{ -private: - - A1 & a1_; - A2 & a2_; - -public: - - rrlist2( A1 & a1, A2 & a2 ): a1_( a1 ), a2_( a2 ) {} - - A1 && operator[] (network_boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2>) const { return std::forward( a2_ ); } - - A1 && operator[] (network_boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2> (*) ()) const { return std::forward( 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< class A1, class A2, class A3 > class rrlist3 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - -public: - - rrlist3( A1 & a1, A2 & a2, A3 & a3 ): a1_( a1 ), a2_( a2 ), a3_( a3 ) {} - - A1 && operator[] (network_boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3>) const { return std::forward( a3_ ); } - - A1 && operator[] (network_boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3> (*) ()) const { return std::forward( 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< class A1, class A2, class A3, class A4 > class rrlist4 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - -public: - - rrlist4( A1 & a1, A2 & a2, A3 & a3, A4 & a4 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ) {} - - A1 && operator[] (network_boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4>) const { return std::forward( a4_ ); } - - A1 && operator[] (network_boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4> (*) ()) const { return std::forward( 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< class A1, class A2, class A3, class A4, class A5 > class rrlist5 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - A5 & a5_; - -public: - - rrlist5( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ) {} - - A1 && operator[] (network_boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4>) const { return std::forward( a4_ ); } - A5 && operator[] (network_boost::arg<5>) const { return std::forward( a5_ ); } - - A1 && operator[] (network_boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - A5 && operator[] (network_boost::arg<5> (*) ()) const { return std::forward( 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< class A1, class A2, class A3, class A4, class A5, class A6 > class rrlist6 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - A5 & a5_; - A6 & a6_; - -public: - - rrlist6( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ) {} - - A1 && operator[] (network_boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4>) const { return std::forward( a4_ ); } - A5 && operator[] (network_boost::arg<5>) const { return std::forward( a5_ ); } - A6 && operator[] (network_boost::arg<6>) const { return std::forward( a6_ ); } - - A1 && operator[] (network_boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - A5 && operator[] (network_boost::arg<5> (*) ()) const { return std::forward( a5_ ); } - A6 && operator[] (network_boost::arg<6> (*) ()) const { return std::forward( 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< class A1, class A2, class A3, class A4, class A5, class A6, class A7 > class rrlist7 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - A5 & a5_; - A6 & a6_; - A7 & a7_; - -public: - - rrlist7( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ) {} - - A1 && operator[] (network_boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4>) const { return std::forward( a4_ ); } - A5 && operator[] (network_boost::arg<5>) const { return std::forward( a5_ ); } - A6 && operator[] (network_boost::arg<6>) const { return std::forward( a6_ ); } - A7 && operator[] (network_boost::arg<7>) const { return std::forward( a7_ ); } - - A1 && operator[] (network_boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - A5 && operator[] (network_boost::arg<5> (*) ()) const { return std::forward( a5_ ); } - A6 && operator[] (network_boost::arg<6> (*) ()) const { return std::forward( a6_ ); } - A7 && operator[] (network_boost::arg<7> (*) ()) const { return std::forward( 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< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8 > class rrlist8 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - A5 & a5_; - A6 & a6_; - A7 & a7_; - A8 & a8_; - -public: - - rrlist8( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ), a8_( a8 ) {} - - A1 && operator[] (network_boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4>) const { return std::forward( a4_ ); } - A5 && operator[] (network_boost::arg<5>) const { return std::forward( a5_ ); } - A6 && operator[] (network_boost::arg<6>) const { return std::forward( a6_ ); } - A7 && operator[] (network_boost::arg<7>) const { return std::forward( a7_ ); } - A8 && operator[] (network_boost::arg<8>) const { return std::forward( a8_ ); } - - A1 && operator[] (network_boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - A5 && operator[] (network_boost::arg<5> (*) ()) const { return std::forward( a5_ ); } - A6 && operator[] (network_boost::arg<6> (*) ()) const { return std::forward( a6_ ); } - A7 && operator[] (network_boost::arg<7> (*) ()) const { return std::forward( a7_ ); } - A8 && operator[] (network_boost::arg<8> (*) ()) const { return std::forward( 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< class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9 > class rrlist9 -{ -private: - - A1 & a1_; - A2 & a2_; - A3 & a3_; - A4 & a4_; - A5 & a5_; - A6 & a6_; - A7 & a7_; - A8 & a8_; - A9 & a9_; - -public: - - rrlist9( A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9 ): a1_( a1 ), a2_( a2 ), a3_( a3 ), a4_( a4 ), a5_( a5 ), a6_( a6 ), a7_( a7 ), a8_( a8 ), a9_( a9 ) {} - - A1 && operator[] (network_boost::arg<1>) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2>) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3>) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4>) const { return std::forward( a4_ ); } - A5 && operator[] (network_boost::arg<5>) const { return std::forward( a5_ ); } - A6 && operator[] (network_boost::arg<6>) const { return std::forward( a6_ ); } - A7 && operator[] (network_boost::arg<7>) const { return std::forward( a7_ ); } - A8 && operator[] (network_boost::arg<8>) const { return std::forward( a8_ ); } - A9 && operator[] (network_boost::arg<9>) const { return std::forward( a9_ ); } - - A1 && operator[] (network_boost::arg<1> (*) ()) const { return std::forward( a1_ ); } - A2 && operator[] (network_boost::arg<2> (*) ()) const { return std::forward( a2_ ); } - A3 && operator[] (network_boost::arg<3> (*) ()) const { return std::forward( a3_ ); } - A4 && operator[] (network_boost::arg<4> (*) ()) const { return std::forward( a4_ ); } - A5 && operator[] (network_boost::arg<5> (*) ()) const { return std::forward( a5_ ); } - A6 && operator[] (network_boost::arg<6> (*) ()) const { return std::forward( a6_ ); } - A7 && operator[] (network_boost::arg<7> (*) ()) const { return std::forward( a7_ ); } - A8 && operator[] (network_boost::arg<8> (*) ()) const { return std::forward( a8_ ); } - A9 && operator[] (network_boost::arg<9> (*) ()) const { return std::forward( 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 class bind_t -{ -private: - - F f_; - L l_; - -public: - - typedef typename result_traits::type result_type; - typedef bind_t this_type; - - bind_t( F f, L const & l ): f_( f ), l_( l ) {} - - // - - result_type operator()() - { - list0 a; - return l_( type(), f_, a, 0 ); - } - - result_type operator()() const - { - list0 a; - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1 ) - { - rrlist1< A1 > a( a1 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1 ) const - { - rrlist1< A1 > a( a1 ); - return l_(type(), f_, a, 0); - } - - template result_type operator()( A1 && a1, A2 && a2 ) - { - rrlist2< A1, A2 > a( a1, a2 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2 ) const - { - rrlist2< A1, A2 > a( a1, a2 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3 ) - { - rrlist3< A1, A2, A3 > a( a1, a2, a3 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3 ) const - { - rrlist3< A1, A2, A3 > a( a1, a2, a3 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) - { - rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4 ) const - { - rrlist4< A1, A2, A3, A4 > a( a1, a2, a3, a4 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) - { - rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5 ) const - { - rrlist5< A1, A2, A3, A4, A5 > a( a1, a2, a3, a4, a5 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) - { - rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6 ) const - { - rrlist6< A1, A2, A3, A4, A5, A6 > a( a1, a2, a3, a4, a5, a6 ); - return l_( type(), f_, a, 0 ); - } - - template result_type operator()( A1 && a1, A2 && a2, A3 && a3, A4 && a4, A5 && a5, A6 && a6, A7 && a7 ) - { - rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 ); - 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 - { - rrlist7< A1, A2, A3, A4, A5, A6, A7 > a( a1, a2, a3, a4, a5, a6, a7 ); - 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 ) - { - rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 ); - 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 - { - rrlist8< A1, A2, A3, A4, A5, A6, A7, A8 > a( a1, a2, a3, a4, a5, a6, a7, a8 ); - 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 ) - { - rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 ); - 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 - { - rrlist9< A1, A2, A3, A4, A5, A6, A7, A8, A9 > a( a1, a2, a3, a4, a5, a6, a7, a8, a9 ); - return l_( type(), f_, a, 0 ); - } - - // - - template result_type eval( A & a ) - { - return l_( type(), f_, a, 0 ); - } - - template result_type eval( A & a ) const - { - return l_( type(), f_, a, 0 ); - } - - template void accept( V & v ) const - { -#if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ ) - using network_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_; - } -}; - -#elif !defined( 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 // no void returns - -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 network_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, network_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 network_boost::arg type; -}; - -template struct add_value< arg (*) () > -{ - typedef network_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 network_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(network_boost::type, F f) -{ - typedef _bi::list0 list_type; - return _bi::bind_t (f, list_type()); -} - -template - _bi::bind_t::type> - BOOST_BIND(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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__, BOOST_TESTED_AT( 0x620 ) ) ) - -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 > -{ -#ifdef BOOST_MSVC -#pragma warning(push) -#pragma warning(disable:4180) -#endif - typedef M const & type; -#ifdef BOOST_MSVC -#pragma warning(pop) -#endif -}; - -template< class R, class T > struct add_cref< R (T::*) (), 1 > -{ - typedef void type; -}; - -#if !defined(__IBMCPP__) || __IBMCPP_FUNC_CV_TMPL_ARG_DEDUCTION - -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 network_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/src/boost/bind/bind_cc.hpp b/src/boost/bind/bind_cc.hpp deleted file mode 100644 index 35f8eceb..00000000 --- a/src/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/src/boost/bind/bind_mf2_cc.hpp b/src/boost/bind/bind_mf2_cc.hpp deleted file mode 100644 index 69b7cd3e..00000000 --- a/src/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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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(network_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/src/boost/bind/bind_mf_cc.hpp b/src/boost/bind/bind_mf_cc.hpp deleted file mode 100644 index 622f14b0..00000000 --- a/src/boost/bind/bind_mf_cc.hpp +++ /dev/null @@ -1,441 +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)); -} - -template - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_1::type> - >::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 - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_1::type> - >::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)); -} - -template - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_2::type> - >::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 - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_2::type> - >::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)); -} - -template - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_3::type> - >::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 - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_3::type> - >::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)); -} - -template - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_4::type> - >::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 - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_4::type> - >::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)); -} - -template - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_5::type> - >::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 - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_5::type> - >::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)); -} - -template - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_6::type> - >::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 - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_6::type> - >::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)); -} - -template - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_7::type> - >::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 - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_7::type> - >::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)); -} - -template - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_8::type> - >::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 - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_8::type> - >::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)); -} - -template - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_9::type> - >::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 - typename network_boost::enable_if_c::value, - _bi::bind_t, typename _bi::list_av_9::type> - >::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/src/boost/bind/bind_template.hpp b/src/boost/bind/bind_template.hpp deleted file mode 100644 index 755cb5e2..00000000 --- a/src/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 network_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/src/boost/bind/mem_fn.hpp b/src/boost/bind/mem_fn.hpp deleted file mode 100644 index 2fe019fc..00000000 --- a/src/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 network_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 network_boost - -#endif // #ifndef BOOST_BIND_MEM_FN_HPP_INCLUDED diff --git a/src/boost/bind/mem_fn_cc.hpp b/src/boost/bind/mem_fn_cc.hpp deleted file mode 100644 index 8b6ea0ba..00000000 --- a/src/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/src/boost/bind/mem_fn_template.hpp b/src/boost/bind/mem_fn_template.hpp deleted file mode 100644 index b26d585d..00000000 --- a/src/boost/bind/mem_fn_template.hpp +++ /dev/null @@ -1,1047 +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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p); - } - -#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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p); - } - - 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, a1, a2, a3); - } - -#ifdef BOOST_MEM_FN_ENABLE_CONST_OVERLOADS - - template R operator()(U const & u, A1 a1, A2 a2, A3 a3) const - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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 - { - U const * p = 0; - BOOST_MEM_FN_RETURN call(u, p, 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/src/boost/bind/mem_fn_vw.hpp b/src/boost/bind/mem_fn_vw.hpp deleted file mode 100644 index f3fc58db..00000000 --- a/src/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/src/boost/bind/placeholders.hpp b/src/boost/bind/placeholders.hpp deleted file mode 100644 index d115e9c9..00000000 --- a/src/boost/bind/placeholders.hpp +++ /dev/null @@ -1,62 +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. -// Copyright 2015 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 - -namespace network_boost -{ - -namespace placeholders -{ - -#if defined(__BORLANDC__) || defined(__GNUC__) && (__GNUC__ < 4) - -inline network_boost::arg<1> _1() { return network_boost::arg<1>(); } -inline network_boost::arg<2> _2() { return network_boost::arg<2>(); } -inline network_boost::arg<3> _3() { return network_boost::arg<3>(); } -inline network_boost::arg<4> _4() { return network_boost::arg<4>(); } -inline network_boost::arg<5> _5() { return network_boost::arg<5>(); } -inline network_boost::arg<6> _6() { return network_boost::arg<6>(); } -inline network_boost::arg<7> _7() { return network_boost::arg<7>(); } -inline network_boost::arg<8> _8() { return network_boost::arg<8>(); } -inline network_boost::arg<9> _9() { return network_boost::arg<9>(); } - -#else - -BOOST_STATIC_CONSTEXPR network_boost::arg<1> _1; -BOOST_STATIC_CONSTEXPR network_boost::arg<2> _2; -BOOST_STATIC_CONSTEXPR network_boost::arg<3> _3; -BOOST_STATIC_CONSTEXPR network_boost::arg<4> _4; -BOOST_STATIC_CONSTEXPR network_boost::arg<5> _5; -BOOST_STATIC_CONSTEXPR network_boost::arg<6> _6; -BOOST_STATIC_CONSTEXPR network_boost::arg<7> _7; -BOOST_STATIC_CONSTEXPR network_boost::arg<8> _8; -BOOST_STATIC_CONSTEXPR network_boost::arg<9> _9; - -#endif - -} // namespace placeholders - -} // namespace network_boost - -#endif // #ifndef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED diff --git a/src/boost/bind/storage.hpp b/src/boost/bind/storage.hpp deleted file mode 100644 index fa4872eb..00000000 --- a/src/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 network_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< network_boost::arg > -{ - explicit storage1( network_boost::arg ) {} - - template void accept(V &) const { } - - static network_boost::arg a1_() { return network_boost::arg(); } -}; - -template struct storage1< network_boost::arg (*) () > -{ - explicit storage1( network_boost::arg (*) () ) {} - - template void accept(V &) const { } - - static network_boost::arg a1_() { return network_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, network_boost::arg >: public storage1 -{ - typedef storage1 inherited; - - storage2( A1 a1, network_boost::arg ): storage1( a1 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a2_() { return network_boost::arg(); } -}; - -template struct storage2< A1, network_boost::arg (*) () >: public storage1 -{ - typedef storage1 inherited; - - storage2( A1 a1, network_boost::arg (*) () ): storage1( a1 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a2_() { return network_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, network_boost::arg >: public storage2< A1, A2 > -{ - typedef storage2 inherited; - - storage3( A1 a1, A2 a2, network_boost::arg ): storage2( a1, a2 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a3_() { return network_boost::arg(); } -}; - -template struct storage3< A1, A2, network_boost::arg (*) () >: public storage2< A1, A2 > -{ - typedef storage2 inherited; - - storage3( A1 a1, A2 a2, network_boost::arg (*) () ): storage2( a1, a2 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a3_() { return network_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, network_boost::arg >: public storage3< A1, A2, A3 > -{ - typedef storage3 inherited; - - storage4( A1 a1, A2 a2, A3 a3, network_boost::arg ): storage3( a1, a2, a3 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a4_() { return network_boost::arg(); } -}; - -template struct storage4< A1, A2, A3, network_boost::arg (*) () >: public storage3< A1, A2, A3 > -{ - typedef storage3 inherited; - - storage4( A1 a1, A2 a2, A3 a3, network_boost::arg (*) () ): storage3( a1, a2, a3 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a4_() { return network_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, network_boost::arg >: public storage4< A1, A2, A3, A4 > -{ - typedef storage4 inherited; - - storage5( A1 a1, A2 a2, A3 a3, A4 a4, network_boost::arg ): storage4( a1, a2, a3, a4 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a5_() { return network_boost::arg(); } -}; - -template struct storage5< A1, A2, A3, A4, network_boost::arg (*) () >: public storage4< A1, A2, A3, A4 > -{ - typedef storage4 inherited; - - storage5( A1 a1, A2 a2, A3 a3, A4 a4, network_boost::arg (*) () ): storage4( a1, a2, a3, a4 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a5_() { return network_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, network_boost::arg >: public storage5< A1, A2, A3, A4, A5 > -{ - typedef storage5 inherited; - - storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, network_boost::arg ): storage5( a1, a2, a3, a4, a5 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a6_() { return network_boost::arg(); } -}; - -template struct storage6< A1, A2, A3, A4, A5, network_boost::arg (*) () >: public storage5< A1, A2, A3, A4, A5 > -{ - typedef storage5 inherited; - - storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, network_boost::arg (*) () ): storage5( a1, a2, a3, a4, a5 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a6_() { return network_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, network_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, network_boost::arg ): storage6( a1, a2, a3, a4, a5, a6 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a7_() { return network_boost::arg(); } -}; - -template struct storage7< A1, A2, A3, A4, A5, A6, network_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, network_boost::arg (*) () ): storage6( a1, a2, a3, a4, a5, a6 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a7_() { return network_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, network_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, network_boost::arg ): storage7( a1, a2, a3, a4, a5, a6, a7 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a8_() { return network_boost::arg(); } -}; - -template struct storage8< A1, A2, A3, A4, A5, A6, A7, network_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, network_boost::arg (*) () ): storage7( a1, a2, a3, a4, a5, a6, a7 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a8_() { return network_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, network_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, network_boost::arg ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a9_() { return network_boost::arg(); } -}; - -template struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, network_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, network_boost::arg (*) () ): storage8( a1, a2, a3, a4, a5, a6, a7, a8 ) {} - - template void accept(V & v) const - { - inherited::accept(v); - } - - static network_boost::arg a9_() { return network_boost::arg(); } -}; - -#endif - -} // namespace _bi - -} // namespace network_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/src/boost/call_traits.hpp b/src/boost/call_traits.hpp deleted file mode 100644 index 2c1328e9..00000000 --- a/src/boost/call_traits.hpp +++ /dev/null @@ -1,20 +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 -// for full copyright notices. - -#ifndef BOOST_CALL_TRAITS_HPP -#define BOOST_CALL_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -#include -#endif - -#include - -#endif // BOOST_CALL_TRAITS_HPP diff --git a/src/boost/checked_delete.hpp b/src/boost/checked_delete.hpp deleted file mode 100644 index fb71c789..00000000 --- a/src/boost/checked_delete.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * Distributed under the 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_CHECKED_DELETE_HPP -#define BOOST_CHECKED_DELETE_HPP - -// The header file at this path is deprecated; -// use boost/core/checked_delete.hpp instead. - -#include - -#endif diff --git a/src/boost/concept/assert.hpp b/src/boost/concept/assert.hpp deleted file mode 100644 index cf981795..00000000 --- a/src/boost/concept/assert.hpp +++ /dev/null @@ -1,45 +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)) - -// 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/src/boost/concept/detail/backward_compatibility.hpp b/src/boost/concept/detail/backward_compatibility.hpp deleted file mode 100644 index 73ed6792..00000000 --- a/src/boost/concept/detail/backward_compatibility.hpp +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright David Abrahams 2009. Distributed under the Boost -// Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#ifndef BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP -# define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP - -namespace network_boost -{ - namespace concepts {} - -# if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD) - namespace concept = concepts; -# endif -} // namespace network_boost::concept - -#endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP diff --git a/src/boost/concept/detail/borland.hpp b/src/boost/concept/detail/borland.hpp deleted file mode 100644 index 250470df..00000000 --- a/src/boost/concept/detail/borland.hpp +++ /dev/null @@ -1,30 +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 -# include - -namespace network_boost { namespace concepts { - -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__) = \ - network_boost::concepts::require::instantiate \ - } - -}} // namespace network_boost::concept - -#endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP diff --git a/src/boost/concept/detail/concept_def.hpp b/src/boost/concept/detail/concept_def.hpp deleted file mode 100644 index 750561ee..00000000 --- a/src/boost/concept/detail/concept_def.hpp +++ /dev/null @@ -1,34 +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. -# 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 - -// Helper for BOOST_concept, above. -# define BOOST_CONCEPT_typename(r, ignored, index, t) \ - BOOST_PP_COMMA_IF(index) typename t - diff --git a/src/boost/concept/detail/concept_undef.hpp b/src/boost/concept/detail/concept_undef.hpp deleted file mode 100644 index 713db891..00000000 --- a/src/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/src/boost/concept/detail/general.hpp b/src/boost/concept/detail/general.hpp deleted file mode 100644 index 1c52ed0d..00000000 --- a/src/boost/concept/detail/general.hpp +++ /dev/null @@ -1,77 +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 -# include -# include - -# ifdef BOOST_OLD_CONCEPT_SUPPORT -# include -# include -# endif - -// This implementation works on Comeau and GCC, all the way back to -// 2.95 -namespace network_boost { namespace concepts { - -template -struct requirement_; - -namespace detail -{ - template struct instantiate {}; -} - -template -struct requirement -{ - static void failed() { ((Model*)0)->~Model(); } -}; - -struct failed {}; - -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_< - concepts::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 ::network_boost::concepts::detail::instantiate< \ - &::network_boost::concepts::requirement_::failed> \ - BOOST_PP_CAT(boost_concept_check,__LINE__) \ - BOOST_ATTRIBUTE_UNUSED - -}} - -#endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP diff --git a/src/boost/concept/detail/has_constraints.hpp b/src/boost/concept/detail/has_constraints.hpp deleted file mode 100644 index d87d4c8e..00000000 --- a/src/boost/concept/detail/has_constraints.hpp +++ /dev/null @@ -1,50 +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 -# include - -namespace network_boost { namespace concepts { - -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) || defined(__CUDACC__) - // 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 network_boost::concepts::detail - -#endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP diff --git a/src/boost/concept/detail/msvc.hpp b/src/boost/concept/detail/msvc.hpp deleted file mode 100644 index 5601942a..00000000 --- a/src/boost/concept/detail/msvc.hpp +++ /dev/null @@ -1,123 +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 -# include -# include - -# ifdef BOOST_OLD_CONCEPT_SUPPORT -# include -# include -# endif - -# ifdef BOOST_MSVC -# pragma warning(push) -# pragma warning(disable:4100) -# endif - -namespace network_boost { namespace concepts { - - -template -struct check -{ - virtual void failed(Model* x) - { - x->~Model(); - } -}; - -# ifndef BOOST_NO_PARTIAL_SPECIALIZATION -struct failed {}; -template -struct check -{ - virtual void failed(Model* x) - { - x->~Model(); - } -}; -# endif - -# 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 -# ifndef BOOST_NO_PARTIAL_SPECIALIZATION - , check -# else - , check -# endif - >::type -{}; - -# else - -template -struct require -# ifndef BOOST_NO_PARTIAL_SPECIALIZATION - : check -# else - : check -# endif -{}; - -# 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(::network_boost::concepts::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(::network_boost::concepts::require_((ModelFnPtr)0)) \ -} - -# endif -}} - -# ifdef BOOST_MSVC -# pragma warning(pop) -# endif - -#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP diff --git a/src/boost/concept/usage.hpp b/src/boost/concept/usage.hpp deleted file mode 100644 index 92a6b3ba..00000000 --- a/src/boost/concept/usage.hpp +++ /dev/null @@ -1,36 +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 -# include - -namespace network_boost { namespace concepts { - -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((network_boost::concepts::usage_requirements)); \ - ~model() - -# else - -# define BOOST_CONCEPT_USAGE(model) \ - BOOST_CONCEPT_ASSERT((network_boost::concepts::usage_requirements)); \ - ~model() - -# endif - -}} // namespace network_boost::concepts - -#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP diff --git a/src/boost/concept_check.hpp b/src/boost/concept_check.hpp deleted file mode 100644 index 37a6f2dd..00000000 --- a/src/boost/concept_check.hpp +++ /dev/null @@ -1,1082 +0,0 @@ -// -// (C) Copyright Jeremy Siek 2000. -// Copyright 2002 The Trustees of Indiana University. -// -// Distributed under the 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 - -#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 - -namespace network_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 {}; - template <> struct Integer {}; -# if defined(BOOST_HAS_LONG_LONG) - template <> struct Integer< ::network_boost::long_long_type> {}; - template <> struct Integer< ::network_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< ::network_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< ::network_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 = b; // require assignment operator -#endif - const_constraints(b); - } - private: - void const_constraints(const TT& x) { -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = x; // const required for argument to assignment -#else - ignore_unused_variable_warning(x); -#endif - } - private: - TT a; - TT b; - }; - - - 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; - }; - - // The SGI STL version of Assignable requires copy constructor and operator= - BOOST_concept(SGIAssignable,(TT)) - { - BOOST_CONCEPT_USAGE(SGIAssignable) { - TT c(a); -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = b; // require assignment operator -#endif - const_constraints(b); - ignore_unused_variable_warning(c); - } - private: - void const_constraints(const TT& x) { - TT c(x); -#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL - a = x; // const required for argument to assignment -#endif - ignore_unused_variable_warning(c); - } - TT a; - TT b; - }; - - 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(network_boost::mpl::false_) - { - // Do we really want a reference here? - const Return& r = f(); - ignore_unused_variable_warning(r); - } - - void test(network_boost::mpl::true_) - { - f(); - } - - Func f; - }; - - BOOST_concept(UnaryFunction,(Func)(Return)(Arg)) - { - BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void()); } - - private: - void test(network_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(network_boost::mpl::true_) - { - f(arg); - } - -#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ - && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy construktor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. - // (warning: non-static reference "const double& network_boost::UnaryFunction::arg" - // in class without a constructor [-Wuninitialized]) - UnaryFunction(); -#endif - - Func f; - Arg arg; - }; - - BOOST_concept(BinaryFunction,(Func)(Return)(First)(Second)) - { - BOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void()); } - private: - void test(network_boost::mpl::false_) - { - f(first,second); - Return r = f(first, second); // require operator() - (void)r; - } - - void test(network_boost::mpl::true_) - { - f(first,second); - } - -#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ - && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. - // (warning: non-static reference "const double& network_boost::BinaryFunction::arg" - // in class without a constructor [-Wuninitialized]) - BinaryFunction(); -#endif - - 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: -#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ - && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. - // (warning: non-static reference "const double& network_boost::UnaryPredicate::arg" - // in class without a constructor [-Wuninitialized]) - UnaryPredicate(); -#endif - - 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: -#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ - && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. - // (warning: non-static reference "const double& network_boost::BinaryPredicate::arg" - // in class without a constructor [-Wuninitialized]) - BinaryPredicate(); -#endif - 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)); - } -#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \ - && BOOST_WORKAROUND(__GNUC__, > 3))) - // Declare a dummy constructor to make gcc happy. - // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type. - // (warning: non-static reference "const double& network_boost::Const_BinaryPredicate::arg" - // in class without a constructor [-Wuninitialized]) - Const_BinaryPredicate(); -#endif - - 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 std::iterator_traits::value_type value_type; - typedef typename std::iterator_traits::difference_type difference_type; - typedef typename std::iterator_traits::reference reference; - typedef typename std::iterator_traits::pointer pointer; - typedef typename std::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++ = *j; // require postincrement and assignment - } - private: - TT i, j; - }; - - 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-- = *j; // require postdecrement and assignment - } - private: - TT i, j; - }; - - 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 std::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 std::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, t), - c2(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(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((network_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((network_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 - - BOOST_concept(Collection,(C)) - { - BOOST_CONCEPT_USAGE(Collection) - { - network_boost::function_requires >(); - network_boost::function_requires >(); - network_boost::function_requires >(); - const_constraints(c); - i = c.begin(); - i = c.end(); - c.swap(c); - } - - void const_constraints(const C& cc) { - ci = cc.begin(); - ci = cc.end(); - n = cc.size(); - b = cc.empty(); - } - - private: - typedef typename C::value_type value_type; - typedef typename C::iterator iterator; - typedef typename C::const_iterator const_iterator; - typedef typename C::reference reference; - typedef typename C::const_reference const_reference; - // typedef typename C::pointer pointer; - typedef typename C::difference_type difference_type; - typedef typename C::size_type size_type; - - C c; - bool b; - iterator i; - const_iterator ci; - size_type n; - }; -} // namespace network_boost - -#if (defined _MSC_VER) -# pragma warning( pop ) -#endif - -# include - -#endif // BOOST_CONCEPT_CHECKS_HPP - diff --git a/src/boost/config.hpp b/src/boost/config.hpp deleted file mode 100644 index d49bb27c..00000000 --- a/src/boost/config.hpp +++ /dev/null @@ -1,67 +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 -#if 0 -// For dependency trackers: -# include -#endif -#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) && defined(__cplusplus) -# 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 - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#endif // BOOST_CONFIG_HPP diff --git a/src/boost/config/abi/borland_prefix.hpp b/src/boost/config/abi/borland_prefix.hpp deleted file mode 100644 index 3a0e5ae2..00000000 --- a/src/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 -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026 - - - diff --git a/src/boost/config/abi/borland_suffix.hpp b/src/boost/config/abi/borland_suffix.hpp deleted file mode 100644 index 940535f3..00000000 --- a/src/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/src/boost/config/abi/msvc_prefix.hpp b/src/boost/config/abi/msvc_prefix.hpp deleted file mode 100644 index 97f06cdc..00000000 --- a/src/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/src/boost/config/abi/msvc_suffix.hpp b/src/boost/config/abi/msvc_suffix.hpp deleted file mode 100644 index a64d783e..00000000 --- a/src/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/src/boost/config/abi_prefix.hpp b/src/boost/config/abi_prefix.hpp deleted file mode 100644 index 3b134749..00000000 --- a/src/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/src/boost/config/abi_suffix.hpp b/src/boost/config/abi_suffix.hpp deleted file mode 100644 index 93916166..00000000 --- a/src/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/src/boost/config/auto_link.hpp b/src/boost/config/auto_link.hpp deleted file mode 100644 index 56a16b0b..00000000 --- a/src/boost/config/auto_link.hpp +++ /dev/null @@ -1,439 +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. -BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option. - This is essentially the same as the default name-mangled version, but without - the compiler name and version, or the Boost version. Just the build options. - -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 hyphen: - - s static runtime (dynamic if not present). - g debug/diagnostic runtime (release if not present). - y Python debug/diagnostic runtime (release if not present). - d debug build (release if not present). - p STLport build. - n STLport build without its IOStreams. - -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 -# if defined(BOOST_MSVC) && (BOOST_MSVC < 1200) - // Note: no compilers before 1200 are supported -# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300) - -# ifdef UNDER_CE - // eVC4: -# define BOOST_LIB_TOOLSET "evc4" -# else - // vc6: -# define BOOST_LIB_TOOLSET "vc6" -# endif - -# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310) - - // vc7: -# define BOOST_LIB_TOOLSET "vc7" - -# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400) - - // vc71: -# define BOOST_LIB_TOOLSET "vc71" - -# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500) - - // vc80: -# define BOOST_LIB_TOOLSET "vc80" - -# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600) - - // vc90: -# define BOOST_LIB_TOOLSET "vc90" - -# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700) - - // vc10: -# define BOOST_LIB_TOOLSET "vc100" - -# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800) - - // vc11: -# define BOOST_LIB_TOOLSET "vc110" - -# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1900) - - // vc12: -# define BOOST_LIB_TOOLSET "vc120" - -# elif defined(BOOST_MSVC) - - // vc14: -# define BOOST_LIB_TOOLSET "vc140" - -# 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))\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-gydp" -# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-gdp" -# elif defined(_DEBUG)\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-gydp" -# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# 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))\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-gydpn" -# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-gdpn" -# elif defined(_DEBUG)\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-gydpn" -# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# 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) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-gyd" -# elif 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))\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-sgydp" -# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-sgdp" -# elif defined(_DEBUG)\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-sgydp" -# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# 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))\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-sgydpn" -# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) -# define BOOST_LIB_RT_OPT "-sgdpn" -# elif defined(_DEBUG)\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-sgydpn" -# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1") -# error "Build options aren't compatible with pre-built libraries" -# 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)\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-sgyd" -# elif 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 - -# if defined(BOOST_BORLAND_DEBUG)\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-yd" -# elif defined(BOOST_BORLAND_DEBUG) -# define BOOST_LIB_RT_OPT "-d" -# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT -y -# else -# define BOOST_LIB_RT_OPT -# endif - -# else - -# if defined(BOOST_BORLAND_DEBUG)\ - && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-syd" -# elif defined(BOOST_BORLAND_DEBUG) -# define BOOST_LIB_RT_OPT "-sd" -# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -# define BOOST_LIB_RT_OPT "-sy" -# 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) - -#ifdef BOOST_AUTO_LINK_TAGGED -# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib") -# ifdef BOOST_LIB_DIAGNOSTIC -# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib") -# endif -#elif defined(BOOST_AUTO_LINK_NOMANGLE) -# 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 -#elif defined(BOOST_LIB_BUILDID) -# 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 "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".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 "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib") -# endif -#else -# 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 -#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 - - diff --git a/src/boost/config/compiler/borland.hpp b/src/boost/config/compiler/borland.hpp deleted file mode 100644 index 80dd2300..00000000 --- a/src/boost/config/compiler/borland.hpp +++ /dev/null @@ -1,318 +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__ > 0x613) -//# 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 -// Variadic macros do not exist for C++ Builder versions 5 and below -#define BOOST_NO_CXX11_VARIADIC_MACROS -# 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: -#ifdef __cplusplus -#include -#include -#else -#include -#include -#endif // __cplusplus -#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) - -# if defined(NDEBUG) && defined(__cplusplus) - // 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 - -#if (__BORLANDC__ <= 0x613) // 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 -# define BOOST_NO_USING_TEMPLATE -# define BOOST_SP_NO_SP_CONVERTIBLE - -// Temporary workaround -#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS -#endif - -// Borland C++ Builder 2008 and below: -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE -# define BOOST_NO_NESTED_FRIENDSHIP -# define BOOST_NO_TYPENAME_WITH_CTOR -#if (__BORLANDC__ < 0x600) -# define BOOST_ILLEGAL_CV_REFERENCES -#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_NO_CXX11_CHAR16_T -# define BOOST_NO_CXX11_CHAR32_T -# define BOOST_NO_CXX11_DECLTYPE -# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_CXX11_EXTERN_TEMPLATE -# define BOOST_NO_CXX11_RVALUE_REFERENCES -# define BOOST_NO_CXX11_SCOPED_ENUMS -# define BOOST_NO_CXX11_STATIC_ASSERT -#else -# 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 -#endif - -#define BOOST_NO_CXX11_AUTO_DECLARATIONS -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_RVALUE_REFERENCES -#define BOOST_NO_CXX11_SCOPED_ENUMS -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS // UTF-8 still not supported -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_CXX11_ALIGNAS -#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#define BOOST_NO_CXX11_INLINE_NAMESPACES -#define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -#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) && !defined(BOOST_NO_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif -// -// all versions have a : -// -#ifndef __STRICT_ANSI__ -# define BOOST_HAS_DIRENT_H -#endif -// -// all versions support __declspec: -// -#if defined(__STRICT_ANSI__) -// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined -# define BOOST_SYMBOL_EXPORT -#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 - -// Borland did not implement value-initialization completely, as I reported -// in 2007, Borland Report 51854, "Value-initialization: POD struct should be -// zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854 -// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues -// (Niels Dekker, LKEB, April 2010) -#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION - -#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__) diff --git a/src/boost/config/compiler/clang.hpp b/src/boost/config/compiler/clang.hpp deleted file mode 100644 index 5481e5ee..00000000 --- a/src/boost/config/compiler/clang.hpp +++ /dev/null @@ -1,279 +0,0 @@ -// (C) Copyright Douglas Gregor 2010 -// -// 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. - -// Clang compiler setup. - -#define BOOST_HAS_PRAGMA_ONCE - -// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used. -#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4)) -# define BOOST_HAS_PRAGMA_DETECT_MISMATCH -#endif - -// When compiling with clang before __has_extension was defined, -// even if one writes 'defined(__has_extension) && __has_extension(xxx)', -// clang reports a compiler error. So the only workaround found is: - -#ifndef __has_extension -#define __has_extension __has_feature -#endif - -#ifndef __has_attribute -#define __has_attribute(x) 0 -#endif - -#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif - -#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI) -# define BOOST_NO_RTTI -#endif - -#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID) -# define BOOST_NO_TYPEID -#endif - -#if defined(__int64) && !defined(__GNUC__) -# define BOOST_HAS_MS_INT64 -#endif - -#define BOOST_HAS_NRVO - -// Branch prediction hints -#if defined(__has_builtin) -#if __has_builtin(__builtin_expect) -#define BOOST_LIKELY(x) __builtin_expect(x, 1) -#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) -#endif -#endif - -// Clang supports "long long" in all compilation modes. -#define BOOST_HAS_LONG_LONG - -// -// We disable this if the compiler is really nvcc as it -// doesn't actually support __int128 as of CUDA_VERSION=5000 -// even though it defines __SIZEOF_INT128__. -// See https://svn.boost.org/trac/boost/ticket/10418 -// Only re-enable this for nvcc if you're absolutely sure -// of the circumstances under which it's supported. -// Similarly __SIZEOF_INT128__ is defined when targetting msvc -// compatibility even though the required support functions are absent. -// -#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__) && !defined(_MSC_VER) -# define BOOST_HAS_INT128 -#endif - - -// -// Dynamic shared object (DSO) and dynamic-link library (DLL) support -// -#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) -# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) -# define BOOST_SYMBOL_IMPORT -# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) -#endif - -// -// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through -// between switch labels. -// -#if __cplusplus >= 201103L && defined(__has_warning) -# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") -# define BOOST_FALLTHROUGH [[clang::fallthrough]] -# endif -#endif - -#if !__has_feature(cxx_auto_type) -# define BOOST_NO_CXX11_AUTO_DECLARATIONS -# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#endif - -// -// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t -// -#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L) -# define BOOST_NO_CXX11_CHAR16_T -# define BOOST_NO_CXX11_CHAR32_T -#endif - -#if !__has_feature(cxx_constexpr) -# define BOOST_NO_CXX11_CONSTEXPR -#endif - -#if !__has_feature(cxx_decltype) -# define BOOST_NO_CXX11_DECLTYPE -#endif - -#if !__has_feature(cxx_decltype_incomplete_return_types) -# define BOOST_NO_CXX11_DECLTYPE_N3276 -#endif - -#if !__has_feature(cxx_defaulted_functions) -# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#endif - -#if !__has_feature(cxx_deleted_functions) -# define BOOST_NO_CXX11_DELETED_FUNCTIONS -#endif - -#if !__has_feature(cxx_explicit_conversions) -# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#endif - -#if !__has_feature(cxx_default_function_template_args) -# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#endif - -#if !__has_feature(cxx_generalized_initializers) -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#endif - -#if !__has_feature(cxx_lambdas) -# define BOOST_NO_CXX11_LAMBDAS -#endif - -#if !__has_feature(cxx_local_type_template_args) -# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#endif - -#if !__has_feature(cxx_noexcept) -# define BOOST_NO_CXX11_NOEXCEPT -#endif - -#if !__has_feature(cxx_nullptr) -# define BOOST_NO_CXX11_NULLPTR -#endif - -#if !__has_feature(cxx_range_for) -# define BOOST_NO_CXX11_RANGE_BASED_FOR -#endif - -#if !__has_feature(cxx_raw_string_literals) -# define BOOST_NO_CXX11_RAW_LITERALS -#endif - -#if !__has_feature(cxx_reference_qualified_functions) -# define BOOST_NO_CXX11_REF_QUALIFIERS -#endif - -#if !__has_feature(cxx_generalized_initializers) -# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#endif - -#if !__has_feature(cxx_rvalue_references) -# define BOOST_NO_CXX11_RVALUE_REFERENCES -#endif - -#if !__has_feature(cxx_strong_enums) -# define BOOST_NO_CXX11_SCOPED_ENUMS -#endif - -#if !__has_feature(cxx_static_assert) -# define BOOST_NO_CXX11_STATIC_ASSERT -#endif - -#if !__has_feature(cxx_alias_templates) -# define BOOST_NO_CXX11_TEMPLATE_ALIASES -#endif - -#if !__has_feature(cxx_unicode_literals) -# define BOOST_NO_CXX11_UNICODE_LITERALS -#endif - -#if !__has_feature(cxx_variadic_templates) -# define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#endif - -#if !__has_feature(cxx_user_literals) -# define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#endif - -#if !__has_feature(cxx_alignas) -# define BOOST_NO_CXX11_ALIGNAS -#endif - -#if !__has_feature(cxx_trailing_return) -# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#endif - -#if !__has_feature(cxx_inline_namespaces) -# define BOOST_NO_CXX11_INLINE_NAMESPACES -#endif - -#if !__has_feature(cxx_override_control) -# define BOOST_NO_CXX11_FINAL -#endif - -#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__)) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif - -#if !__has_feature(__cxx_decltype_auto__) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif - -#if !__has_feature(__cxx_aggregate_nsdmi__) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif - -#if !__has_feature(__cxx_init_captures__) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif - -#if !__has_feature(__cxx_generic_lambdas__) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif - -// clang < 3.5 has a defect with dependent type, like following. -// -// template -// constexpr typename enable_if >::type foo(T &) -// { } // error: no return statement in constexpr function -// -// This issue also affects C++11 mode, but C++11 constexpr requires return stmt. -// Therefore we don't care such case. -// -// Note that we can't check Clang version directly as the numbering system changes depending who's -// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873) -// so instead verify that we have a feature that was introduced at the same time as working C++14 -// constexpr (generic lambda's in this case): -// -#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__) -# define BOOST_NO_CXX14_CONSTEXPR -#endif - -#if !__has_feature(__cxx_return_type_deduction__) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif - -#if !__has_feature(__cxx_variable_templates__) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -#if __cplusplus < 201400 -// All versions with __cplusplus above this value seem to support this: -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -// -// __builtin_unreachable: -#if defined(__has_builtin) && __has_builtin(__builtin_unreachable) -#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable(); -#endif - -// Clang has supported the 'unused' attribute since the first release. -#define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__)) - -#ifndef BOOST_COMPILER -# define BOOST_COMPILER "Clang version " __clang_version__ -#endif - -// Macro used to identify the Clang compiler. -#define BOOST_CLANG 1 - diff --git a/src/boost/config/compiler/codegear.hpp b/src/boost/config/compiler/codegear.hpp deleted file mode 100644 index 02bd792a..00000000 --- a/src/boost/config/compiler/codegear.hpp +++ /dev/null @@ -1,220 +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 0x621 -#if (__CODEGEARC__ > 0x621) -# 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__ <= 0x613) -# define BOOST_NO_INTEGRAL_INT64_T -# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS -# define BOOST_NO_PRIVATE_IN_AGGREGATE -# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE - // 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_SP_NO_SP_CONVERTIBLE -#endif - -// CodeGear C++ Builder 2010 -#if (__CODEGEARC__ <= 0x621) -# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type -# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member -# define BOOST_NO_USING_TEMPLATE -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -// Temporary hack, until specific MPL preprocessed headers are generated -# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS - -// CodeGear has not yet completely implemented value-initialization, for -// example for array types, as I reported in 2010: Embarcadero Report 83751, -// "Value-initialization: arrays should have each element value-initialized", -// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751 -// Last checked version: Embarcadero C++ 6.21 -// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues -// (Niels Dekker, LKEB, April 2010) -# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION - -# if defined(NDEBUG) && defined(__cplusplus) - // fix broken so that Boost.test works: -# include -# undef strcmp -# endif - // fix broken errno declaration: -# include -# ifndef errno -# define errno errno -# endif - -#endif - -// Reportedly, #pragma once is supported since C++ Builder 2010 -#if (__CODEGEARC__ >= 0x620) -# define BOOST_HAS_PRAGMA_ONCE -#endif - -// -// C++0x macros: -// -#if (__CODEGEARC__ <= 0x620) -#define BOOST_NO_CXX11_STATIC_ASSERT -#else -#define BOOST_HAS_STATIC_ASSERT -#endif -#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_CXX11_AUTO_DECLARATIONS -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_EXTERN_TEMPLATE -#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_RVALUE_REFERENCES -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_CXX11_ALIGNAS -#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#define BOOST_NO_CXX11_INLINE_NAMESPACES -#define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -// -// 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_CXX11_HDR_INITIALIZER_LIST - -// 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) && !defined(BOOST_NO_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__) -// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined -# define BOOST_SYMBOL_EXPORT -#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/src/boost/config/compiler/comeau.hpp b/src/boost/config/compiler/comeau.hpp deleted file mode 100644 index 278222dc..00000000 --- a/src/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/src/boost/config/compiler/common_edg.hpp b/src/boost/config/compiler/common_edg.hpp deleted file mode 100644 index b92e574d..00000000 --- a/src/boost/config/compiler/common_edg.hpp +++ /dev/null @@ -1,143 +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 - -// See also kai.hpp which checks a Kai-specific symbol for EH -# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -# endif - -# if !defined(__NO_LONG_LONG) -# define BOOST_HAS_LONG_LONG -# else -# define BOOST_NO_LONG_LONG -# endif - -// Not sure what version was the first to support #pragma once, but -// different EDG-based compilers (e.g. Intel) supported it for ages. -// Add a proper version check if it causes problems. -#define BOOST_HAS_PRAGMA_ONCE - -// -// C++0x features -// -// See above for BOOST_NO_LONG_LONG -// -#if (__EDG_VERSION__ < 310) -# define BOOST_NO_CXX11_EXTERN_TEMPLATE -#endif -#if (__EDG_VERSION__ <= 310) -// No support for initializer lists -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#endif -#if (__EDG_VERSION__ < 400) -# define BOOST_NO_CXX11_VARIADIC_MACROS -#endif - -#define BOOST_NO_CXX11_AUTO_DECLARATIONS -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_CHAR16_T -#define BOOST_NO_CXX11_CHAR32_T -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DECLTYPE -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_RVALUE_REFERENCES -#define BOOST_NO_CXX11_SCOPED_ENUMS -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_CXX11_ALIGNAS -#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#define BOOST_NO_CXX11_INLINE_NAMESPACES -#define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -#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/src/boost/config/compiler/compaq_cxx.hpp b/src/boost/config/compiler/compaq_cxx.hpp deleted file mode 100644 index b44486c6..00000000 --- a/src/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/src/boost/config/compiler/cray.hpp b/src/boost/config/compiler/cray.hpp deleted file mode 100644 index 3f660433..00000000 --- a/src/boost/config/compiler/cray.hpp +++ /dev/null @@ -1,92 +0,0 @@ -// (C) Copyright John Maddock 2011. -// (C) Copyright Cray, Inc. 2013 -// 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 "Cray C version " BOOST_STRINGIZE(_RELEASE) - -#if _RELEASE < 8 -# error "Boost is not configured for Cray compilers prior to version 8, please try the configure script." -#endif - -// -// Check this is a recent EDG based compiler, otherwise we don't support it here: -// -#ifndef __EDG_VERSION__ -# error "Unsupported Cray compiler, please try running the configure script." -#endif - -#include "boost/config/compiler/common_edg.hpp" - - -// -// -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_CXX11_AUTO_DECLARATIONS -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_HAS_NRVO -#define BOOST_NO_CXX11_VARIADIC_MACROS -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_HAS_NRVO -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_SCOPED_ENUMS -#define BOOST_NO_CXX11_RVALUE_REFERENCES -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DECLTYPE -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -#define BOOST_NO_CXX11_CHAR32_T -#define BOOST_NO_CXX11_CHAR16_T -#define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL - - -//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG -#define BOOST_MATH_DISABLE_STD_FPCLASSIFY -//#define BOOST_HAS_FPCLASSIFY - -#define BOOST_SP_USE_PTHREADS -#define BOOST_AC_USE_PTHREADS - -/* everything that follows is working around what are thought to be - * compiler shortcomings. Revist all of these regularly. - */ - -//#define BOOST_USE_ENUM_STATIC_ASSERT -//#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS //(this may be implied by the previous #define - -// These constants should be provided by the -// compiler, at least when -hgnu is asserted on the command line. - -#ifndef __ATOMIC_RELAXED -#define __ATOMIC_RELAXED 0 -#define __ATOMIC_CONSUME 1 -#define __ATOMIC_ACQUIRE 2 -#define __ATOMIC_RELEASE 3 -#define __ATOMIC_ACQ_REL 4 -#define __ATOMIC_SEQ_CST 5 -#endif - - - diff --git a/src/boost/config/compiler/digitalmars.hpp b/src/boost/config/compiler/digitalmars.hpp deleted file mode 100644 index a3d293c7..00000000 --- a/src/boost/config/compiler/digitalmars.hpp +++ /dev/null @@ -1,124 +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 !defined(BOOST_STRICT_CONFIG) -#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 -#endif - -// -// has macros: -#define BOOST_HAS_DIRENT_H -#define BOOST_HAS_STDINT_H -#define BOOST_HAS_WINTHREADS - -#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? -// -#ifdef __cplusplus -#include -#endif -#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD) -# define BOOST_NO_STDC_NAMESPACE -#endif - - -// check for exception handling support: -#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif - -// -// C++0x features -// -#define BOOST_NO_CXX11_AUTO_DECLARATIONS -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_CHAR16_T -#define BOOST_NO_CXX11_CHAR32_T -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DECLTYPE -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_CXX11_EXTERN_TEMPLATE -#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_RVALUE_REFERENCES -#define BOOST_NO_CXX11_SCOPED_ENUMS -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_CXX11_ALIGNAS -#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#define BOOST_NO_CXX11_INLINE_NAMESPACES -#define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -#if (__DMC__ <= 0x840) -#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/src/boost/config/compiler/gcc.hpp b/src/boost/config/compiler/gcc.hpp deleted file mode 100644 index d9dd59dc..00000000 --- a/src/boost/config/compiler/gcc.hpp +++ /dev/null @@ -1,314 +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. - -// -// Define BOOST_GCC so we know this is "real" GCC and not some pretender: -// -#define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) -#if !defined(__CUDACC__) -#define BOOST_GCC BOOST_GCC_VERSION -#endif - -#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L) -# define BOOST_GCC_CXX11 -#endif - -#if __GNUC__ == 3 -# if defined (__PATHSCALE__) -# define BOOST_NO_TWO_PHASE_NAME_LOOKUP -# define BOOST_NO_IS_ABSTRACT -# endif - -# if __GNUC_MINOR__ < 4 -# define BOOST_NO_IS_ABSTRACT -# endif -# define BOOST_NO_CXX11_EXTERN_TEMPLATE -#endif -#if __GNUC__ < 4 -// -// All problems to gcc-3.x and earlier here: -// -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -# ifdef __OPEN64__ -# define BOOST_NO_IS_ABSTRACT -# endif -#endif - -// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links -#if BOOST_GCC_VERSION >= 30400 -#define BOOST_HAS_PRAGMA_ONCE -#endif - -#if BOOST_GCC_VERSION < 40400 -// Previous versions of GCC did not completely implement value-initialization: -// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize -// members", reported by Jonathan Wakely in 2006, -// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4) -// GCC Bug 33916, "Default constructor fails to initialize array members", -// reported by Michael Elizabeth Chastain in 2007, -// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4) -// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues -#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -#endif - -#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_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" -// Except on Darwin with standard compliance enabled (-pedantic) -// Apple gcc helpfully defines this macro we can query -// -#if !defined(__DARWIN_NO_LONG_LONG) -# define BOOST_HAS_LONG_LONG -#endif - -// -// gcc implements the named return value optimization since version 3.1 -// -#define BOOST_HAS_NRVO - -// Branch prediction hints -#define BOOST_LIKELY(x) __builtin_expect(x, 1) -#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) - -// -// Dynamic shared object (DSO) and dynamic-link library (DLL) support -// -#if __GNUC__ >= 4 -# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__) - // All Win32 development environments, including 64-bit Windows and MinGW, define - // _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment, - // so does not define _WIN32 or its variants. -# define BOOST_HAS_DECLSPEC -# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__)) -# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__)) -# else -# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) -# define BOOST_SYMBOL_IMPORT -# endif -# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) -#else -// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined -# define BOOST_SYMBOL_EXPORT -#endif - -// -// RTTI and typeinfo detection is possible post gcc-4.3: -// -#if BOOST_GCC_VERSION > 40300 -# ifndef __GXX_RTTI -# ifndef BOOST_NO_TYPEID -# define BOOST_NO_TYPEID -# endif -# ifndef BOOST_NO_RTTI -# define BOOST_NO_RTTI -# endif -# endif -#endif - -// -// Recent GCC versions have __int128 when in 64-bit mode. -// -// We disable this if the compiler is really nvcc as it -// doesn't actually support __int128 as of CUDA_VERSION=5000 -// even though it defines __SIZEOF_INT128__. -// See https://svn.boost.org/trac/boost/ticket/8048 -// Only re-enable this for nvcc if you're absolutely sure -// of the circumstances under which it's supported: -// -#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__) -# define BOOST_HAS_INT128 -#endif -// -// Recent GCC versions have a __float128 native type, we need to -// include a std lib header to detect this - not ideal, but we'll -// be including later anyway when we select the std lib. -// -#ifdef __cplusplus -#include -#else -#include -#endif -#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__) -# define BOOST_HAS_FLOAT128 -#endif - -// C++0x features in 4.3.n and later -// -#if (BOOST_GCC_VERSION >= 40300) && defined(BOOST_GCC_CXX11) -// 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_CXX11_DECLTYPE -# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -# define BOOST_NO_CXX11_RVALUE_REFERENCES -# define BOOST_NO_CXX11_STATIC_ASSERT -#endif - -// C++0x features in 4.4.n and later -// -#if (BOOST_GCC_VERSION < 40400) || !defined(BOOST_GCC_CXX11) -# define BOOST_NO_CXX11_AUTO_DECLARATIONS -# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -# define BOOST_NO_CXX11_CHAR16_T -# define BOOST_NO_CXX11_CHAR32_T -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -# define BOOST_NO_CXX11_DELETED_FUNCTIONS -# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -# define BOOST_NO_CXX11_INLINE_NAMESPACES -# define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#endif - -#if BOOST_GCC_VERSION < 40500 -# define BOOST_NO_SFINAE_EXPR -#endif - -// GCC 4.5 forbids declaration of defaulted functions in private or protected sections -#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 5) || !defined(BOOST_GCC_CXX11) -# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS -#endif - -// C++0x features in 4.5.0 and later -// -#if (BOOST_GCC_VERSION < 40500) || !defined(BOOST_GCC_CXX11) -# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_CXX11_LAMBDAS -# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -# define BOOST_NO_CXX11_RAW_LITERALS -# define BOOST_NO_CXX11_UNICODE_LITERALS -#endif - -// C++0x features in 4.5.1 and later -// -#if (BOOST_GCC_VERSION < 40501) || !defined(BOOST_GCC_CXX11) -// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1 -// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064 -# define BOOST_NO_CXX11_SCOPED_ENUMS -#endif - -// C++0x features in 4.6.n and later -// -#if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11) -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#endif - -// C++0x features in 4.7.n and later -// -#if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11) -# define BOOST_NO_CXX11_FINAL -# define BOOST_NO_CXX11_TEMPLATE_ALIASES -# define BOOST_NO_CXX11_USER_DEFINED_LITERALS -# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS -#endif - -// C++0x features in 4.8.n and later -// -#if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11) -# define BOOST_NO_CXX11_ALIGNAS -#endif - -// C++0x features in 4.8.1 and later -// -#if (BOOST_GCC_VERSION < 40801) || !defined(BOOST_GCC_CXX11) -# define BOOST_NO_CXX11_DECLTYPE_N3276 -# define BOOST_NO_CXX11_REF_QUALIFIERS -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif - -// C++14 features in 4.9.0 and later -// -#if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -# define BOOST_NO_CXX14_DECLTYPE_AUTO -# if !((BOOST_GCC_VERSION >= 40801) && (BOOST_GCC_VERSION < 40900) && defined(BOOST_GCC_CXX11)) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -# endif -#endif - - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -// -// Unused attribute: -#if __GNUC__ >= 4 -# define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__)) -#endif -// -// __builtin_unreachable: -#if BOOST_GCC_VERSION >= 40800 -#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable(); -#endif - -#ifndef BOOST_COMPILER -# define BOOST_COMPILER "GNU C++ version " __VERSION__ -#endif - -// ConceptGCC compiler: -// http://www.generic-programming.org/software/ConceptGCC/ -#ifdef __GXX_CONCEPTS__ -# define BOOST_HAS_CONCEPTS -# define BOOST_COMPILER "ConceptGCC version " __VERSION__ -#endif - -// versions check: -// we don't know gcc prior to version 3.30: -#if (BOOST_GCC_VERSION< 30300) -# error "Compiler not configured - please reconfigure" -#endif -// -// last known and checked version is 4.9: -#if (BOOST_GCC_VERSION > 40900) -# 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/src/boost/config/compiler/gcc_xml.hpp b/src/boost/config/compiler/gcc_xml.hpp deleted file mode 100644 index c11f29dd..00000000 --- a/src/boost/config/compiler/gcc_xml.hpp +++ /dev/null @@ -1,95 +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 - -// C++0x features: -// -# define BOOST_NO_CXX11_CONSTEXPR -# define BOOST_NO_CXX11_NULLPTR -# define BOOST_NO_CXX11_TEMPLATE_ALIASES -# define BOOST_NO_CXX11_DECLTYPE -# define BOOST_NO_CXX11_DECLTYPE_N3276 -# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -# define BOOST_NO_CXX11_RVALUE_REFERENCES -# define BOOST_NO_CXX11_STATIC_ASSERT -# define BOOST_NO_CXX11_VARIADIC_TEMPLATES -# define BOOST_NO_CXX11_VARIADIC_MACROS -# define BOOST_NO_CXX11_AUTO_DECLARATIONS -# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -# define BOOST_NO_CXX11_CHAR16_T -# define BOOST_NO_CXX11_CHAR32_T -# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -# define BOOST_NO_CXX11_DELETED_FUNCTIONS -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_SCOPED_ENUMS -# define BOOST_NO_SFINAE_EXPR -# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_CXX11_LAMBDAS -# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -# define BOOST_NO_CXX11_RANGE_BASED_FOR -# define BOOST_NO_CXX11_RAW_LITERALS -# define BOOST_NO_CXX11_UNICODE_LITERALS -# define BOOST_NO_CXX11_NOEXCEPT -# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -# define BOOST_NO_CXX11_USER_DEFINED_LITERALS -# define BOOST_NO_CXX11_ALIGNAS -# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -# define BOOST_NO_CXX11_INLINE_NAMESPACES -# define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ - - diff --git a/src/boost/config/compiler/greenhills.hpp b/src/boost/config/compiler/greenhills.hpp deleted file mode 100644 index 038b6b2b..00000000 --- a/src/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/src/boost/config/compiler/hp_acc.hpp b/src/boost/config/compiler/hp_acc.hpp deleted file mode 100644 index fb63839a..00000000 --- a/src/boost/config/compiler/hp_acc.hpp +++ /dev/null @@ -1,145 +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 -// -#if !defined(__EDG__) - -#define BOOST_NO_CXX11_AUTO_DECLARATIONS -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_CHAR16_T -#define BOOST_NO_CXX11_CHAR32_T -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DECLTYPE -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_CXX11_EXTERN_TEMPLATE -#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_RVALUE_REFERENCES -#define BOOST_NO_CXX11_SCOPED_ENUMS -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_CXX11_ALIGNAS -#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#define BOOST_NO_CXX11_INLINE_NAMESPACES -#define BOOST_NO_CXX11_REF_QUALIFIERS - -/* - See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and - https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436 -*/ - -#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE) - #define BOOST_NO_CXX11_VARIADIC_MACROS -#endif - -#endif - -// -// 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/src/boost/config/compiler/intel.hpp b/src/boost/config/compiler/intel.hpp deleted file mode 100644 index 7789b944..00000000 --- a/src/boost/config/compiler/intel.hpp +++ /dev/null @@ -1,535 +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: - -#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__)) - -#ifdef _MSC_VER - -#include - -#undef BOOST_MSVC -#undef BOOST_MSVC_FULL_VER - -#if (__INTEL_COMPILER >= 1500) && (_MSC_VER >= 1900) -// -// These appear to be supported, even though VC++ may not support them: -// -#define BOOST_HAS_EXPM1 -#define BOOST_HAS_LOG1P -#undef BOOST_NO_CXX14_BINARY_LITERALS -// This one may be a little risky to enable?? -#undef BOOST_NO_SFINAE_EXPR - -#endif - -#else - -#include - -#undef BOOST_GCC_VERSION -#undef BOOST_GCC_CXX11 - -#endif - -#undef BOOST_COMPILER - -#if defined(__INTEL_COMPILER) -#if __INTEL_COMPILER == 9999 -# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1. -#else -# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER -#endif -#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 - -// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x' -#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__) -# define BOOST_INTEL_STDCXX0X -#endif -#if defined(_MSC_VER) && (_MSC_VER >= 1600) -# define BOOST_INTEL_STDCXX0X -#endif - -#ifdef __GNUC__ -# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) -#endif - -#if !defined(BOOST_COMPILER) -# if defined(BOOST_INTEL_STDCXX0X) -# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) -# else -# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) -# endif -#endif - -#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 - -#else - -#include "boost/config/compiler/common_edg.hpp" - -#if defined(__INTEL_COMPILER) -#if __INTEL_COMPILER == 9999 -# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1. -#else -# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER -#endif -#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 - -// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x' -#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__) -# define BOOST_INTEL_STDCXX0X -#endif -#if defined(_MSC_VER) && (_MSC_VER >= 1600) -# define BOOST_INTEL_STDCXX0X -#endif - -#ifdef __GNUC__ -# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) -#endif - -#if !defined(BOOST_COMPILER) -# if defined(BOOST_INTEL_STDCXX0X) -# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) -# else -# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION) -# endif -#endif - -#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 <= 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 <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200) -// 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: -// -#ifdef __cplusplus -#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 -#endif - -#if defined(_MSC_VER) && (_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 - -// Branch prediction hints -// I'm not sure 8.0 was the first version to support these builtins, -// update the condition if the version is not accurate. (Andrey Semashev) -#if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800 -#define BOOST_LIKELY(x) __builtin_expect(x, 1) -#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) -#endif - -// RTTI -// __RTTI is the EDG macro -// __INTEL_RTTI__ is the Intel macro -// __GXX_RTTI is the g++ macro -// _CPPRTTI is the MSVC++ macro -#if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI) && !defined(_CPPRTTI) - -#if !defined(BOOST_NO_RTTI) -# define BOOST_NO_RTTI -#endif - -// in MS mode, static typeid works even when RTTI is off -#if !defined(_MSC_VER) && !defined(BOOST_NO_TYPEID) -# define BOOST_NO_TYPEID -#endif - -#endif - -// -// versions check: -// we don't support Intel prior to version 6.0: -#if BOOST_INTEL_CXX_VERSION < 600 -# 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 - -// -// An attempt to value-initialize a pointer-to-member may trigger an -// internal error on Intel <= 11.1 (last checked version), as was -// reported by John Maddock, Intel support issue 589832, May 2010. -// Moreover, according to test results from Huang-Vista-x86_32_intel, -// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some -// cases when it should be value-initialized. -// (Niels Dekker, LKEB, May 2010) -// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression). -#if defined(__INTEL_COMPILER) -# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600)) -# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -# endif -#endif - -// -// Dynamic shared object (DSO) and dynamic-link library (DLL) support -// -#if defined(__GNUC__) && (__GNUC__ >= 4) -# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default"))) -# define BOOST_SYMBOL_IMPORT -# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default"))) -#endif -// -// C++0x features -// For each feature we need to check both the Intel compiler version, -// and the version of MSVC or GCC that we are emulating. -// See http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/ -// for a list of which features were implemented in which Intel releases. -// -#if defined(BOOST_INTEL_STDCXX0X) -// BOOST_NO_CXX11_CONSTEXPR: -#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && !defined(_MSC_VER) -// Available in earlier Intel versions, but fail our tests: -# undef BOOST_NO_CXX11_CONSTEXPR -#endif -// BOOST_NO_CXX11_NULLPTR: -#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) -# undef BOOST_NO_CXX11_NULLPTR -#endif -// BOOST_NO_CXX11_TEMPLATE_ALIASES -#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) -# undef BOOST_NO_CXX11_TEMPLATE_ALIASES -#endif - -// BOOST_NO_CXX11_DECLTYPE -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) -# undef BOOST_NO_CXX11_DECLTYPE -#endif - -// BOOST_NO_CXX11_DECLTYPE_N3276 -#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) -# undef BOOST_NO_CXX11_DECLTYPE_N3276 -#endif - -// BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) -# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#endif - -// BOOST_NO_CXX11_RVALUE_REFERENCES -#if (BOOST_INTEL_CXX_VERSION >= 1300) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) -// This is available from earlier Intel versions, but breaks Filesystem and other libraries: -# undef BOOST_NO_CXX11_RVALUE_REFERENCES -#endif - -// BOOST_NO_CXX11_STATIC_ASSERT -#if (BOOST_INTEL_CXX_VERSION >= 1110) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) -# undef BOOST_NO_CXX11_STATIC_ASSERT -#endif - -// BOOST_NO_CXX11_VARIADIC_TEMPLATES -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) -# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES -#endif - -// BOOST_NO_CXX11_VARIADIC_MACROS -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40200)) && (!defined(_MSC_VER) || (_MSC_VER >= 1400)) -# undef BOOST_NO_CXX11_VARIADIC_MACROS -#endif - -// BOOST_NO_CXX11_AUTO_DECLARATIONS -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) -# undef BOOST_NO_CXX11_AUTO_DECLARATIONS -#endif - -// BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) -# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#endif - -// BOOST_NO_CXX11_CHAR16_T -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) -# undef BOOST_NO_CXX11_CHAR16_T -#endif - -// BOOST_NO_CXX11_CHAR32_T -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) -# undef BOOST_NO_CXX11_CHAR32_T -#endif - -// BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) -# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#endif - -// BOOST_NO_CXX11_DELETED_FUNCTIONS -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) -# undef BOOST_NO_CXX11_DELETED_FUNCTIONS -#endif - -// BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700)) -# undef BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#endif - -// BOOST_NO_CXX11_SCOPED_ENUMS -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40501)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700)) -// This is available but broken in earlier Intel releases. -# undef BOOST_NO_CXX11_SCOPED_ENUMS -#endif - -// BOOST_NO_SFINAE_EXPR -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) -# undef BOOST_NO_SFINAE_EXPR -#endif - -// BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) -// This is available in earlier Intel releases, but breaks Multiprecision: -# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#endif - -// BOOST_NO_CXX11_LAMBDAS -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600)) -# undef BOOST_NO_CXX11_LAMBDAS -#endif - -// BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) -# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#endif - -// BOOST_NO_CXX11_RANGE_BASED_FOR -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700)) -# undef BOOST_NO_CXX11_RANGE_BASED_FOR -#endif - -// BOOST_NO_CXX11_RAW_LITERALS -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) -# undef BOOST_NO_CXX11_RAW_LITERALS -#endif - -// BOOST_NO_CXX11_UNICODE_LITERALS -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) -# undef BOOST_NO_CXX11_UNICODE_LITERALS -#endif - -// BOOST_NO_CXX11_NOEXCEPT -#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) -// Available in earlier Intel release, but generates errors when used with -// conditional exception specifications, for example in multiprecision: -# undef BOOST_NO_CXX11_NOEXCEPT -#endif - -// BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999)) -# undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#endif - -// BOOST_NO_CXX11_USER_DEFINED_LITERALS -#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730)) -# undef BOOST_NO_CXX11_USER_DEFINED_LITERALS -#endif - -// BOOST_NO_CXX11_ALIGNAS -#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730)) -# undef BOOST_NO_CXX11_ALIGNAS -#endif - -// BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827)) -# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#endif - -// BOOST_NO_CXX11_INLINE_NAMESPACES -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730)) -# undef BOOST_NO_CXX11_INLINE_NAMESPACES -#endif - -// BOOST_NO_CXX11_REF_QUALIFIERS -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730)) -# undef BOOST_NO_CXX11_REF_QUALIFIERS -#endif - -// BOOST_NO_CXX11_FINAL -#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700)) -# undef BOOST_NO_CXX11_FINAL -#endif - -#endif - -// -// Broken in all versions up to 15: -#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS - -#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310) -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#endif - -#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400) -// A regression in Intel's compiler means that seems to be broken in this release as well as : -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_TUPLE -#endif - -#if (BOOST_INTEL_CXX_VERSION < 1200) -// -// fenv.h appears not to work with Intel prior to 12.0: -// -# define BOOST_NO_FENV_H -#endif - -// Intel 13.10 fails to access defaulted functions of a base class declared in private or protected sections, -// producing the following errors: -// error #453: protected function "..." (declared at ...") is not accessible through a "..." pointer or object -#if (BOOST_INTEL_CXX_VERSION <= 1310) -# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS -#endif - -#if defined(_MSC_VER) && (_MSC_VER >= 1600) -# define BOOST_HAS_STDINT_H -#endif - -#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(__CUDACC__) -# define BOOST_HAS_INT128 -#endif - -#endif -// -// last known and checked version: -#if (BOOST_INTEL_CXX_VERSION > 1500) -# 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/src/boost/config/compiler/kai.hpp b/src/boost/config/compiler/kai.hpp deleted file mode 100644 index 2337e6a8..00000000 --- a/src/boost/config/compiler/kai.hpp +++ /dev/null @@ -1,33 +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) && !defined(BOOST_NO_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -# endif - -// -// 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/src/boost/config/compiler/metrowerks.hpp b/src/boost/config/compiler/metrowerks.hpp deleted file mode 100644 index c9301434..00000000 --- a/src/boost/config/compiler/metrowerks.hpp +++ /dev/null @@ -1,179 +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__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6 -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -# define BOOST_NO_IS_ABSTRACT -# endif - -#if !__option(wchar_type) -# define BOOST_NO_INTRINSIC_WCHAR_T -#endif - -#if !__option(exceptions) && !defined(BOOST_NO_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 -# elif __MWERKS__ == 0x3207 -# define BOOST_COMPILER_VERSION 9.6 -# 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_CXX11_RVALUE_REFERENCES -#endif -#define BOOST_NO_CXX11_AUTO_DECLARATIONS -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_CHAR16_T -#define BOOST_NO_CXX11_CHAR32_T -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DECLTYPE -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_CXX11_EXTERN_TEMPLATE -#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_SCOPED_ENUMS -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_VARIADIC_MACROS -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_CXX11_ALIGNAS -#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#define BOOST_NO_CXX11_INLINE_NAMESPACES -#define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -#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/src/boost/config/compiler/mpw.hpp b/src/boost/config/compiler/mpw.hpp deleted file mode 100644 index 76045bcd..00000000 --- a/src/boost/config/compiler/mpw.hpp +++ /dev/null @@ -1,121 +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 */ - -#endif - -// -// C++0x features -// -// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG -// -#define BOOST_NO_CXX11_AUTO_DECLARATIONS -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_CHAR16_T -#define BOOST_NO_CXX11_CHAR32_T -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DECLTYPE -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_CXX11_EXTERN_TEMPLATE -#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_RVALUE_REFERENCES -#define BOOST_NO_CXX11_SCOPED_ENUMS -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_VARIADIC_MACROS -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_CXX11_ALIGNAS -#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#define BOOST_NO_CXX11_INLINE_NAMESPACES -#define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -// -// 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/src/boost/config/compiler/nvcc.hpp b/src/boost/config/compiler/nvcc.hpp deleted file mode 100644 index bbe81f6e..00000000 --- a/src/boost/config/compiler/nvcc.hpp +++ /dev/null @@ -1,16 +0,0 @@ -// (C) Copyright Eric Jourdanneau, Joel Falcou 2010 -// 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. - -// NVIDIA CUDA C++ compiler setup - -#ifndef BOOST_COMPILER -# define BOOST_COMPILER "NVIDIA CUDA C++ Compiler" -#endif - -// NVIDIA Specific support -// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device -#define BOOST_GPU_ENABLED __host__ __device__ diff --git a/src/boost/config/compiler/pathscale.hpp b/src/boost/config/compiler/pathscale.hpp deleted file mode 100644 index 7c211c45..00000000 --- a/src/boost/config/compiler/pathscale.hpp +++ /dev/null @@ -1,114 +0,0 @@ -// (C) Copyright Bryce Lelbach 2011 - -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// PathScale EKOPath C++ Compiler - -#ifndef BOOST_COMPILER -# define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__ -#endif - -#if __PATHCC__ >= 4 -# define BOOST_MSVC6_MEMBER_TEMPLATES -# define BOOST_HAS_UNISTD_H -# define BOOST_HAS_STDINT_H -# define BOOST_HAS_SIGACTION -# define BOOST_HAS_SCHED_YIELD -# define BOOST_HAS_THREADS -# define BOOST_HAS_PTHREADS -# define BOOST_HAS_PTHREAD_YIELD -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# define BOOST_HAS_PARTIAL_STD_ALLOCATOR -# define BOOST_HAS_NRVO -# define BOOST_HAS_NL_TYPES_H -# define BOOST_HAS_NANOSLEEP -# define BOOST_HAS_LONG_LONG -# define BOOST_HAS_LOG1P -# define BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_EXPM1 -# define BOOST_HAS_DIRENT_H -# define BOOST_HAS_CLOCK_GETTIME -# define BOOST_NO_CXX11_VARIADIC_TEMPLATES -# define BOOST_NO_CXX11_UNICODE_LITERALS -# define BOOST_NO_CXX11_TEMPLATE_ALIASES -# define BOOST_NO_CXX11_STATIC_ASSERT -# define BOOST_NO_SFINAE_EXPR -# define BOOST_NO_CXX11_SCOPED_ENUMS -# define BOOST_NO_CXX11_RVALUE_REFERENCES -# define BOOST_NO_CXX11_RANGE_BASED_FOR -# define BOOST_NO_CXX11_RAW_LITERALS -# define BOOST_NO_CXX11_NULLPTR -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_NOEXCEPT -# define BOOST_NO_CXX11_LAMBDAS -# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -# define BOOST_NO_MS_INT64_NUMERIC_LIMITS -# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_CXX11_DELETED_FUNCTIONS -# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -# define BOOST_NO_CXX11_DECLTYPE -# define BOOST_NO_CXX11_DECLTYPE_N3276 -# define BOOST_NO_CXX11_CONSTEXPR -# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -# define BOOST_NO_CXX11_CHAR32_T -# define BOOST_NO_CXX11_CHAR16_T -# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -# define BOOST_NO_CXX11_AUTO_DECLARATIONS -# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_HDR_REGEX -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_RANDOM -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_USER_DEFINED_LITERALS -# define BOOST_NO_CXX11_ALIGNAS -# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -# define BOOST_NO_CXX11_INLINE_NAMESPACES -# define BOOST_NO_CXX11_REF_QUALIFIERS -# define BOOST_NO_CXX11_FINAL - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif -#endif diff --git a/src/boost/config/compiler/pgi.hpp b/src/boost/config/compiler/pgi.hpp deleted file mode 100644 index e5605c9e..00000000 --- a/src/boost/config/compiler/pgi.hpp +++ /dev/null @@ -1,155 +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(BOOST_COMPILER_VERSION) - -// -// Threading support: -// Turn this on unconditionally here, it will get turned off again later -// if no threading API is detected. -// - -#if __PGIC__ >= 11 - -// options requested by configure --enable-test -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_THREADS -#define BOOST_HAS_PTHREAD_YIELD -#define BOOST_HAS_NRVO -#define BOOST_HAS_LONG_LONG - -// options --enable-test wants undefined -#undef BOOST_NO_STDC_NAMESPACE -#undef BOOST_NO_EXCEPTION_STD_NAMESPACE -#undef BOOST_DEDUCED_TYPENAME - -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_AUTO_DECLARATIONS - -#elif __PGIC__ >= 10 - -// options requested by configure --enable-test -#define BOOST_HAS_THREADS -#define BOOST_HAS_NRVO -#define BOOST_HAS_LONG_LONG -#if defined(linux) || defined(__linux) || defined(__linux__) -# define BOOST_HAS_STDINT_H -#endif - -// options --enable-test wants undefined -#undef BOOST_NO_STDC_NAMESPACE -#undef BOOST_NO_EXCEPTION_STD_NAMESPACE -#undef BOOST_DEDUCED_TYPENAME - -#elif __PGIC__ >= 7 - -#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_NO_SWPRINTF -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_AUTO_DECLARATIONS - -#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_CXX11_CHAR16_T -#define BOOST_NO_CXX11_CHAR32_T -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DECLTYPE -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_CXX11_EXTERN_TEMPLATE -#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_NUMERIC_LIMITS -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_RVALUE_REFERENCES -#define BOOST_NO_CXX11_SCOPED_ENUMS -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_SWPRINTF -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_VARIADIC_MACROS -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX - -#define BOOST_NO_CXX11_HDR_UNORDERED_SET -#define BOOST_NO_CXX11_HDR_UNORDERED_MAP -#define BOOST_NO_CXX11_HDR_TYPEINDEX -#define BOOST_NO_CXX11_HDR_TYPE_TRAITS -#define BOOST_NO_CXX11_HDR_TUPLE -#define BOOST_NO_CXX11_HDR_THREAD -#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -#define BOOST_NO_CXX11_HDR_REGEX -#define BOOST_NO_CXX11_HDR_RATIO -#define BOOST_NO_CXX11_HDR_RANDOM -#define BOOST_NO_CXX11_HDR_MUTEX -#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#define BOOST_NO_CXX11_HDR_FUTURE -#define BOOST_NO_CXX11_HDR_FORWARD_LIST -#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -#define BOOST_NO_CXX11_HDR_CODECVT -#define BOOST_NO_CXX11_HDR_CHRONO -#define BOOST_NO_CXX11_HDR_ARRAY -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_CXX11_ALIGNAS -#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#define BOOST_NO_CXX11_INLINE_NAMESPACES -#define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif -// -// version check: -// probably nothing to do here? - diff --git a/src/boost/config/compiler/sgi_mipspro.hpp b/src/boost/config/compiler/sgi_mipspro.hpp deleted file mode 100644 index 90688314..00000000 --- a/src/boost/config/compiler/sgi_mipspro.hpp +++ /dev/null @@ -1,29 +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 - -// -// version check: -// probably nothing to do here? - - diff --git a/src/boost/config/compiler/sunpro_cc.hpp b/src/boost/config/compiler/sunpro_cc.hpp deleted file mode 100644 index 6017660c..00000000 --- a/src/boost/config/compiler/sunpro_cc.hpp +++ /dev/null @@ -1,190 +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 - -# if (__SUNPRO_CC <= 0x5100) - // Sun 5.10 may not correctly value-initialize objects of - // some user defined types, as was reported in April 2010 - // (CR 6947016), and confirmed by Steve Clamage. - // (Niels Dekker, LKEB, May 2010). -# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -# endif - -// -// Dynamic shared object (DSO) and dynamic-link library (DLL) support -// -#if __SUNPRO_CC > 0x500 -# define BOOST_SYMBOL_EXPORT __global -# define BOOST_SYMBOL_IMPORT __global -# define BOOST_SYMBOL_VISIBLE __global -#endif - -#if (__SUNPRO_CC < 0x5130) -// C++03 features in 12.4: -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_ADL_BARRIER -#define BOOST_NO_CXX11_VARIADIC_MACROS -#endif - -#if (__SUNPRO_CC < 0x5130) || (__cplusplus < 201100) -// C++11 only featuires in 12.4: -#define BOOST_NO_CXX11_AUTO_DECLARATIONS -#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_CHAR16_T -#define BOOST_NO_CXX11_CHAR32_T -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DECLTYPE -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_CXX11_EXTERN_TEMPLATE -#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_RVALUE_REFERENCES -#define BOOST_NO_CXX11_SCOPED_ENUMS -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_CXX11_ALIGNAS -#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#define BOOST_NO_CXX11_INLINE_NAMESPACES -#define BOOST_NO_CXX11_FINAL -#endif - -#if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103) -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_CXX11_REF_QUALIFIERS -#endif - -#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -// -// C++0x features -// -# define BOOST_HAS_LONG_LONG - - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif -// -// 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/src/boost/config/compiler/vacpp.hpp b/src/boost/config/compiler/vacpp.hpp deleted file mode 100644 index 6c228eab..00000000 --- a/src/boost/config/compiler/vacpp.hpp +++ /dev/null @@ -1,162 +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 -#endif - -#if (__IBMCPP__ <= 1110) -// XL C++ V11.1 and earlier versions may not always value-initialize -// a temporary object T(), when T is a non-POD aggregate class type. -// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it -// high priority. -- Niels Dekker (LKEB), May 2010. -# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -#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 1210: -#if (__IBMCPP__ > 1210) -# if defined(BOOST_ASSERT_CONFIG) -# error "Unknown compiler version - please run the configure tests and report the results" -# endif -#endif - -// Some versions of the compiler have issues with default arguments on partial specializations -#if __IBMCPP__ <= 1010 -#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS -#endif - -// -// C++0x features -// -// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG -// -#if ! __IBMCPP_AUTO_TYPEDEDUCTION -# define BOOST_NO_CXX11_AUTO_DECLARATIONS -# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#endif -#if ! __IBMCPP_UTF_LITERAL__ -# define BOOST_NO_CXX11_CHAR16_T -# define BOOST_NO_CXX11_CHAR32_T -#endif -#if ! __IBMCPP_CONSTEXPR -# define BOOST_NO_CXX11_CONSTEXPR -#endif -#if ! __IBMCPP_DECLTYPE -# define BOOST_NO_CXX11_DECLTYPE -#else -# define BOOST_HAS_DECLTYPE -#endif -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#endif -#if ! __IBMCPP_EXTERN_TEMPLATE -# define BOOST_NO_CXX11_EXTERN_TEMPLATE -#endif -#if ! __IBMCPP_VARIADIC_TEMPLATES -// not enabled separately at this time -# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#endif -#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#define BOOST_NO_CXX11_LAMBDAS -#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_NOEXCEPT -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#if ! __IBMCPP_RVALUE_REFERENCES -# define BOOST_NO_CXX11_RVALUE_REFERENCES -#endif -#if ! __IBMCPP_SCOPED_ENUM -# define BOOST_NO_CXX11_SCOPED_ENUMS -#endif -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#if ! __IBMCPP_STATIC_ASSERT -# define BOOST_NO_CXX11_STATIC_ASSERT -#endif -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS -#if ! __IBMCPP_VARIADIC_TEMPLATES -# define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#endif -#if ! __C99_MACRO_WITH_VA_ARGS -# define BOOST_NO_CXX11_VARIADIC_MACROS -#endif -#define BOOST_NO_CXX11_ALIGNAS -#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#define BOOST_NO_CXX11_INLINE_NAMESPACES -#define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif -#if (__cplusplus < 201304) // There's no SD6 check for this.... -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif -#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif -#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif -#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif diff --git a/src/boost/config/compiler/visualc.hpp b/src/boost/config/compiler/visualc.hpp deleted file mode 100644 index baaab589..00000000 --- a/src/boost/config/compiler/visualc.hpp +++ /dev/null @@ -1,298 +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: -// -// We need to be careful with the checks in this file, as contrary -// to popular belief there are versions with _MSC_VER with the final -// digit non-zero (mainly the MIPS cross compiler). -// -// So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX. -// No other comparisons (==, >, or <=) are safe. -// - -#define BOOST_MSVC _MSC_VER - -// -// Helper macro BOOST_MSVC_FULL_VER for use in Boost code: -// -#if _MSC_FULL_VER > 100000000 -# define BOOST_MSVC_FULL_VER _MSC_FULL_VER -#else -# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10) -#endif - -// Attempt to suppress VC6 warnings about the length of decorated names (obsolete): -#pragma warning( disable : 4503 ) // warning: decorated name length exceeded - -#define BOOST_HAS_PRAGMA_ONCE - -// -// versions check: -// we don't support Visual C++ prior to version 7.1: -#if _MSC_VER < 1310 -# error "Compiler not supported or configured - please reconfigure" -#endif - -#if _MSC_FULL_VER < 180020827 -# define BOOST_NO_FENV_H -#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 -// Our extern template tests also fail for this compiler: -# define BOOST_NO_CXX11_EXTERN_TEMPLATE -// Variadic macros do not exist for VC7.1 and lower -# define BOOST_NO_CXX11_VARIADIC_MACROS -# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#endif - -#if _MSC_VER < 1500 // 140X == VC++ 8.0 -# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS -#endif - -#if _MSC_VER < 1600 // 150X == VC++ 9.0 - // A bug in VC9: -# define BOOST_NO_ADL_BARRIER -#endif - - -#ifndef _NATIVE_WCHAR_T_DEFINED -# define BOOST_NO_INTRINSIC_WCHAR_T -#endif - -// -// check for exception handling support: -#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif - -// -// __int64 support: -// -#define BOOST_HAS_MS_INT64 -#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400) -# define BOOST_HAS_LONG_LONG -#else -# define BOOST_NO_LONG_LONG -#endif -#if (_MSC_VER >= 1400) && !defined(_DEBUG) -# define BOOST_HAS_NRVO -#endif -#if _MSC_VER >= 1600 // 160X == VC++ 10.0 -# define BOOST_HAS_PRAGMA_DETECT_MISMATCH -#endif -// -// disable Win32 API's if compiler extensions are -// turned off: -// -#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32) -# define BOOST_DISABLE_WIN32 -#endif -#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI) -# define BOOST_NO_RTTI -#endif - -// -// TR1 features: -// -#if _MSC_VER >= 1700 -// # define BOOST_HAS_TR1_HASH // don't know if this is true yet. -// # define BOOST_HAS_TR1_TYPE_TRAITS // don't know if this is true yet. -# define BOOST_HAS_TR1_UNORDERED_MAP -# define BOOST_HAS_TR1_UNORDERED_SET -#endif - -// -// C++0x features -// -// See above for BOOST_NO_LONG_LONG - -// C++ features supported by VC++ 10 (aka 2010) -// -#if _MSC_VER < 1600 -# define BOOST_NO_CXX11_AUTO_DECLARATIONS -# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -# define BOOST_NO_CXX11_LAMBDAS -# define BOOST_NO_CXX11_RVALUE_REFERENCES -# define BOOST_NO_CXX11_STATIC_ASSERT -# define BOOST_NO_CXX11_NULLPTR -# define BOOST_NO_CXX11_DECLTYPE -#endif // _MSC_VER < 1600 - -#if _MSC_VER >= 1600 -# define BOOST_HAS_STDINT_H -#endif - -// C++11 features supported by VC++ 11 (aka 2012) -// -#if _MSC_VER < 1700 -# define BOOST_NO_CXX11_FINAL -# define BOOST_NO_CXX11_RANGE_BASED_FOR -# define BOOST_NO_CXX11_SCOPED_ENUMS -#endif // _MSC_VER < 1700 - -// C++11 features supported by VC++ 12 (aka 2013). -// -#if _MSC_FULL_VER < 180020827 -# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -# define BOOST_NO_CXX11_DELETED_FUNCTIONS -# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -# define BOOST_NO_CXX11_RAW_LITERALS -# define BOOST_NO_CXX11_TEMPLATE_ALIASES -# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -# define BOOST_NO_CXX11_VARIADIC_TEMPLATES -# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -# define BOOST_NO_CXX11_DECLTYPE_N3276 -#endif - -// C++11 features supported by VC++ 14 (aka 2015) -// -#if (_MSC_FULL_VER < 190023026) -# define BOOST_NO_CXX11_NOEXCEPT -# define BOOST_NO_CXX11_REF_QUALIFIERS -# define BOOST_NO_CXX11_USER_DEFINED_LITERALS -# define BOOST_NO_CXX11_ALIGNAS -# define BOOST_NO_CXX11_INLINE_NAMESPACES -# define BOOST_NO_CXX11_CHAR16_T -# define BOOST_NO_CXX11_CHAR32_T -# define BOOST_NO_CXX11_UNICODE_LITERALS -# define BOOST_NO_CXX14_DECLTYPE_AUTO -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -# define BOOST_NO_CXX14_BINARY_LITERALS -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif - -// MSVC including version 14 has not yet completely -// implemented value-initialization, as is reported: -// "VC++ does not value-initialize members of derived classes without -// user-declared constructor", reported in 2009 by Sylvester Hesp: -// https://connect.microsoft.com/VisualStudio/feedback/details/484295 -// "Presence of copy constructor breaks member class initialization", -// reported in 2009 by Alex Vakulenko: -// https://connect.microsoft.com/VisualStudio/feedback/details/499606 -// "Value-initialization in new-expression", reported in 2005 by -// Pavel Kuznetsov (MetaCommunications Engineering): -// https://connect.microsoft.com/VisualStudio/feedback/details/100744 -// Reported again by John Maddock in 2015 for VC14: -// https://connect.microsoft.com/VisualStudio/feedback/details/1582233/c-subobjects-still-not-value-initialized-correctly -// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues -// (Niels Dekker, LKEB, May 2010) -#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -// C++11 features not supported by any versions -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -// -// This is somewhat supported in VC14, but we may need to wait for -// a service release before enabling: -// -#define BOOST_NO_CXX11_CONSTEXPR - -// C++ 14: -#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif -#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304) -# define BOOST_NO_CXX14_CONSTEXPR -#endif -#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -// -// 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 - -#ifndef BOOST_COMPILER -// 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 < 1400 - // Note: I'm not aware of any CE compiler with version 13xx -# 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 -# elif _MSC_VER < 1500 -# define BOOST_COMPILER_VERSION evc8 -# elif _MSC_VER < 1600 -# define BOOST_COMPILER_VERSION evc9 -# elif _MSC_VER < 1700 -# define BOOST_COMPILER_VERSION evc10 -# elif _MSC_VER < 1800 -# define BOOST_COMPILER_VERSION evc11 -# elif _MSC_VER < 1900 -# define BOOST_COMPILER_VERSION evc12 -# elif _MSC_VER < 2000 -# define BOOST_COMPILER_VERSION evc14 -# 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 < 1310 - // Note: Versions up to 7.0 aren't supported. -# define BOOST_COMPILER_VERSION 5.0 -# elif _MSC_VER < 1300 -# define BOOST_COMPILER_VERSION 6.0 -# elif _MSC_VER < 1310 -# define BOOST_COMPILER_VERSION 7.0 -# elif _MSC_VER < 1400 -# define BOOST_COMPILER_VERSION 7.1 -# elif _MSC_VER < 1500 -# define BOOST_COMPILER_VERSION 8.0 -# elif _MSC_VER < 1600 -# define BOOST_COMPILER_VERSION 9.0 -# elif _MSC_VER < 1700 -# define BOOST_COMPILER_VERSION 10.0 -# elif _MSC_VER < 1800 -# define BOOST_COMPILER_VERSION 11.0 -# elif _MSC_VER < 1900 -# define BOOST_COMPILER_VERSION 12.0 -# elif _MSC_VER < 2000 -# define BOOST_COMPILER_VERSION 14.0 -# else -# define BOOST_COMPILER_VERSION _MSC_VER -# endif -# endif - -# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) -#endif - -// -// last known and checked version is 19.00.23026 (VC++ 2015 RTM): -#if (_MSC_VER > 1900) -# 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/src/boost/config/compiler/xlcpp.hpp b/src/boost/config/compiler/xlcpp.hpp deleted file mode 100644 index e369ecef..00000000 --- a/src/boost/config/compiler/xlcpp.hpp +++ /dev/null @@ -1,258 +0,0 @@ -// (C) Copyright Douglas Gregor 2010 -// -// 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. - -// compiler setup for IBM XL C/C++ for Linux (Little Endian) based on clang. - -#define BOOST_HAS_PRAGMA_ONCE - -// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used. -#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4)) -# define BOOST_HAS_PRAGMA_DETECT_MISMATCH -#endif - -// When compiling with clang before __has_extension was defined, -// even if one writes 'defined(__has_extension) && __has_extension(xxx)', -// clang reports a compiler error. So the only workaround found is: - -#ifndef __has_extension -#define __has_extension __has_feature -#endif - -#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS) -# define BOOST_NO_EXCEPTIONS -#endif - -#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI) -# define BOOST_NO_RTTI -#endif - -#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID) -# define BOOST_NO_TYPEID -#endif - -#if defined(__int64) && !defined(__GNUC__) -# define BOOST_HAS_MS_INT64 -#endif - -#define BOOST_HAS_NRVO - -// Branch prediction hints -#if defined(__has_builtin) -#if __has_builtin(__builtin_expect) -#define BOOST_LIKELY(x) __builtin_expect(x, 1) -#define BOOST_UNLIKELY(x) __builtin_expect(x, 0) -#endif -#endif - -// Clang supports "long long" in all compilation modes. -#define BOOST_HAS_LONG_LONG - -// -// Dynamic shared object (DSO) and dynamic-link library (DLL) support -// -#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) -# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) -# define BOOST_SYMBOL_IMPORT -# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) -#endif - -// -// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through -// between switch labels. -// -#if __cplusplus >= 201103L && defined(__has_warning) -# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough") -# define BOOST_FALLTHROUGH [[clang::fallthrough]] -# endif -#endif - -#if !__has_feature(cxx_auto_type) -# define BOOST_NO_CXX11_AUTO_DECLARATIONS -# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#endif - -// -// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t -// -#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L) -# define BOOST_NO_CXX11_CHAR16_T -# define BOOST_NO_CXX11_CHAR32_T -#endif - -#if !__has_feature(cxx_constexpr) -# define BOOST_NO_CXX11_CONSTEXPR -#endif - -#if !__has_feature(cxx_decltype) -# define BOOST_NO_CXX11_DECLTYPE -#endif - -#if !__has_feature(cxx_decltype_incomplete_return_types) -# define BOOST_NO_CXX11_DECLTYPE_N3276 -#endif - -#if !__has_feature(cxx_defaulted_functions) -# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#endif - -#if !__has_feature(cxx_deleted_functions) -# define BOOST_NO_CXX11_DELETED_FUNCTIONS -#endif - -#if !__has_feature(cxx_explicit_conversions) -# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#endif - -#if !__has_feature(cxx_default_function_template_args) -# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#endif - -#if !__has_feature(cxx_generalized_initializers) -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -#endif - -#if !__has_feature(cxx_lambdas) -# define BOOST_NO_CXX11_LAMBDAS -#endif - -#if !__has_feature(cxx_local_type_template_args) -# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#endif - -#if !__has_feature(cxx_noexcept) -# define BOOST_NO_CXX11_NOEXCEPT -#endif - -#if !__has_feature(cxx_nullptr) -# define BOOST_NO_CXX11_NULLPTR -#endif - -#if !__has_feature(cxx_range_for) -# define BOOST_NO_CXX11_RANGE_BASED_FOR -#endif - -#if !__has_feature(cxx_raw_string_literals) -# define BOOST_NO_CXX11_RAW_LITERALS -#endif - -#if !__has_feature(cxx_reference_qualified_functions) -# define BOOST_NO_CXX11_REF_QUALIFIERS -#endif - -#if !__has_feature(cxx_generalized_initializers) -# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#endif - -#if !__has_feature(cxx_rvalue_references) -# define BOOST_NO_CXX11_RVALUE_REFERENCES -#endif - -#if !__has_feature(cxx_strong_enums) -# define BOOST_NO_CXX11_SCOPED_ENUMS -#endif - -#if !__has_feature(cxx_static_assert) -# define BOOST_NO_CXX11_STATIC_ASSERT -#endif - -#if !__has_feature(cxx_alias_templates) -# define BOOST_NO_CXX11_TEMPLATE_ALIASES -#endif - -#if !__has_feature(cxx_unicode_literals) -# define BOOST_NO_CXX11_UNICODE_LITERALS -#endif - -#if !__has_feature(cxx_variadic_templates) -# define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#endif - -#if !__has_feature(cxx_user_literals) -# define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#endif - -#if !__has_feature(cxx_alignas) -# define BOOST_NO_CXX11_ALIGNAS -#endif - -#if !__has_feature(cxx_trailing_return) -# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES -#endif - -#if !__has_feature(cxx_inline_namespaces) -# define BOOST_NO_CXX11_INLINE_NAMESPACES -#endif - -#if !__has_feature(cxx_override_control) -# define BOOST_NO_CXX11_FINAL -#endif - -#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__)) -# define BOOST_NO_CXX14_BINARY_LITERALS -#endif - -#if !__has_feature(__cxx_decltype_auto__) -# define BOOST_NO_CXX14_DECLTYPE_AUTO -#endif - -#if !__has_feature(__cxx_aggregate_nsdmi__) -# define BOOST_NO_CXX14_AGGREGATE_NSDMI -#endif - -#if !__has_feature(__cxx_init_captures__) -# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES -#endif - -#if !__has_feature(__cxx_generic_lambdas__) -# define BOOST_NO_CXX14_GENERIC_LAMBDAS -#endif - -// clang < 3.5 has a defect with dependent type, like following. -// -// template -// constexpr typename enable_if >::type foo(T &) -// { } // error: no return statement in constexpr function -// -// This issue also affects C++11 mode, but C++11 constexpr requires return stmt. -// Therefore we don't care such case. -// -// Note that we can't check Clang version directly as the numbering system changes depending who's -// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873) -// so instead verify that we have a feature that was introduced at the same time as working C++14 -// constexpr (generic lambda's in this case): -// -#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__) -# define BOOST_NO_CXX14_CONSTEXPR -#endif - -#if !__has_feature(__cxx_return_type_deduction__) -# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION -#endif - -#if !__has_feature(__cxx_variable_templates__) -# define BOOST_NO_CXX14_VARIABLE_TEMPLATES -#endif - -#if __cplusplus < 201400 -// All versions with __cplusplus above this value seem to support this: -# define BOOST_NO_CXX14_DIGIT_SEPARATORS -#endif - - -// Unused attribute: -#if defined(__GNUC__) && (__GNUC__ >= 4) -# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused)) -#endif - -#ifndef BOOST_COMPILER -# define BOOST_COMPILER "Clang version " __clang_version__ -#endif - -// Macro used to identify the Clang compiler. -#define BOOST_CLANG 1 - diff --git a/src/boost/config/no_tr1/cmath.hpp b/src/boost/config/no_tr1/cmath.hpp deleted file mode 100644 index d8268d84..00000000 --- a/src/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/src/boost/config/no_tr1/complex.hpp b/src/boost/config/no_tr1/complex.hpp deleted file mode 100644 index ca200922..00000000 --- a/src/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/src/boost/config/no_tr1/functional.hpp b/src/boost/config/no_tr1/functional.hpp deleted file mode 100644 index e395efc1..00000000 --- a/src/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/src/boost/config/no_tr1/memory.hpp b/src/boost/config/no_tr1/memory.hpp deleted file mode 100644 index 2b5d2080..00000000 --- a/src/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/src/boost/config/no_tr1/utility.hpp b/src/boost/config/no_tr1/utility.hpp deleted file mode 100644 index dea8f115..00000000 --- a/src/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/src/boost/config/platform/aix.hpp b/src/boost/config/platform/aix.hpp deleted file mode 100644 index 894ef42c..00000000 --- a/src/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/src/boost/config/platform/amigaos.hpp b/src/boost/config/platform/amigaos.hpp deleted file mode 100644 index 34bcf412..00000000 --- a/src/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/src/boost/config/platform/beos.hpp b/src/boost/config/platform/beos.hpp deleted file mode 100644 index 48c3d8dc..00000000 --- a/src/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/src/boost/config/platform/bsd.hpp b/src/boost/config/platform/bsd.hpp deleted file mode 100644 index a0142978..00000000 --- a/src/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)) \ - || (defined(__NetBSD_GCC__) && (__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/src/boost/config/platform/cloudabi.hpp b/src/boost/config/platform/cloudabi.hpp deleted file mode 100644 index bed7b631..00000000 --- a/src/boost/config/platform/cloudabi.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright Nuxi, https://nuxi.nl/ 2015. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#define BOOST_PLATFORM "CloudABI" - -#define BOOST_HAS_DIRENT_H -#define BOOST_HAS_STDINT_H -#define BOOST_HAS_UNISTD_H - -#define BOOST_HAS_CLOCK_GETTIME -#define BOOST_HAS_EXPM1 -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_LOG1P -#define BOOST_HAS_NANOSLEEP -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_SCHED_YIELD diff --git a/src/boost/config/platform/cray.hpp b/src/boost/config/platform/cray.hpp deleted file mode 100644 index 5c476e41..00000000 --- a/src/boost/config/platform/cray.hpp +++ /dev/null @@ -1,18 +0,0 @@ -// (C) Copyright John Maddock 2011. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - - -// See http://www.boost.org for most recent version. - -// SGI Irix specific config options: - -#define BOOST_PLATFORM "Cray" - -// boilerplate code: -#define BOOST_HAS_UNISTD_H -#include - - - diff --git a/src/boost/config/platform/cygwin.hpp b/src/boost/config/platform/cygwin.hpp deleted file mode 100644 index b7ef572f..00000000 --- a/src/boost/config/platform/cygwin.hpp +++ /dev/null @@ -1,58 +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_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 - -/// Cygwin has no fenv.h -#define BOOST_NO_FENV_H - -// boilerplate code: -#include - -// -// Cygwin lies about XSI conformance, there is no nl_types.h: -// -#ifdef BOOST_HAS_NL_TYPES_H -# undef BOOST_HAS_NL_TYPES_H -#endif - - - - - diff --git a/src/boost/config/platform/haiku.hpp b/src/boost/config/platform/haiku.hpp deleted file mode 100644 index 750866c4..00000000 --- a/src/boost/config/platform/haiku.hpp +++ /dev/null @@ -1,31 +0,0 @@ -// (C) Copyright Jessica Hamilton 2014. -// 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. - -// Haiku specific config options: - -#define BOOST_PLATFORM "Haiku" - -#define BOOST_HAS_UNISTD_H -#define BOOST_HAS_STDINT_H - -#ifndef BOOST_DISABLE_THREADS -# define BOOST_HAS_THREADS -#endif - -#define BOOST_NO_CXX11_HDR_TYPE_TRAITS -#define BOOST_NO_CXX11_ATOMIC_SMART_PTR -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_CXX11_VARIADIC_MACROS - -// -// thread API's not auto detected: -// -#define BOOST_HAS_SCHED_YIELD -#define BOOST_HAS_GETTIMEOFDAY - -// boilerplate code: -#include diff --git a/src/boost/config/platform/hpux.hpp b/src/boost/config/platform/hpux.hpp deleted file mode 100644 index 19ce68e5..00000000 --- a/src/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/src/boost/config/platform/irix.hpp b/src/boost/config/platform/irix.hpp deleted file mode 100644 index aeae49c8..00000000 --- a/src/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/src/boost/config/platform/linux.hpp b/src/boost/config/platform/linux.hpp deleted file mode 100644 index 6fa5f45b..00000000 --- a/src/boost/config/platform/linux.hpp +++ /dev/null @@ -1,105 +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 -#ifdef __cplusplus -#include -#else -#include -#endif - -// -// 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 -#ifdef __USE_GNU -#define BOOST_HAS_PTHREAD_YIELD -#endif - -#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/src/boost/config/platform/macos.hpp b/src/boost/config/platform/macos.hpp deleted file mode 100644 index 5be4e3b3..00000000 --- a/src/boost/config/platform/macos.hpp +++ /dev/null @@ -1,87 +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) -// MPTasks support is deprecated/removed from Boost: -//# 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 - -#ifdef BOOST_HAS_PTHREADS -# define BOOST_HAS_THREADS -#endif - -// The remote call manager depends on this. -# define BOOST_BIND_ENABLE_PASCAL - -# endif - -#endif - - - diff --git a/src/boost/config/platform/qnxnto.hpp b/src/boost/config/platform/qnxnto.hpp deleted file mode 100644 index b1377c8d..00000000 --- a/src/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/src/boost/config/platform/solaris.hpp b/src/boost/config/platform/solaris.hpp deleted file mode 100644 index 6e4efc9e..00000000 --- a/src/boost/config/platform/solaris.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. - -// 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 - -#define BOOST_HAS_STDINT_H -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -#define BOOST_HAS_LOG1P -#define BOOST_HAS_EXPM1 - - diff --git a/src/boost/config/platform/symbian.hpp b/src/boost/config/platform/symbian.hpp deleted file mode 100644 index e02a7782..00000000 --- a/src/boost/config/platform/symbian.hpp +++ /dev/null @@ -1,97 +0,0 @@ -// (C) Copyright Yuriy Krasnoschek 2009. -// (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. - -// symbian specific config options: - - -#define BOOST_PLATFORM "Symbian" -#define BOOST_SYMBIAN 1 - - -#if defined(__S60_3X__) -// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL -# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK -// make sure we have __GLIBC_PREREQ if available at all -#ifdef __cplusplus -#include -#else -#include -#endif// boilerplate code: -# define BOOST_HAS_UNISTD_H -# include -// S60 SDK defines _POSIX_VERSION as POSIX.1 -# ifndef BOOST_HAS_STDINT_H -# define BOOST_HAS_STDINT_H -# endif -# ifndef BOOST_HAS_GETTIMEOFDAY -# define BOOST_HAS_GETTIMEOFDAY -# endif -# ifndef BOOST_HAS_DIRENT_H -# define BOOST_HAS_DIRENT_H -# endif -# ifndef BOOST_HAS_SIGACTION -# define BOOST_HAS_SIGACTION -# endif -# ifndef BOOST_HAS_PTHREADS -# define BOOST_HAS_PTHREADS -# endif -# ifndef BOOST_HAS_NANOSLEEP -# define BOOST_HAS_NANOSLEEP -# 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_LOG1P -# define BOOST_HAS_LOG1P -# endif -# ifndef BOOST_HAS_EXPM1 -# define BOOST_HAS_EXPM1 -# endif -# ifndef BOOST_POSIX_API -# define BOOST_POSIX_API -# endif -// endianess support -# include -// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER -# ifndef __LITTLE_ENDIAN -# ifdef _LITTLE_ENDIAN -# define __LITTLE_ENDIAN _LITTLE_ENDIAN -# else -# define __LITTLE_ENDIAN 1234 -# endif -# endif -# ifndef __BIG_ENDIAN -# ifdef _BIG_ENDIAN -# define __BIG_ENDIAN _BIG_ENDIAN -# else -# define __BIG_ENDIAN 4321 -# endif -# endif -# ifndef __BYTE_ORDER -# define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE -# endif -// Known limitations -# define BOOST_ASIO_DISABLE_SERIAL_PORT -# define BOOST_DATE_TIME_NO_LOCALE -# define BOOST_NO_STD_WSTRING -# define BOOST_EXCEPTION_DISABLE -# define BOOST_NO_EXCEPTIONS - -#else // TODO: More platform support e.g. UIQ -# error "Unsuppoted Symbian SDK" -#endif - -#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32) -# define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro -#endif - - diff --git a/src/boost/config/platform/vms.hpp b/src/boost/config/platform/vms.hpp deleted file mode 100644 index f70efcfb..00000000 --- a/src/boost/config/platform/vms.hpp +++ /dev/null @@ -1,25 +0,0 @@ -// (C) Copyright Artyom Beilis 2010. -// 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_PLATFORM_VMS_HPP -#define BOOST_CONFIG_PLATFORM_VMS_HPP - -#define BOOST_PLATFORM "OpenVMS" - -#undef BOOST_HAS_STDINT_H -#define BOOST_HAS_UNISTD_H -#define BOOST_HAS_NL_TYPES_H -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_DIRENT_H -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_NANOSLEEP -#define BOOST_HAS_CLOCK_GETTIME -#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -#define BOOST_HAS_LOG1P -#define BOOST_HAS_EXPM1 -#define BOOST_HAS_THREADS -#undef BOOST_HAS_SCHED_YIELD - -#endif diff --git a/src/boost/config/platform/vxworks.hpp b/src/boost/config/platform/vxworks.hpp deleted file mode 100644 index cdda0158..00000000 --- a/src/boost/config/platform/vxworks.hpp +++ /dev/null @@ -1,369 +0,0 @@ -// (C) Copyright Dustin Spicuzza 2009. -// Adapted to vxWorks 6.9 by Peter Brockamp 2012. -// 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. - -// Since WRS does not yet properly support boost under vxWorks -// and this file was badly outdated, but I was keen on using it, -// I patched boost myself to make things work. This has been tested -// and adapted by me for vxWorks 6.9 *only*, as I'm lacking access -// to earlier 6.X versions! The only thing I know for sure is that -// very old versions of vxWorks (namely everything below 6.x) are -// absolutely unable to use boost. This is mainly due to the completely -// outdated libraries and ancient compiler (GCC 2.96 or worse). Do -// not even think of getting this to work, a miserable failure will -// be guaranteed! -// Equally, this file has been tested for RTPs (Real Time Processes) -// only, not for DKMs (Downloadable Kernel Modules). These two types -// of executables differ largely in the available functionality of -// the C-library, STL, and so on. A DKM uses a library similar to those -// of vxWorks 5.X - with all its limitations and incompatibilities -// with respect to ANSI C++ and STL. So probably there might be problems -// with the usage of boost from DKMs. WRS or any voluteers are free to -// prove the opposite! - -// ==================================================================== -// -// Some important information regarding the usage of POSIX semaphores: -// ------------------------------------------------------------------- -// -// VxWorks as a real time operating system handles threads somewhat -// different from what "normal" OSes do, regarding their scheduling! -// This could lead to a scenario called "priority inversion" when using -// semaphores, see http://en.wikipedia.org/wiki/Priority_inversion. -// -// Now, VxWorks POSIX-semaphores for DKM's default to the usage of -// priority inverting semaphores, which is fine. On the other hand, -// for RTP's it defaults to using non priority inverting semaphores, -// which could easily pose a serious problem for a real time process, -// i.e. deadlocks! To overcome this two possibilities do exist: -// -// a) Patch every piece of boost that uses semaphores to instanciate -// the proper type of semaphores. This is non-intrusive with respect -// to the OS and could relatively easy been done by giving all -// semaphores attributes deviating from the default (for in-depth -// information see the POSIX functions pthread_mutexattr_init() -// and pthread_mutexattr_setprotocol()). However this breaks all -// too easily, as with every new version some boost library could -// all in a sudden start using semaphores, resurrecting the very -// same, hard to locate problem over and over again! -// -// b) We could change the default properties for POSIX-semaphores -// that VxWorks uses for RTP's and this is being suggested here, -// as it will more or less seamlessly integrate with boost. I got -// the following information from WRS how to do this, compare -// Wind River TSR# 1209768: -// -// Instructions for changing the default properties of POSIX- -// semaphores for RTP's in VxWorks 6.9: -// - Edit the file /vxworks-6.9/target/usr/src/posix/pthreadLib.c -// in the root of your Workbench-installation. -// - Around line 917 there should be the definition of the default -// mutex attributes: -// -// LOCAL pthread_mutexattr_t defaultMutexAttr = -// { -// PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0, -// PTHREAD_MUTEX_DEFAULT -// }; -// -// Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT. -// - Around line 1236 there should be a definition for the function -// pthread_mutexattr_init(). A couple of lines below you should -// find a block of code like this: -// -// pAttr->mutexAttrStatus = PTHREAD_INITIALIZED_OBJ; -// pAttr->mutexAttrProtocol = PTHREAD_PRIO_NONE; -// pAttr->mutexAttrPrioceiling = 0; -// pAttr->mutexAttrType = PTHREAD_MUTEX_DEFAULT; -// -// Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT. -// - Finally, rebuild your VSB. This will create a new VxWorks kernel -// with the changed properties. That's it! Now, using boost should -// no longer cause any problems with task deadlocks! -// -// And here's another useful piece of information concerning VxWorks' -// POSIX-functionality in general: -// VxWorks is not a genuine POSIX-OS in itself, rather it is using a -// kind of compatibility layer (sort of a wrapper) to emulate the -// POSIX-functionality by using its own resources and functions. -// At the time a task (thread) calls it's first POSIX-function during -// runtime it is being transformed by the OS into a POSIX-thread. -// This transformation does include a call to malloc() to allocate the -// memory required for the housekeeping of POSIX-threads. In a high -// priority RTP this malloc() call may be highly undesirable, as its -// timing is more or less unpredictable (depending on what your actual -// heap looks like). You can circumvent this problem by calling the -// function thread_self() at a well defined point in the code of the -// task, e.g. shortly after the task spawns up. Thereby you are able -// to define the time when the task-transformation will take place and -// you could shift it to an uncritical point where a malloc() call is -// tolerable. So, if this could pose a problem for your code, remember -// to call thread_self() from the affected task at an early stage. -// -// ==================================================================== - -// Block out all versions before vxWorks 6.x, as these don't work: -// Include header with the vxWorks version information and query them -#include -#if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6) -# error "The vxWorks version you're using is so badly outdated,\ - it doesn't work at all with boost, sorry, no chance!" -#endif - -// Handle versions above 5.X but below 6.9 -#if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9) -// TODO: Starting from what version does vxWorks work with boost? -// We can't reasonably insert a #warning "" as a user hint here, -// as this will show up with every file including some boost header, -// badly bugging the user... So for the time being we just leave it. -#endif - -// vxWorks specific config options: -// -------------------------------- -#define BOOST_PLATFORM "vxWorks" - -// Special behaviour for DKMs: -#ifdef _WRS_KERNEL - // DKMs do not have the -header, - // but apparently they do have an intrinsic wchar_t meanwhile! -# define BOOST_NO_CWCHAR - - // Lots of wide-functions and -headers are unavailable for DKMs as well: -# define BOOST_NO_CWCTYPE -# define BOOST_NO_SWPRINTF -# define BOOST_NO_STD_WSTRING -# define BOOST_NO_STD_WSTREAMBUF -#endif - -// Generally available headers: -#define BOOST_HAS_UNISTD_H -#define BOOST_HAS_STDINT_H -#define BOOST_HAS_DIRENT_H -#define BOOST_HAS_SLIST - -// vxWorks does not have installed an iconv-library by default, -// so unfortunately no Unicode support from scratch is available! -// Thus, instead it is suggested to switch to ICU, as this seems -// to be the most complete and portable option... -#define BOOST_LOCALE_WITH_ICU - -// Generally available functionality: -#define BOOST_HAS_THREADS -#define BOOST_HAS_NANOSLEEP -#define BOOST_HAS_GETTIMEOFDAY -#define BOOST_HAS_CLOCK_GETTIME -#define BOOST_HAS_MACRO_USE_FACET - -// Generally unavailable functionality, delivered by boost's test function: -//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result! -#define BOOST_NO_CXX11_EXTERN_TEMPLATE -#define BOOST_NO_CXX11_VARIADIC_MACROS - -// Generally available threading API's: -#define BOOST_HAS_PTHREADS -#define BOOST_HAS_SCHED_YIELD -#define BOOST_HAS_SIGACTION - -// Functionality available for RTPs only: -#ifdef __RTP__ -# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE -# define BOOST_HAS_LOG1P -# define BOOST_HAS_EXPM1 -#endif - -// Functionality available for DKMs only: -#ifdef _WRS_KERNEL - // Luckily, at the moment there seems to be none! -#endif - -// These #defines allow posix_features to work, since vxWorks doesn't -// #define them itself for DKMs (for RTPs on the contrary it does): -#ifdef _WRS_KERNEL -# ifndef _POSIX_TIMERS -# define _POSIX_TIMERS 1 -# endif -# ifndef _POSIX_THREADS -# define _POSIX_THREADS 1 -# endif -#endif - -// vxWorks doesn't work with asio serial ports: -#define BOOST_ASIO_DISABLE_SERIAL_PORT -// TODO: The problem here seems to bee that vxWorks uses its own, very specific -// ways to handle serial ports, incompatible with POSIX or anything... -// Maybe a specific implementation would be possible, but until the -// straight need arises... This implementation would presumably consist -// of some vxWorks specific ioctl-calls, etc. Any voluteers? - -// vxWorks-around: #defines CLOCKS_PER_SEC as sysClkRateGet() but -// miserably fails to #include the required to make -// sysClkRateGet() available! So we manually include it here. -#ifdef __RTP__ -# include -# include -#endif - -// vxWorks-around: In the macros INT32_C(), UINT32_C(), INT64_C() and -// UINT64_C() are defined errorneously, yielding not a signed/ -// unsigned long/long long type, but a signed/unsigned int/long -// type. Eventually this leads to compile errors in ratio_fwd.hpp, -// when trying to define several constants which do not fit into a -// long type! We correct them here by redefining. -#include - -// Some macro-magic to do the job -#define VX_JOIN(X, Y) VX_DO_JOIN(X, Y) -#define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y) -#define VX_DO_JOIN2(X, Y) X##Y - -// Correctly setup the macros -#undef INT32_C -#undef UINT32_C -#undef INT64_C -#undef UINT64_C -#define INT32_C(x) VX_JOIN(x, L) -#define UINT32_C(x) VX_JOIN(x, UL) -#define INT64_C(x) VX_JOIN(x, LL) -#define UINT64_C(x) VX_JOIN(x, ULL) - -// #include Libraries required for the following function adaption -#include -#include -#include - -// Use C-linkage for the following helper functions -extern "C" { - -// vxWorks-around: The required functions getrlimit() and getrlimit() are missing. -// But we have the similar functions getprlimit() and setprlimit(), -// which may serve the purpose. -// Problem: The vxWorks-documentation regarding these functions -// doesn't deserve its name! It isn't documented what the first two -// parameters idtype and id mean, so we must fall back to an educated -// guess - null, argh... :-/ - -// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason. -// Thus for DKMs there would have to be another implementation. -#ifdef __RTP__ - inline int getrlimit(int resource, struct rlimit *rlp){ - return getprlimit(0, 0, resource, rlp); - } - - inline int setrlimit(int resource, const struct rlimit *rlp){ - return setprlimit(0, 0, resource, const_cast(rlp)); - } -#endif - -// vxWorks has ftruncate() only, so we do simulate truncate(): -inline int truncate(const char *p, off_t l){ - int fd = open(p, O_WRONLY); - if (fd == -1){ - errno = EACCES; - return -1; - } - if (ftruncate(fd, l) == -1){ - close(fd); - errno = EACCES; - return -1; - } - return close(fd); -} - -// Fake symlink handling by dummy functions: -inline int symlink(const char*, const char*){ - // vxWorks has no symlinks -> always return an error! - errno = EACCES; - return -1; -} - -inline ssize_t readlink(const char*, char*, size_t){ - // vxWorks has no symlinks -> always return an error! - errno = EACCES; - return -1; -} - -// vxWorks claims to implement gettimeofday in sys/time.h -// but nevertheless does not provide it! See -// https://support.windriver.com/olsPortal/faces/maintenance/techtipDetail_noHeader.jspx?docId=16442&contentId=WR_TECHTIP_006256 -// We implement a surrogate version here via clock_gettime: -inline int gettimeofday(struct timeval *tv, void * /*tzv*/) { - struct timespec ts; - clock_gettime(CLOCK_MONOTONIC, &ts); - tv->tv_sec = ts.tv_sec; - tv->tv_usec = ts.tv_nsec / 1000; - return 0; -} - -// vxWorks does provide neither struct tms nor function times()! -// We implement an empty dummy-function, simply setting the user -// and system time to the half of thew actual system ticks-value -// and the child user and system time to 0. -// Rather ugly but at least it suppresses compiler errors... -// Unfortunately, this of course *does* have an severe impact on -// dependant libraries, actually this is chrono only! Here it will -// not be possible to correctly use user and system times! But -// as vxWorks is lacking the ability to calculate user and system -// process times there seems to be no other possible solution. -struct tms{ - clock_t tms_utime; // User CPU time - clock_t tms_stime; // System CPU time - clock_t tms_cutime; // User CPU time of terminated child processes - clock_t tms_cstime; // System CPU time of terminated child processes -}; - -inline clock_t times(struct tms *t){ - struct timespec ts; - clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts); - clock_t ticks(static_cast(static_cast(ts.tv_sec) * CLOCKS_PER_SEC + - static_cast(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0)); - t->tms_utime = ticks/2U; - t->tms_stime = ticks/2U; - t->tms_cutime = 0; // vxWorks is lacking the concept of a child process! - t->tms_cstime = 0; // -> Set the wait times for childs to 0 - return ticks; -} - -} // extern "C" - -// Put the selfmade functions into the std-namespace, just in case -namespace std { -# ifdef __RTP__ - using ::getrlimit; - using ::setrlimit; -# endif - using ::truncate; - using ::symlink; - using ::readlink; - using ::times; - using ::gettimeofday; -} - -// Some more macro-magic: -// vxWorks-around: Some functions are not present or broken in vxWorks -// but may be patched to life via helper macros... - -// Include signal.h which might contain a typo to be corrected here -#include - -#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway! -#ifndef S_ISSOCK -# define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket? -#endif -#define lstat(p, b) stat(p, b) // lstat() == stat(), as vxWorks has no symlinks! -#ifndef FPE_FLTINV -# define FPE_FLTINV (FPE_FLTSUB+1) // vxWorks has no FPE_FLTINV, so define one as a dummy -#endif -#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR) -# define BUS_ADRALN BUS_ADRALNR // Correct a supposed typo in vxWorks' -#endif -//typedef int locale_t; // locale_t is a POSIX-extension, currently unpresent in vxWorks! - -// #include boilerplate code: -#include - -// vxWorks lies about XSI conformance, there is no nl_types.h: -#undef BOOST_HAS_NL_TYPES_H diff --git a/src/boost/config/platform/win32.hpp b/src/boost/config/platform/win32.hpp deleted file mode 100644 index 450158fb..00000000 --- a/src/boost/config/platform/win32.hpp +++ /dev/null @@ -1,90 +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 - -// Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT -// If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport), -// its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and -// BOOST_SYMBOL_IMPORT -#ifndef BOOST_SYMBOL_EXPORT -# define BOOST_HAS_DECLSPEC -# define BOOST_SYMBOL_EXPORT __declspec(dllexport) -# define BOOST_SYMBOL_IMPORT __declspec(dllimport) -#endif - -#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0))) -# define BOOST_HAS_STDINT_H -# ifndef __STDC_LIMIT_MACROS -# define __STDC_LIMIT_MACROS -# endif -# define BOOST_HAS_DIRENT_H -# define BOOST_HAS_UNISTD_H -#endif - -#if defined(__MINGW32__) && (__GNUC__ >= 4) -// Mingw has these functions but there are persistent problems -// with calls to these crashing, so disable for now: -//# define BOOST_HAS_EXPM1 -//# define BOOST_HAS_LOG1P -# define BOOST_HAS_GETTIMEOFDAY -#endif -// -// Win32 will normally be using native Win32 threads, -// but there is a pthread library avaliable as an option, -// 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). -// - -#ifndef BOOST_HAS_PTHREADS -# define BOOST_HAS_WINTHREADS -#endif - -// -// WinCE configuration: -// -#if defined(_WIN32_WCE) || defined(UNDER_CE) -# define BOOST_NO_ANSI_APIS -// Windows CE does not have a conforming signature for swprintf -# define BOOST_NO_SWPRINTF -#else -# define BOOST_HAS_GETSYSTEMTIMEASFILETIME -# define BOOST_HAS_THREADEX -# define BOOST_HAS_GETSYSTEMTIMEASFILETIME -#endif - -// -// Windows Runtime -// -#if defined(WINAPI_FAMILY) && \ - (WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP) -# define BOOST_NO_ANSI_APIS -#endif - -#ifndef BOOST_DISABLE_WIN32 -// WEK: Added -#define BOOST_HAS_FTIME -#define BOOST_WINDOWS 1 - -#endif diff --git a/src/boost/config/posix_features.hpp b/src/boost/config/posix_features.hpp deleted file mode 100644 index d1295479..00000000 --- a/src/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/src/boost/config/requires_threads.hpp b/src/boost/config/requires_threads.hpp deleted file mode 100644 index cfaff230..00000000 --- a/src/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/src/boost/config/select_compiler_config.hpp b/src/boost/config/select_compiler_config.hpp deleted file mode 100644 index 4d87093a..00000000 --- a/src/boost/config/select_compiler_config.hpp +++ /dev/null @@ -1,148 +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. - -// locate which compiler we are using and define -// BOOST_COMPILER_CONFIG as needed: - -#if defined __CUDACC__ -// NVIDIA CUDA C++ compiler for GPU -# include "boost/config/compiler/nvcc.hpp" - -#endif - -#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(_CRAYC) -// EDG based Cray compiler: -# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp" - -#elif defined __COMO__ -// Comeau C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp" - -#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4) -// PathScale EKOPath compiler (has to come before clang and gcc) -# define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp" - -#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) -// Intel -# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp" - -#elif defined __clang__ && !defined(__CUDACC__) && !defined(__ibmxl__) -// when using clang and cuda at same time, you want to appear as gcc -// Clang C++ emulates GCC, so it has to appear early. -# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp" - -#elif defined __DMC__ -// Digital Mars C++ -# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp" - -# elif defined(__GNUC__) && !defined(__ibmxl__) -// 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(__ibmxl__) -// IBM XL C/C++ for Linux (Little Endian) -# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp.hpp" - -#elif defined(__IBMCPP__) -// IBM Visual Age or IBM XL C/C++ for Linux (Big Endian) -# 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 - -#if 0 -// -// This section allows dependency scanners to find all the headers we *might* include: -// -#include "boost/config/compiler/gcc_xml.hpp" -#include "boost/config/compiler/cray.hpp" -#include "boost/config/compiler/comeau.hpp" -#include "boost/config/compiler/pathscale.hpp" -#include "boost/config/compiler/intel.hpp" -#include "boost/config/compiler/clang.hpp" -#include "boost/config/compiler/digitalmars.hpp" -#include "boost/config/compiler/gcc.hpp" -#include "boost/config/compiler/kai.hpp" -#include "boost/config/compiler/sgi_mipspro.hpp" -#include "boost/config/compiler/compaq_cxx.hpp" -#include "boost/config/compiler/greenhills.hpp" -#include "boost/config/compiler/codegear.hpp" -#include "boost/config/compiler/borland.hpp" -#include "boost/config/compiler/metrowerks.hpp" -#include "boost/config/compiler/sunpro_cc.hpp" -#include "boost/config/compiler/hp_acc.hpp" -#include "boost/config/compiler/mpw.hpp" -#include "boost/config/compiler/vacpp.hpp" -#include "boost/config/compiler/pgi.hpp" -#include "boost/config/compiler/visualc.hpp" - -#endif - diff --git a/src/boost/config/select_platform_config.hpp b/src/boost/config/select_platform_config.hpp deleted file mode 100644 index 62fd818b..00000000 --- a/src/boost/config/select_platform_config.hpp +++ /dev/null @@ -1,137 +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__)) && !defined(_CRAYC) -// 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(__HAIKU__) -// Haiku -# define BOOST_PLATFORM_CONFIG "boost/config/platform/haiku.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" - -#elif defined(__VXWORKS__) -// vxWorks: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp" - -#elif defined(__SYMBIAN32__) -// Symbian: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp" - -#elif defined(_CRAYC) -// Cray: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp" - -#elif defined(__VMS) -// VMS: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp" - -#elif defined(__CloudABI__) -// Nuxi CloudABI: -# define BOOST_PLATFORM_CONFIG "boost/config/platform/cloudabi.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 - -#if 0 -// -// This section allows dependency scanners to find all the files we *might* include: -// -# include "boost/config/platform/linux.hpp" -# include "boost/config/platform/bsd.hpp" -# include "boost/config/platform/solaris.hpp" -# include "boost/config/platform/irix.hpp" -# include "boost/config/platform/hpux.hpp" -# include "boost/config/platform/cygwin.hpp" -# include "boost/config/platform/win32.hpp" -# include "boost/config/platform/beos.hpp" -# include "boost/config/platform/macos.hpp" -# include "boost/config/platform/aix.hpp" -# include "boost/config/platform/amigaos.hpp" -# include "boost/config/platform/qnxnto.hpp" -# include "boost/config/platform/vxworks.hpp" -# include "boost/config/platform/symbian.hpp" -# include "boost/config/platform/cray.hpp" -# include "boost/config/platform/vms.hpp" -# include - - - -#endif - diff --git a/src/boost/config/select_stdlib_config.hpp b/src/boost/config/select_stdlib_config.hpp deleted file mode 100644 index e270a881..00000000 --- a/src/boost/config/select_stdlib_config.hpp +++ /dev/null @@ -1,105 +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: - -// First include to determine if some version of STLport is in use as the std lib -// (do not rely on this header being included since users can short-circuit this header -// if they know whose std lib they are using.) -#ifdef __cplusplus -# include -#else -# include -#endif - -#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" - -#else - -// If our std lib was not some version of STLport, and has not otherwise -// been detected, then include as it is about -// the smallest of the std lib headers that includes real C++ stuff. -// Some std libs do not include their C++-related macros in -// so this additional include makes sure we get those definitions. -// Note: do not rely on this header being included since users can short-circuit this -// #include if they know whose std lib they are using. -#if !defined(__LIBCOMO__) && !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\ - && !defined(_LIBCPP_VERSION) && !defined(__GLIBCPP__) && !defined(__GLIBCXX__)\ - && !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !defined(__IBMCPP__)\ - && !defined(MSIPL_COMPILE_H) && !defined(_YVALS) && !defined(_CPPLIB_VER) -#include -#endif - -#if 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(_LIBCPP_VERSION) -// libc++ -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp" - -#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) -// GNU libstdc++ 3 -# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp" - -#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 - -#endif - -#if 0 -// -// This section allows dependency scanners to find all the files we *might* include: -// -# include "boost/config/stdlib/stlport.hpp" -# include "boost/config/stdlib/libcomo.hpp" -# include "boost/config/stdlib/roguewave.hpp" -# include "boost/config/stdlib/libcpp.hpp" -# include "boost/config/stdlib/libstdcpp3.hpp" -# include "boost/config/stdlib/sgi.hpp" -# include "boost/config/stdlib/msl.hpp" -# include "boost/config/stdlib/vacpp.hpp" -# include "boost/config/stdlib/modena.hpp" -# include "boost/config/stdlib/dinkumware.hpp" -#endif - diff --git a/src/boost/config/stdlib/dinkumware.hpp b/src/boost/config/stdlib/dinkumware.hpp deleted file mode 100644 index af8ddda5..00000000 --- a/src/boost/config/stdlib/dinkumware.hpp +++ /dev/null @@ -1,198 +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, as does MTA version. -# ifndef __MTA__ -# define BOOST_NO_STD_MIN_MAX -# endif -# 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 - -#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 - -// Fix for VC++ 8.0 on up ( I do not have a previous version to test ) -// or clang-cl. If exceptions are off you must manually include the -// header before including the header. Admittedly -// trying to use Boost libraries or the standard C++ libraries without -// exception support is not suggested but currently clang-cl ( v 3.4 ) -// does not support exceptions and must be compiled with exceptions off. -#if !_HAS_EXCEPTIONS && ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER))) -#include -#endif -#include -#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__) -# define BOOST_NO_STD_TYPEINFO -#endif - -// C++0x headers implemented in 520 (as shipped by Microsoft) -// -#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520 -# define BOOST_NO_CXX11_HDR_ARRAY -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_RANDOM -# define BOOST_NO_CXX11_HDR_REGEX -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_HDR_FUNCTIONAL -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_SMART_PTR -#endif - -#if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \ - && (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610) -# define BOOST_NO_CXX11_HDR_TUPLE -#endif - -// C++0x headers implemented in 540 (as shipped by Microsoft) -// -#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540 -# define BOOST_NO_CXX11_HDR_TYPE_TRAITS -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_ATOMIC_SMART_PTR -#endif - -// C++0x headers implemented in 610 (as shipped by Microsoft) -// -#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610 -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_ATOMIC -# define BOOST_NO_CXX11_ALLOCATOR -// 540 has std::align but it is not a conforming implementation -# define BOOST_NO_CXX11_STD_ALIGN -#endif - -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#elif __cplusplus < 201402 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#elif !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif - -#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400) -// Intel's compiler can't handle this header yet: -# define BOOST_NO_CXX11_HDR_ATOMIC -#endif - - -// 520..610 have std::addressof, but it doesn't support functions -// -#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650 -# define BOOST_NO_CXX11_ADDRESSOF -#endif - -// Bug specific to VC14, -// See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t -// and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2 -#if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650) -# define BOOST_NO_CXX11_HDR_CODECVT -#endif - -#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650) -// If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr is not available. -// See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++ -// and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx -# if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0) -# define BOOST_NO_AUTO_PTR -# endif -#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/src/boost/config/stdlib/libcomo.hpp b/src/boost/config/stdlib/libcomo.hpp deleted file mode 100644 index 941498d0..00000000 --- a/src/boost/config/stdlib/libcomo.hpp +++ /dev/null @@ -1,83 +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 - -// C++0x headers not yet implemented -// -# define BOOST_NO_CXX11_HDR_ARRAY -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_RANDOM -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_REGEX -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_TYPE_TRAITS -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_ALLOCATOR -# define BOOST_NO_CXX11_ATOMIC_SMART_PTR -# define BOOST_NO_CXX11_SMART_PTR -# define BOOST_NO_CXX11_HDR_FUNCTIONAL -# define BOOST_NO_CXX11_HDR_ATOMIC -# define BOOST_NO_CXX11_STD_ALIGN -# define BOOST_NO_CXX11_ADDRESSOF - -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#elif __cplusplus < 201402 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#else -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#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 "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__) diff --git a/src/boost/config/stdlib/libcpp.hpp b/src/boost/config/stdlib/libcpp.hpp deleted file mode 100644 index ab5d1235..00000000 --- a/src/boost/config/stdlib/libcpp.hpp +++ /dev/null @@ -1,80 +0,0 @@ -// (C) Copyright Christopher Jefferson 2011. -// Use, modification and distribution are subject to the -// Boost Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for most recent version. - -// config for libc++ -// Might need more in here later. - -#if !defined(_LIBCPP_VERSION) -# include -# if !defined(_LIBCPP_VERSION) -# error "This is not libc++!" -# endif -#endif - -#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION) - -#define BOOST_HAS_THREADS - -#ifdef _LIBCPP_HAS_NO_VARIADICS -# define BOOST_NO_CXX11_HDR_TUPLE -#endif - -// BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11 -// allocator model. The C++11 allocator model requires a conforming -// std::allocator_traits which is only possible with C++11 template -// aliases since members rebind_alloc and rebind_traits require it. -#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES) -# define BOOST_NO_CXX11_ALLOCATOR -#endif - -#if __cplusplus < 201103 -# define BOOST_NO_CXX11_HDR_ARRAY -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_RANDOM -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_REGEX -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_ALLOCATOR -# define BOOST_NO_CXX11_SMART_PTR -# define BOOST_NO_CXX11_HDR_FUNCTIONAL -# define BOOST_NO_CXX11_STD_ALIGN -# define BOOST_NO_CXX11_ADDRESSOF -#endif - -// -// These appear to be unusable/incomplete so far: -// -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_TYPE_TRAITS -# define BOOST_NO_CXX11_ATOMIC_SMART_PTR -# define BOOST_NO_CXX11_HDR_ATOMIC - -// libc++ uses a non-standard messages_base -#define BOOST_NO_STD_MESSAGES - -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#elif __cplusplus <= 201103 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#elif __cplusplus < 201402 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif - -// --- end --- diff --git a/src/boost/config/stdlib/libstdcpp3.hpp b/src/boost/config/stdlib/libstdcpp3.hpp deleted file mode 100644 index 9718bedc..00000000 --- a/src/boost/config/stdlib/libstdcpp3.hpp +++ /dev/null @@ -1,281 +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: - -#define BOOST_GNU_STDLIB 1 - -#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) \ - || defined(_GLIBCXX_HAS_GTHREADS) \ - || defined(_WIN32) \ - || defined(_AIX) \ - || defined(__HAIKU__) - // - // 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 - -// Apple doesn't seem to reliably defined a *unix* macro -#if !defined(CYGWIN) && ( defined(__unix__) \ - || defined(__unix) \ - || defined(unix) \ - || defined(__APPLE__) \ - || defined(__APPLE) \ - || defined(APPLE)) -# include -#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 - -// -// Decide whether we have C++11 support turned on: -// -#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103) -# define BOOST_LIBSTDCXX11 -#endif -// -// Decide which version of libstdc++ we have, normally -// stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly -// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++ -// developers. He also commented: -// -// "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in -// GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305. -// Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support -// than any release in the 4.2 series." -// -// Another resource for understanding stdlibc++ features is: -// http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x -// -// However, using the GCC version number fails when the compiler is clang since this -// only ever claims to emulate GCC-4.2, see https://svn.boost.org/trac/boost/ticket/7473 -// for a long discussion on this issue. What we can do though is use clang's __has_include -// to detect the presence of a C++11 header that was introduced with a specific GCC release. -// We still have to be careful though as many such headers were buggy and/or incomplete when -// first introduced, so we only check for headers that were fully featured from day 1, and then -// use that to infer the underlying GCC version: -// -#ifdef __clang__ - -#if __has_include() -# define BOOST_LIBSTDCXX_VERSION 50100 -#elif __has_include() -# define BOOST_LIBSTDCXX_VERSION 40900 -#elif __has_include() -# define BOOST_LIBSTDCXX_VERSION 40800 -#elif __has_include() -# define BOOST_LIBSTDCXX_VERSION 40700 -#elif __has_include() -# define BOOST_LIBSTDCXX_VERSION 40600 -#elif __has_include() -# define BOOST_LIBSTDCXX_VERSION 40500 -#elif __has_include() -# define BOOST_LIBSTDCXX_VERSION 40400 -#elif __has_include() -# define BOOST_LIBSTDCXX_VERSION 40300 -#endif -// -// GCC 4.8 and 9 add working versions of and respectively. -// However, we have no test for these as the headers were present but broken -// in early GCC versions. -// -#endif - -#if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130) && (__cplusplus >= 201103L) -// -// Oracle Solaris compiler uses it's own verison of libstdc++ but doesn't -// set __GNUC__ -// -#define BOOST_LIBSTDCXX_VERSION 40800 -#endif - -#if !defined(BOOST_LIBSTDCXX_VERSION) -# define BOOST_LIBSTDCXX_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) -#endif - -// C++0x headers in GCC 4.3.0 and later -// -#if (BOOST_LIBSTDCXX_VERSION < 40300) || !defined(BOOST_LIBSTDCXX11) -# define BOOST_NO_CXX11_HDR_ARRAY -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_HDR_FUNCTIONAL -#endif - -// C++0x headers in GCC 4.4.0 and later -// -#if (BOOST_LIBSTDCXX_VERSION < 40400) || !defined(BOOST_LIBSTDCXX11) -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_SMART_PTR -#else -# define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG -# define BOOST_HAS_TR1_COMPLEX_OVERLOADS -#endif - -// C++0x features in GCC 4.5.0 and later -// -#if (BOOST_LIBSTDCXX_VERSION < 40500) || !defined(BOOST_LIBSTDCXX11) -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_RANDOM -#endif - -// C++0x features in GCC 4.6.0 and later -// -#if (BOOST_LIBSTDCXX_VERSION < 40600) || !defined(BOOST_LIBSTDCXX11) -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_ADDRESSOF -#endif - -// C++0x features in GCC 4.7.0 and later -// -#if (BOOST_LIBSTDCXX_VERSION < 40700) || !defined(BOOST_LIBSTDCXX11) -// Note that although existed prior to 4.7, "steady_clock" is spelled "monotonic_clock" -// so 4.7.0 is the first truely conforming one. -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_ALLOCATOR -#endif -// C++0x features in GCC 4.8.0 and later -// -#if (BOOST_LIBSTDCXX_VERSION < 40800) || !defined(BOOST_LIBSTDCXX11) -// Note that although existed prior to gcc 4.8 it was largely unimplemented for many types: -# define BOOST_NO_CXX11_HDR_ATOMIC -# define BOOST_NO_CXX11_HDR_THREAD -#endif -// C++0x features in GCC 4.9.0 and later -// -#if (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11) -// Although is present and compilable against, the actual implementation is not functional -// even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively. -# define BOOST_NO_CXX11_HDR_REGEX -#endif - -#if defined(__clang_major__) && ((__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 7))) -// As of clang-3.6, libstdc++ header throws up errors with clang: -# define BOOST_NO_CXX11_HDR_ATOMIC -#endif -// -// C++0x features in GCC 5.1 and later -// -#if (BOOST_LIBSTDCXX_VERSION < 50100) || !defined(BOOST_LIBSTDCXX11) -# define BOOST_NO_CXX11_HDR_TYPE_TRAITS -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_ATOMIC_SMART_PTR -# define BOOST_NO_CXX11_STD_ALIGN -#endif - -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#elif __cplusplus <= 201103 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#elif __cplusplus < 201402 || (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11) -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif - -// -// Headers not present on Solaris with the Oracle compiler: -#if defined(__SUNPRO_CC) -#define BOOST_NO_CXX11_HDR_FUTURE -#define BOOST_NO_CXX11_HDR_FORWARD_LIST -#define BOOST_NO_CXX11_HDR_ATOMIC -// shared_ptr is present, but is not convertible to bool -// which causes all kinds of problems especially in Boost.Thread -// but probably elsewhere as well. -#define BOOST_NO_CXX11_SMART_PTR -#endif - -#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) - // Headers not always available: -# ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# endif -# ifndef BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_MUTEX -# endif -# ifndef BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_HDR_THREAD -# endif -# ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -# endif -#endif - -#if (!defined(_GTHREAD_USE_MUTEX_TIMEDLOCK) || (_GTHREAD_USE_MUTEX_TIMEDLOCK == 0)) && !defined(BOOST_NO_CXX11_HDR_MUTEX) -// Timed mutexes are not always available: -# define BOOST_NO_CXX11_HDR_MUTEX -#endif - -// --- end --- diff --git a/src/boost/config/stdlib/modena.hpp b/src/boost/config/stdlib/modena.hpp deleted file mode 100644 index 7a85e0cd..00000000 --- a/src/boost/config/stdlib/modena.hpp +++ /dev/null @@ -1,69 +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 - -// C++0x headers not yet implemented -// -# define BOOST_NO_CXX11_HDR_ARRAY -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_RANDOM -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_REGEX -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_TYPE_TRAITS -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_ALLOCATOR -# define BOOST_NO_CXX11_ATOMIC_SMART_PTR -# define BOOST_NO_CXX11_SMART_PTR -# define BOOST_NO_CXX11_HDR_FUNCTIONAL -# define BOOST_NO_CXX11_HDR_ATOMIC -# define BOOST_NO_CXX11_STD_ALIGN -# define BOOST_NO_CXX11_ADDRESSOF - -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#elif __cplusplus < 201402 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#else -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif - -#define BOOST_STDLIB "Modena C++ standard library" - - - - - diff --git a/src/boost/config/stdlib/msl.hpp b/src/boost/config/stdlib/msl.hpp deleted file mode 100644 index dd2775e1..00000000 --- a/src/boost/config/stdlib/msl.hpp +++ /dev/null @@ -1,88 +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 - -// C++0x headers not yet implemented -// -# define BOOST_NO_CXX11_HDR_ARRAY -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_RANDOM -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_REGEX -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_TYPE_TRAITS -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_ALLOCATOR -# define BOOST_NO_CXX11_ATOMIC_SMART_PTR -# define BOOST_NO_CXX11_SMART_PTR -# define BOOST_NO_CXX11_HDR_FUNCTIONAL -# define BOOST_NO_CXX11_HDR_ATOMIC -# define BOOST_NO_CXX11_STD_ALIGN -# define BOOST_NO_CXX11_ADDRESSOF - -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#elif __cplusplus < 201402 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#else -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif - -#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__) diff --git a/src/boost/config/stdlib/roguewave.hpp b/src/boost/config/stdlib/roguewave.hpp deleted file mode 100644 index 97a2b0b9..00000000 --- a/src/boost/config/stdlib/roguewave.hpp +++ /dev/null @@ -1,198 +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: - -#define BOOST_RW_STDLIB 1 - -#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 - -#if _RWSTD_VER < 0x05000000 -# define BOOST_NO_CXX11_HDR_ARRAY -#endif -// type_traits header is incomplete: -# define BOOST_NO_CXX11_HDR_TYPE_TRAITS -// -// C++0x headers not yet implemented -// -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_RANDOM -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_REGEX -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_ALLOCATOR -# define BOOST_NO_CXX11_ATOMIC_SMART_PTR -# define BOOST_NO_CXX11_SMART_PTR -# define BOOST_NO_CXX11_HDR_FUNCTIONAL -# define BOOST_NO_CXX11_HDR_ATOMIC -# define BOOST_NO_CXX11_STD_ALIGN -# define BOOST_NO_CXX11_ADDRESSOF - -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#elif __cplusplus < 201402 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#else -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif diff --git a/src/boost/config/stdlib/sgi.hpp b/src/boost/config/stdlib/sgi.hpp deleted file mode 100644 index c8052717..00000000 --- a/src/boost/config/stdlib/sgi.hpp +++ /dev/null @@ -1,158 +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 - -// Apple doesn't seem to reliably defined a *unix* macro -#if !defined(CYGWIN) && ( defined(__unix__) \ - || defined(__unix) \ - || defined(unix) \ - || defined(__APPLE__) \ - || defined(__APPLE) \ - || defined(APPLE)) -# include -#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 - -// -// 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 - -// C++0x headers not yet implemented -// -# define BOOST_NO_CXX11_HDR_ARRAY -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_RANDOM -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_REGEX -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_TYPE_TRAITS -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_ALLOCATOR -# define BOOST_NO_CXX11_ATOMIC_SMART_PTR -# define BOOST_NO_CXX11_SMART_PTR -# define BOOST_NO_CXX11_HDR_FUNCTIONAL -# define BOOST_NO_CXX11_HDR_ATOMIC -# define BOOST_NO_CXX11_STD_ALIGN -# define BOOST_NO_CXX11_ADDRESSOF - -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#elif __cplusplus < 201402 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#else -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif - -#define BOOST_STDLIB "SGI standard library" \ No newline at end of file diff --git a/src/boost/config/stdlib/stlport.hpp b/src/boost/config/stdlib/stlport.hpp deleted file mode 100644 index f5de2dcd..00000000 --- a/src/boost/config/stdlib/stlport.hpp +++ /dev/null @@ -1,248 +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 - -// Apple doesn't seem to reliably defined a *unix* macro -#if !defined(CYGWIN) && ( defined(__unix__) \ - || defined(__unix) \ - || defined(unix) \ - || defined(__APPLE__) \ - || defined(__APPLE) \ - || defined(APPLE)) -# include -#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 >= 0x520) -# define BOOST_HAS_TR1_UNORDERED_SET -# define BOOST_HAS_TR1_UNORDERED_MAP -#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 network_boost { using std::min; using std::max; } -#endif - -// C++0x headers not yet implemented -// -# define BOOST_NO_CXX11_HDR_ARRAY -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_RANDOM -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_REGEX -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_TYPE_TRAITS -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_ALLOCATOR -# define BOOST_NO_CXX11_ATOMIC_SMART_PTR -# define BOOST_NO_CXX11_SMART_PTR -# define BOOST_NO_CXX11_HDR_FUNCTIONAL -# define BOOST_NO_CXX11_HDR_ATOMIC -# define BOOST_NO_CXX11_STD_ALIGN -# define BOOST_NO_CXX11_ADDRESSOF - -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#elif __cplusplus < 201402 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#else -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif - -#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT) diff --git a/src/boost/config/stdlib/vacpp.hpp b/src/boost/config/stdlib/vacpp.hpp deleted file mode 100644 index 4ccd0d24..00000000 --- a/src/boost/config/stdlib/vacpp.hpp +++ /dev/null @@ -1,64 +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 - -// Apple doesn't seem to reliably defined a *unix* macro -#if !defined(CYGWIN) && ( defined(__unix__) \ - || defined(__unix) \ - || defined(unix) \ - || defined(__APPLE__) \ - || defined(__APPLE) \ - || defined(APPLE)) -# include -#endif - -// C++0x headers not yet implemented -// -# define BOOST_NO_CXX11_HDR_ARRAY -# define BOOST_NO_CXX11_HDR_CHRONO -# define BOOST_NO_CXX11_HDR_CODECVT -# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE -# define BOOST_NO_CXX11_HDR_FORWARD_LIST -# define BOOST_NO_CXX11_HDR_FUTURE -# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# define BOOST_NO_CXX11_HDR_MUTEX -# define BOOST_NO_CXX11_HDR_RANDOM -# define BOOST_NO_CXX11_HDR_RATIO -# define BOOST_NO_CXX11_HDR_REGEX -# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR -# define BOOST_NO_CXX11_HDR_THREAD -# define BOOST_NO_CXX11_HDR_TUPLE -# define BOOST_NO_CXX11_HDR_TYPE_TRAITS -# define BOOST_NO_CXX11_HDR_TYPEINDEX -# define BOOST_NO_CXX11_HDR_UNORDERED_MAP -# define BOOST_NO_CXX11_HDR_UNORDERED_SET -# define BOOST_NO_CXX11_NUMERIC_LIMITS -# define BOOST_NO_CXX11_ALLOCATOR -# define BOOST_NO_CXX11_ATOMIC_SMART_PTR -# define BOOST_NO_CXX11_SMART_PTR -# define BOOST_NO_CXX11_HDR_FUNCTIONAL -# define BOOST_NO_CXX11_HDR_ATOMIC -# define BOOST_NO_CXX11_STD_ALIGN -# define BOOST_NO_CXX11_ADDRESSOF - -#if defined(__has_include) -#if !__has_include() -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#elif __cplusplus < 201402 -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif -#else -# define BOOST_NO_CXX14_HDR_SHARED_MUTEX -#endif - -#define BOOST_STDLIB "Visual Age default standard library" diff --git a/src/boost/config/suffix.hpp b/src/boost/config/suffix.hpp deleted file mode 100644 index 45c5613d..00000000 --- a/src/boost/config/suffix.hpp +++ /dev/null @@ -1,1007 +0,0 @@ -// Boost config.hpp configuration header file ------------------------------// -// boostinspect:ndprecated_macros -- tell the inspect tool to ignore this 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 -// Copyright (c) 2010 Eric Jourdanneau, Joel Falcou -// Distributed under the Boost Software License, Version 1.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 - -#if defined(__GNUC__) && (__GNUC__ >= 4) -// -// Some GCC-4.x versions issue warnings even when __extension__ is used, -// so use this as a workaround: -// -#pragma GCC system_header -#endif - -// -// ensure that visibility macros are always defined, thus symplifying use -// -#ifndef BOOST_SYMBOL_EXPORT -# define BOOST_SYMBOL_EXPORT -#endif -#ifndef BOOST_SYMBOL_IMPORT -# define BOOST_SYMBOL_IMPORT -#endif -#ifndef BOOST_SYMBOL_VISIBLE -# define BOOST_SYMBOL_VISIBLE -#endif - -// -// 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. - -# if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus) -# 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 -----------------------------------------// - -# if defined(BOOST_NO_STD_MIN_MAX) && defined(__cplusplus) - -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. - -#ifndef BOOST_UNREACHABLE_RETURN -# ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION -# define BOOST_UNREACHABLE_RETURN(x) return x; -# else -# define BOOST_UNREACHABLE_RETURN(x) -# endif -#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) && defined(__cplusplus) -namespace network_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 -// same again for __int128: -#if defined(BOOST_HAS_INT128) && defined(__cplusplus) -namespace network_boost{ -# ifdef __GNUC__ - __extension__ typedef __int128 int128_type; - __extension__ typedef unsigned __int128 uint128_type; -# else - typedef __int128 int128_type; - typedef unsigned __int128 uint128_type; -# endif -} -#endif -// same again for __float128: -#if defined(BOOST_HAS_FLOAT128) && defined(__cplusplus) -namespace network_boost { -# ifdef __GNUC__ - __extension__ typedef __float128 float128_type; -# else - typedef __float128 float128_type; -# endif -} -#endif - -// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------// - -// These macros are obsolete. Port away and remove. - -# 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) - -// When BOOST_NO_STD_TYPEINFO is defined, we can just import -// the global definition into std namespace: -#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus) -#include -namespace std{ using ::type_info; } -#endif - -// ---------------------------------------------------------------------------// - -// -// 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 - -// -// Set some default values GPU support -// -# ifndef BOOST_GPU_ENABLED -# define BOOST_GPU_ENABLED -# endif - -// BOOST_FORCEINLINE ---------------------------------------------// -// Macro to use in place of 'inline' to force a function to be inline -#if !defined(BOOST_FORCEINLINE) -# if defined(_MSC_VER) -# define BOOST_FORCEINLINE __forceinline -# elif defined(__GNUC__) && __GNUC__ > 3 - // Clang also defines __GNUC__ (as 4) -# define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__)) -# else -# define BOOST_FORCEINLINE inline -# endif -#endif - -// BOOST_NOINLINE ---------------------------------------------// -// Macro to use in place of 'inline' to prevent a function to be inlined -#if !defined(BOOST_NOINLINE) -# if defined(_MSC_VER) -# define BOOST_NOINLINE __declspec(noinline) -# elif defined(__GNUC__) && __GNUC__ > 3 - // Clang also defines __GNUC__ (as 4) -# if defined(__CUDACC__) - // nvcc doesn't always parse __noinline__, - // see: https://svn.boost.org/trac/boost/ticket/9392 -# define BOOST_NOINLINE __attribute__ ((noinline)) -# else -# define BOOST_NOINLINE __attribute__ ((__noinline__)) -# endif -# else -# define BOOST_NOINLINE -# endif -#endif - -// BOOST_NORETURN ---------------------------------------------// -// Macro to use before a function declaration/definition to designate -// the function as not returning normally (i.e. with a return statement -// or by leaving the function scope, if the function return type is void). -#if !defined(BOOST_NORETURN) -# if defined(_MSC_VER) -# define BOOST_NORETURN __declspec(noreturn) -# elif defined(__GNUC__) -# define BOOST_NORETURN __attribute__ ((__noreturn__)) -# else -# define BOOST_NO_NORETURN -# define BOOST_NORETURN -# endif -#endif - -// Branch prediction hints -// These macros are intended to wrap conditional expressions that yield true or false -// -// if (BOOST_LIKELY(var == 10)) -// { -// // the most probable code here -// } -// -#if !defined(BOOST_LIKELY) -# define BOOST_LIKELY(x) x -#endif -#if !defined(BOOST_UNLIKELY) -# define BOOST_UNLIKELY(x) x -#endif - -// Type and data alignment specification -// -#if !defined(BOOST_NO_CXX11_ALIGNAS) -# define BOOST_ALIGNMENT(x) alignas(x) -#elif defined(_MSC_VER) -# define BOOST_ALIGNMENT(x) __declspec(align(x)) -#elif defined(__GNUC__) -# define BOOST_ALIGNMENT(x) __attribute__ ((__aligned__(x))) -#else -# define BOOST_NO_ALIGNMENT -# define BOOST_ALIGNMENT(x) -#endif - -// Lack of non-public defaulted functions is implied by the lack of any defaulted functions -#if !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS) && defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) -# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS -#endif - -// Defaulted and deleted function declaration helpers -// These macros are intended to be inside a class definition. -// BOOST_DEFAULTED_FUNCTION accepts the function declaration and its -// body, which will be used if the compiler doesn't support defaulted functions. -// BOOST_DELETED_FUNCTION only accepts the function declaration. It -// will expand to a private function declaration, if the compiler doesn't support -// deleted functions. Because of this it is recommended to use BOOST_DELETED_FUNCTION -// in the end of the class definition. -// -// class my_class -// { -// public: -// // Default-constructible -// BOOST_DEFAULTED_FUNCTION(my_class(), {}) -// // Copying prohibited -// BOOST_DELETED_FUNCTION(my_class(my_class const&)) -// BOOST_DELETED_FUNCTION(my_class& operator= (my_class const&)) -// }; -// -#if !(defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS)) -# define BOOST_DEFAULTED_FUNCTION(fun, body) fun = default; -#else -# define BOOST_DEFAULTED_FUNCTION(fun, body) fun body -#endif - -#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) -# define BOOST_DELETED_FUNCTION(fun) fun = delete; -#else -# define BOOST_DELETED_FUNCTION(fun) private: fun; -#endif - -// -// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined -// -#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276) -#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE -#endif - -// -------------------- Deprecated macros for 1.50 --------------------------- -// These will go away in a future release - -// Use BOOST_NO_CXX11_HDR_UNORDERED_SET or BOOST_NO_CXX11_HDR_UNORDERED_MAP -// instead of BOOST_NO_STD_UNORDERED -#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET) -# ifndef BOOST_NO_CXX11_STD_UNORDERED -# define BOOST_NO_CXX11_STD_UNORDERED -# endif -#endif - -// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of BOOST_NO_INITIALIZER_LISTS -#if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS) -# define BOOST_NO_INITIALIZER_LISTS -#endif - -// Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY -#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_0X_HDR_ARRAY) -# define BOOST_NO_0X_HDR_ARRAY -#endif -// Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO -#if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_NO_0X_HDR_CHRONO) -# define BOOST_NO_0X_HDR_CHRONO -#endif -// Use BOOST_NO_CXX11_HDR_CODECVT instead of BOOST_NO_0X_HDR_CODECVT -#if defined(BOOST_NO_CXX11_HDR_CODECVT) && !defined(BOOST_NO_0X_HDR_CODECVT) -# define BOOST_NO_0X_HDR_CODECVT -#endif -// Use BOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of BOOST_NO_0X_HDR_CONDITION_VARIABLE -#if defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE) -# define BOOST_NO_0X_HDR_CONDITION_VARIABLE -#endif -// Use BOOST_NO_CXX11_HDR_FORWARD_LIST instead of BOOST_NO_0X_HDR_FORWARD_LIST -#if defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(BOOST_NO_0X_HDR_FORWARD_LIST) -# define BOOST_NO_0X_HDR_FORWARD_LIST -#endif -// Use BOOST_NO_CXX11_HDR_FUTURE instead of BOOST_NO_0X_HDR_FUTURE -#if defined(BOOST_NO_CXX11_HDR_FUTURE) && !defined(BOOST_NO_0X_HDR_FUTURE) -# define BOOST_NO_0X_HDR_FUTURE -#endif - -// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST -// instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS -#ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST -# ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST -# define BOOST_NO_0X_HDR_INITIALIZER_LIST -# endif -# ifndef BOOST_NO_INITIALIZER_LISTS -# define BOOST_NO_INITIALIZER_LISTS -# endif -#endif - -// Use BOOST_NO_CXX11_HDR_MUTEX instead of BOOST_NO_0X_HDR_MUTEX -#if defined(BOOST_NO_CXX11_HDR_MUTEX) && !defined(BOOST_NO_0X_HDR_MUTEX) -# define BOOST_NO_0X_HDR_MUTEX -#endif -// Use BOOST_NO_CXX11_HDR_RANDOM instead of BOOST_NO_0X_HDR_RANDOM -#if defined(BOOST_NO_CXX11_HDR_RANDOM) && !defined(BOOST_NO_0X_HDR_RANDOM) -# define BOOST_NO_0X_HDR_RANDOM -#endif -// Use BOOST_NO_CXX11_HDR_RATIO instead of BOOST_NO_0X_HDR_RATIO -#if defined(BOOST_NO_CXX11_HDR_RATIO) && !defined(BOOST_NO_0X_HDR_RATIO) -# define BOOST_NO_0X_HDR_RATIO -#endif -// Use BOOST_NO_CXX11_HDR_REGEX instead of BOOST_NO_0X_HDR_REGEX -#if defined(BOOST_NO_CXX11_HDR_REGEX) && !defined(BOOST_NO_0X_HDR_REGEX) -# define BOOST_NO_0X_HDR_REGEX -#endif -// Use BOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of BOOST_NO_0X_HDR_SYSTEM_ERROR -#if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(BOOST_NO_0X_HDR_SYSTEM_ERROR) -# define BOOST_NO_0X_HDR_SYSTEM_ERROR -#endif -// Use BOOST_NO_CXX11_HDR_THREAD instead of BOOST_NO_0X_HDR_THREAD -#if defined(BOOST_NO_CXX11_HDR_THREAD) && !defined(BOOST_NO_0X_HDR_THREAD) -# define BOOST_NO_0X_HDR_THREAD -#endif -// Use BOOST_NO_CXX11_HDR_TUPLE instead of BOOST_NO_0X_HDR_TUPLE -#if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_0X_HDR_TUPLE) -# define BOOST_NO_0X_HDR_TUPLE -#endif -// Use BOOST_NO_CXX11_HDR_TYPE_TRAITS instead of BOOST_NO_0X_HDR_TYPE_TRAITS -#if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(BOOST_NO_0X_HDR_TYPE_TRAITS) -# define BOOST_NO_0X_HDR_TYPE_TRAITS -#endif -// Use BOOST_NO_CXX11_HDR_TYPEINDEX instead of BOOST_NO_0X_HDR_TYPEINDEX -#if defined(BOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(BOOST_NO_0X_HDR_TYPEINDEX) -# define BOOST_NO_0X_HDR_TYPEINDEX -#endif -// Use BOOST_NO_CXX11_HDR_UNORDERED_MAP instead of BOOST_NO_0X_HDR_UNORDERED_MAP -#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(BOOST_NO_0X_HDR_UNORDERED_MAP) -# define BOOST_NO_0X_HDR_UNORDERED_MAP -#endif -// Use BOOST_NO_CXX11_HDR_UNORDERED_SET instead of BOOST_NO_0X_HDR_UNORDERED_SET -#if defined(BOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(BOOST_NO_0X_HDR_UNORDERED_SET) -# define BOOST_NO_0X_HDR_UNORDERED_SET -#endif - -// ------------------ End of deprecated macros for 1.50 --------------------------- - -// -------------------- Deprecated macros for 1.51 --------------------------- -// These will go away in a future release - -// Use BOOST_NO_CXX11_AUTO_DECLARATIONS instead of BOOST_NO_AUTO_DECLARATIONS -#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_AUTO_DECLARATIONS) -# define BOOST_NO_AUTO_DECLARATIONS -#endif -// Use BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of BOOST_NO_AUTO_MULTIDECLARATIONS -#if defined(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(BOOST_NO_AUTO_MULTIDECLARATIONS) -# define BOOST_NO_AUTO_MULTIDECLARATIONS -#endif -// Use BOOST_NO_CXX11_CHAR16_T instead of BOOST_NO_CHAR16_T -#if defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CHAR16_T) -# define BOOST_NO_CHAR16_T -#endif -// Use BOOST_NO_CXX11_CHAR32_T instead of BOOST_NO_CHAR32_T -#if defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CHAR32_T) -# define BOOST_NO_CHAR32_T -#endif -// Use BOOST_NO_CXX11_TEMPLATE_ALIASES instead of BOOST_NO_TEMPLATE_ALIASES -#if defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_TEMPLATE_ALIASES) -# define BOOST_NO_TEMPLATE_ALIASES -#endif -// Use BOOST_NO_CXX11_CONSTEXPR instead of BOOST_NO_CONSTEXPR -#if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CONSTEXPR) -# define BOOST_NO_CONSTEXPR -#endif -// Use BOOST_NO_CXX11_DECLTYPE_N3276 instead of BOOST_NO_DECLTYPE_N3276 -#if defined(BOOST_NO_CXX11_DECLTYPE_N3276) && !defined(BOOST_NO_DECLTYPE_N3276) -# define BOOST_NO_DECLTYPE_N3276 -#endif -// Use BOOST_NO_CXX11_DECLTYPE instead of BOOST_NO_DECLTYPE -#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_DECLTYPE) -# define BOOST_NO_DECLTYPE -#endif -// Use BOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of BOOST_NO_DEFAULTED_FUNCTIONS -#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_DEFAULTED_FUNCTIONS) -# define BOOST_NO_DEFAULTED_FUNCTIONS -#endif -// Use BOOST_NO_CXX11_DELETED_FUNCTIONS instead of BOOST_NO_DELETED_FUNCTIONS -#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_DELETED_FUNCTIONS) -# define BOOST_NO_DELETED_FUNCTIONS -#endif -// Use BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS) -# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS -#endif -// Use BOOST_NO_CXX11_EXTERN_TEMPLATE instead of BOOST_NO_EXTERN_TEMPLATE -#if defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(BOOST_NO_EXTERN_TEMPLATE) -# define BOOST_NO_EXTERN_TEMPLATE -#endif -// Use BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#if defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS) -# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS -#endif -// Use BOOST_NO_CXX11_LAMBDAS instead of BOOST_NO_LAMBDAS -#if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_LAMBDAS) -# define BOOST_NO_LAMBDAS -#endif -// Use BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS -#if defined(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS) -# define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS -#endif -// Use BOOST_NO_CXX11_NOEXCEPT instead of BOOST_NO_NOEXCEPT -#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_NOEXCEPT) -# define BOOST_NO_NOEXCEPT -#endif -// Use BOOST_NO_CXX11_NULLPTR instead of BOOST_NO_NULLPTR -#if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_NULLPTR) -# define BOOST_NO_NULLPTR -#endif -// Use BOOST_NO_CXX11_RAW_LITERALS instead of BOOST_NO_RAW_LITERALS -#if defined(BOOST_NO_CXX11_RAW_LITERALS) && !defined(BOOST_NO_RAW_LITERALS) -# define BOOST_NO_RAW_LITERALS -#endif -// Use BOOST_NO_CXX11_RVALUE_REFERENCES instead of BOOST_NO_RVALUE_REFERENCES -#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_RVALUE_REFERENCES) -# define BOOST_NO_RVALUE_REFERENCES -#endif -// Use BOOST_NO_CXX11_SCOPED_ENUMS instead of BOOST_NO_SCOPED_ENUMS -#if defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_NO_SCOPED_ENUMS) -# define BOOST_NO_SCOPED_ENUMS -#endif -// Use BOOST_NO_CXX11_STATIC_ASSERT instead of BOOST_NO_STATIC_ASSERT -#if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT) -# define BOOST_NO_STATIC_ASSERT -#endif -// Use BOOST_NO_CXX11_STD_UNORDERED instead of BOOST_NO_STD_UNORDERED -#if defined(BOOST_NO_CXX11_STD_UNORDERED) && !defined(BOOST_NO_STD_UNORDERED) -# define BOOST_NO_STD_UNORDERED -#endif -// Use BOOST_NO_CXX11_UNICODE_LITERALS instead of BOOST_NO_UNICODE_LITERALS -#if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS) -# define BOOST_NO_UNICODE_LITERALS -#endif -// Use BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX -#if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX) -# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX -#endif -// Use BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of BOOST_NO_VARIADIC_TEMPLATES -#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_VARIADIC_TEMPLATES) -# define BOOST_NO_VARIADIC_TEMPLATES -#endif -// Use BOOST_NO_CXX11_VARIADIC_MACROS instead of BOOST_NO_VARIADIC_MACROS -#if defined(BOOST_NO_CXX11_VARIADIC_MACROS) && !defined(BOOST_NO_VARIADIC_MACROS) -# define BOOST_NO_VARIADIC_MACROS -#endif -// Use BOOST_NO_CXX11_NUMERIC_LIMITS instead of BOOST_NO_NUMERIC_LIMITS_LOWEST -#if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_NO_NUMERIC_LIMITS_LOWEST) -# define BOOST_NO_NUMERIC_LIMITS_LOWEST -#endif -// ------------------ End of deprecated macros for 1.51 --------------------------- - - - -// -// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR -// These aid the transition to C++11 while still supporting C++03 compilers -// -#ifdef BOOST_NO_CXX11_NOEXCEPT -# define BOOST_NOEXCEPT -# define BOOST_NOEXCEPT_OR_NOTHROW throw() -# define BOOST_NOEXCEPT_IF(Predicate) -# define BOOST_NOEXCEPT_EXPR(Expression) false -#else -# define BOOST_NOEXCEPT noexcept -# define BOOST_NOEXCEPT_OR_NOTHROW noexcept -# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate)) -# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression)) -#endif -// -// Helper macro BOOST_FALLTHROUGH -// Fallback definition of BOOST_FALLTHROUGH macro used to mark intended -// fall-through between case labels in a switch statement. We use a definition -// that requires a semicolon after it to avoid at least one type of misuse even -// on unsupported compilers. -// -#ifndef BOOST_FALLTHROUGH -# define BOOST_FALLTHROUGH ((void)0) -#endif - -// -// constexpr workarounds -// -#if defined(BOOST_NO_CXX11_CONSTEXPR) -#define BOOST_CONSTEXPR -#define BOOST_CONSTEXPR_OR_CONST const -#else -#define BOOST_CONSTEXPR constexpr -#define BOOST_CONSTEXPR_OR_CONST constexpr -#endif -#if defined(BOOST_NO_CXX14_CONSTEXPR) -#define BOOST_CXX14_CONSTEXPR -#else -#define BOOST_CXX14_CONSTEXPR constexpr -#endif - -// -// Unused variable/typedef workarounds: -// -#ifndef BOOST_ATTRIBUTE_UNUSED -# define BOOST_ATTRIBUTE_UNUSED -#endif - -#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST - -// -// Set BOOST_HAS_STATIC_ASSERT when BOOST_NO_CXX11_STATIC_ASSERT is not defined -// -#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT) -# define BOOST_HAS_STATIC_ASSERT -#endif - -// -// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_CXX11_RVALUE_REFERENCES is not defined -// -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS) -#define BOOST_HAS_RVALUE_REFS -#endif - -// -// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined -// -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL) -#define BOOST_HAS_VARIADIC_TMPL -#endif -// -// Set BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS when -// BOOST_NO_CXX11_VARIADIC_TEMPLATES is set: -// -#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS) -# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS -#endif - -// -// Finish off with checks for macros that are depricated / no longer supported, -// if any of these are set then it's very likely that much of Boost will no -// longer work. So stop with a #error for now, but give the user a chance -// to continue at their own risk if they really want to: -// -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_CONFIG_ALLOW_DEPRECATED) -# error "You are using a compiler which lacks features which are now a minimum requirement in order to use Boost, define BOOST_CONFIG_ALLOW_DEPRECATED if you want to continue at your own risk!!!" -#endif - -#endif diff --git a/src/boost/config/user.hpp b/src/boost/config/user.hpp deleted file mode 100644 index 28e7476a..00000000 --- a/src/boost/config/user.hpp +++ /dev/null @@ -1,133 +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 linked in one way (statically or dynamically), 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 linked in one way (statically or dynamically), -// 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 - -// BOOST_LIB_BUILDID: Set to the same value as the value passed to Boost.Build's -// --buildid command line option. For example if you built using: -// -// bjam address-model=64 --buildid=amd64 -// -// then compile your code with: -// -// -DBOOST_LIB_BUILDID = amd64 -// -// to ensure the correct libraries are selected at link time. -// #define BOOST_LIB_BUILDID amd64 - diff --git a/src/boost/config/warning_disable.hpp b/src/boost/config/warning_disable.hpp deleted file mode 100644 index fea8e829..00000000 --- a/src/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 emitted 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/src/boost/container/allocator_traits.hpp b/src/boost/container/allocator_traits.hpp deleted file mode 100644 index c717e5d0..00000000 --- a/src/boost/container/allocator_traits.hpp +++ /dev/null @@ -1,470 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Pablo Halpern 2009. Distributed under the Boost -// Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2011-2013. Distributed under the Boost -// Software License, Version 1.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/container for documentation. -// -////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_CONTAINER_ALLOCATOR_ALLOCATOR_TRAITS_HPP -#define BOOST_CONTAINER_ALLOCATOR_ALLOCATOR_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include - -// container -#include -#include -#include //is_empty -#include -#ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP -#include -#endif -// intrusive -#include -#include -// move -#include -// move/detail -#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) -#include -#endif -// other boost -#include - -#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED - -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME allocate -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG namespace network_boost { namespace container { namespace container_detail { -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}} -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN 2 -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX 2 -#include - -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME destroy -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG namespace network_boost { namespace container { namespace container_detail { -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}} -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN 1 -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX 1 -#include - -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME construct -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG namespace network_boost { namespace container { namespace container_detail { -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END }}} -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN 1 -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX 9 -#include - -#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED - -namespace network_boost { -namespace container { - -#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED - -namespace allocator_traits_detail { - -BOOST_INTRUSIVE_HAS_STATIC_MEMBER_FUNC_SIGNATURE(has_max_size, max_size) -BOOST_INTRUSIVE_HAS_STATIC_MEMBER_FUNC_SIGNATURE(has_select_on_container_copy_construction, select_on_container_copy_construction) - -} //namespace allocator_traits_detail { - -namespace container_detail { - -//workaround needed for C++03 compilers with no construct() -//supporting rvalue references -template -struct is_std_allocator -{ static const bool value = false; }; - -template -struct is_std_allocator< std::allocator > -{ static const bool value = true; }; - -template -struct is_not_std_allocator -{ static const bool value = !is_std_allocator::value; }; - -BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(pointer) -BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(const_pointer) -BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(reference) -BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(const_reference) -BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(void_pointer) -BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(const_void_pointer) -BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(size_type) -BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_copy_assignment) -BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_move_assignment) -BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_swap) -BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(is_always_equal) -BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type) -BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(is_partially_propagable) - -} //namespace container_detail { - -#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED - -//! The class template allocator_traits supplies a uniform interface to all allocator types. -//! This class is a C++03-compatible implementation of std::allocator_traits -template -struct allocator_traits -{ - //allocator_type - typedef Allocator allocator_type; - //value_type - typedef typename allocator_type::value_type value_type; - - #if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) - //! Allocator::pointer if such a type exists; otherwise, value_type* - //! - typedef unspecified pointer; - //! Allocator::const_pointer if such a type exists ; otherwise, pointer_traits::rebind::rebind. - //! - typedef see_documentation void_pointer; - //! Allocator::const_void_pointer if such a type exists ; otherwis e, pointer_traits::rebind::difference_type. - //! - typedef see_documentation difference_type; - //! Allocator::size_type if such a type exists ; otherwise, make_unsigned::type - //! - typedef see_documentation size_type; - //! Allocator::propagate_on_container_copy_assignment if such a type exists, otherwise a type - //! with an internal constant static boolean member value == false. - typedef see_documentation propagate_on_container_copy_assignment; - //! Allocator::propagate_on_container_move_assignment if such a type exists, otherwise a type - //! with an internal constant static boolean member value == false. - typedef see_documentation propagate_on_container_move_assignment; - //! Allocator::propagate_on_container_swap if such a type exists, otherwise a type - //! with an internal constant static boolean member value == false. - typedef see_documentation propagate_on_container_swap; - //! Allocator::is_always_equal if such a type exists, otherwise a type - //! with an internal constant static boolean member value == is_empty::value - typedef see_documentation is_always_equal; - //! Allocator::is_partially_propagable if such a type exists, otherwise a type - //! with an internal constant static boolean member value == false - //! Note: Non-standard extension used to implement `small_vector_allocator`. - typedef see_documentation is_partially_propagable; - //! Defines an allocator: Allocator::rebind::other if such a type exists; otherwise, Allocator - //! if Allocator is a class template instantiation of the form Allocator, where Args is zero or - //! more type arguments ; otherwise, the instantiation of rebind_alloc is ill-formed. - //! - //! In C++03 compilers rebind_alloc is a struct derived from an allocator - //! deduced by previously detailed rules. - template using rebind_alloc = see_documentation; - - //! In C++03 compilers rebind_traits is a struct derived from - //! allocator_traits, where OtherAlloc is - //! the allocator deduced by rules explained in rebind_alloc. - template using rebind_traits = allocator_traits >; - - //! Non-standard extension: Portable allocator rebind for C++03 and C++11 compilers. - //! type is an allocator related to Allocator deduced deduced by rules explained in rebind_alloc. - template - struct portable_rebind_alloc - { typedef see_documentation type; }; - #else - //pointer - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(network_boost::container::container_detail::, Allocator, - pointer, value_type*) - pointer; - //const_pointer - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(network_boost::container::container_detail::, Allocator, - const_pointer, typename network_boost::intrusive::pointer_traits::template - rebind_pointer) - const_pointer; - //reference - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(network_boost::container::container_detail::, Allocator, - reference, typename container_detail::unvoid_ref::type) - reference; - //const_reference - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(network_boost::container::container_detail::, Allocator, - const_reference, typename container_detail::unvoid_ref::type) - const_reference; - //void_pointer - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(network_boost::container::container_detail::, Allocator, - void_pointer, typename network_boost::intrusive::pointer_traits::template - rebind_pointer) - void_pointer; - //const_void_pointer - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(network_boost::container::container_detail::, Allocator, - const_void_pointer, typename network_boost::intrusive::pointer_traits::template - rebind_pointer) - const_void_pointer; - //difference_type - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(network_boost::container::container_detail::, Allocator, - difference_type, std::ptrdiff_t) - difference_type; - //size_type - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(network_boost::container::container_detail::, Allocator, - size_type, std::size_t) - size_type; - //propagate_on_container_copy_assignment - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(network_boost::container::container_detail::, Allocator, - propagate_on_container_copy_assignment, container_detail::false_type) - propagate_on_container_copy_assignment; - //propagate_on_container_move_assignment - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(network_boost::container::container_detail::, Allocator, - propagate_on_container_move_assignment, container_detail::false_type) - propagate_on_container_move_assignment; - //propagate_on_container_swap - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(network_boost::container::container_detail::, Allocator, - propagate_on_container_swap, container_detail::false_type) - propagate_on_container_swap; - //is_always_equal - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(network_boost::container::container_detail::, Allocator, - is_always_equal, container_detail::is_empty) - is_always_equal; - //is_partially_propagable - typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(network_boost::container::container_detail::, Allocator, - is_partially_propagable, container_detail::false_type) - is_partially_propagable; - - //rebind_alloc & rebind_traits - #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) - //C++11 - template using rebind_alloc = typename network_boost::intrusive::pointer_rebind::type; - template using rebind_traits = allocator_traits< rebind_alloc >; - #else // #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) - //Some workaround for C++03 or C++11 compilers with no template aliases - template - struct rebind_alloc : network_boost::intrusive::pointer_rebind::type - { - typedef typename network_boost::intrusive::pointer_rebind::type Base; - #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - template - rebind_alloc(BOOST_FWD_REF(Args)... args) : Base(network_boost::forward(args)...) {} - #else // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - #define BOOST_CONTAINER_ALLOCATOR_TRAITS_REBIND_ALLOC(N) \ - BOOST_MOVE_TMPL_LT##N BOOST_MOVE_CLASS##N BOOST_MOVE_GT##N\ - explicit rebind_alloc(BOOST_MOVE_UREF##N) : Base(BOOST_MOVE_FWD##N){}\ - // - BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_ALLOCATOR_TRAITS_REBIND_ALLOC) - #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_REBIND_ALLOC - #endif // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - }; - - template - struct rebind_traits - : allocator_traits::type> - {}; - #endif // #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) - - //portable_rebind_alloc - template - struct portable_rebind_alloc - { typedef typename network_boost::intrusive::pointer_rebind::type type; }; - #endif //BOOST_CONTAINER_DOXYGEN_INVOKED - - //! Returns: a.allocate(n) - //! - static pointer allocate(Allocator &a, size_type n) - { return a.allocate(n); } - - //! Returns: a.deallocate(p, n) - //! - //! Throws: Nothing - static void deallocate(Allocator &a, pointer p, size_type n) - { a.deallocate(p, n); } - - //! Effects: calls a.allocate(n, p) if that call is well-formed; - //! otherwise, invokes a.allocate(n) - static pointer allocate(Allocator &a, size_type n, const_void_pointer p) - { - const bool value = network_boost::container::container_detail:: - has_member_function_callable_with_allocate - ::value; - container_detail::bool_ flag; - return allocator_traits::priv_allocate(flag, a, n, p); - } - - //! Effects: calls a.destroy(p) if that call is well-formed; - //! otherwise, invokes p->~T(). - template - static void destroy(Allocator &a, T*p) BOOST_NOEXCEPT_OR_NOTHROW - { - typedef T* destroy_pointer; - const bool value = network_boost::container::container_detail:: - has_member_function_callable_with_destroy - ::value; - container_detail::bool_ flag; - allocator_traits::priv_destroy(flag, a, p); - } - - //! Returns: a.max_size() if that expression is well-formed; otherwise, - //! numeric_limits::max(). - static size_type max_size(const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW - { - const bool value = allocator_traits_detail::has_max_size::value; - container_detail::bool_ flag; - return allocator_traits::priv_max_size(flag, a); - } - - //! Returns: a.select_on_container_copy_construction() if that expression is well-formed; - //! otherwise, a. - static BOOST_CONTAINER_DOC1ST(Allocator, - typename container_detail::if_c - < allocator_traits_detail::has_select_on_container_copy_construction::value - BOOST_MOVE_I Allocator BOOST_MOVE_I const Allocator & >::type) - select_on_container_copy_construction(const Allocator &a) - { - const bool value = allocator_traits_detail::has_select_on_container_copy_construction - ::value; - container_detail::bool_ flag; - return allocator_traits::priv_select_on_container_copy_construction(flag, a); - } - - #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED) - //! Effects: calls a.construct(p, std::forward(args)...) if that call is well-formed; - //! otherwise, invokes ::new (static_cast(p)) T(std::forward(args)...) - template - static void construct(Allocator & a, T* p, BOOST_FWD_REF(Args)... args) - { - static const bool value = ::network_boost::move_detail::and_ - < container_detail::is_not_std_allocator - , network_boost::container::container_detail::has_member_function_callable_with_construct - < Allocator, T*, Args... > - >::value; - container_detail::bool_ flag; - allocator_traits::priv_construct(flag, a, p, ::network_boost::forward(args)...); - } - #endif - - //! Returns: a.storage_is_unpropagable(p) if is_partially_propagable::value is true; otherwise, - //! false. - static bool storage_is_unpropagable(const Allocator &a, pointer p) BOOST_NOEXCEPT_OR_NOTHROW - { - container_detail::bool_ flag; - return allocator_traits::priv_storage_is_unpropagable(flag, a, p); - } - - //! Returns: true if is_always_equal::value == true, otherwise, - //! a == b. - static bool equal(const Allocator &a, const Allocator &b) BOOST_NOEXCEPT_OR_NOTHROW - { - container_detail::bool_ flag; - return allocator_traits::priv_equal(flag, a, b); - } - - #if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED) - private: - static pointer priv_allocate(container_detail::true_type, Allocator &a, size_type n, const_void_pointer p) - { return a.allocate(n, p); } - - static pointer priv_allocate(container_detail::false_type, Allocator &a, size_type n, const_void_pointer) - { return a.allocate(n); } - - template - static void priv_destroy(container_detail::true_type, Allocator &a, T* p) BOOST_NOEXCEPT_OR_NOTHROW - { a.destroy(p); } - - template - static void priv_destroy(container_detail::false_type, Allocator &, T* p) BOOST_NOEXCEPT_OR_NOTHROW - { p->~T(); (void)p; } - - static size_type priv_max_size(container_detail::true_type, const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW - { return a.max_size(); } - - static size_type priv_max_size(container_detail::false_type, const Allocator &) BOOST_NOEXCEPT_OR_NOTHROW - { return size_type(-1)/sizeof(value_type); } - - static Allocator priv_select_on_container_copy_construction(container_detail::true_type, const Allocator &a) - { return a.select_on_container_copy_construction(); } - - static const Allocator &priv_select_on_container_copy_construction(container_detail::false_type, const Allocator &a) BOOST_NOEXCEPT_OR_NOTHROW - { return a; } - - #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - template - static void priv_construct(container_detail::true_type, Allocator &a, T *p, BOOST_FWD_REF(Args) ...args) - { a.construct( p, ::network_boost::forward(args)...); } - - template - static void priv_construct(container_detail::false_type, Allocator &, T *p, BOOST_FWD_REF(Args) ...args) - { ::new((void*)p, boost_container_new_t()) T(::network_boost::forward(args)...); } - #else // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - public: - - #define BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL(N) \ - template\ - static void construct(Allocator &a, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ - {\ - static const bool value = ::network_boost::move_detail::and_ \ - < container_detail::is_not_std_allocator \ - , network_boost::container::container_detail::has_member_function_callable_with_construct \ - < Allocator, T* BOOST_MOVE_I##N BOOST_MOVE_FWD_T##N > \ - >::value; \ - container_detail::bool_ flag;\ - (priv_construct)(flag, a, p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\ - }\ - // - BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL) - #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL - - private: - ///////////////////////////////// - // priv_construct - ///////////////////////////////// - #define BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL(N) \ - template\ - static void priv_construct(container_detail::true_type, Allocator &a, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ - { a.construct( p BOOST_MOVE_I##N BOOST_MOVE_FWD##N ); }\ - \ - template\ - static void priv_construct(container_detail::false_type, Allocator &, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\ - { ::new((void*)p, boost_container_new_t()) T(BOOST_MOVE_FWD##N); }\ - // - BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL) - #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL - - #endif // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - - template - static void priv_construct(container_detail::false_type, Allocator &, T *p, const ::network_boost::container::default_init_t&) - { ::new((void*)p, boost_container_new_t()) T; } - - static bool priv_storage_is_unpropagable(container_detail::true_type, const Allocator &a, pointer p) - { return a.storage_is_unpropagable(p); } - - static bool priv_storage_is_unpropagable(container_detail::false_type, const Allocator &, pointer) - { return false; } - - static bool priv_equal(container_detail::true_type, const Allocator &, const Allocator &) - { return true; } - - static bool priv_equal(container_detail::false_type, const Allocator &a, const Allocator &b) - { return a == b; } - - #endif //#if defined(BOOST_CONTAINER_DOXYGEN_INVOKED) -}; - -} //namespace container { -} //namespace network_boost { - -#include - -#endif // ! defined(BOOST_CONTAINER_ALLOCATOR_ALLOCATOR_TRAITS_HPP) diff --git a/src/boost/container/container_fwd.hpp b/src/boost/container/container_fwd.hpp deleted file mode 100644 index ceeba385..00000000 --- a/src/boost/container/container_fwd.hpp +++ /dev/null @@ -1,317 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2005-2014. Distributed under the Boost -// Software License, Version 1.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/container for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP -#define BOOST_CONTAINER_CONTAINER_FWD_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -//! \file -//! This header file forward declares the following containers: -//! - network_boost::container::vector -//! - network_boost::container::stable_vector -//! - network_boost::container::static_vector -//! - network_boost::container::small_vector -//! - network_boost::container::slist -//! - network_boost::container::list -//! - network_boost::container::set -//! - network_boost::container::multiset -//! - network_boost::container::map -//! - network_boost::container::multimap -//! - network_boost::container::flat_set -//! - network_boost::container::flat_multiset -//! - network_boost::container::flat_map -//! - network_boost::container::flat_multimap -//! - network_boost::container::basic_string -//! - network_boost::container::string -//! - network_boost::container::wstring -//! -//! Forward declares the following allocators: -//! - network_boost::container::allocator -//! - network_boost::container::node_allocator -//! - network_boost::container::adaptive_pool -//! -//! Forward declares the following polymorphic resource classes: -//! - network_boost::container::pmr::memory_resource -//! - network_boost::container::pmr::polymorphic_allocator -//! - network_boost::container::pmr::monotonic_buffer_resource -//! - network_boost::container::pmr::pool_options -//! - network_boost::container::pmr::unsynchronized_pool_resource -//! - network_boost::container::pmr::synchronized_pool_resource -//! -//! And finally it defines the following types - -#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED - -//Std forward declarations -#ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP - #include -#endif - -namespace network_boost{ -namespace intrusive{ -namespace detail{ - //Create namespace to avoid compilation errors -}}} - -namespace network_boost{ namespace container{ namespace container_detail{ - namespace bi = network_boost::intrusive; - namespace bid = network_boost::intrusive::detail; -}}} - -namespace network_boost{ namespace container{ namespace pmr{ - namespace bi = network_boost::intrusive; - namespace bid = network_boost::intrusive::detail; -}}} - -#include - -#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED - -////////////////////////////////////////////////////////////////////////////// -// Containers -////////////////////////////////////////////////////////////////////////////// - -namespace network_boost { -namespace container { - -//! Enumeration used to configure ordered associative containers -//! with a concrete tree implementation. -enum tree_type_enum -{ - red_black_tree, - avl_tree, - scapegoat_tree, - splay_tree -}; - -#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED - -template -class new_allocator; - -template > -class vector; - -template > -class stable_vector; - -template -class static_vector; - -template < class T, std::size_t N - , class Allocator= new_allocator > -class small_vector; - -template > -class deque; - -template > -class list; - -template > -class slist; - -template -struct tree_opt; - -typedef tree_opt tree_assoc_defaults; - -template - ,class Allocator = new_allocator - ,class Options = tree_assoc_defaults > -class set; - -template - ,class Allocator = new_allocator - ,class Options = tree_assoc_defaults > -class multiset; - -template - ,class Allocator = new_allocator > - ,class Options = tree_assoc_defaults > -class map; - -template - ,class Allocator = new_allocator > - ,class Options = tree_assoc_defaults > -class multimap; - -template - ,class Allocator = new_allocator > -class flat_set; - -template - ,class Allocator = new_allocator > -class flat_multiset; - -template - ,class Allocator = new_allocator > > -class flat_map; - -template - ,class Allocator = new_allocator > > -class flat_multimap; - -template - ,class Allocator = new_allocator > -class basic_string; - -typedef basic_string - - ,new_allocator > -string; - -typedef basic_string - - ,new_allocator > -wstring; - -static const std::size_t ADP_nodes_per_block = 256u; -static const std::size_t ADP_max_free_blocks = 2u; -static const std::size_t ADP_overhead_percent = 1u; -static const std::size_t ADP_only_alignment = 0u; - -template < class T - , std::size_t NodesPerBlock = ADP_nodes_per_block - , std::size_t MaxFreeBlocks = ADP_max_free_blocks - , std::size_t OverheadPercent = ADP_overhead_percent - , unsigned Version = 2 - > -class adaptive_pool; - -template < class T - , unsigned Version = 2 - , unsigned int AllocationDisableMask = 0> -class allocator; - -static const std::size_t NodeAlloc_nodes_per_block = 256u; - -template - < class T - , std::size_t NodesPerBlock = NodeAlloc_nodes_per_block - , std::size_t Version = 2> -class node_allocator; - -namespace pmr { - -class memory_resource; - -template -class polymorphic_allocator; - -class monotonic_buffer_resource; - -struct pool_options; - -template -class resource_adaptor_imp; - -class unsynchronized_pool_resource; - -class synchronized_pool_resource; - -} //namespace pmr { - -#else - -//! Default options for tree-based associative containers -//! - tree_type -//! - optimize_size -typedef implementation_defined tree_assoc_defaults; - -#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED - -//! Type used to tag that the input range is -//! guaranteed to be ordered -struct ordered_range_t -{}; - -//! Value used to tag that the input range is -//! guaranteed to be ordered -static const ordered_range_t ordered_range = ordered_range_t(); - -//! Type used to tag that the input range is -//! guaranteed to be ordered and unique -struct ordered_unique_range_t - : public ordered_range_t -{}; - -//! Value used to tag that the input range is -//! guaranteed to be ordered and unique -static const ordered_unique_range_t ordered_unique_range = ordered_unique_range_t(); - -//! Type used to tag that the inserted values -//! should be default initialized -struct default_init_t -{}; - -//! Value used to tag that the inserted values -//! should be default initialized -static const default_init_t default_init = default_init_t(); -#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED - -//! Type used to tag that the inserted values -//! should be value initialized -struct value_init_t -{}; - -//! Value used to tag that the inserted values -//! should be value initialized -static const value_init_t value_init = value_init_t(); - -namespace container_detail_really_deep_namespace { - -//Otherwise, gcc issues a warning of previously defined -//anonymous_instance and unique_instance -struct dummy -{ - dummy() - { - (void)ordered_range; - (void)ordered_unique_range; - (void)default_init; - } -}; - -} //detail_really_deep_namespace { - - -#endif //#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED - -}} //namespace network_boost { namespace container { - -#endif //#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP diff --git a/src/boost/container/detail/config_begin.hpp b/src/boost/container/detail/config_begin.hpp deleted file mode 100644 index 7e3e03fa..00000000 --- a/src/boost/container/detail/config_begin.hpp +++ /dev/null @@ -1,51 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2005-2013. Distributed under the Boost -// Software License, Version 1.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/container for documentation. -// -////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_CONTAINER_CONTAINER_DETAIL_CONFIG_INCLUDED -#define BOOST_CONTAINER_CONTAINER_DETAIL_CONFIG_INCLUDED -#ifndef BOOST_CONFIG_HPP -#include -#endif - -#endif //BOOST_CONTAINER_CONTAINER_DETAIL_CONFIG_INCLUDED - -#ifdef BOOST_MSVC - #pragma warning (push) - #pragma warning (disable : 4127) // conditional expression is constant - #pragma warning (disable : 4146) // unary minus operator applied to unsigned type, result still unsigned - #pragma warning (disable : 4197) // top-level volatile in cast is ignored - #pragma warning (disable : 4244) // possible loss of data - #pragma warning (disable : 4251) // "identifier" : class "type" needs to have dll-interface to be used by clients of class "type2" - #pragma warning (disable : 4267) // conversion from "X" to "Y", possible loss of data - #pragma warning (disable : 4275) // non DLL-interface classkey "identifier" used as base for DLL-interface classkey "identifier" - #pragma warning (disable : 4284) // odd return type for operator-> - #pragma warning (disable : 4290) // C++ exception specification ignored except to indicate a function is not __declspec(nothrow) - #pragma warning (disable : 4324) // structure was padded due to __declspec(align( - #pragma warning (disable : 4345) // behavior change: an object of POD type constructed with an initializer of the form () will be default-initialized - #pragma warning (disable : 4355) // "this" : used in base member initializer list - #pragma warning (disable : 4503) // "identifier" : decorated name length exceeded, name was truncated - #pragma warning (disable : 4510) // default constructor could not be generated - #pragma warning (disable : 4511) // copy constructor could not be generated - #pragma warning (disable : 4512) // assignment operator could not be generated - #pragma warning (disable : 4514) // unreferenced inline removed - #pragma warning (disable : 4521) // Disable "multiple copy constructors specified" - #pragma warning (disable : 4522) // "class" : multiple assignment operators specified - #pragma warning (disable : 4541) // 'typeid' used on polymorphic type '' with /GR-; unpredictable behavior may result - #pragma warning (disable : 4584) // X is already a base-class of Y - #pragma warning (disable : 4610) // struct can never be instantiated - user defined constructor required - #pragma warning (disable : 4671) // the copy constructor is inaccessible - #pragma warning (disable : 4673) // throwing '' the following types will not be considered at the catch site - #pragma warning (disable : 4675) // "method" should be declared "static" and have exactly one parameter - #pragma warning (disable : 4702) // unreachable code - #pragma warning (disable : 4706) // assignment within conditional expression - #pragma warning (disable : 4710) // function not inlined - #pragma warning (disable : 4711) // function selected for automatic inline expansion - #pragma warning (disable : 4786) // identifier truncated in debug info - #pragma warning (disable : 4996) // "function": was declared deprecated -#endif //BOOST_MSVC diff --git a/src/boost/container/detail/config_end.hpp b/src/boost/container/detail/config_end.hpp deleted file mode 100644 index f93c8f6f..00000000 --- a/src/boost/container/detail/config_end.hpp +++ /dev/null @@ -1,13 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2005-2013. Distributed under the Boost -// Software License, Version 1.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/container for documentation. -// -////////////////////////////////////////////////////////////////////////////// -#if defined BOOST_MSVC - #pragma warning (pop) -#endif - diff --git a/src/boost/container/detail/mpl.hpp b/src/boost/container/detail/mpl.hpp deleted file mode 100644 index 084d3d8e..00000000 --- a/src/boost/container/detail/mpl.hpp +++ /dev/null @@ -1,87 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2005-2013. -// -// Distributed under the Boost Software License, Version 1.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/container for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_CONTAINER_CONTAINER_DETAIL_MPL_HPP -#define BOOST_CONTAINER_CONTAINER_DETAIL_MPL_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include -#include -#include - -#include - -namespace network_boost { -namespace container { -namespace container_detail { - -using network_boost::move_detail::integral_constant; -using network_boost::move_detail::true_type; -using network_boost::move_detail::false_type; -using network_boost::move_detail::enable_if_c; -using network_boost::move_detail::enable_if; -using network_boost::move_detail::enable_if_convertible; -using network_boost::move_detail::disable_if_c; -using network_boost::move_detail::disable_if; -using network_boost::move_detail::disable_if_convertible; -using network_boost::move_detail::is_convertible; -using network_boost::move_detail::if_c; -using network_boost::move_detail::if_; -using network_boost::move_detail::identity; -using network_boost::move_detail::bool_; -using network_boost::move_detail::true_; -using network_boost::move_detail::false_; -using network_boost::move_detail::yes_type; -using network_boost::move_detail::no_type; -using network_boost::move_detail::bool_; -using network_boost::move_detail::true_; -using network_boost::move_detail::false_; -using network_boost::move_detail::unvoid_ref; -using network_boost::move_detail::and_; -using network_boost::move_detail::or_; -using network_boost::move_detail::not_; -using network_boost::move_detail::enable_if_and; -using network_boost::move_detail::disable_if_and; -using network_boost::move_detail::enable_if_or; -using network_boost::move_detail::disable_if_or; - - -template -struct select1st -{ - typedef Pair argument_type; - typedef typename Pair::first_type result_type; - - template - const typename Pair::first_type& operator()(const OtherPair& x) const - { return x.first; } - - const typename Pair::first_type& operator()(const typename Pair::first_type& x) const - { return x; } -}; - -} //namespace container_detail { -} //namespace container { -} //namespace network_boost { - -#include - -#endif //#ifndef BOOST_CONTAINER_CONTAINER_DETAIL_MPL_HPP - diff --git a/src/boost/container/detail/placement_new.hpp b/src/boost/container/detail/placement_new.hpp deleted file mode 100644 index c50981f6..00000000 --- a/src/boost/container/detail/placement_new.hpp +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef BOOST_CONTAINER_DETAIL_PLACEMENT_NEW_HPP -#define BOOST_CONTAINER_DETAIL_PLACEMENT_NEW_HPP -/////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2014-2015. Distributed under the Boost -// Software License, Version 1.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/container for documentation. -// -/////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -struct boost_container_new_t{}; - -//avoid including -inline void *operator new(std::size_t, void *p, boost_container_new_t) -{ return p; } - -inline void operator delete(void *, void *, boost_container_new_t) -{} - -#endif //BOOST_CONTAINER_DETAIL_PLACEMENT_NEW_HPP diff --git a/src/boost/container/detail/std_fwd.hpp b/src/boost/container/detail/std_fwd.hpp deleted file mode 100644 index 09678123..00000000 --- a/src/boost/container/detail/std_fwd.hpp +++ /dev/null @@ -1,56 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2014-2014. Distributed under the Boost -// Software License, Version 1.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/container for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP -#define BOOST_CONTAINER_DETAIL_STD_FWD_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -////////////////////////////////////////////////////////////////////////////// -// Standard predeclarations -////////////////////////////////////////////////////////////////////////////// - -#include -BOOST_MOVE_STD_NS_BEG - -template -class allocator; - -template -struct less; - -template -struct pair; - -template -struct char_traits; - -struct input_iterator_tag; -struct forward_iterator_tag; -struct bidirectional_iterator_tag; -struct random_access_iterator_tag; - -template -class insert_iterator; - -struct allocator_arg_t; - -struct piecewise_construct_t; - -BOOST_MOVE_STD_NS_END -#include - -#endif //#ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP diff --git a/src/boost/container/detail/type_traits.hpp b/src/boost/container/detail/type_traits.hpp deleted file mode 100644 index 67acabd7..00000000 --- a/src/boost/container/detail/type_traits.hpp +++ /dev/null @@ -1,70 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// (C) Copyright John Maddock 2000. -// (C) Copyright Ion Gaztanaga 2005-2015. -// -// Distributed under the Boost Software License, Version 1.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/container for documentation. -// -// The alignment and Type traits implementation comes from -// John Maddock's TypeTraits library. -// -// Some other tricks come from Howard Hinnant's papers and StackOverflow replies -////////////////////////////////////////////////////////////////////////////// -#ifndef BOOST_CONTAINER_CONTAINER_DETAIL_TYPE_TRAITS_HPP -#define BOOST_CONTAINER_CONTAINER_DETAIL_TYPE_TRAITS_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include - -namespace network_boost { -namespace container { -namespace container_detail { - -using ::network_boost::move_detail::enable_if; -using ::network_boost::move_detail::enable_if_and; -using ::network_boost::move_detail::is_same; -using ::network_boost::move_detail::is_different; -using ::network_boost::move_detail::is_pointer; -using ::network_boost::move_detail::add_reference; -using ::network_boost::move_detail::add_const; -using ::network_boost::move_detail::add_const_reference; -using ::network_boost::move_detail::remove_const; -using ::network_boost::move_detail::remove_reference; -using ::network_boost::move_detail::make_unsigned; -using ::network_boost::move_detail::is_floating_point; -using ::network_boost::move_detail::is_integral; -using ::network_boost::move_detail::is_enum; -using ::network_boost::move_detail::is_pod; -using ::network_boost::move_detail::is_empty; -using ::network_boost::move_detail::is_trivially_destructible; -using ::network_boost::move_detail::is_trivially_default_constructible; -using ::network_boost::move_detail::is_trivially_copy_constructible; -using ::network_boost::move_detail::is_trivially_move_constructible; -using ::network_boost::move_detail::is_trivially_copy_assignable; -using ::network_boost::move_detail::is_trivially_move_assignable; -using ::network_boost::move_detail::is_nothrow_default_constructible; -using ::network_boost::move_detail::is_nothrow_copy_constructible; -using ::network_boost::move_detail::is_nothrow_move_constructible; -using ::network_boost::move_detail::is_nothrow_copy_assignable; -using ::network_boost::move_detail::is_nothrow_move_assignable; -using ::network_boost::move_detail::is_nothrow_swappable; -using ::network_boost::move_detail::alignment_of; -using ::network_boost::move_detail::aligned_storage; -using ::network_boost::move_detail::nat; -using ::network_boost::move_detail::max_align_t; - -} //namespace container_detail { -} //namespace container { -} //namespace network_boost { - -#endif //#ifndef BOOST_CONTAINER_CONTAINER_DETAIL_TYPE_TRAITS_HPP diff --git a/src/boost/container/detail/workaround.hpp b/src/boost/container/detail/workaround.hpp deleted file mode 100644 index e1f61569..00000000 --- a/src/boost/container/detail/workaround.hpp +++ /dev/null @@ -1,79 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2005-2013. Distributed under the Boost -// Software License, Version 1.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/container for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_CONTAINER_DETAIL_WORKAROUND_HPP -#define BOOST_CONTAINER_DETAIL_WORKAROUND_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)\ - && !defined(BOOST_INTERPROCESS_DISABLE_VARIADIC_TMPL) - #define BOOST_CONTAINER_PERFECT_FORWARDING -#endif - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && defined(__GXX_EXPERIMENTAL_CXX0X__)\ - && (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40700) - #define BOOST_CONTAINER_UNIMPLEMENTED_PACK_EXPANSION_TO_FIXED_LIST -#endif - -#if !defined(BOOST_FALLTHOUGH) - #define BOOST_CONTAINER_FALLTHOUGH -#else - #define BOOST_CONTAINER_FALLTHOUGH BOOST_FALLTHOUGH; -#endif - -//Macros for documentation purposes. For code, expands to the argument -#define BOOST_CONTAINER_IMPDEF(TYPE) TYPE -#define BOOST_CONTAINER_SEEDOC(TYPE) TYPE - -//Macros for memset optimization. In most platforms -//memsetting pointers and floatings is safe and faster. -// -//If your platform does not offer these guarantees -//define these to value zero. -#ifndef BOOST_CONTAINER_MEMZEROED_FLOATING_POINT_IS_NOT_ZERO -#define BOOST_CONTAINER_MEMZEROED_FLOATING_POINT_IS_ZERO 1 -#endif - -#ifndef BOOST_CONTAINER_MEMZEROED_POINTER_IS_NOT_NULL -#define BOOST_CONTAINER_MEMZEROED_POINTER_IS_NULL -#endif - -#define BOOST_CONTAINER_DOC1ST(TYPE1, TYPE2) TYPE2 -#define BOOST_CONTAINER_I , -#define BOOST_CONTAINER_DOCIGN(T) T -#define BOOST_CONTAINER_DOCONLY(T) - -/* - 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_CONTAINER_DYN_LINK - if they want just this one to be dynamically liked: -*/ -#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_CONTAINER_DYN_LINK) - - /* export if this is our own source, otherwise import: */ - #ifdef BOOST_CONTAINER_SOURCE - # define BOOST_CONTAINER_DECL BOOST_SYMBOL_EXPORT - #else - # define BOOST_CONTAINER_DECL BOOST_SYMBOL_IMPORT - - #endif /* BOOST_CONTAINER_SOURCE */ -#else - #define BOOST_CONTAINER_DECL -#endif /* DYN_LINK */ - -#endif //#ifndef BOOST_CONTAINER_DETAIL_WORKAROUND_HPP diff --git a/src/boost/core/addressof.hpp b/src/boost/core/addressof.hpp deleted file mode 100644 index 3ad0b64b..00000000 --- a/src/boost/core/addressof.hpp +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright (C) 2002 Brad King (brad.king@kitware.com) -// Douglas Gregor (gregod@cs.rpi.edu) -// -// Copyright (C) 2002, 2008, 2013 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) - -// For more information, see http://www.boost.org - -#ifndef BOOST_CORE_ADDRESSOF_HPP -#define BOOST_CORE_ADDRESSOF_HPP - -# include -# include -# include - -namespace network_boost -{ - -namespace detail -{ - -template struct addr_impl_ref -{ - T & v_; - - BOOST_FORCEINLINE addr_impl_ref( T & v ): v_( v ) {} - BOOST_FORCEINLINE operator T& () const { return v_; } - -private: - addr_impl_ref & operator=(const addr_impl_ref &); -}; - -template struct addressof_impl -{ - static BOOST_FORCEINLINE T * f( T & v, long ) - { - return reinterpret_cast( - &const_cast(reinterpret_cast(v))); - } - - static BOOST_FORCEINLINE T * f( T * v, int ) - { - return v; - } -}; - -#if !defined( BOOST_NO_CXX11_NULLPTR ) - -#if !defined( BOOST_NO_CXX11_DECLTYPE ) && ( ( defined( __clang__ ) && !defined( _LIBCPP_VERSION ) ) || defined( __INTEL_COMPILER ) ) - - typedef decltype(nullptr) addr_nullptr_t; - -#else - - typedef std::nullptr_t addr_nullptr_t; - -#endif - -template<> struct addressof_impl< addr_nullptr_t > -{ - typedef addr_nullptr_t T; - - static BOOST_FORCEINLINE T * f( T & v, int ) - { - return &v; - } -}; - -template<> struct addressof_impl< addr_nullptr_t const > -{ - typedef addr_nullptr_t const T; - - static BOOST_FORCEINLINE T * f( T & v, int ) - { - return &v; - } -}; - -template<> struct addressof_impl< addr_nullptr_t volatile > -{ - typedef addr_nullptr_t volatile T; - - static BOOST_FORCEINLINE T * f( T & v, int ) - { - return &v; - } -}; - -template<> struct addressof_impl< addr_nullptr_t const volatile > -{ - typedef addr_nullptr_t const volatile T; - - static BOOST_FORCEINLINE T * f( T & v, int ) - { - return &v; - } -}; - -#endif - -} // namespace detail - -template -BOOST_FORCEINLINE -T * addressof( T & v ) -{ -#if (defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x610 ) ) ) || (defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x5120)) - - return network_boost::detail::addressof_impl::f( v, 0 ); - -#else - - return network_boost::detail::addressof_impl::f( network_boost::detail::addr_impl_ref( v ), 0 ); - -#endif -} - -#if defined( __SUNPRO_CC ) && BOOST_WORKAROUND( __SUNPRO_CC, BOOST_TESTED_AT( 0x590 ) ) - -namespace detail -{ - -template struct addressof_addp -{ - typedef T * type; -}; - -} // namespace detail - -template< class T, std::size_t N > -BOOST_FORCEINLINE -typename detail::addressof_addp< T[N] >::type addressof( T (&t)[N] ) -{ - return &t; -} - -#endif - -// Borland doesn't like casting an array reference to a char reference -// but these overloads work around the problem. -#if defined( __BORLANDC__ ) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -template -BOOST_FORCEINLINE -T (*addressof(T (&t)[N]))[N] -{ - return reinterpret_cast(&t); -} - -template -BOOST_FORCEINLINE -const T (*addressof(const T (&t)[N]))[N] -{ - return reinterpret_cast(&t); -} -#endif - -} // namespace network_boost - -#endif // BOOST_CORE_ADDRESSOF_HPP diff --git a/src/boost/core/checked_delete.hpp b/src/boost/core/checked_delete.hpp deleted file mode 100644 index 5201613c..00000000 --- a/src/boost/core/checked_delete.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef BOOST_CORE_CHECKED_DELETE_HPP -#define BOOST_CORE_CHECKED_DELETE_HPP - -// 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/core/doc/html/core/checked_delete.html for documentation. -// - -namespace network_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 - { - // network_boost:: disables ADL - network_boost::checked_delete(x); - } -}; - -template struct checked_array_deleter -{ - typedef void result_type; - typedef T * argument_type; - - void operator()(T * x) const - { - network_boost::checked_array_delete(x); - } -}; - -} // namespace network_boost - -#endif // #ifndef BOOST_CORE_CHECKED_DELETE_HPP diff --git a/src/boost/core/demangle.hpp b/src/boost/core/demangle.hpp deleted file mode 100644 index b47b923b..00000000 --- a/src/boost/core/demangle.hpp +++ /dev/null @@ -1,128 +0,0 @@ -#ifndef BOOST_CORE_DEMANGLE_HPP_INCLUDED -#define BOOST_CORE_DEMANGLE_HPP_INCLUDED - -// core::demangle -// -// Copyright 2014 Peter Dimov -// Copyright 2014 Andrey Semashev -// -// Distributed under the 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 -#include - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#if defined( __clang__ ) && defined( __has_include ) -# if __has_include() -# define BOOST_CORE_HAS_CXXABI_H -# endif -#elif defined( __GLIBCXX__ ) || defined( __GLIBCPP__ ) -# define BOOST_CORE_HAS_CXXABI_H -#endif - -#if defined( BOOST_CORE_HAS_CXXABI_H ) -# include -// For some archtectures (mips, mips64, x86, x86_64) cxxabi.h in Android NDK is implemented by gabi++ library -// (https://android.googlesource.com/platform/ndk/+/master/sources/cxx-stl/gabi++/), which does not implement -// abi::__cxa_demangle(). We detect this implementation by checking the include guard here. -# if defined( __GABIXX_CXXABI_H__ ) -# undef BOOST_CORE_HAS_CXXABI_H -# else -# include -# include -# endif -#endif - -namespace network_boost -{ - -namespace core -{ - -inline char const * demangle_alloc( char const * name ) BOOST_NOEXCEPT; -inline void demangle_free( char const * name ) BOOST_NOEXCEPT; - -class scoped_demangled_name -{ -private: - char const * m_p; - -public: - explicit scoped_demangled_name( char const * name ) BOOST_NOEXCEPT : - m_p( demangle_alloc( name ) ) - { - } - - ~scoped_demangled_name() BOOST_NOEXCEPT - { - demangle_free( m_p ); - } - - char const * get() const BOOST_NOEXCEPT - { - return m_p; - } - - BOOST_DELETED_FUNCTION(scoped_demangled_name( scoped_demangled_name const& )) - BOOST_DELETED_FUNCTION(scoped_demangled_name& operator= ( scoped_demangled_name const& )) -}; - - -#if defined( BOOST_CORE_HAS_CXXABI_H ) - -inline char const * demangle_alloc( char const * name ) BOOST_NOEXCEPT -{ - int status = 0; - std::size_t size = 0; - return abi::__cxa_demangle( name, NULL, &size, &status ); -} - -inline void demangle_free( char const * name ) BOOST_NOEXCEPT -{ - std::free( const_cast< char* >( name ) ); -} - -inline std::string demangle( char const * name ) -{ - scoped_demangled_name demangled_name( name ); - char const * const p = demangled_name.get(); - if( p ) - { - return p; - } - else - { - return name; - } -} - -#else - -inline char const * demangle_alloc( char const * name ) BOOST_NOEXCEPT -{ - return name; -} - -inline void demangle_free( char const * ) BOOST_NOEXCEPT -{ -} - -inline std::string demangle( char const * name ) -{ - return name; -} - -#endif - -} // namespace core - -} // namespace network_boost - -#undef BOOST_CORE_HAS_CXXABI_H - -#endif // #ifndef BOOST_CORE_DEMANGLE_HPP_INCLUDED diff --git a/src/boost/core/enable_if.hpp b/src/boost/core/enable_if.hpp deleted file mode 100644 index d6bce06e..00000000 --- a/src/boost/core/enable_if.hpp +++ /dev/null @@ -1,128 +0,0 @@ -// Boost enable_if library - -// Copyright 2003 (c) The Trustees of Indiana University. - -// Use, modification, and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu) -// Jeremiah Willcock (jewillco at osl.iu.edu) -// Andrew Lumsdaine (lums at osl.iu.edu) - - -#ifndef BOOST_CORE_ENABLE_IF_HPP -#define BOOST_CORE_ENABLE_IF_HPP - -#include "boost/config.hpp" - -// Even the definition of enable_if causes problems on some compilers, -// so it's macroed out for all compilers that do not support SFINAE - -#ifndef BOOST_NO_SFINAE - -namespace network_boost -{ - template - struct enable_if_has_type - { - typedef R type; - }; - - template - struct enable_if_c { - typedef T type; - }; - - template - struct enable_if_c {}; - - template - struct enable_if : public enable_if_c {}; - - template - struct lazy_enable_if_c { - typedef typename T::type type; - }; - - template - struct lazy_enable_if_c {}; - - template - struct lazy_enable_if : public lazy_enable_if_c {}; - - - template - struct disable_if_c { - typedef T type; - }; - - template - struct disable_if_c {}; - - template - struct disable_if : public disable_if_c {}; - - template - struct lazy_disable_if_c { - typedef typename T::type type; - }; - - template - struct lazy_disable_if_c {}; - - template - struct lazy_disable_if : public lazy_disable_if_c {}; - -} // namespace network_boost - -#else - -namespace network_boost { - - namespace detail { typedef void enable_if_default_T; } - - template - struct enable_if_does_not_work_on_this_compiler; - - template - struct enable_if_has_type : enable_if_does_not_work_on_this_compiler - { }; - - template - struct enable_if_c : enable_if_does_not_work_on_this_compiler - { }; - - template - struct disable_if_c : enable_if_does_not_work_on_this_compiler - { }; - - template - struct lazy_enable_if_c : enable_if_does_not_work_on_this_compiler - { }; - - template - struct lazy_disable_if_c : enable_if_does_not_work_on_this_compiler - { }; - - template - struct enable_if : enable_if_does_not_work_on_this_compiler - { }; - - template - struct disable_if : enable_if_does_not_work_on_this_compiler - { }; - - template - struct lazy_enable_if : enable_if_does_not_work_on_this_compiler - { }; - - template - struct lazy_disable_if : enable_if_does_not_work_on_this_compiler - { }; - -} // namespace network_boost - -#endif // BOOST_NO_SFINAE - -#endif diff --git a/src/boost/core/explicit_operator_bool.hpp b/src/boost/core/explicit_operator_bool.hpp deleted file mode 100644 index f6fdcfa6..00000000 --- a/src/boost/core/explicit_operator_bool.hpp +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright Andrey Semashev 2007 - 2013. - * Distributed under the Boost Software License, Version 1.0. - * (See accompanying file LICENSE_1_0.txt or copy at - * http://www.boost.org/LICENSE_1_0.txt) - */ - -/*! - * \file explicit_operator_bool.hpp - * \author Andrey Semashev - * \date 08.03.2009 - * - * This header defines a compatibility macro that implements an unspecified - * \c bool operator idiom, which is superseded with explicit conversion operators in - * C++11. - */ - -#ifndef BOOST_CORE_EXPLICIT_OPERATOR_BOOL_HPP -#define BOOST_CORE_EXPLICIT_OPERATOR_BOOL_HPP - -#include - -#ifdef BOOST_HAS_PRAGMA_ONCE -#pragma once -#endif - -#if !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) - -/*! - * \brief The macro defines an explicit operator of conversion to \c bool - * - * The macro should be used inside the definition of a class that has to - * support the conversion. The class should also implement operator!, - * in terms of which the conversion operator will be implemented. - */ -#define BOOST_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE explicit operator bool () const\ - {\ - return !this->operator! ();\ - } - -/*! - * \brief The macro defines a noexcept explicit operator of conversion to \c bool - * - * The macro should be used inside the definition of a class that has to - * support the conversion. The class should also implement operator!, - * in terms of which the conversion operator will be implemented. - */ -#define BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()\ - BOOST_FORCEINLINE explicit operator bool () const BOOST_NOEXCEPT\ - {\ - return !this->operator! ();\ - } - -/*! - * \brief The macro defines a constexpr explicit operator of conversion to \c bool - * - * The macro should be used inside the definition of a class that has to - * support the conversion. The class should also implement operator!, - * in terms of which the conversion operator will be implemented. - */ -#define BOOST_CONSTEXPR_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE BOOST_CONSTEXPR explicit operator bool () const BOOST_NOEXCEPT\ - {\ - return !this->operator! ();\ - } - -#else // !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) - -#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 -#define BOOST_NO_UNSPECIFIED_BOOL -#endif // (defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x530)) && !defined(BOOST_NO_COMPILER_CONFIG) - -#if !defined(BOOST_NO_UNSPECIFIED_BOOL) - -namespace network_boost { - -namespace detail { - -#if !defined(_MSC_VER) && !defined(__IBMCPP__) - - struct unspecified_bool - { - // NOTE TO THE USER: If you see this in error messages then you tried - // to apply an unsupported operator on the object that supports - // explicit conversion to bool. - struct OPERATORS_NOT_ALLOWED; - static void true_value(OPERATORS_NOT_ALLOWED*) {} - }; - typedef void (*unspecified_bool_type)(unspecified_bool::OPERATORS_NOT_ALLOWED*); - -#else - - // MSVC and VACPP are too eager to convert pointer to function to void* even though they shouldn't - struct unspecified_bool - { - // NOTE TO THE USER: If you see this in error messages then you tried - // to apply an unsupported operator on the object that supports - // explicit conversion to bool. - struct OPERATORS_NOT_ALLOWED; - void true_value(OPERATORS_NOT_ALLOWED*) {} - }; - typedef void (unspecified_bool::*unspecified_bool_type)(unspecified_bool::OPERATORS_NOT_ALLOWED*); - -#endif - -} // namespace detail - -} // namespace network_boost - -#define BOOST_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE operator network_boost::detail::unspecified_bool_type () const\ - {\ - return (!this->operator! () ? &network_boost::detail::unspecified_bool::true_value : (network_boost::detail::unspecified_bool_type)0);\ - } - -#define BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()\ - BOOST_FORCEINLINE operator network_boost::detail::unspecified_bool_type () const BOOST_NOEXCEPT\ - {\ - return (!this->operator! () ? &network_boost::detail::unspecified_bool::true_value : (network_boost::detail::unspecified_bool_type)0);\ - } - -#define BOOST_CONSTEXPR_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE BOOST_CONSTEXPR operator network_boost::detail::unspecified_bool_type () const BOOST_NOEXCEPT\ - {\ - return (!this->operator! () ? &network_boost::detail::unspecified_bool::true_value : (network_boost::detail::unspecified_bool_type)0);\ - } - -#else // !defined(BOOST_NO_UNSPECIFIED_BOOL) - -#define BOOST_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE operator bool () const\ - {\ - return !this->operator! ();\ - } - -#define BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT()\ - BOOST_FORCEINLINE operator bool () const BOOST_NOEXCEPT\ - {\ - return !this->operator! ();\ - } - -#define BOOST_CONSTEXPR_EXPLICIT_OPERATOR_BOOL()\ - BOOST_FORCEINLINE BOOST_CONSTEXPR operator bool () const BOOST_NOEXCEPT\ - {\ - return !this->operator! ();\ - } - -#endif // !defined(BOOST_NO_UNSPECIFIED_BOOL) - -#endif // !defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) - -#endif // BOOST_CORE_EXPLICIT_OPERATOR_BOOL_HPP diff --git a/src/boost/core/ignore_unused.hpp b/src/boost/core/ignore_unused.hpp deleted file mode 100644 index ccb7c068..00000000 --- a/src/boost/core/ignore_unused.hpp +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (c) 2014 Adam Wulkiewicz, Lodz, Poland. -// -// Use, modification and distribution is subject to the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -#ifndef BOOST_CORE_IGNORE_UNUSED_HPP -#define BOOST_CORE_IGNORE_UNUSED_HPP - -#include - -namespace network_boost { - -#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(Ts const& ...) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -#else - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&, T3 const&) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&, T3 const&, T4 const&) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused(T1 const&, T2 const&, T3 const&, T4 const&, T5 const&) -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -template -BOOST_FORCEINLINE BOOST_CXX14_CONSTEXPR void ignore_unused() -{} - -#endif - -} // namespace network_boost - -#endif // BOOST_CORE_IGNORE_UNUSED_HPP diff --git a/src/boost/core/is_same.hpp b/src/boost/core/is_same.hpp deleted file mode 100644 index f928a486..00000000 --- a/src/boost/core/is_same.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef BOOST_CORE_IS_SAME_HPP_INCLUDED -#define BOOST_CORE_IS_SAME_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// is_same::value is true when T1 == T2 -// -// Copyright 2014 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 - -namespace network_boost -{ - -namespace core -{ - -template< class T1, class T2 > struct is_same -{ - BOOST_STATIC_CONSTANT( bool, value = false ); -}; - -template< class T > struct is_same< T, T > -{ - BOOST_STATIC_CONSTANT( bool, value = true ); -}; - -} // namespace core - -} // namespace network_boost - -#endif // #ifndef BOOST_CORE_IS_SAME_HPP_INCLUDED diff --git a/src/boost/core/no_exceptions_support.hpp b/src/boost/core/no_exceptions_support.hpp deleted file mode 100644 index a697f01a..00000000 --- a/src/boost/core/no_exceptions_support.hpp +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef BOOST_CORE_NO_EXCEPTIONS_SUPPORT_HPP -#define BOOST_CORE_NO_EXCEPTIONS_SUPPORT_HPP - -#if defined(_MSC_VER) -# pragma once -#endif - -//---------------------------------------------------------------------- -// (C) Copyright 2004 Pavel Vozenilek. -// 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 contains helper macros used when exception support may be -// disabled (as indicated by macro BOOST_NO_EXCEPTIONS). -// -// Before picking up these macros you may consider using RAII techniques -// to deal with exceptions - their syntax can be always the same with -// or without exception support enabled. -//---------------------------------------------------------------------- - -#include -#include - -#if !(defined BOOST_NO_EXCEPTIONS) -# define BOOST_TRY { try -# define BOOST_CATCH(x) catch(x) -# define BOOST_RETHROW throw; -# define BOOST_CATCH_END } -#else -# if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) -# define BOOST_TRY { if ("") -# define BOOST_CATCH(x) else if (!"") -# else -# define BOOST_TRY { if (true) -# define BOOST_CATCH(x) else if (false) -# endif -# define BOOST_RETHROW -# define BOOST_CATCH_END } -#endif - - -#endif diff --git a/src/boost/core/noncopyable.hpp b/src/boost/core/noncopyable.hpp deleted file mode 100644 index 08d16ac4..00000000 --- a/src/boost/core/noncopyable.hpp +++ /dev/null @@ -1,48 +0,0 @@ -// Boost noncopyable.hpp header file --------------------------------------// - -// (C) Copyright Beman Dawes 1999-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/utility for documentation. - -#ifndef BOOST_CORE_NONCOPYABLE_HPP -#define BOOST_CORE_NONCOPYABLE_HPP - -#include - -namespace network_boost { - -// Private copy constructor and copy assignment ensure classes derived from -// class noncopyable cannot be copied. - -// Contributed by Dave Abrahams - -namespace noncopyable_ // protection from unintended ADL -{ - class noncopyable - { - protected: -#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS) - BOOST_CONSTEXPR noncopyable() = default; - ~noncopyable() = default; -#else - noncopyable() {} - ~noncopyable() {} -#endif -#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) - noncopyable( const noncopyable& ) = delete; - noncopyable& operator=( const noncopyable& ) = delete; -#else - private: // emphasize the following members are private - noncopyable( const noncopyable& ); - noncopyable& operator=( const noncopyable& ); -#endif - }; -} - -typedef noncopyable_::noncopyable noncopyable; - -} // namespace network_boost - -#endif // BOOST_CORE_NONCOPYABLE_HPP diff --git a/src/boost/core/ref.hpp b/src/boost/core/ref.hpp deleted file mode 100644 index 8641d1bd..00000000 --- a/src/boost/core/ref.hpp +++ /dev/null @@ -1,301 +0,0 @@ -#ifndef BOOST_CORE_REF_HPP -#define BOOST_CORE_REF_HPP - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -#include -#include -#include - -// -// ref.hpp - ref/cref, useful helper functions -// -// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) -// Copyright (C) 2001, 2002 Peter Dimov -// Copyright (C) 2002 David Abrahams -// -// Copyright (C) 2014 Glen Joseph Fernandes -// glenfe at live dot com -// Copyright (C) 2014 Agustin Berge -// -// Distributed under the Boost Software License, Version 1.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/core/doc/html/core/ref.html for documentation. -// - -/** - @file -*/ - -/** - Boost namespace. -*/ -namespace network_boost -{ - -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1600 ) - - struct ref_workaround_tag {}; - -#endif - -// reference_wrapper - -/** - @brief Contains a reference to an object of type `T`. - - `reference_wrapper` is primarily used to "feed" references to - function templates (algorithms) that take their parameter by - value. It provides an implicit conversion to `T&`, which - usually allows the function templates to work on references - unmodified. -*/ -template class reference_wrapper -{ -public: - /** - Type `T`. - */ - typedef T type; - - /** - Constructs a `reference_wrapper` object that stores a - reference to `t`. - - @remark Does not throw. - */ - BOOST_FORCEINLINE explicit reference_wrapper(T& t): t_(network_boost::addressof(t)) {} - -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1600 ) - - BOOST_FORCEINLINE explicit reference_wrapper( T & t, ref_workaround_tag ): t_( network_boost::addressof( t ) ) {} - -#endif - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - /** - @remark Construction from a temporary object is disabled. - */ - BOOST_DELETED_FUNCTION(reference_wrapper(T&& t)) -public: -#endif - - /** - @return The stored reference. - @remark Does not throw. - */ - BOOST_FORCEINLINE operator T& () const { return *t_; } - - /** - @return The stored reference. - @remark Does not throw. - */ - BOOST_FORCEINLINE T& get() const { return *t_; } - - /** - @return A pointer to the object referenced by the stored - reference. - @remark Does not throw. - */ - BOOST_FORCEINLINE T* get_pointer() const { return t_; } - -private: - - T* t_; -}; - -// ref - -/** - @cond -*/ -#if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) ) -# define BOOST_REF_CONST -#else -# define BOOST_REF_CONST const -#endif -/** - @endcond -*/ - -/** - @return `reference_wrapper(t)` - @remark Does not throw. -*/ -template BOOST_FORCEINLINE reference_wrapper BOOST_REF_CONST ref( T & t ) -{ -#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1600 ) - - return reference_wrapper( t, ref_workaround_tag() ); - -#else - - return reference_wrapper( t ); - -#endif -} - -// cref - -/** - @return `reference_wrapper(t)` - @remark Does not throw. -*/ -template BOOST_FORCEINLINE reference_wrapper BOOST_REF_CONST cref( T const & t ) -{ - return reference_wrapper(t); -} - -#undef BOOST_REF_CONST - -#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) - -/** - @cond -*/ -#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) -# define BOOST_REF_DELETE -#else -# define BOOST_REF_DELETE = delete -#endif -/** - @endcond -*/ - -/** - @remark Construction from a temporary object is disabled. -*/ -template void ref(T const&&) BOOST_REF_DELETE; - -/** - @remark Construction from a temporary object is disabled. -*/ -template void cref(T const&&) BOOST_REF_DELETE; - -#undef BOOST_REF_DELETE - -#endif - -// is_reference_wrapper - -/** - @brief Determine if a type `T` is an instantiation of - `reference_wrapper`. - - The value static constant will be true if the type `T` is a - specialization of `reference_wrapper`. -*/ -template struct is_reference_wrapper -{ - BOOST_STATIC_CONSTANT( bool, value = false ); -}; - -/** - @cond -*/ -template struct is_reference_wrapper< reference_wrapper > -{ - BOOST_STATIC_CONSTANT( bool, value = true ); -}; - -#if !defined(BOOST_NO_CV_SPECIALIZATIONS) - -template struct is_reference_wrapper< reference_wrapper const > -{ - BOOST_STATIC_CONSTANT( bool, value = true ); -}; - -template struct is_reference_wrapper< reference_wrapper volatile > -{ - BOOST_STATIC_CONSTANT( bool, value = true ); -}; - -template struct is_reference_wrapper< reference_wrapper const volatile > -{ - BOOST_STATIC_CONSTANT( bool, value = true ); -}; - -#endif // !defined(BOOST_NO_CV_SPECIALIZATIONS) - -/** - @endcond -*/ - - -// unwrap_reference - -/** - @brief Find the type in a `reference_wrapper`. - - The `typedef` type is `T::type` if `T` is a - `reference_wrapper`, `T` otherwise. -*/ -template struct unwrap_reference -{ - typedef T type; -}; - -/** - @cond -*/ -template struct unwrap_reference< reference_wrapper > -{ - typedef T type; -}; - -#if !defined(BOOST_NO_CV_SPECIALIZATIONS) - -template struct unwrap_reference< reference_wrapper const > -{ - typedef T type; -}; - -template struct unwrap_reference< reference_wrapper volatile > -{ - typedef T type; -}; - -template struct unwrap_reference< reference_wrapper const volatile > -{ - typedef T type; -}; - -#endif // !defined(BOOST_NO_CV_SPECIALIZATIONS) - -/** - @endcond -*/ - -// unwrap_ref - -/** - @return `unwrap_reference::type&(t)` - @remark Does not throw. -*/ -template BOOST_FORCEINLINE typename unwrap_reference::type& unwrap_ref( T & t ) -{ - return t; -} - -// get_pointer - -/** - @cond -*/ -template BOOST_FORCEINLINE T* get_pointer( reference_wrapper const & r ) -{ - return r.get_pointer(); -} -/** - @endcond -*/ - -} // namespace network_boost - -#endif // #ifndef BOOST_CORE_REF_HPP diff --git a/src/boost/core/swap.hpp b/src/boost/core/swap.hpp deleted file mode 100644 index f612b566..00000000 --- a/src/boost/core/swap.hpp +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (C) 2007, 2008 Steven Watanabe, Joseph Gauterin, Niels Dekker -// -// Distributed under the 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_CORE_SWAP_HPP -#define BOOST_CORE_SWAP_HPP - -// Note: the implementation of this utility contains various workarounds: -// - swap_impl is put outside the boost namespace, to avoid infinite -// recursion (causing stack overflow) when swapping objects of a primitive -// type. -// - swap_impl has a using-directive, rather than a using-declaration, -// because some compilers (including MSVC 7.1, Borland 5.9.3, and -// Intel 8.1) don't do argument-dependent lookup when it has a -// using-declaration instead. -// - network_boost::swap has two template arguments, instead of one, to -// avoid ambiguity when swapping objects of a Boost type that does -// not have its own network_boost::swap overload. - -#include //for std::swap (C++11) -#include //for std::swap (C++98) -#include //for std::size_t -#include - -namespace network_boost_swap_impl -{ - template - BOOST_GPU_ENABLED - void swap_impl(T& left, T& right) - { - using namespace std;//use std::swap if argument dependent lookup fails - swap(left,right); - } - - template - BOOST_GPU_ENABLED - void swap_impl(T (& left)[N], T (& right)[N]) - { - for (std::size_t i = 0; i < N; ++i) - { - ::network_boost_swap_impl::swap_impl(left[i], right[i]); - } - } -} - -namespace network_boost -{ - template - BOOST_GPU_ENABLED - void swap(T1& left, T2& right) - { - ::network_boost_swap_impl::swap_impl(left, right); - } -} - -#endif diff --git a/src/boost/core/typeinfo.hpp b/src/boost/core/typeinfo.hpp deleted file mode 100644 index f5b5c8b2..00000000 --- a/src/boost/core/typeinfo.hpp +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef BOOST_CORE_TYPEINFO_HPP_INCLUDED -#define BOOST_CORE_TYPEINFO_HPP_INCLUDED - -// MS compatible compilers support #pragma once - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -// core::typeinfo, BOOST_CORE_TYPEID -// -// Copyright 2007, 2014 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 ) - -#include -#include - -namespace network_boost -{ - -namespace core -{ - -class typeinfo -{ -private: - - typeinfo( typeinfo const& ); - typeinfo& operator=( typeinfo const& ); - - char const * name_; - -public: - - explicit typeinfo( char const * name ): name_( name ) - { - } - - bool operator==( typeinfo const& rhs ) const - { - return this == &rhs; - } - - bool operator!=( typeinfo const& rhs ) const - { - return this != &rhs; - } - - bool before( typeinfo const& rhs ) const - { - return std::less< typeinfo const* >()( this, &rhs ); - } - - char const* name() const - { - return name_; - } -}; - -inline char const * demangled_name( core::typeinfo const & ti ) -{ - return ti.name(); -} - -} // namespace core - -namespace detail -{ - -template struct core_typeid_ -{ - static network_boost::core::typeinfo ti_; - - static char const * name() - { - return BOOST_CURRENT_FUNCTION; - } -}; - -#if defined(__SUNPRO_CC) -// see #4199, the Sun Studio compiler gets confused about static initialization -// constructor arguments. But an assignment works just fine. -template network_boost::core::typeinfo core_typeid_< T >::ti_ = core_typeid_< T >::name(); -#else -template network_boost::core::typeinfo core_typeid_< T >::ti_(core_typeid_< T >::name()); -#endif - -template struct core_typeid_< T & >: core_typeid_< T > -{ -}; - -template struct core_typeid_< T const >: core_typeid_< T > -{ -}; - -template struct core_typeid_< T volatile >: core_typeid_< T > -{ -}; - -template struct core_typeid_< T const volatile >: core_typeid_< T > -{ -}; - -} // namespace detail - -} // namespace network_boost - -#define BOOST_CORE_TYPEID(T) (network_boost::detail::core_typeid_::ti_) - -#else - -#include -#include - -namespace network_boost -{ - -namespace core -{ - -#if defined( BOOST_NO_STD_TYPEINFO ) - -typedef ::type_info typeinfo; - -#else - -typedef std::type_info typeinfo; - -#endif - -inline std::string demangled_name( core::typeinfo const & ti ) -{ - return core::demangle( ti.name() ); -} - -} // namespace core - -} // namespace network_boost - -#define BOOST_CORE_TYPEID(T) typeid(T) - -#endif - -#endif // #ifndef BOOST_CORE_TYPEINFO_HPP_INCLUDED diff --git a/src/boost/cregex.hpp b/src/boost/cregex.hpp deleted file mode 100644 index 24172bb6..00000000 --- a/src/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 - * + network_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/src/boost/cstdint.hpp b/src/boost/cstdint.hpp deleted file mode 100644 index 55ce2884..00000000 --- a/src/boost/cstdint.hpp +++ /dev/null @@ -1,546 +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 network_boost -// 8 Aug 99 Initial version (Beman Dawes) - - -#ifndef BOOST_CSTDINT_HPP -#define BOOST_CSTDINT_HPP - -// -// Since we always define the INT#_C macros as per C++0x, -// define __STDC_CONSTANT_MACROS so that does the right -// thing if possible, and so that the user knows that the macros -// are actually defined as per C99. -// -#ifndef __STDC_CONSTANT_MACROS -# define __STDC_CONSTANT_MACROS -#endif - -#include - -// -// Note that GLIBC is a bit inconsistent about whether int64_t is defined or not -// depending upon what headers happen to have been included first... -// so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG. -// See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990 -// -#if defined(BOOST_HAS_STDINT_H) \ - && (!defined(__GLIBC__) \ - || defined(__GLIBC_HAVE_LONG_LONG) \ - || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17))))) - -// 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 - -#if defined(__QNX__) && defined(__EXT_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 network_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 network_boost - -#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS) || defined(__SOLARIS9__) || defined(__NetBSD__) -// FreeBSD and Tru64 have an that contains much of what we need. -# include - -namespace network_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 network_boost - -#else // BOOST_HAS_STDINT_H - -# include // implementation artifact; not part of interface -# include // needed for limits macros - - -namespace network_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(__MTA__) - // On MTA / XMT short is 32 bits unless the -short16 compiler flag is specified - // MTA / XMT does support the following non-standard integer types - typedef __short16 int16_t; - typedef __short16 int_least16_t; - typedef __short16 int_fast16_t; - typedef unsigned __short16 uint16_t; - typedef unsigned __short16 uint_least16_t; - typedef unsigned __short16 uint_fast16_t; -# 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 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; -# elif (USHRT_MAX == 0xffffffff) - typedef short int32_t; - typedef short int_least32_t; - typedef short int_fast32_t; - typedef unsigned short uint32_t; - typedef unsigned short uint_least32_t; - typedef unsigned short uint_fast32_t; -# elif 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 == 0xffffffffffffffff) && defined(__MTA__) - // Integers are 64 bits on the MTA / XMT - typedef __int32 int32_t; - typedef __int32 int_least32_t; - typedef __int32 int_fast32_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int32 uint_least32_t; - typedef unsigned __int32 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 ::network_boost::long_long_type intmax_t; - typedef ::network_boost::ulong_long_type uintmax_t; - typedef ::network_boost::long_long_type int64_t; - typedef ::network_boost::long_long_type int_least64_t; - typedef ::network_boost::long_long_type int_fast64_t; - typedef ::network_boost::ulong_long_type uint64_t; - typedef ::network_boost::ulong_long_type uint_least64_t; - typedef ::network_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 network_boost - - -#endif // BOOST_HAS_STDINT_H - -// intptr_t/uintptr_t are defined separately because they are optional and not universally available -#if defined(BOOST_WINDOWS) && !defined(_WIN32_WCE) && !defined(BOOST_HAS_STDINT_H) -// Older MSVC don't have stdint.h and have intptr_t/uintptr_t defined in stddef.h -#include -#endif - -// PGI seems to not support intptr_t/uintptr_t properly. BOOST_HAS_STDINT_H is not defined for this compiler by Boost.Config. -#if !defined(__PGIC__) - -#if (defined(BOOST_WINDOWS) && !defined(_WIN32_WCE)) \ - || (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \ - || defined(__CYGWIN__) \ - || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \ - || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(sun) - -namespace network_boost { - using ::intptr_t; - using ::uintptr_t; -} -#define BOOST_HAS_INTPTR_T - -// Clang pretends to be GCC, so it'll match this condition -#elif defined(__GNUC__) && defined(__INTPTR_TYPE__) && defined(__UINTPTR_TYPE__) - -namespace network_boost { - typedef __INTPTR_TYPE__ intptr_t; - typedef __UINTPTR_TYPE__ uintptr_t; -} -#define BOOST_HAS_INTPTR_T - -#endif - -#endif // !defined(__PGIC__) - -#endif // BOOST_CSTDINT_HPP - - -/**************************************************** - -Macro definition section: - -Added 23rd September 2000 (John Maddock). -Modified 11th September 2001 to be excluded when -BOOST_HAS_STDINT_H is defined (John Maddock). -Modified 11th Dec 2009 to always define the -INT#_C macros if they're not already defined (John Maddock). - -******************************************************/ - -#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \ - (!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C)) -// -// For the following code we get several warnings along the lines of: -// -// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant -// -// So we declare this a system header to suppress these warnings. -// -#if defined(__GNUC__) && (__GNUC__ >= 4) -#pragma GCC system_header -#endif - -#include -# define BOOST__STDC_CONSTANT_MACROS_DEFINED -# if defined(BOOST_HAS_MS_INT64) -// -// Borland/Intel/Microsoft compilers have width specific suffixes: -// -#ifndef INT8_C -# define INT8_C(value) value##i8 -#endif -#ifndef INT16_C -# define INT16_C(value) value##i16 -#endif -#ifndef INT32_C -# define INT32_C(value) value##i32 -#endif -#ifndef INT64_C -# define INT64_C(value) value##i64 -#endif -# 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 -#ifndef UINT16_C -# define UINT16_C(value) value##ui16 -#endif -#ifndef UINT32_C -# define UINT32_C(value) value##ui32 -#endif -#ifndef UINT64_C -# define UINT64_C(value) value##ui64 -#endif -#ifndef INTMAX_C -# define INTMAX_C(value) value##i64 -# define UINTMAX_C(value) value##ui64 -#endif - -# else -// do it the old fashioned way: - -// 8-bit types ------------------------------------------------------------// - -# if (UCHAR_MAX == 0xff) && !defined(INT8_C) -# define INT8_C(value) static_cast(value) -# define UINT8_C(value) static_cast(value##u) -# endif - -// 16-bit types -----------------------------------------------------------// - -# if (USHRT_MAX == 0xffff) && !defined(INT16_C) -# define INT16_C(value) static_cast(value) -# define UINT16_C(value) static_cast(value##u) -# endif - -// 32-bit types -----------------------------------------------------------// -#ifndef INT32_C -# 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 -#endif - -// 64-bit types + intmax_t and uintmax_t ----------------------------------// -#ifndef INT64_C -# if defined(BOOST_HAS_LONG_LONG) && \ - (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_ULLONG_MAX) || defined(_LLONG_MAX)) - -# if defined(__hpux) - // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions -# define INT64_C(value) value##LL -# define UINT64_C(value) value##uLL -# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || \ - (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || \ - (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \ - (defined(_ULLONG_MAX) && _ULLONG_MAX == 18446744073709551615ULL) || \ - (defined(_LLONG_MAX) && _LLONG_MAX == 9223372036854775807LL) - -# define INT64_C(value) value##LL -# define UINT64_C(value) value##uLL -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif -# elif ULONG_MAX != 0xffffffff - -# if ULONG_MAX == 18446744073709551615U // 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 -# elif defined(BOOST_HAS_LONG_LONG) - // Usual macros not defined, work things out for ourselves: -# if(~0uLL == 18446744073709551615ULL) -# define INT64_C(value) value##LL -# define UINT64_C(value) value##uLL -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# endif -# else -# error defaults not correct; you must hand modify boost/cstdint.hpp -# 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 -# endif // Borland/Microsoft specific width suffixes - -#endif // INT#_C macros. - - - - diff --git a/src/boost/cstdlib.hpp b/src/boost/cstdlib.hpp deleted file mode 100644 index c925f667..00000000 --- a/src/boost/cstdlib.hpp +++ /dev/null @@ -1,41 +0,0 @@ -// boost/cstdlib.hpp header ------------------------------------------------// - -// Copyright Beman Dawes 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/utility/cstdlib.html for documentation. - -// Revision History -// 26 Feb 01 Initial version (Beman Dawes) - -#ifndef BOOST_CSTDLIB_HPP -#define BOOST_CSTDLIB_HPP - -#include - -namespace network_boost -{ - // The intent is to propose the following for addition to namespace std - // in the C++ Standard Library, and to then deprecate EXIT_SUCCESS and - // EXIT_FAILURE. As an implementation detail, this header defines the - // new constants in terms of EXIT_SUCCESS and EXIT_FAILURE. In a new - // standard, the constants would be implementation-defined, although it - // might be worthwhile to "suggest" (which a standard is allowed to do) - // values of 0 and 1 respectively. - - // Rationale for having multiple failure values: some environments may - // wish to distinguish between different classes of errors. - // Rationale for choice of values: programs often use values < 100 for - // their own error reporting. Values > 255 are sometimes reserved for - // system detected errors. 200/201 were suggested to minimize conflict. - - const int exit_success = EXIT_SUCCESS; // implementation-defined value - const int exit_failure = EXIT_FAILURE; // implementation-defined value - const int exit_exception_failure = 200; // otherwise uncaught exception - const int exit_test_failure = 201; // report_error or - // report_critical_error called. -} - -#endif - diff --git a/src/boost/current_function.hpp b/src/boost/current_function.hpp deleted file mode 100644 index 9f0d5a8a..00000000 --- a/src/boost/current_function.hpp +++ /dev/null @@ -1,71 +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/assert/current_function.html -// - -namespace network_boost -{ - -namespace detail -{ - -inline void current_function_helper() -{ - -#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__) - -# 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__ - -#elif defined(__cplusplus) && (__cplusplus >= 201103) - -# define BOOST_CURRENT_FUNCTION __func__ - -#else - -# define BOOST_CURRENT_FUNCTION "(unknown)" - -#endif - -} - -} // namespace detail - -} // namespace network_boost - -#endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED diff --git a/src/boost/detail/call_traits.hpp b/src/boost/detail/call_traits.hpp deleted file mode 100644 index 36046ee9..00000000 --- a/src/boost/detail/call_traits.hpp +++ /dev/null @@ -1,172 +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 -#include - -namespace network_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 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 network_boost::detail::ct_imp< - T, - ::network_boost::is_pointer::value, - ::network_boost::is_arithmetic::value, - ::network_boost::is_enum::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/src/boost/detail/container_fwd.hpp b/src/boost/detail/container_fwd.hpp deleted file mode 100644 index 04ce9727..00000000 --- a/src/boost/detail/container_fwd.hpp +++ /dev/null @@ -1,157 +0,0 @@ - -// Copyright 2005-2011 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) - -// Note: if you change this include guard, you also need to change -// container_fwd_compile_fail.cpp -#if !defined(BOOST_DETAIL_CONTAINER_FWD_HPP) -#define BOOST_DETAIL_CONTAINER_FWD_HPP - -#if defined(_MSC_VER) && \ - !defined(BOOST_DETAIL_TEST_CONFIG_ONLY) -# pragma once -#endif - -#include -#include - -//////////////////////////////////////////////////////////////////////////////// -// // -// Define BOOST_DETAIL_NO_CONTAINER_FWD if you don't want this header to // -// forward declare standard containers. // -// // -// BOOST_DETAIL_CONTAINER_FWD to make it foward declare containers even if it // -// normally doesn't. // -// // -// BOOST_DETAIL_NO_CONTAINER_FWD overrides BOOST_DETAIL_CONTAINER_FWD. // -// // -//////////////////////////////////////////////////////////////////////////////// - -#if !defined(BOOST_DETAIL_NO_CONTAINER_FWD) -# if defined(BOOST_DETAIL_CONTAINER_FWD) - // Force forward declarations. -# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) - // STLport -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif defined(__LIBCOMO__) - // Comeau STL: -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) - // Rogue Wave library: -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif defined(_LIBCPP_VERSION) - // libc++ -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif defined(__GLIBCPP__) || defined(__GLIBCXX__) - // GNU libstdc++ 3 - // - // Disable forwarding for all recent versions, as the library has a - // versioned namespace mode, and I don't know how to detect it. -# if __GLIBCXX__ >= 20070513 \ - || defined(_GLIBCXX_DEBUG) \ - || defined(_GLIBCXX_PARALLEL) \ - || defined(_GLIBCXX_PROFILE) -# define BOOST_DETAIL_NO_CONTAINER_FWD -# else -# if defined(__GLIBCXX__) && __GLIBCXX__ >= 20040530 -# define BOOST_CONTAINER_FWD_COMPLEX_STRUCT -# endif -# endif -# elif defined(__STL_CONFIG_H) - // generic SGI STL - // - // Forward declaration seems to be okay, but it has a couple of odd - // implementations. -# define BOOST_CONTAINER_FWD_BAD_BITSET -# if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG) -# define BOOST_CONTAINER_FWD_BAD_DEQUE -# endif -# elif defined(__MSL_CPP__) - // MSL standard lib: -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif defined(__IBMCPP__) - // The default VACPP std lib, forward declaration seems to be fine. -# elif defined(MSIPL_COMPILE_H) - // Modena C++ standard library -# define BOOST_DETAIL_NO_CONTAINER_FWD -# elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) - // Dinkumware Library (this has to appear after any possible replacement - // libraries) -# else -# define BOOST_DETAIL_NO_CONTAINER_FWD -# endif -#endif - -#if !defined(BOOST_DETAIL_TEST_CONFIG_ONLY) - -#if defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \ - !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD) - -#include -#include -#include -#include -#include -#include -#include -#include - -#else - -#include - -#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 char_traits; - -#if defined(BOOST_CONTAINER_FWD_COMPLEX_STRUCT) - template struct complex; -#else - template class complex; -#endif - -#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 // BOOST_DETAIL_NO_CONTAINER_FWD && - // !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD) - -#endif // BOOST_DETAIL_TEST_CONFIG_ONLY - -#endif diff --git a/src/boost/detail/fenv.hpp b/src/boost/detail/fenv.hpp deleted file mode 100644 index b268f5c1..00000000 --- a/src/boost/detail/fenv.hpp +++ /dev/null @@ -1,101 +0,0 @@ -/*============================================================================= - Copyright (c) 2010 Bryce Lelbach - - Distributed under the 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_FENV_H) - #error This platform does not have a floating point environment -#endif - -#if !defined(BOOST_DETAIL_FENV_HPP) -#define BOOST_DETAIL_FENV_HPP - -/* If we're using clang + glibc, we have to get hacky. - * See http://llvm.org/bugs/show_bug.cgi?id=6907 */ -#if defined(__clang__) && (__clang_major__ < 3) && \ - defined(__GNU_LIBRARY__) && /* up to version 5 */ \ - defined(__GLIBC__) && /* version 6 + */ \ - !defined(_FENV_H) - #define _FENV_H - - #include - #include - - extern "C" { - extern int fegetexceptflag (fexcept_t*, int) __THROW; - extern int fesetexceptflag (__const fexcept_t*, int) __THROW; - extern int feclearexcept (int) __THROW; - extern int feraiseexcept (int) __THROW; - extern int fetestexcept (int) __THROW; - extern int fegetround (void) __THROW; - extern int fesetround (int) __THROW; - extern int fegetenv (fenv_t*) __THROW; - extern int fesetenv (__const fenv_t*) __THROW; - extern int feupdateenv (__const fenv_t*) __THROW; - extern int feholdexcept (fenv_t*) __THROW; - - #ifdef __USE_GNU - extern int feenableexcept (int) __THROW; - extern int fedisableexcept (int) __THROW; - extern int fegetexcept (void) __THROW; - #endif - } - - namespace std { namespace tr1 { - using ::fenv_t; - using ::fexcept_t; - using ::fegetexceptflag; - using ::fesetexceptflag; - using ::feclearexcept; - using ::feraiseexcept; - using ::fetestexcept; - using ::fegetround; - using ::fesetround; - using ::fegetenv; - using ::fesetenv; - using ::feupdateenv; - using ::feholdexcept; - } } - -#elif defined(__MINGW32__) && defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 - - // MinGW (32-bit) has a bug in mingw32/bits/c++config.h, it does not define _GLIBCXX_HAVE_FENV_H, - // which prevents the C fenv.h header contents to be included in the C++ wrapper header fenv.h. This is at least - // the case with gcc 4.8.1 packages tested so far, up to 4.8.1-4. Note that there is no issue with - // MinGW-w64. - // To work around the bug we avoid including the C++ wrapper header and include the C header directly - // and import all relevant symbols into std:: ourselves. - - #include <../include/fenv.h> - - namespace std { - using ::fenv_t; - using ::fexcept_t; - using ::fegetexceptflag; - using ::fesetexceptflag; - using ::feclearexcept; - using ::feraiseexcept; - using ::fetestexcept; - using ::fegetround; - using ::fesetround; - using ::fegetenv; - using ::fesetenv; - using ::feupdateenv; - using ::feholdexcept; - } - -#else /* if we're not using GNU's C stdlib, fenv.h should work with clang */ - - #if defined(__SUNPRO_CC) /* lol suncc */ - #include - #endif - - #include - -#endif - -#endif /* BOOST_DETAIL_FENV_HPP */ diff --git a/src/boost/detail/indirect_traits.hpp b/src/boost/detail/indirect_traits.hpp deleted file mode 100644 index 31ccd42b..00000000 --- a/src/boost/detail/indirect_traits.hpp +++ /dev/null @@ -1,204 +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 - - -namespace network_boost { namespace detail { - -namespace indirect_traits { - -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)) -}; - - -} - -using namespace indirect_traits; - -}} // namespace network_boost::python::detail - -#endif // INDIRECT_TRAITS_DWA2002131_HPP diff --git a/src/boost/detail/iterator.hpp b/src/boost/detail/iterator.hpp deleted file mode 100644 index 924cf12a..00000000 --- a/src/boost/detail/iterator.hpp +++ /dev/null @@ -1,26 +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) - -#ifndef ITERATOR_DWA122600_HPP_ -#define ITERATOR_DWA122600_HPP_ - -// This header is obsolete and will be deprecated. - -#include - -namespace network_boost -{ - -namespace detail -{ - -using std::iterator_traits; -using std::distance; - -} // namespace detail - -} // namespace network_boost - -#endif // ITERATOR_DWA122600_HPP_ diff --git a/src/boost/detail/lightweight_mutex.hpp b/src/boost/detail/lightweight_mutex.hpp deleted file mode 100644 index b7a7f6dd..00000000 --- a/src/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/src/boost/detail/no_exceptions_support.hpp b/src/boost/detail/no_exceptions_support.hpp deleted file mode 100644 index 7d17454a..00000000 --- a/src/boost/detail/no_exceptions_support.hpp +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2014 Glen Fernandes - * - * Distributed under the 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_NO_EXCEPTIONS_SUPPORT_HPP -#define BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP - -// The header file at this path is deprecated; -// use boost/core/no_exceptions_support.hpp instead. - -#include - -#endif diff --git a/src/boost/detail/reference_content.hpp b/src/boost/detail/reference_content.hpp deleted file mode 100644 index 7e91a051..00000000 --- a/src/boost/detail/reference_content.hpp +++ /dev/null @@ -1,120 +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" - -# include "boost/mpl/bool.hpp" -# include "boost/type_traits/has_nothrow_copy.hpp" - -#include "boost/mpl/void.hpp" - -namespace network_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; - - -template -struct make_reference_content -{ - typedef T type; -}; - -template -struct make_reference_content< T& > -{ - typedef reference_content type; -}; - - -template <> -struct make_reference_content< mpl::void_ > -{ - template - struct apply - : make_reference_content - { - }; - - typedef mpl::void_ type; -}; - -} // namespace detail - -/////////////////////////////////////////////////////////////////////////////// -// reference_content type traits specializations -// - - -template -struct has_nothrow_copy< - ::network_boost::detail::reference_content< T& > - > - : mpl::true_ -{ -}; - - -} // namespace network_boost - -#endif // BOOST_DETAIL_REFERENCE_CONTENT_HPP diff --git a/src/boost/detail/select_type.hpp b/src/boost/detail/select_type.hpp deleted file mode 100644 index 72510fcb..00000000 --- a/src/boost/detail/select_type.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// (C) Copyright David Abrahams 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 for most recent version including documentation. - -// Revision History -// 09 Feb 01 Applied John Maddock's Borland patch Moving -// specialization to unspecialized template (David Abrahams) -// 06 Feb 01 Created (David Abrahams) - -#ifndef SELECT_TYPE_DWA20010206_HPP -# define SELECT_TYPE_DWA20010206_HPP - -namespace network_boost { namespace detail { - - // Template class if_true -- select among 2 types based on a bool constant expression - // Usage: - // typename if_true<(bool_const_expression)>::template then::type - - // HP aCC cannot deal with missing names for template value parameters - template struct if_true - { - template - struct then { typedef T type; }; - }; - - template <> - struct if_true - { - template - struct then { typedef F type; }; - }; -}} -#endif // SELECT_TYPE_DWA20010206_HPP diff --git a/src/boost/detail/sp_typeinfo.hpp b/src/boost/detail/sp_typeinfo.hpp deleted file mode 100644 index fc82ee28..00000000 --- a/src/boost/detail/sp_typeinfo.hpp +++ /dev/null @@ -1,36 +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 -// -// Deprecated, please use boost/core/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 - -namespace network_boost -{ - -namespace detail -{ - -typedef network_boost::core::typeinfo sp_typeinfo; - -} // namespace detail - -} // namespace network_boost - -#define BOOST_SP_TYPEID(T) BOOST_CORE_TYPEID(T) - -#endif // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED diff --git a/src/boost/detail/workaround.hpp b/src/boost/detail/workaround.hpp deleted file mode 100644 index 40b3423b..00000000 --- a/src/boost/detail/workaround.hpp +++ /dev/null @@ -1,267 +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 BOOST_MSVC_FULL_VER -#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1 -#else -#define BOOST_MSVC_FULL_VER_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/src/boost/exception/all.hpp b/src/boost/exception/all.hpp deleted file mode 100644 index 32eb1505..00000000 --- a/src/boost/exception/all.hpp +++ /dev/null @@ -1,36 +0,0 @@ -//Copyright (c) 2006-2008 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_316FDA946C0D11DEA9CBAE5255D89593 -#define UUID_316FDA946C0D11DEA9CBAE5255D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifndef BOOST_NO_EXCEPTIONS -#include -#include -#endif - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/current_exception_cast.hpp b/src/boost/exception/current_exception_cast.hpp deleted file mode 100644 index 7d402f17..00000000 --- a/src/boost/exception/current_exception_cast.hpp +++ /dev/null @@ -1,43 +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_7E83C166200811DE885E826156D89593 -#define UUID_7E83C166200811DE885E826156D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -namespace -network_boost - { - template - inline - E * - current_exception_cast() - { - try - { - throw; - } - catch( - E & e ) - { - return &e; - } - catch( - ...) - { - return 0; - } - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/detail/clone_current_exception.hpp b/src/boost/exception/detail/clone_current_exception.hpp deleted file mode 100644 index 8beb8a56..00000000 --- a/src/boost/exception/detail/clone_current_exception.hpp +++ /dev/null @@ -1,56 +0,0 @@ -//Copyright (c) 2006-2013 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_81522C0EB56511DFAB613DB0DFD72085 -#define UUID_81522C0EB56511DFAB613DB0DFD72085 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#ifdef BOOST_NO_EXCEPTIONS -# error This header requires exception handling to be enabled. -#endif - -namespace -network_boost - { - namespace - exception_detail - { - class clone_base; - -#ifdef BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR - int clone_current_exception_non_intrusive( clone_base const * & cloned ); -#endif - - namespace - clone_current_exception_result - { - int const success=0; - int const bad_alloc=1; - int const bad_exception=2; - int const not_supported=3; - } - - inline - int - clone_current_exception( clone_base const * & cloned ) - { -#ifdef BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR - return clone_current_exception_non_intrusive(cloned); -#else - return clone_current_exception_result::not_supported; -#endif - } - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/detail/error_info_impl.hpp b/src/boost/exception/detail/error_info_impl.hpp deleted file mode 100644 index 5c4ec9d5..00000000 --- a/src/boost/exception/detail/error_info_impl.hpp +++ /dev/null @@ -1,74 +0,0 @@ -//Copyright (c) 2006-2010 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_CE6983AC753411DDA764247956D89593 -#define UUID_CE6983AC753411DDA764247956D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include - -namespace -network_boost - { - namespace - exception_detail - { - class - error_info_base - { - public: - - virtual std::string name_value_string() const = 0; - - protected: - - virtual - ~error_info_base() throw() - { - } - }; - } - - template - class - error_info: - public exception_detail::error_info_base - { - public: - - typedef T value_type; - - error_info( value_type const & value ); - ~error_info() throw(); - - value_type const & - value() const - { - return value_; - } - - value_type & - value() - { - return value_; - } - - private: - - std::string name_value_string() const; - - value_type value_; - }; - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/detail/exception_ptr.hpp b/src/boost/exception/detail/exception_ptr.hpp deleted file mode 100644 index 0dc32854..00000000 --- a/src/boost/exception/detail/exception_ptr.hpp +++ /dev/null @@ -1,513 +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_618474C2DE1511DEB74A388C56D89593 -#define UUID_618474C2DE1511DEB74A388C56D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#ifdef BOOST_NO_EXCEPTIONS -#error This header requires exception handling to be enabled. -#endif -#include -#include -#include -#include -#include -#ifndef BOOST_NO_RTTI -#include -#endif -#include -#include -#include -#include -#include - -namespace -network_boost - { - class exception_ptr; - BOOST_NORETURN void rethrow_exception( exception_ptr const & ); - exception_ptr current_exception(); - - class - exception_ptr - { - typedef network_boost::shared_ptr impl; - impl ptr_; - friend void rethrow_exception( exception_ptr const & ); - typedef exception_detail::clone_base const * (impl::*unspecified_bool_type)() const; - public: - exception_ptr() - { - } - explicit - exception_ptr( impl const & ptr ): - ptr_(ptr) - { - } - bool - operator==( exception_ptr const & other ) const - { - return ptr_==other.ptr_; - } - bool - operator!=( exception_ptr const & other ) const - { - return ptr_!=other.ptr_; - } - operator unspecified_bool_type() const - { - return ptr_?&impl::get:0; - } - }; - - template - inline - exception_ptr - copy_exception( T const & e ) - { - try - { - throw enable_current_exception(e); - } - catch( - ... ) - { - return current_exception(); - } - } - -#ifndef BOOST_NO_RTTI - typedef error_info original_exception_type; - - inline - std::string - to_string( original_exception_type const & x ) - { - return core::demangle(x.value()->name()); - } -#endif - - namespace - exception_detail - { - struct - bad_alloc_: - network_boost::exception, - std::bad_alloc - { - ~bad_alloc_() throw() { } - }; - - struct - bad_exception_: - network_boost::exception, - std::bad_exception - { - ~bad_exception_() throw() { } - }; - - template - exception_ptr - get_static_exception_object() - { - Exception ba; - exception_detail::clone_impl c(ba); -#ifndef BOOST_EXCEPTION_DISABLE - c << - throw_function(BOOST_CURRENT_FUNCTION) << - throw_file(__FILE__) << - throw_line(__LINE__); -#endif - static exception_ptr ep(shared_ptr(new exception_detail::clone_impl(c))); - return ep; - } - - template - struct - exception_ptr_static_exception_object - { - static exception_ptr const e; - }; - - template - exception_ptr const - exception_ptr_static_exception_object:: - e = get_static_exception_object(); - } - -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - class - unknown_exception: - public network_boost::exception, - public std::exception - { - public: - - unknown_exception() - { - } - - explicit - unknown_exception( std::exception const & e ) - { - add_original_type(e); - } - - explicit - unknown_exception( network_boost::exception const & e ): - network_boost::exception(e) - { - add_original_type(e); - } - - ~unknown_exception() throw() - { - } - - private: - - template - void - add_original_type( E const & e ) - { -#ifndef BOOST_NO_RTTI - (*this) << original_exception_type(&typeid(e)); -#endif - } - }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - namespace - exception_detail - { - template - class - current_exception_std_exception_wrapper: - public T, - public network_boost::exception - { - public: - - explicit - current_exception_std_exception_wrapper( T const & e1 ): - T(e1) - { - add_original_type(e1); - } - - current_exception_std_exception_wrapper( T const & e1, network_boost::exception const & e2 ): - T(e1), - network_boost::exception(e2) - { - add_original_type(e1); - } - - ~current_exception_std_exception_wrapper() throw() - { - } - - private: - - template - void - add_original_type( E const & e ) - { -#ifndef BOOST_NO_RTTI - (*this) << original_exception_type(&typeid(e)); -#endif - } - }; - -#ifdef BOOST_NO_RTTI - template - network_boost::exception const * - get_boost_exception( T const * ) - { - try - { - throw; - } - catch( - network_boost::exception & x ) - { - return &x; - } - catch(...) - { - return 0; - } - } -#else - template - network_boost::exception const * - get_boost_exception( T const * x ) - { - return dynamic_cast(x); - } -#endif - - template - inline - exception_ptr - current_exception_std_exception( T const & e1 ) - { - if( network_boost::exception const * e2 = get_boost_exception(&e1) ) - return network_boost::copy_exception(current_exception_std_exception_wrapper(e1,*e2)); - else - return network_boost::copy_exception(current_exception_std_exception_wrapper(e1)); - } - - inline - exception_ptr - current_exception_unknown_exception() - { - return network_boost::copy_exception(unknown_exception()); - } - - inline - exception_ptr - current_exception_unknown_boost_exception( network_boost::exception const & e ) - { - return network_boost::copy_exception(unknown_exception(e)); - } - - inline - exception_ptr - current_exception_unknown_std_exception( std::exception const & e ) - { - if( network_boost::exception const * be = get_boost_exception(&e) ) - return current_exception_unknown_boost_exception(*be); - else - return network_boost::copy_exception(unknown_exception(e)); - } - - inline - exception_ptr - current_exception_impl() - { - exception_detail::clone_base const * e=0; - switch( - exception_detail::clone_current_exception(e) ) - { - case exception_detail::clone_current_exception_result:: - success: - { - BOOST_ASSERT(e!=0); - return exception_ptr(shared_ptr(e)); - } - case exception_detail::clone_current_exception_result:: - bad_alloc: - { - BOOST_ASSERT(!e); - return exception_detail::exception_ptr_static_exception_object::e; - } - case exception_detail::clone_current_exception_result:: - bad_exception: - { - BOOST_ASSERT(!e); - return exception_detail::exception_ptr_static_exception_object::e; - } - default: - BOOST_ASSERT(0); - case exception_detail::clone_current_exception_result:: - not_supported: - { - BOOST_ASSERT(!e); - try - { - throw; - } - catch( - exception_detail::clone_base & e ) - { - return exception_ptr(shared_ptr(e.clone())); - } - catch( - std::domain_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::invalid_argument & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::length_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::out_of_range & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::logic_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::range_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::overflow_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::underflow_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::ios_base::failure & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::runtime_error & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::bad_alloc & e ) - { - return exception_detail::current_exception_std_exception(e); - } -#ifndef BOOST_NO_TYPEID - catch( - std::bad_cast & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::bad_typeid & e ) - { - return exception_detail::current_exception_std_exception(e); - } -#endif - catch( - std::bad_exception & e ) - { - return exception_detail::current_exception_std_exception(e); - } - catch( - std::exception & e ) - { - return exception_detail::current_exception_unknown_std_exception(e); - } - catch( - network_boost::exception & e ) - { - return exception_detail::current_exception_unknown_boost_exception(e); - } - catch( - ... ) - { - return exception_detail::current_exception_unknown_exception(); - } - } - } - } - } - - inline - exception_ptr - current_exception() - { - exception_ptr ret; - try - { - ret=exception_detail::current_exception_impl(); - } - catch( - std::bad_alloc & ) - { - ret=exception_detail::exception_ptr_static_exception_object::e; - } - catch( - ... ) - { - ret=exception_detail::exception_ptr_static_exception_object::e; - } - BOOST_ASSERT(ret); - return ret; - } - - BOOST_NORETURN - inline - void - rethrow_exception( exception_ptr const & p ) - { - BOOST_ASSERT(p); - p.ptr_->rethrow(); - BOOST_ASSERT(0); - #if defined(UNDER_CE) - // some CE platforms don't define ::abort() - exit(-1); - #else - abort(); - #endif - } - - inline - std::string - diagnostic_information( exception_ptr const & p, bool verbose=true ) - { - if( p ) - try - { - rethrow_exception(p); - } - catch( - ... ) - { - return current_exception_diagnostic_information(verbose); - } - return ""; - } - - inline - std::string - to_string( exception_ptr const & p ) - { - std::string s='\n'+diagnostic_information(p); - std::string padding(" "); - std::string r; - bool f=false; - for( std::string::const_iterator i=s.begin(),e=s.end(); i!=e; ++i ) - { - if( f ) - r+=padding; - char c=*i; - r+=c; - f=(c=='\n'); - } - return r; - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/detail/is_output_streamable.hpp b/src/boost/exception/detail/is_output_streamable.hpp deleted file mode 100644 index 8f471c1a..00000000 --- a/src/boost/exception/detail/is_output_streamable.hpp +++ /dev/null @@ -1,60 +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_898984B4076411DD973EDFA055D89593 -#define UUID_898984B4076411DD973EDFA055D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include - -namespace -network_boost - { - namespace - to_string_detail - { - struct - partial_ordering_helper1 - { - template - partial_ordering_helper1( std::basic_ostream & ); - }; - - struct - partial_ordering_helper2 - { - template - partial_ordering_helper2( T const & ); - }; - - char operator<<( partial_ordering_helper1, partial_ordering_helper2 ); - - template - struct - is_output_streamable_impl - { - static std::basic_ostream & f(); - static T const & g(); - enum e { value=1!=(sizeof(f()< > - struct - is_output_streamable - { - enum e { value=to_string_detail::is_output_streamable_impl::value }; - }; - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/detail/object_hex_dump.hpp b/src/boost/exception/detail/object_hex_dump.hpp deleted file mode 100644 index 27f89272..00000000 --- a/src/boost/exception/detail/object_hex_dump.hpp +++ /dev/null @@ -1,50 +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_6F463AC838DF11DDA3E6909F56D89593 -#define UUID_6F463AC838DF11DDA3E6909F56D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#include -#include - -namespace -network_boost - { - namespace - exception_detail - { - template - inline - std::string - object_hex_dump( T const & x, std::size_t max_size=16 ) - { - std::ostringstream s; - s << "type: " << type_name() << ", size: " << sizeof(T) << ", dump: "; - std::size_t n=sizeof(T)>max_size?max_size:sizeof(T); - s.fill('0'); - s.width(2); - unsigned char const * b=reinterpret_cast(&x); - s << std::setw(2) << std::hex << (unsigned int)*b; - for( unsigned char const * e=b+n; ++b!=e; ) - s << " " << std::setw(2) << std::hex << (unsigned int)*b; - return s.str(); - } - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/detail/type_info.hpp b/src/boost/exception/detail/type_info.hpp deleted file mode 100644 index a27c9a11..00000000 --- a/src/boost/exception/detail/type_info.hpp +++ /dev/null @@ -1,81 +0,0 @@ -//Copyright (c) 2006-2010 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_C3E1741C754311DDB2834CCA55D89593 -#define UUID_C3E1741C754311DDB2834CCA55D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#include - -namespace -network_boost - { - template - inline - std::string - tag_type_name() - { -#ifdef BOOST_NO_TYPEID - return BOOST_CURRENT_FUNCTION; -#else - return core::demangle(typeid(T*).name()); -#endif - } - - template - inline - std::string - type_name() - { -#ifdef BOOST_NO_TYPEID - return BOOST_CURRENT_FUNCTION; -#else - return core::demangle(typeid(T).name()); -#endif - } - - namespace - exception_detail - { - struct - type_info_ - { - core::typeinfo const * type_; - - explicit - type_info_( core::typeinfo const & type ): - type_(&type) - { - } - - friend - bool - operator<( type_info_ const & a, type_info_ const & b ) - { - return 0!=(a.type_->before(*b.type_)); - } - }; - } - } - -#define BOOST_EXCEPTION_STATIC_TYPEID(T) ::network_boost::exception_detail::type_info_(BOOST_CORE_TYPEID(T)) - -#ifndef BOOST_NO_RTTI -#define BOOST_EXCEPTION_DYNAMIC_TYPEID(x) ::network_boost::exception_detail::type_info_(typeid(x)) -#endif - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/diagnostic_information.hpp b/src/boost/exception/diagnostic_information.hpp deleted file mode 100644 index a236edae..00000000 --- a/src/boost/exception/diagnostic_information.hpp +++ /dev/null @@ -1,201 +0,0 @@ -//Copyright (c) 2006-2010 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_0552D49838DD11DD90146B8956D89593 -#define UUID_0552D49838DD11DD90146B8956D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#ifndef BOOST_NO_RTTI -#include -#endif -#include -#include -#include - -#ifndef BOOST_NO_EXCEPTIONS -#include -namespace -network_boost - { - namespace - exception_detail - { - std::string diagnostic_information_impl( network_boost::exception const *, std::exception const *, bool, bool ); - } - - inline - std::string - current_exception_diagnostic_information( bool verbose=true) - { - network_boost::exception const * be=current_exception_cast(); - std::exception const * se=current_exception_cast(); - if( be || se ) - return exception_detail::diagnostic_information_impl(be,se,true,verbose); - else - return "No diagnostic information available."; - } - } -#endif - -namespace -network_boost - { - namespace - exception_detail - { - inline - exception const * - get_boost_exception( exception const * e ) - { - return e; - } - - inline - exception const * - get_boost_exception( ... ) - { - return 0; - } - - inline - std::exception const * - get_std_exception( std::exception const * e ) - { - return e; - } - - inline - std::exception const * - get_std_exception( ... ) - { - return 0; - } - - inline - char const * - get_diagnostic_information( exception const & x, char const * header ) - { -#ifndef BOOST_NO_EXCEPTIONS - try - { -#endif - error_info_container * c=x.data_.get(); - if( !c ) - x.data_.adopt(c=new exception_detail::error_info_container_impl); - char const * di=c->diagnostic_information(header); - BOOST_ASSERT(di!=0); - return di; -#ifndef BOOST_NO_EXCEPTIONS - } - catch(...) - { - return 0; - } -#endif - } - - inline - std::string - diagnostic_information_impl( network_boost::exception const * be, std::exception const * se, bool with_what, bool verbose ) - { - if( !be && !se ) - return "Unknown exception."; -#ifndef BOOST_NO_RTTI - if( !be ) - be=dynamic_cast(se); - if( !se ) - se=dynamic_cast(be); -#endif - char const * wh=0; - if( with_what && se ) - { - wh=se->what(); - if( be && exception_detail::get_diagnostic_information(*be,0)==wh ) - return wh; - } - std::ostringstream tmp; - if( be && verbose ) - { - char const * const * f=get_error_info(*be); - int const * l=get_error_info(*be); - char const * const * fn=get_error_info(*be); - if( !f && !l && !fn ) - tmp << "Throw location unknown (consider using BOOST_THROW_EXCEPTION)\n"; - else - { - if( f ) - { - tmp << *f; - if( int const * l=get_error_info(*be) ) - tmp << '(' << *l << "): "; - } - tmp << "Throw in function "; - if( char const * const * fn=get_error_info(*be) ) - tmp << *fn; - else - tmp << "(unknown)"; - tmp << '\n'; - } - } -#ifndef BOOST_NO_RTTI - if ( verbose ) - tmp << std::string("Dynamic exception type: ") << - core::demangle((be?(BOOST_EXCEPTION_DYNAMIC_TYPEID(*be)):(BOOST_EXCEPTION_DYNAMIC_TYPEID(*se))).type_->name()) << '\n'; -#endif - if( with_what && se && verbose ) - tmp << "std::exception::what: " << wh << '\n'; - if( be ) - if( char const * s=exception_detail::get_diagnostic_information(*be,tmp.str().c_str()) ) - if( *s ) - return std::string(s); - return tmp.str(); - } - } - - template - std::string - diagnostic_information( T const & e, bool verbose=true ) - { - return exception_detail::diagnostic_information_impl(exception_detail::get_boost_exception(&e),exception_detail::get_std_exception(&e),true,verbose); - } - - inline - char const * - diagnostic_information_what( exception const & e, bool verbose=true ) throw() - { - char const * w=0; -#ifndef BOOST_NO_EXCEPTIONS - try - { -#endif - (void) exception_detail::diagnostic_information_impl(&e,0,false,verbose); - if( char const * di=exception_detail::get_diagnostic_information(e,0) ) - return di; - else - return "Failed to produce network_boost::diagnostic_information_what()"; -#ifndef BOOST_NO_EXCEPTIONS - } - catch( - ... ) - { - } -#endif - return w; - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/errinfo_api_function.hpp b/src/boost/exception/errinfo_api_function.hpp deleted file mode 100644 index 5852307f..00000000 --- a/src/boost/exception/errinfo_api_function.hpp +++ /dev/null @@ -1,22 +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_DDFBB4546C1211DEA4659E9055D89593 -#define UUID_DDFBB4546C1211DEA4659E9055D89593 - -#include "boost/exception/error_info.hpp" - -namespace -network_boost - { - //Usage hint: - //if( api_function(....)!=0 ) - // BOOST_THROW_EXCEPTION( - // failure() << - // errinfo_api_function("api_function") ); - typedef error_info errinfo_api_function; - } - -#endif diff --git a/src/boost/exception/errinfo_at_line.hpp b/src/boost/exception/errinfo_at_line.hpp deleted file mode 100644 index c9d144cc..00000000 --- a/src/boost/exception/errinfo_at_line.hpp +++ /dev/null @@ -1,18 +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_E7255CE26C1211DE85800C9155D89593 -#define UUID_E7255CE26C1211DE85800C9155D89593 - -namespace -network_boost - { - template class error_info; - - //Use with parsing errors exceptions, for example in a XML file parser. - typedef error_info errinfo_at_line; - } - -#endif diff --git a/src/boost/exception/errinfo_errno.hpp b/src/boost/exception/errinfo_errno.hpp deleted file mode 100644 index d8c61df9..00000000 --- a/src/boost/exception/errinfo_errno.hpp +++ /dev/null @@ -1,44 +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_F0EE17BE6C1211DE87FF459155D89593 -#define UUID_F0EE17BE6C1211DE87FF459155D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include "boost/exception/info.hpp" -#include -#include - -namespace -network_boost - { - typedef error_info errinfo_errno; - - //Usage hint: - //if( c_function(....)!=0 ) - // BOOST_THROW_EXCEPTION( - // failure() << - // errinfo_errno(errno) << - // errinfo_api_function("c_function") ); - inline - std::string - to_string( errinfo_errno const & e ) - { - std::ostringstream tmp; - int v=e.value(); - tmp << v << ", \"" << strerror(v) << "\""; - return tmp.str(); - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/errinfo_file_handle.hpp b/src/boost/exception/errinfo_file_handle.hpp deleted file mode 100644 index 5d9fce67..00000000 --- a/src/boost/exception/errinfo_file_handle.hpp +++ /dev/null @@ -1,20 +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_F79E6EE26C1211DEB26E929155D89593 -#define UUID_F79E6EE26C1211DEB26E929155D89593 - -#include - -namespace -network_boost - { - template class weak_ptr; - template class error_info; - - typedef error_info > errinfo_file_handle; - } - -#endif diff --git a/src/boost/exception/errinfo_file_name.hpp b/src/boost/exception/errinfo_file_name.hpp deleted file mode 100644 index dc8db531..00000000 --- a/src/boost/exception/errinfo_file_name.hpp +++ /dev/null @@ -1,26 +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_FEE5120A6C1211DE94E8BC9155D89593 -#define UUID_FEE5120A6C1211DE94E8BC9155D89593 - -#include - -namespace -network_boost - { - template class error_info; - - //Usage hint: - //FILE * f=fopen(name,mode); - //if( !f ) - // BOOST_THROW_EXCEPTION( - // file_open_error() << - // errinfo_file_name(name) << - // errinfo_file_open_mode(mode) ); - typedef error_info errinfo_file_name; - } - -#endif diff --git a/src/boost/exception/errinfo_file_open_mode.hpp b/src/boost/exception/errinfo_file_open_mode.hpp deleted file mode 100644 index 192c694c..00000000 --- a/src/boost/exception/errinfo_file_open_mode.hpp +++ /dev/null @@ -1,26 +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_056F1F266C1311DE8E74299255D89593 -#define UUID_056F1F266C1311DE8E74299255D89593 - -#include - -namespace -network_boost - { - template class error_info; - - //Usage hint: - //FILE * f=fopen(name,mode); - //if( !f ) - // BOOST_THROW_EXCEPTION( - // file_open_error() << - // errinfo_file_name(name) << - // errinfo_file_open_mode(mode) ); - typedef error_info errinfo_file_open_mode; - } - -#endif diff --git a/src/boost/exception/errinfo_nested_exception.hpp b/src/boost/exception/errinfo_nested_exception.hpp deleted file mode 100644 index c9fd454d..00000000 --- a/src/boost/exception/errinfo_nested_exception.hpp +++ /dev/null @@ -1,18 +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_45CC9A82B77511DEB330FC4956D89593 -#define UUID_45CC9A82B77511DEB330FC4956D89593 - -namespace -network_boost - { - namespace exception_detail { class clone_base; } - template class error_info; - class exception_ptr; - typedef error_info errinfo_nested_exception; - } - -#endif diff --git a/src/boost/exception/errinfo_type_info_name.hpp b/src/boost/exception/errinfo_type_info_name.hpp deleted file mode 100644 index b72d4906..00000000 --- a/src/boost/exception/errinfo_type_info_name.hpp +++ /dev/null @@ -1,23 +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_0E11109E6C1311DEB7EA649255D89593 -#define UUID_0E11109E6C1311DEB7EA649255D89593 - -#include - -namespace -network_boost - { - template class error_info; - - //Usage hint: - //BOOST_THROW_EXCEPTION( - // bad_type() << - // errinfo_type_info_name(typeid(x).name()) ); - typedef error_info errinfo_type_info_name; - } - -#endif diff --git a/src/boost/exception/error_info.hpp b/src/boost/exception/error_info.hpp deleted file mode 100644 index 539010b9..00000000 --- a/src/boost/exception/error_info.hpp +++ /dev/null @@ -1,9 +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_EE7ECCA0433B11E1923E37064924019B -#define UUID_EE7ECCA0433B11E1923E37064924019B -namespace network_boost { template class error_info; } -#endif diff --git a/src/boost/exception/exception.hpp b/src/boost/exception/exception.hpp deleted file mode 100644 index b5cf9494..00000000 --- a/src/boost/exception/exception.hpp +++ /dev/null @@ -1,499 +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 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -namespace -network_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() ) - px_=0; - } - }; - } - - //////////////////////////////////////////////////////////////////////// - - 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) - { - } - }; - -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - class exception; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - template - class shared_ptr; - - namespace - exception_detail - { - class error_info_base; - struct type_info_; - - struct - error_info_container - { - virtual char const * diagnostic_information( char const * ) 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 bool release() const = 0; - virtual refcount_ptr clone() const = 0; - - protected: - - ~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 &, char const * ); - - void copy_boost_exception( exception *, exception const * ); - - template - E const & set_info( E const &, error_info const & ); - - template - E const & set_info( E const &, throw_function const & ); - - template - E const & set_info( E const &, throw_file const & ); - - template - E const & set_info( E const &, throw_line const & ); - } - -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - class - exception - { - // - public: - template void set( typename Tag::type const & ); - template typename Tag::type const * get() const; - // - - protected: - - exception(): - throw_function_(0), - throw_file_(0), - throw_line_(-1) - { - } - -#ifdef __HP_aCC - //On HP aCC, this protected copy constructor prevents throwing network_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 - ; - -#if (defined(__MWERKS__) && __MWERKS__<=0x3207) || (defined(_MSC_VER) && _MSC_VER<=1310) - public: -#else - private: - - template - friend E const & exception_detail::set_info( E const &, throw_function const & ); - - template - friend E const & exception_detail::set_info( E const &, throw_file const & ); - - template - friend E const & exception_detail::set_info( E const &, throw_line const & ); - - template - friend E const & exception_detail::set_info( E const &, error_info const & ); - - friend char const * exception_detail::get_diagnostic_information( exception const &, char 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; - friend void exception_detail::copy_boost_exception( exception *, exception const * ); -#endif - mutable exception_detail::refcount_ptr data_; - mutable char const * throw_function_; - mutable char const * throw_file_; - mutable int throw_line_; - }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - inline - exception:: - ~exception() throw() - { - } - - namespace - exception_detail - { - template - E const & - set_info( E const & x, throw_function const & y ) - { - x.throw_function_=y.v_; - return x; - } - - template - E const & - set_info( E const & x, throw_file const & y ) - { - x.throw_file_=y.v_; - return x; - } - - template - E const & - set_info( E const & x, throw_line const & y ) - { - x.throw_line_=y.v_; - return x; - } - } - - //////////////////////////////////////////////////////////////////////// - - namespace - exception_detail - { -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - template - struct - error_info_injector: - public T, - public exception - { - explicit - error_info_injector( T const & x ): - T(x) - { - } - - ~error_info_injector() throw() - { - } - }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - struct large_size { char c[256]; }; - large_size dispatch_boost_exception( exception const * ); - - struct small_size { }; - small_size dispatch_boost_exception( void const * ); - - 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(0)))>::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 - { -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - class - clone_base - { - public: - - virtual clone_base const * clone() const = 0; - virtual void rethrow() const = 0; - - virtual - ~clone_base() throw() - { - } - }; -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - inline - void - copy_boost_exception( exception * a, exception const * b ) - { - refcount_ptr data; - if( error_info_container * d=b->data_.get() ) - data = d->clone(); - a->throw_file_ = b->throw_file_; - a->throw_line_ = b->throw_line_; - a->throw_function_ = b->throw_function_; - a->data_ = data; - } - - inline - void - copy_boost_exception( void *, void const * ) - { - } - -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility push (default) -# endif -#endif - template - class - clone_impl: - public T, - public virtual clone_base - { - struct clone_tag { }; - clone_impl( clone_impl const & x, clone_tag ): - T(x) - { - copy_boost_exception(this,&x); - } - - 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,clone_tag()); - } - - void - rethrow() const - { - throw*this; - } - }; - } -#if defined(__GNUC__) -# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) -# pragma GCC visibility pop -# endif -#endif - - template - inline - exception_detail::clone_impl - enable_current_exception( T const & x ) - { - return exception_detail::clone_impl(x); - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/get_error_info.hpp b/src/boost/exception/get_error_info.hpp deleted file mode 100644 index 19d0ecba..00000000 --- a/src/boost/exception/get_error_info.hpp +++ /dev/null @@ -1,130 +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_1A590226753311DD9E4CCF6156D89593 -#define UUID_1A590226753311DD9E4CCF6156D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include - -namespace -network_boost - { - namespace - exception_detail - { - template - struct - get_info - { - static - typename ErrorInfo::value_type * - get( exception const & x ) - { - if( exception_detail::error_info_container * c=x.data_.get() ) - if( shared_ptr eib = c->get(BOOST_EXCEPTION_STATIC_TYPEID(ErrorInfo)) ) - { -#ifndef BOOST_NO_RTTI - BOOST_ASSERT( 0!=dynamic_cast(eib.get()) ); -#endif - ErrorInfo * w = static_cast(eib.get()); - return &w->value(); - } - return 0; - } - }; - - template <> - struct - get_info - { - static - char const * * - get( exception const & x ) - { - return x.throw_function_ ? &x.throw_function_ : 0; - } - }; - - template <> - struct - get_info - { - static - char const * * - get( exception const & x ) - { - return x.throw_file_ ? &x.throw_file_ : 0; - } - }; - - template <> - struct - get_info - { - static - int * - get( exception const & x ) - { - return x.throw_line_!=-1 ? &x.throw_line_ : 0; - } - }; - - template - struct - get_error_info_return_type - { - typedef R * type; - }; - - template - struct - get_error_info_return_type - { - typedef R const * type; - }; - } - -#ifdef BOOST_NO_RTTI - template - inline - typename ErrorInfo::value_type const * - get_error_info( network_boost::exception const & x ) - { - return exception_detail::get_info::get(x); - } - template - inline - typename ErrorInfo::value_type * - get_error_info( network_boost::exception & x ) - { - return exception_detail::get_info::get(x); - } -#else - template - inline - typename exception_detail::get_error_info_return_type::type - get_error_info( E & some_exception ) - { - if( exception const * x = dynamic_cast(&some_exception) ) - return exception_detail::get_info::get(*x); - else - return 0; - } -#endif - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/info.hpp b/src/boost/exception/info.hpp deleted file mode 100644 index 7c7e191e..00000000 --- a/src/boost/exception/info.hpp +++ /dev/null @@ -1,198 +0,0 @@ -//Copyright (c) 2006-2010 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_8D22C4CA9CC811DCAA9133D256D89593 -#define UUID_8D22C4CA9CC811DCAA9133D256D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include -#include -#include -#include - -namespace -network_boost - { - template - inline - std::string - error_info_name( error_info const & x ) - { - return tag_type_name(); - } - - template - inline - std::string - to_string( error_info const & x ) - { - return '[' + error_info_name(x) + "] = " + to_string_stub(x.value()) + '\n'; - } - - template - inline - error_info:: - error_info( value_type const & value ): - value_(value) - { - } - - template - inline - error_info:: - ~error_info() throw() - { - } - - template - inline - std::string - error_info:: - name_value_string() const - { - return to_string_stub(*this); - } - - namespace - exception_detail - { - class - error_info_container_impl: - public error_info_container - { - public: - - error_info_container_impl(): - count_(0) - { - } - - ~error_info_container_impl() throw() - { - } - - void - set( shared_ptr const & x, type_info_ const & typeid_ ) - { - BOOST_ASSERT(x); - info_[typeid_] = x; - diagnostic_info_str_.clear(); - } - - shared_ptr - get( type_info_ const & ti ) const - { - error_info_map::const_iterator i=info_.find(ti); - if( info_.end()!=i ) - { - shared_ptr const & p = i->second; -#ifndef BOOST_NO_RTTI - BOOST_ASSERT( *BOOST_EXCEPTION_DYNAMIC_TYPEID(*p).type_==*ti.type_ ); -#endif - return p; - } - return shared_ptr(); - } - - char const * - diagnostic_information( char const * header ) const - { - if( header ) - { - std::ostringstream tmp; - tmp << header; - for( error_info_map::const_iterator i=info_.begin(),end=info_.end(); i!=end; ++i ) - { - error_info_base const & x = *i->second; - tmp << x.name_value_string(); - } - tmp.str().swap(diagnostic_info_str_); - } - return diagnostic_info_str_.c_str(); - } - - private: - - friend class network_boost::exception; - - typedef std::map< type_info_, shared_ptr > error_info_map; - error_info_map info_; - mutable std::string diagnostic_info_str_; - mutable int count_; - - error_info_container_impl( error_info_container_impl const & ); - error_info_container_impl & operator=( error_info_container const & ); - - void - add_ref() const - { - ++count_; - } - - bool - release() const - { - if( --count_ ) - return false; - else - { - delete this; - return true; - } - } - - refcount_ptr - clone() const - { - refcount_ptr p; - error_info_container_impl * c=new error_info_container_impl; - p.adopt(c); - c->info_ = info_; - return p; - } - }; - - template - inline - E const & - set_info( E const & x, error_info const & v ) - { - typedef error_info error_info_tag_t; - shared_ptr p( new error_info_tag_t(v) ); - exception_detail::error_info_container * c=x.data_.get(); - if( !c ) - x.data_.adopt(c=new exception_detail::error_info_container_impl); - c->set(p,BOOST_EXCEPTION_STATIC_TYPEID(error_info_tag_t)); - return x; - } - - template - struct - derives_boost_exception - { - enum e { value = (sizeof(dispatch_boost_exception((T*)0))==sizeof(large_size)) }; - }; - } - - template - inline - typename enable_if,E const &>::type - operator<<( E const & x, error_info const & v ) - { - return exception_detail::set_info(x,v); - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/info_tuple.hpp b/src/boost/exception/info_tuple.hpp deleted file mode 100644 index 2737a5ec..00000000 --- a/src/boost/exception/info_tuple.hpp +++ /dev/null @@ -1,100 +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_63EE924290FB11DC87BB856555D89593 -#define UUID_63EE924290FB11DC87BB856555D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include - -namespace -network_boost - { - template < - class E > - inline - E const & - operator<<( - E const & x, - tuple< > const & v ) - { - return x; - } - - template < - class E, - class Tag1,class T1 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info > const & v ) - { - return x << v.template get<0>(); - } - - template < - class E, - class Tag1,class T1, - class Tag2,class T2 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info, - error_info > const & v ) - { - return x << v.template get<0>() << v.template get<1>(); - } - - template < - class E, - class Tag1,class T1, - class Tag2,class T2, - class Tag3,class T3 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info, - error_info, - error_info > const & v ) - { - return x << v.template get<0>() << v.template get<1>() << v.template get<2>(); - } - - template < - class E, - class Tag1,class T1, - class Tag2,class T2, - class Tag3,class T3, - class Tag4,class T4 > - inline - E const & - operator<<( - E const & x, - tuple< - error_info, - error_info, - error_info, - error_info > const & v ) - { - return x << v.template get<0>() << v.template get<1>() << v.template get<2>() << v.template get<3>(); - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/to_string.hpp b/src/boost/exception/to_string.hpp deleted file mode 100644 index c44593c0..00000000 --- a/src/boost/exception/to_string.hpp +++ /dev/null @@ -1,88 +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_7E48761AD92811DC9011477D56D89593 -#define UUID_7E48761AD92811DC9011477D56D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include - -namespace -network_boost - { - template - std::string to_string( std::pair const & ); - std::string to_string( std::exception const & ); - - namespace - to_string_detail - { - template - typename disable_if,char>::type to_string( T const & ); - using network_boost::to_string; - - template - struct has_to_string_impl; - - template - struct - has_to_string_impl - { - enum e { value=1 }; - }; - - template - struct - has_to_string_impl - { - static T const & f(); - enum e { value=1!=sizeof(to_string(f())) }; - }; - } - - template - inline - typename enable_if,std::string>::type - to_string( T const & x ) - { - std::ostringstream out; - out << x; - return out.str(); - } - - template - struct - has_to_string - { - enum e { value=to_string_detail::has_to_string_impl::value>::value }; - }; - - template - inline - std::string - to_string( std::pair const & x ) - { - return std::string("(") + to_string(x.first) + ',' + to_string(x.second) + ')'; - } - - inline - std::string - to_string( std::exception const & x ) - { - return x.what(); - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception/to_string_stub.hpp b/src/boost/exception/to_string_stub.hpp deleted file mode 100644 index df430e06..00000000 --- a/src/boost/exception/to_string_stub.hpp +++ /dev/null @@ -1,117 +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_E788439ED9F011DCB181F25B55D89593 -#define UUID_E788439ED9F011DCB181F25B55D89593 -#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma GCC system_header -#endif -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(push,1) -#endif - -#include -#include -#include - -namespace -network_boost - { - namespace - exception_detail - { - template - struct - to_string_dispatcher - { - template - static - std::string - convert( T const & x, Stub ) - { - return to_string(x); - } - }; - - template <> - struct - to_string_dispatcher - { - template - static - std::string - convert( T const & x, Stub s ) - { - return s(x); - } - - template - static - std::string - convert( T const & x, std::string s ) - { - return s; - } - - template - static - std::string - convert( T const & x, char const * s ) - { - BOOST_ASSERT(s!=0); - return s; - } - }; - - namespace - to_string_dispatch - { - template - inline - std::string - dispatch( T const & x, Stub s ) - { - return to_string_dispatcher::value>::convert(x,s); - } - } - - template - inline - std::string - string_stub_dump( T const & x ) - { - return "[ " + exception_detail::object_hex_dump(x) + " ]"; - } - } - - template - inline - std::string - to_string_stub( T const & x ) - { - return exception_detail::to_string_dispatch::dispatch(x,&exception_detail::string_stub_dump); - } - - template - inline - std::string - to_string_stub( T const & x, Stub s ) - { - return exception_detail::to_string_dispatch::dispatch(x,s); - } - - template - inline - std::string - to_string_stub( std::pair const & x, Stub s ) - { - return std::string("(") + to_string_stub(x.first,s) + ',' + to_string_stub(x.second,s) + ')'; - } - } - -#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS) -#pragma warning(pop) -#endif -#endif diff --git a/src/boost/exception_ptr.hpp b/src/boost/exception_ptr.hpp deleted file mode 100644 index d48cce9d..00000000 --- a/src/boost/exception_ptr.hpp +++ /dev/null @@ -1,11 +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_FA5836A2CADA11DC8CD47C8555D89593 -#define UUID_FA5836A2CADA11DC8CD47C8555D89593 - -#include - -#endif diff --git a/src/boost/function.hpp b/src/boost/function.hpp deleted file mode 100644 index b72842bb..00000000 --- a/src/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 - -// Older Visual Age C++ version do not handle the file iteration well -#if BOOST_WORKAROUND(__IBMCPP__, >= 500) && BOOST_WORKAROUND(__IBMCPP__, < 800) -# 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/src/boost/function/detail/function_iterate.hpp b/src/boost/function/detail/function_iterate.hpp deleted file mode 100644 index 5370b36a..00000000 --- a/src/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/src/boost/function/detail/gen_maybe_include.pl b/src/boost/function/detail/gen_maybe_include.pl deleted file mode 100644 index d0629205..00000000 --- a/src/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/src/boost/function/detail/maybe_include.hpp b/src/boost/function/detail/maybe_include.hpp deleted file mode 100644 index 92f71bb2..00000000 --- a/src/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/src/boost/function/detail/prologue.hpp b/src/boost/function/detail/prologue.hpp deleted file mode 100644 index 53d0f05c..00000000 --- a/src/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/src/boost/function/function0.hpp b/src/boost/function/function0.hpp deleted file mode 100644 index 65a02e5f..00000000 --- a/src/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/src/boost/function/function1.hpp b/src/boost/function/function1.hpp deleted file mode 100644 index 90897151..00000000 --- a/src/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/src/boost/function/function10.hpp b/src/boost/function/function10.hpp deleted file mode 100644 index 65627248..00000000 --- a/src/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/src/boost/function/function2.hpp b/src/boost/function/function2.hpp deleted file mode 100644 index dc8bf975..00000000 --- a/src/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/src/boost/function/function3.hpp b/src/boost/function/function3.hpp deleted file mode 100644 index 19d1a49d..00000000 --- a/src/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/src/boost/function/function4.hpp b/src/boost/function/function4.hpp deleted file mode 100644 index f3349e2d..00000000 --- a/src/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/src/boost/function/function5.hpp b/src/boost/function/function5.hpp deleted file mode 100644 index a1305eb5..00000000 --- a/src/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/src/boost/function/function6.hpp b/src/boost/function/function6.hpp deleted file mode 100644 index 1f609149..00000000 --- a/src/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/src/boost/function/function7.hpp b/src/boost/function/function7.hpp deleted file mode 100644 index 68542ed4..00000000 --- a/src/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/src/boost/function/function8.hpp b/src/boost/function/function8.hpp deleted file mode 100644 index cf2c3766..00000000 --- a/src/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/src/boost/function/function9.hpp b/src/boost/function/function9.hpp deleted file mode 100644 index 590e0883..00000000 --- a/src/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/src/boost/function/function_base.hpp b/src/boost/function/function_base.hpp deleted file mode 100644 index 0ca9180b..00000000 --- a/src/boost/function/function_base.hpp +++ /dev/null @@ -1,896 +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 -#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_STD_TYPEINFO -// 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( BOOST_NO_TYPEID ) -# define BOOST_FUNCTION_COMPARE_TYPE_ID(X,Y) ((X)==(Y)) -#elif defined(__GNUC__) \ - || 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(__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 // __ICL etc - -# define BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL(Functor,Type) \ - typename ::network_boost::enable_if_c< \ - !(::network_boost::is_integral::value), \ - Type>::type - -namespace network_boost { - namespace detail { - namespace function { - class X; - - /** - * A buffer used to store small function objects in - * network_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 detail::sp_typeinfo* 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 (HACK - I'm making data at - // least as big as the things above to avoid a placement-new - // error we're getting with gcc6. Not sure if that makes this - // comment now irrelevant) - mutable char data[sizeof(bound_memfunc_ptr_t)]; - }; - - /** - * 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 = in_buffer.obj_ref; - return; - - case move_functor_tag: - out_buffer.obj_ref = in_buffer.obj_ref; - 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 detail::sp_typeinfo& 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, BOOST_SP_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 = &BOOST_SP_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 network_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) - { - } - - functor_wrapper(const functor_wrapper& f) : - F(static_cast(f)), - A(static_cast(f)) - { - } - }; - - /** - * 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 network_boost::detail::sp_typeinfo& check_type - = *out_buffer.type.type; - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_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 = &BOOST_SP_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); - void *address = &out_buffer.data; - new (address) functor_type(*in_functor); - - if (op == move_functor_tag) { - functor_type* f = reinterpret_cast(&in_buffer.data); - (void)f; // suppress warning about the value of f not being used (MSVC) - f->~Functor(); - } - } else if (op == destroy_functor_tag) { - // Some compilers (Borland, vc6, ...) are unhappy with ~functor_type. - functor_type* f = reinterpret_cast(&out_buffer.data); - (void)f; // suppress warning about the value of f not being used (MSVC) - f->~Functor(); - } else if (op == check_functor_type_tag) { - const detail::sp_typeinfo& check_type - = *out_buffer.type.type; - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_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 = &BOOST_SP_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. - // jewillco: Changing this to static_cast because GCC 2.95.3 is - // obsolete. - const functor_type* f = - static_cast(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 detail::sp_typeinfo& check_type - = *out_buffer.type.type; - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_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 = &BOOST_SP_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 = &BOOST_SP_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 = - static_cast(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 detail::sp_typeinfo& check_type - = *out_buffer.type.type; - if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, BOOST_SP_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 = &BOOST_SP_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 = &BOOST_SP_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 - * network_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 BOOST_SP_TYPEID(void) - if this is empty. */ - const detail::sp_typeinfo& target_type() const - { - if (!vtable) return BOOST_SP_TYPEID(void); - - detail::function::function_buffer type; - get_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 = &BOOST_SP_TYPEID(Functor); - type_result.type.const_qualified = is_const::value; - type_result.type.volatile_qualified = is_volatile::value; - get_vtable()->manager(functor, type_result, - detail::function::check_functor_type_tag); - return static_cast(type_result.obj_ptr); - } - - template - const Functor* target() const - { - if (!vtable) return 0; - - detail::function::function_buffer type_result; - type_result.type.type = &BOOST_SP_TYPEID(Functor); - type_result.type.const_qualified = true; - type_result.type.volatile_qualified = is_volatile::value; - get_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 static_cast(type_result.obj_ptr); - } - - template - bool contains(const F& f) const - { - if (const F* fp = this->template target()) - { - 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* get_vtable() const { - return reinterpret_cast( - reinterpret_cast(vtable) & ~static_cast(0x01)); - } - - bool has_trivial_copy_and_destroy() const { - return reinterpret_cast(vtable) & 0x01; - } - - detail::function::vtable_base* vtable; - mutable detail::function::function_buffer functor; -}; - -/** - * The bad_function_call exception class is thrown when a network_boost::function - * object is invoked - */ -class bad_function_call : public std::runtime_error -{ -public: - bad_function_call() : std::runtime_error("call to empty network_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 network_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 network_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 network_boost - -#undef BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL -#undef BOOST_FUNCTION_COMPARE_TYPE_ID - -#if defined(BOOST_MSVC) -# pragma warning( pop ) -#endif - -#endif // BOOST_FUNCTION_BASE_HEADER diff --git a/src/boost/function/function_fwd.hpp b/src/boost/function/function_fwd.hpp deleted file mode 100644 index 49634bc0..00000000 --- a/src/boost/function/function_fwd.hpp +++ /dev/null @@ -1,69 +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. -// network_boost::python::objects::function has to be seen by the compiler before the -// network_boost::function class template. -namespace network_boost { namespace python { namespace objects { - class function; -}}} -#endif - -#if defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) \ - || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540) -# define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX -#endif - -namespace network_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/src/boost/function/function_template.hpp b/src/boost/function/function_template.hpp deleted file mode 100644 index 7004c7d5..00000000 --- a/src/boost/function/function_template.hpp +++ /dev/null @@ -1,1191 +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 -#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) - -#ifdef BOOST_NO_CXX11_RVALUE_REFERENCES -# define BOOST_FUNCTION_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, a) -#else -# include -# define BOOST_FUNCTION_ARG(J,I,D) ::network_boost::forward< BOOST_PP_CAT(T,I) >(BOOST_PP_CAT(a,I)) -# define BOOST_FUNCTION_ARGS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG,BOOST_PP_EMPTY) -#endif - -#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 network_boost::detail::function::unusable -# define BOOST_FUNCTION_RETURN(X) X; return BOOST_FUNCTION_VOID_RETURN_TYPE () -#endif - -namespace network_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 network_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(network_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 network_boost::function instance. This - * structure must be an aggregate so that we can use static - * initialization in network_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) const - { - 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) const - { - typedef typename get_function_tag::type tag; - return assign_to_a(f, functor, a, tag()); - } - - void clear(function_buffer& functor) const - { - 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) const - { - this->clear(functor); - if (f) { - // should be a reinterpret cast, but some compilers insist - // on giving cv-qualifiers to free functions - functor.func_ptr = reinterpret_cast(f); - return true; - } else { - return false; - } - } - template - bool - assign_to_a(FunctionPtr f, function_buffer& functor, Allocator, function_ptr_tag) const - { - 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) const - { - // 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(network_boost::mem_fn(f), functor); - return true; - } else { - return false; - } - } - template - bool assign_to_a(MemberPtr f, function_buffer& functor, Allocator a, member_ptr_tag) const - { - // 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(network_boost::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_) const - { - void *address = &functor.data; - new (address) FunctionObj(f); - } - template - void - assign_functor_a(FunctionObj f, function_buffer& functor, Allocator, mpl::true_) const - { - 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_) const - { - functor.obj_ptr = new FunctionObj(f); - } - template - void - assign_functor_a(FunctionObj f, function_buffer& functor, Allocator a, mpl::false_) const - { - 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) const - { - if (!network_boost::detail::function::has_empty_target(network_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) const - { - if (!network_boost::detail::function::has_empty_target(network_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) const - { - 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; - } - template - bool - assign_to_a(const reference_wrapper& f, - function_buffer& functor, Allocator, function_obj_ref_tag) const - { - 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 network_boost::detail::function::function_return_type::type - result_type; -#endif // BOOST_NO_VOID_RETURNS - - private: - typedef network_boost::detail::function::BOOST_FUNCTION_VTABLE< - R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS> - vtable_type; - - vtable_type* get_vtable() const { - return reinterpret_cast( - reinterpret_cast(vtable) & ~static_cast(0x01)); - } - - struct clear_type {}; - - public: - BOOST_STATIC_CONSTANT(int, args = BOOST_FUNCTION_NUM_ARGS); - - // add signature for network_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 network_boost::enable_if_c< - !(is_integral::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 network_boost::enable_if_c< - !(is_integral::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); - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - BOOST_FUNCTION_FUNCTION(BOOST_FUNCTION_FUNCTION&& f) : function_base() - { - this->move_assign(f); - } -#endif - - ~BOOST_FUNCTION_FUNCTION() { clear(); } - - result_type operator()(BOOST_FUNCTION_PARMS) const - { - if (this->empty()) - network_boost::throw_exception(bad_function_call()); - - return get_vtable()->invoker - (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS); - } - - // 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 network_boost::enable_if_c< - !(is_integral::value), - BOOST_FUNCTION_FUNCTION&>::type -#else - BOOST_FUNCTION_FUNCTION& -#endif - operator=(Functor BOOST_FUNCTION_TARGET_FIX(const &) f) - { - this->clear(); - BOOST_TRY { - this->assign_to(f); - } BOOST_CATCH (...) { - vtable = 0; - BOOST_RETHROW; - } - BOOST_CATCH_END - return *this; - } - template - void assign(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a) - { - this->clear(); - BOOST_TRY{ - this->assign_to_a(f,a); - } BOOST_CATCH (...) { - vtable = 0; - BOOST_RETHROW; - } - BOOST_CATCH_END - } - -#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(); - BOOST_TRY { - this->assign_to_own(f); - } BOOST_CATCH (...) { - vtable = 0; - BOOST_RETHROW; - } - BOOST_CATCH_END - return *this; - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - // Move assignment from another BOOST_FUNCTION_FUNCTION - BOOST_FUNCTION_FUNCTION& operator=(BOOST_FUNCTION_FUNCTION&& f) - { - - if (&f == this) - return *this; - - this->clear(); - BOOST_TRY { - this->move_assign(f); - } BOOST_CATCH (...) { - vtable = 0; - BOOST_RETHROW; - } - BOOST_CATCH_END - return *this; - } -#endif - - 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) { - if (!this->has_trivial_copy_and_destroy()) - get_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; - if (this->has_trivial_copy_and_destroy()) - this->functor = f.functor; - else - get_vtable()->base.manager(f.functor, this->functor, - network_boost::detail::function::clone_functor_tag); - } - } - - template - void assign_to(Functor f) - { - using network_boost::detail::function::vtable_base; - - typedef typename network_boost::detail::function::get_function_tag::type tag; - typedef network_boost::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 const vtable_type stored_vtable = - { { &manager_type::manage }, &invoker_type::invoke }; - - if (stored_vtable.assign_to(f, functor)) { - std::size_t value = reinterpret_cast(&stored_vtable.base); - // coverity[pointless_expression]: suppress coverity warnings on apparant if(const). - if (network_boost::has_trivial_copy_constructor::value && - network_boost::has_trivial_destructor::value && - network_boost::detail::function::function_allows_small_object_optimization::value) - value |= static_cast(0x01); - vtable = reinterpret_cast(value); - } else - vtable = 0; - } - - template - void assign_to_a(Functor f,Allocator a) - { - using network_boost::detail::function::vtable_base; - - typedef typename network_boost::detail::function::get_function_tag::type tag; - typedef network_boost::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 const vtable_type stored_vtable = - { { &manager_type::manage }, &invoker_type::invoke }; - - if (stored_vtable.assign_to_a(f, functor, a)) { - std::size_t value = reinterpret_cast(&stored_vtable.base); - // coverity[pointless_expression]: suppress coverity warnings on apparant if(const). - if (network_boost::has_trivial_copy_constructor::value && - network_boost::has_trivial_destructor::value && - network_boost::detail::function::function_allows_small_object_optimization::value) - value |= static_cast(0x01); - vtable = reinterpret_cast(value); - } 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; - - BOOST_TRY { - if (!f.empty()) { - this->vtable = f.vtable; - if (this->has_trivial_copy_and_destroy()) - this->functor = f.functor; - else - get_vtable()->base.manager(f.functor, this->functor, - network_boost::detail::function::move_functor_tag); - f.vtable = 0; - } else { - clear(); - } - } BOOST_CATCH (...) { - vtable = 0; - BOOST_RETHROW; - } - BOOST_CATCH_END - } - }; - - 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); - } - -// Poison comparisons between network_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 network_boost::enable_if_c< - !(is_integral::value), - int>::type = 0 -#endif - ) : - base_type(f) - { - } - template - function(Functor f, Allocator a -#ifndef BOOST_NO_SFINAE - ,typename network_boost::enable_if_c< - !(is_integral::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)){} - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - // Move constructors - function(self_type&& f): base_type(static_cast(f)){} - function(base_type&& f): base_type(static_cast(f)){} -#endif - - self_type& operator=(const self_type& f) - { - self_type(f).swap(*this); - return *this; - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - self_type& operator=(self_type&& f) - { - self_type(static_cast(f)).swap(*this); - return *this; - } -#endif - - template -#ifndef BOOST_NO_SFINAE - typename network_boost::enable_if_c< - !(is_integral::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; - } - -#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES - self_type& operator=(base_type&& f) - { - self_type(static_cast(f)).swap(*this); - return *this; - } -#endif -}; - -#undef BOOST_FUNCTION_PARTIAL_SPEC -#endif // have partial specialization - -} // end namespace network_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 -#ifdef BOOST_FUNCTION_ARG -# undef BOOST_FUNCTION_ARG -#endif -#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/src/boost/function_equal.hpp b/src/boost/function_equal.hpp deleted file mode 100644 index 659bd446..00000000 --- a/src/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 network_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 network_boost - -#endif // BOOST_FUNCTION_EQUAL_HPP diff --git a/src/boost/functional/hash.hpp b/src/boost/functional/hash.hpp deleted file mode 100644 index 44983f19..00000000 --- a/src/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/src/boost/functional/hash/detail/float_functions.hpp b/src/boost/functional/hash/detail/float_functions.hpp deleted file mode 100644 index 0568740c..00000000 --- a/src/boost/functional/hash/detail/float_functions.hpp +++ /dev/null @@ -1,336 +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(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include - -// Set BOOST_HASH_CONFORMANT_FLOATS to 1 for libraries known to have -// sufficiently good floating point support to not require any -// workarounds. -// -// When set to 0, the library tries to automatically -// use the best available implementation. This normally works well, but -// breaks when ambiguities are created by odd namespacing of the functions. -// -// Note that if this is set to 0, the library should still take full -// advantage of the platform's floating point support. - -#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif defined(__LIBCOMO__) -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) -// Rogue Wave library: -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif defined(_LIBCPP_VERSION) -// libc++ -# define BOOST_HASH_CONFORMANT_FLOATS 1 -#elif defined(__GLIBCPP__) || defined(__GLIBCXX__) -// GNU libstdc++ 3 -# if defined(__GNUC__) && __GNUC__ >= 4 -# define BOOST_HASH_CONFORMANT_FLOATS 1 -# else -# define BOOST_HASH_CONFORMANT_FLOATS 0 -# endif -#elif defined(__STL_CONFIG_H) -// generic SGI STL -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif defined(__MSL_CPP__) -// MSL standard lib: -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif defined(__IBMCPP__) -// VACPP std lib (probably conformant for much earlier version). -# if __IBMCPP__ >= 1210 -# define BOOST_HASH_CONFORMANT_FLOATS 1 -# else -# define BOOST_HASH_CONFORMANT_FLOATS 0 -# endif -#elif defined(MSIPL_COMPILE_H) -// Modena C++ standard library -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) -// Dinkumware Library (this has to appear after any possible replacement libraries): -# if _CPPLIB_VER >= 405 -# define BOOST_HASH_CONFORMANT_FLOATS 1 -# else -# define BOOST_HASH_CONFORMANT_FLOATS 0 -# endif -#else -# define BOOST_HASH_CONFORMANT_FLOATS 0 -#endif - -#if BOOST_HASH_CONFORMANT_FLOATS - -// The standard library is known to be compliant, so don't use the -// configuration mechanism. - -namespace network_boost { - namespace hash_detail { - template - struct call_ldexp { - typedef Float float_type; - inline Float operator()(Float x, int y) const { - return std::ldexp(x, y); - } - }; - - template - struct call_frexp { - typedef Float float_type; - inline Float operator()(Float x, int* y) const { - return std::frexp(x, y); - } - }; - - template - struct select_hash_type - { - typedef Float type; - }; - } -} - -#else // BOOST_HASH_CONFORMANT_FLOATS == 0 - -// 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. -// -// The following tries to automatically detect which are available. - -namespace network_boost { - namespace hash_detail { - - // Returned by dummy versions of the float functions. - - struct not_found { - // Implicitly convertible to float and long double in order to avoid - // a compile error when the dummy float functions are used. - - inline operator float() const { return 0; } - inline operator long double() const { return 0; } - }; - - // A type for detecting the return type of functions. - - template struct is; - template <> struct is { char x[10]; }; - template <> struct is { char x[20]; }; - template <> struct is { char x[30]; }; - template <> struct is { char x[40]; }; - - // Used to convert the return type of a function to a type for sizeof. - - template is float_type(T); - - // call_ldexp - // - // This will get specialized for float and long double - - template struct call_ldexp - { - typedef double float_type; - - inline double operator()(double a, int b) const - { - using namespace std; - return ldexp(a, b); - } - }; - - // call_frexp - // - // This will get specialized for float and long double - - template struct call_frexp - { - typedef double float_type; - - inline double operator()(double a, int* b) const - { - using namespace std; - return frexp(a, b); - } - }; - } -} - -// A namespace for dummy functions to detect when the actual function we want -// isn't available. ldexpl, ldexpf etc. might be added tby the macros below. -// -// AFAICT these have to be outside of the boost namespace, as if they're in -// the boost namespace they'll always be preferable to any other function -// (since the arguments are built in types, ADL can't be used). - -namespace network_boost_hash_detect_float_functions { - template network_boost::hash_detail::not_found ldexp(Float, int); - template network_boost::hash_detail::not_found frexp(Float, int*); -} - -// Macros for generating specializations of call_ldexp and call_frexp. -// -// check_cpp and check_c99 check if the C++ or C99 functions are available. -// -// Then the call_* functions select an appropriate implementation. -// -// I used c99_func in a few places just to get a unique name. -// -// Important: when using 'using namespace' at namespace level, include as -// little as possible in that namespace, as Visual C++ has an odd bug which -// can cause the namespace to be imported at the global level. This seems to -// happen mainly when there's a template in the same namesapce. - -#define BOOST_HASH_CALL_FLOAT_FUNC(cpp_func, c99_func, type1, type2) \ -namespace network_boost_hash_detect_float_functions { \ - template \ - network_boost::hash_detail::not_found c99_func(Float, type2); \ -} \ - \ -namespace network_boost { \ - namespace hash_detail { \ - namespace c99_func##_detect { \ - using namespace std; \ - using namespace network_boost_hash_detect_float_functions; \ - \ - struct check { \ - static type1 x; \ - static type2 y; \ - BOOST_STATIC_CONSTANT(bool, cpp = \ - sizeof(float_type(cpp_func(x,y))) \ - == sizeof(is)); \ - BOOST_STATIC_CONSTANT(bool, c99 = \ - sizeof(float_type(c99_func(x,y))) \ - == sizeof(is)); \ - }; \ - } \ - \ - template \ - struct call_c99_##c99_func : \ - network_boost::hash_detail::call_##cpp_func {}; \ - \ - template <> \ - struct call_c99_##c99_func { \ - typedef type1 float_type; \ - \ - template \ - inline type1 operator()(type1 a, T b) const \ - { \ - using namespace std; \ - return c99_func(a, b); \ - } \ - }; \ - \ - template \ - struct call_cpp_##c99_func : \ - call_c99_##c99_func< \ - ::network_boost::hash_detail::c99_func##_detect::check::c99 \ - > {}; \ - \ - template <> \ - struct call_cpp_##c99_func { \ - typedef type1 float_type; \ - \ - template \ - inline type1 operator()(type1 a, T b) const \ - { \ - using namespace std; \ - return cpp_func(a, b); \ - } \ - }; \ - \ - template <> \ - struct call_##cpp_func : \ - call_cpp_##c99_func< \ - ::network_boost::hash_detail::c99_func##_detect::check::cpp \ - > {}; \ - } \ -} - -#define BOOST_HASH_CALL_FLOAT_MACRO(cpp_func, c99_func, type1, type2) \ -namespace network_boost { \ - namespace hash_detail { \ - \ - template <> \ - struct call_##cpp_func { \ - typedef type1 float_type; \ - inline type1 operator()(type1 x, type2 y) const { \ - return c99_func(x, y); \ - } \ - }; \ - } \ -} - -#if defined(ldexpf) -BOOST_HASH_CALL_FLOAT_MACRO(ldexp, ldexpf, float, int) -#else -BOOST_HASH_CALL_FLOAT_FUNC(ldexp, ldexpf, float, int) -#endif - -#if defined(ldexpl) -BOOST_HASH_CALL_FLOAT_MACRO(ldexp, ldexpl, long double, int) -#else -BOOST_HASH_CALL_FLOAT_FUNC(ldexp, ldexpl, long double, int) -#endif - -#if defined(frexpf) -BOOST_HASH_CALL_FLOAT_MACRO(frexp, frexpf, float, int*) -#else -BOOST_HASH_CALL_FLOAT_FUNC(frexp, frexpf, float, int*) -#endif - -#if defined(frexpl) -BOOST_HASH_CALL_FLOAT_MACRO(frexp, frexpl, long double, int*) -#else -BOOST_HASH_CALL_FLOAT_FUNC(frexp, frexpl, long double, int*) -#endif - -#undef BOOST_HASH_CALL_FLOAT_MACRO -#undef BOOST_HASH_CALL_FLOAT_FUNC - - -namespace network_boost -{ - namespace hash_detail - { - template - struct select_hash_type_impl { - typedef double type; - }; - - template <> - struct select_hash_type_impl { - typedef float type; - }; - - template <> - struct select_hash_type_impl { - typedef long double type; - }; - - - // select_hash_type - // - // If there is support for a particular floating point type, use that - // otherwise use double (there's always support for double). - - template - struct select_hash_type : select_hash_type_impl< - BOOST_DEDUCED_TYPENAME call_ldexp::float_type, - BOOST_DEDUCED_TYPENAME call_frexp::float_type - > {}; - } -} - -#endif // BOOST_HASH_CONFORMANT_FLOATS - -#endif diff --git a/src/boost/functional/hash/detail/hash_float.hpp b/src/boost/functional/hash/detail/hash_float.hpp deleted file mode 100644 index a5f5da49..00000000 --- a/src/boost/functional/hash/detail/hash_float.hpp +++ /dev/null @@ -1,271 +0,0 @@ - -// Copyright 2005-2012 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 - -#include -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -#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 - -// Can we use fpclassify? - -// STLport -#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) -#define BOOST_HASH_USE_FPCLASSIFY 0 - -// 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 1 -# else -# define BOOST_HASH_USE_FPCLASSIFY 0 -# endif - -// Everything else -#else -# define BOOST_HASH_USE_FPCLASSIFY 0 -#endif - -namespace network_boost -{ - namespace hash_detail - { - inline void hash_float_combine(std::size_t& seed, std::size_t value) - { - seed ^= value + (seed<<6) + (seed>>2); - } - - //////////////////////////////////////////////////////////////////////// - // Binary hash function - // - // Only used for floats with known iec559 floats, and certain values in - // numeric_limits - - inline std::size_t hash_binary(char* ptr, std::size_t length) - { - std::size_t seed = 0; - - if (length >= sizeof(std::size_t)) { - std::memcpy(&seed, ptr, sizeof(std::size_t)); - length -= sizeof(std::size_t); - ptr += sizeof(std::size_t); - - while(length >= sizeof(std::size_t)) { - std::size_t buffer = 0; - std::memcpy(&buffer, ptr, sizeof(std::size_t)); - hash_float_combine(seed, buffer); - length -= sizeof(std::size_t); - ptr += sizeof(std::size_t); - } - } - - if (length > 0) { - std::size_t buffer = 0; - std::memcpy(&buffer, ptr, length); - hash_float_combine(seed, buffer); - } - - return seed; - } - - template - struct enable_binary_hash - { - BOOST_STATIC_CONSTANT(bool, value = - std::numeric_limits::is_iec559 && - std::numeric_limits::digits == digits && - std::numeric_limits::radix == 2 && - std::numeric_limits::max_exponent == max_exponent); - }; - - template - inline std::size_t float_hash_impl(Float v, - BOOST_DEDUCED_TYPENAME network_boost::enable_if_c< - enable_binary_hash::value, - std::size_t>::type) - { - return hash_binary((char*) &v, 4); - } - - - template - inline std::size_t float_hash_impl(Float v, - BOOST_DEDUCED_TYPENAME network_boost::enable_if_c< - enable_binary_hash::value, - std::size_t>::type) - { - return hash_binary((char*) &v, 8); - } - - template - inline std::size_t float_hash_impl(Float v, - BOOST_DEDUCED_TYPENAME network_boost::enable_if_c< - enable_binary_hash::value, - std::size_t>::type) - { - return hash_binary((char*) &v, 10); - } - - template - inline std::size_t float_hash_impl(Float v, - BOOST_DEDUCED_TYPENAME network_boost::enable_if_c< - enable_binary_hash::value, - std::size_t>::type) - { - return hash_binary((char*) &v, 16); - } - - //////////////////////////////////////////////////////////////////////// - // Portable hash function - // - // Used as a fallback when the binary hash function isn't supported. - - template - inline std::size_t float_hash_impl2(T v) - { - network_boost::hash_detail::call_frexp frexp; - network_boost::hash_detail::call_ldexp ldexp; - - int exp = 0; - - v = frexp(v, &exp); - - // A postive value is easier to hash, so combine the - // sign with the exponent and use the absolute value. - if(v < 0) { - v = -v; - exp += limits::max_exponent - - limits::min_exponent; - } - - v = ldexp(v, limits::digits); - std::size_t seed = static_cast(v); - v -= static_cast(seed); - - // ceiling(digits(T) * log2(radix(T))/ digits(size_t)) - 1; - std::size_t const length - = (limits::digits * - network_boost::static_log2::radix>::value - + limits::digits - 1) - / limits::digits; - - for(std::size_t i = 0; i != length; ++i) - { - v = ldexp(v, limits::digits); - std::size_t part = static_cast(v); - v -= static_cast(part); - hash_float_combine(seed, part); - } - - hash_float_combine(seed, exp); - - return seed; - } - -#if !defined(BOOST_HASH_DETAIL_TEST_WITHOUT_GENERIC) - template - inline std::size_t float_hash_impl(T v, ...) - { - typedef BOOST_DEDUCED_TYPENAME select_hash_type::type type; - return float_hash_impl2(static_cast(v)); - } -#endif - } -} - -#if BOOST_HASH_USE_FPCLASSIFY - -#include - -namespace network_boost -{ - namespace hash_detail - { - template - inline std::size_t float_hash_value(T v) - { -#if defined(fpclassify) - switch (fpclassify(v)) -#elif BOOST_HASH_CONFORMANT_FLOATS - switch (std::fpclassify(v)) -#else - using namespace std; - switch (fpclassify(v)) -#endif - { - 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, 0); - default: - BOOST_ASSERT(0); - return 0; - } - } - } -} - -#else // !BOOST_HASH_USE_FPCLASSIFY - -namespace network_boost -{ - namespace hash_detail - { - template - inline bool is_zero(T v) - { -#if !defined(__GNUC__) - return v == 0; -#else - // GCC's '-Wfloat-equal' will complain about comparing - // v to 0, but because it disables warnings for system - // headers it won't complain if you use std::equal_to to - // compare with 0. Resulting in this silliness: - return std::equal_to()(v, 0); -#endif - } - - template - inline std::size_t float_hash_value(T v) - { - return network_boost::hash_detail::is_zero(v) ? 0 : float_hash_impl(v, 0); - } - } -} - -#endif // BOOST_HASH_USE_FPCLASSIFY - -#undef BOOST_HASH_USE_FPCLASSIFY - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif - -#endif diff --git a/src/boost/functional/hash/detail/limits.hpp b/src/boost/functional/hash/detail/limits.hpp deleted file mode 100644 index be68e795..00000000 --- a/src/boost/functional/hash/detail/limits.hpp +++ /dev/null @@ -1,62 +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) -// -// On some platforms std::limits gives incorrect values for long double. -// This tries to work around them. - -#if !defined(BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER) -#define BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER - -#include -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include - -// On OpenBSD, numeric_limits is not reliable for long doubles, but -// the macros defined in are and support long double when STLport -// doesn't. - -#if defined(__OpenBSD__) || defined(_STLP_NO_LONG_DOUBLE) -#include -#endif - -namespace network_boost -{ - namespace hash_detail - { - template - struct limits : std::numeric_limits {}; - -#if defined(__OpenBSD__) || defined(_STLP_NO_LONG_DOUBLE) - 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); -#if defined(_STLP_NO_LONG_DOUBLE) - BOOST_STATIC_CONSTANT(int, radix = FLT_RADIX); -#endif - }; -#endif // __OpenBSD__ - } -} - -#endif diff --git a/src/boost/functional/hash/extensions.hpp b/src/boost/functional/hash/extensions.hpp deleted file mode 100644 index f4f96e71..00000000 --- a/src/boost/functional/hash/extensions.hpp +++ /dev/null @@ -1,318 +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. - -// This implements the extensions to the standard. -// It's undocumented, so you shouldn't use it.... - -#if !defined(BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP) -#define BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP - -#include -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include -#include -#include -#include -#include -#include - -#if !defined(BOOST_NO_CXX11_HDR_ARRAY) -# include -#endif - -#if !defined(BOOST_NO_CXX11_HDR_TUPLE) -# include -#endif - -#if !defined(BOOST_NO_CXX11_HDR_MEMORY) -# include -#endif - -#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) -#include -#endif - -namespace network_boost -{ - 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&); - - template - std::size_t hash_value(std::pair const& v) - { - std::size_t seed = 0; - network_boost::hash_combine(seed, v.first); - network_boost::hash_combine(seed, v.second); - return seed; - } - - template - std::size_t hash_value(std::vector const& v) - { - return network_boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::list const& v) - { - return network_boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::deque const& v) - { - return network_boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::set const& v) - { - return network_boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::multiset const& v) - { - return network_boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::map const& v) - { - return network_boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::multimap const& v) - { - return network_boost::hash_range(v.begin(), v.end()); - } - - template - std::size_t hash_value(std::complex const& v) - { - network_boost::hash hasher; - std::size_t seed = hasher(v.imag()); - seed ^= hasher(v.real()) + (seed<<6) + (seed>>2); - return seed; - } - -#if !defined(BOOST_NO_CXX11_HDR_ARRAY) - template - std::size_t hash_value(std::array const& v) - { - return network_boost::hash_range(v.begin(), v.end()); - } -#endif - -#if !defined(BOOST_NO_CXX11_HDR_TUPLE) - namespace hash_detail { - template - inline typename network_boost::enable_if_c<(I == std::tuple_size::value), - void>::type - hash_combine_tuple(std::size_t&, T const&) - { - } - - template - inline typename network_boost::enable_if_c<(I < std::tuple_size::value), - void>::type - hash_combine_tuple(std::size_t& seed, T const& v) - { - network_boost::hash_combine(seed, std::get(v)); - network_boost::hash_detail::hash_combine_tuple(seed, v); - } - - template - inline std::size_t hash_tuple(T const& v) - { - std::size_t seed = 0; - network_boost::hash_detail::hash_combine_tuple<0>(seed, v); - return seed; - } - } - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - template - inline std::size_t hash_value(std::tuple const& v) - { - return network_boost::hash_detail::hash_tuple(v); - } -#else - - inline std::size_t hash_value(std::tuple<> const& v) - { - return network_boost::hash_detail::hash_tuple(v); - } - -# define BOOST_HASH_TUPLE_F(z, n, _) \ - template< \ - BOOST_PP_ENUM_PARAMS_Z(z, n, typename A) \ - > \ - inline std::size_t hash_value(std::tuple< \ - BOOST_PP_ENUM_PARAMS_Z(z, n, A) \ - > const& v) \ - { \ - return network_boost::hash_detail::hash_tuple(v); \ - } - - BOOST_PP_REPEAT_FROM_TO(1, 11, BOOST_HASH_TUPLE_F, _) -# undef BOOST_HASH_TUPLE_F -#endif - -#endif - -#if !defined(BOOST_NO_CXX11_SMART_PTR) - template - inline std::size_t hash_value(std::shared_ptr const& x) { - return network_boost::hash_value(x.get()); - } - - template - inline std::size_t hash_value(std::unique_ptr const& x) { - return network_boost::hash_value(x.get()); - } -#endif - - // - // call_hash_impl - // - - // On compilers without function template ordering, this deals with arrays. - -#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 network_boost; - return hash_value(v); - } - }; - }; - - template <> - struct call_hash_impl - { - template - struct inner - { - static std::size_t call(Array const& v) - { - const int size = sizeof(v) / sizeof(*v); - return network_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 - - // - // network_boost::hash - // - - -#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 network_boost::hash_range(val, val+n); - } - }; -#endif - -#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION - - // On compilers without partial specialization, network_boost::hash - // has already been declared to deal with pointers, so just - // need to supply the non-pointer version of hash_impl. - - namespace hash_detail - { - template - struct hash_impl; - - 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 - }; - }; - } -#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION -} - -#endif diff --git a/src/boost/functional/hash/hash.hpp b/src/boost/functional/hash/hash.hpp deleted file mode 100644 index 8ea5e827..00000000 --- a/src/boost/functional/hash/hash.hpp +++ /dev/null @@ -1,559 +0,0 @@ - -// Copyright 2005-2014 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. -// -// This also contains public domain code from MurmurHash. From the -// MurmurHash header: - -// MurmurHash3 was written by Austin Appleby, and is placed in the public -// domain. The author hereby disclaims copyright to this source code. - -#if !defined(BOOST_FUNCTIONAL_HASH_HASH_HPP) -#define BOOST_FUNCTIONAL_HASH_HASH_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) -#include -#endif - -#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) -#include -#endif - -#if defined(BOOST_MSVC) -#pragma warning(push) - -#if BOOST_MSVC >= 1400 -#pragma warning(disable:6295) // Ill-defined for-loop : 'unsigned int' values - // are always of range '0' to '4294967295'. - // Loop executes infinitely. -#endif - -#endif - -#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(_MSC_VER) -# define BOOST_FUNCTIONAL_HASH_ROTL32(x, r) _rotl(x,r) -#else -# define BOOST_FUNCTIONAL_HASH_ROTL32(x, r) (x << r) | (x >> (32 - r)) -#endif - -namespace network_boost -{ - namespace hash_detail - { - struct enable_hash_value { typedef std::size_t type; }; - - template struct basic_numbers {}; - template struct long_numbers; - template struct ulong_numbers; - template struct float_numbers {}; - - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; - -#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) - template <> struct basic_numbers : - network_boost::hash_detail::enable_hash_value {}; -#endif - - // long_numbers is defined like this to allow for separate - // specialization for long_long and int128_type, in case - // they conflict. - template struct long_numbers2 {}; - template struct ulong_numbers2 {}; - template struct long_numbers : long_numbers2 {}; - template struct ulong_numbers : ulong_numbers2 {}; - -#if !defined(BOOST_NO_LONG_LONG) - template <> struct long_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct ulong_numbers : - network_boost::hash_detail::enable_hash_value {}; -#endif - -#if defined(BOOST_HAS_INT128) - template <> struct long_numbers2 : - network_boost::hash_detail::enable_hash_value {}; - template <> struct ulong_numbers2 : - network_boost::hash_detail::enable_hash_value {}; -#endif - - template <> struct float_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct float_numbers : - network_boost::hash_detail::enable_hash_value {}; - template <> struct float_numbers : - network_boost::hash_detail::enable_hash_value {}; - } - - template - typename network_boost::hash_detail::basic_numbers::type hash_value(T); - template - typename network_boost::hash_detail::long_numbers::type hash_value(T); - template - typename network_boost::hash_detail::ulong_numbers::type hash_value(T); - - template - typename network_boost::enable_if, std::size_t>::type - hash_value(T); - -#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 - - template - std::size_t hash_value( - std::basic_string, A> const&); - - template - typename network_boost::hash_detail::float_numbers::type hash_value(T); - -#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) - std::size_t hash_value(std::type_index); -#endif - - // 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; - } - - template - inline void hash_combine_impl(SizeT& seed, SizeT value) - { - seed ^= value + 0x9e3779b9 + (seed<<6) + (seed>>2); - } - - template - inline void hash_combine_impl(network_boost::uint32_t& h1, - network_boost::uint32_t k1) - { - const uint32_t c1 = 0xcc9e2d51; - const uint32_t c2 = 0x1b873593; - - k1 *= c1; - k1 = BOOST_FUNCTIONAL_HASH_ROTL32(k1,15); - k1 *= c2; - - h1 ^= k1; - h1 = BOOST_FUNCTIONAL_HASH_ROTL32(h1,13); - h1 = h1*5+0xe6546b64; - } - - -// Don't define 64-bit hash combine on platforms with 64 bit integers, -// and also not for 32-bit gcc as it warns about the 64-bit constant. -#if !defined(BOOST_NO_INT64_T) && \ - !(defined(__GNUC__) && ULONG_MAX == 0xffffffff) - - template - inline void hash_combine_impl(network_boost::uint64_t& h, - network_boost::uint64_t k) - { - const uint64_t m = UINT64_C(0xc6a4a7935bd1e995); - const int r = 47; - - k *= m; - k ^= k >> r; - k *= m; - - h ^= k; - h *= m; - } - -#endif // BOOST_NO_INT64_T - } - - template - typename network_boost::hash_detail::basic_numbers::type hash_value(T v) - { - return static_cast(v); - } - - template - typename network_boost::hash_detail::long_numbers::type hash_value(T v) - { - return hash_detail::hash_value_signed(v); - } - - template - typename network_boost::hash_detail::ulong_numbers::type hash_value(T v) - { - return hash_detail::hash_value_unsigned(v); - } - - template - typename network_boost::enable_if, std::size_t>::type - hash_value(T v) - { - return static_cast(v); - } - - // 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 - { -#if defined(__VMS) && __INITIAL_POINTER_SIZE == 64 - // for some reason ptrdiff_t on OpenVMS compiler with - // 64 bit is not 64 bit !!! - std::size_t x = static_cast( - reinterpret_cast(v)); -#else - std::size_t x = static_cast( - reinterpret_cast(v)); -#endif - return x + (x >> 3); - } - -#if defined(BOOST_MSVC) -#pragma warning(push) -#if BOOST_MSVC <= 1400 -#pragma warning(disable:4267) // 'argument' : conversion from 'size_t' to - // 'unsigned int', possible loss of data - // A misguided attempt to detect 64-bit - // incompatability. -#endif -#endif - - template - inline void hash_combine(std::size_t& seed, T const& v) - { - network_boost::hash hasher; - return network_boost::hash_detail::hash_combine_impl(seed, hasher(v)); - } - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#endif - - 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) - { - network_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) - { - network_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()); - } - - template - typename network_boost::hash_detail::float_numbers::type hash_value(T v) - { - return network_boost::hash_detail::float_hash_value(v); - } - -#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) - inline std::size_t hash_value(std::type_index v) - { - return v.hash_code(); - } -#endif - - // - // network_boost::hash - // - - // Define the specializations required by the standard. The general purpose - // network_boost::hash is defined later in extensions.hpp if - // BOOST_HASH_NO_EXTENSIONS is not defined. - - // BOOST_HASH_SPECIALIZE - define a specialization for a type which is - // passed by copy. - // - // BOOST_HASH_SPECIALIZE_REF - define a specialization for a type which is - // passed by const reference. - // - // These are undefined later. - -#define BOOST_HASH_SPECIALIZE(type) \ - template <> struct hash \ - : public std::unary_function \ - { \ - std::size_t operator()(type v) const \ - { \ - return network_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 network_boost::hash_value(v); \ - } \ - }; - - 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 - -#if !defined(BOOST_NO_LONG_LONG) - BOOST_HASH_SPECIALIZE(network_boost::long_long_type) - BOOST_HASH_SPECIALIZE(network_boost::ulong_long_type) -#endif - -#if defined(BOOST_HAS_INT128) - BOOST_HASH_SPECIALIZE(network_boost::int128_type) - BOOST_HASH_SPECIALIZE(network_boost::uint128_type) -#endif - -#if !defined(BOOST_NO_CXX11_HDR_TYPEINDEX) - BOOST_HASH_SPECIALIZE(std::type_index) -#endif - -#undef BOOST_HASH_SPECIALIZE -#undef BOOST_HASH_SPECIALIZE_REF - -// Specializing network_boost::hash for pointers. - -#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 network_boost::hash_value(v); -#else - std::size_t x = static_cast( - reinterpret_cast(v)); - - return x + (x >> 3); -#endif - } - }; - -#else - - // For compilers without partial specialization, we define a - // network_boost::hash for all remaining types. But hash_impl is only defined - // for pointers in 'extensions.hpp' - so when BOOST_HASH_NO_EXTENSIONS - // is defined there will still be a compile error for types not supported - // in the standard. - - 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 network_boost::hash_value(val); -#else - std::size_t x = static_cast( - reinterpret_cast(val)); - - return x + (x >> 3); -#endif - } - }; - }; - } - - template struct hash - : public network_boost::hash_detail::hash_impl::value> - ::BOOST_NESTED_TEMPLATE inner - { - }; - -#endif -} - -#undef BOOST_HASH_CHAR_TRAITS -#undef BOOST_FUNCTIONAL_HASH_ROTL32 - -#if defined(BOOST_MSVC) -#pragma warning(pop) -#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/src/boost/functional/hash/hash_fwd.hpp b/src/boost/functional/hash/hash_fwd.hpp deleted file mode 100644 index 53c4d5bd..00000000 --- a/src/boost/functional/hash/hash_fwd.hpp +++ /dev/null @@ -1,36 +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 - -#include -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include -#include - -namespace network_boost -{ - template struct hash; - - template void hash_combine(std::size_t& seed, T const& v); - - 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/src/boost/functional/hash_fwd.hpp b/src/boost/functional/hash_fwd.hpp deleted file mode 100644 index eea90738..00000000 --- a/src/boost/functional/hash_fwd.hpp +++ /dev/null @@ -1,11 +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 -#if defined(BOOST_HAS_PRAGMA_ONCE) -#pragma once -#endif - -#include diff --git a/src/boost/get_pointer.hpp b/src/boost/get_pointer.hpp deleted file mode 100644 index 19f541be..00000000 --- a/src/boost/get_pointer.hpp +++ /dev/null @@ -1,76 +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 - -#include - -// 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 network_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 - -#if !defined( BOOST_NO_AUTO_PTR ) - -#if defined( __GNUC__ ) && (defined( __GXX_EXPERIMENTAL_CXX0X__ ) || (__cplusplus >= 201103L)) -#if defined( BOOST_GCC ) -#if BOOST_GCC >= 40600 -#define BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS -#endif // BOOST_GCC >= 40600 -#elif defined( __clang__ ) && defined( __has_warning ) -#if __has_warning("-Wdeprecated-declarations") -#define BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS -#endif // __has_warning("-Wdeprecated-declarations") -#endif -#endif // defined( __GNUC__ ) && (defined( __GXX_EXPERIMENTAL_CXX0X__ ) || (__cplusplus >= 201103L)) - -#if defined( BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS ) -// Disable libstdc++ warnings about std::auto_ptr being deprecated in C++11 mode -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#define BOOST_CORE_DETAIL_DISABLED_DEPRECATED_WARNINGS -#endif - -template T * get_pointer(std::auto_ptr const& p) -{ - return p.get(); -} - -#if defined( BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS ) -#pragma GCC diagnostic pop -#undef BOOST_CORE_DETAIL_DISABLE_LIBSTDCXX_DEPRECATED_WARNINGS -#endif - -#endif // !defined( BOOST_NO_AUTO_PTR ) - -#if !defined( BOOST_NO_CXX11_SMART_PTR ) - -template T * get_pointer( std::unique_ptr const& p ) -{ - return p.get(); -} - -template T * get_pointer( std::shared_ptr const& p ) -{ - return p.get(); -} - -#endif - -} // namespace network_boost - -#endif // GET_POINTER_DWA20021219_HPP diff --git a/src/boost/integer.hpp b/src/boost/integer.hpp deleted file mode 100644 index d4e3cd5e..00000000 --- a/src/boost/integer.hpp +++ /dev/null @@ -1,262 +0,0 @@ -// boost integer.hpp header file -------------------------------------------// - -// Copyright Beman Dawes and Daryle Walker 1999. Distributed under the Boost -// Software License, Version 1.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 -// 22 Sep 01 Added value-based integer templates. (Daryle Walker) -// 01 Apr 01 Modified to use new header. (John Maddock) -// 30 Jul 00 Add typename syntax fix (Jens Maurer) -// 28 Aug 99 Initial version - -#ifndef BOOST_INTEGER_HPP -#define BOOST_INTEGER_HPP - -#include // self include - -#include // for network_boost::::network_boost::integer_traits -#include // for ::std::numeric_limits -#include // for network_boost::int64_t and BOOST_NO_INTEGRAL_INT64_T -#include - -// -// We simply cannot include this header on gcc without getting copious warnings of the kind: -// -// boost/integer.hpp:77:30: warning: use of C99 long long integer constant -// -// And yet there is no other reasonable implementation, so we declare this a system header -// to suppress these warnings. -// -#if defined(__GNUC__) && (__GNUC__ >= 4) -#pragma GCC system_header -#endif - -namespace network_boost -{ - - // Helper templates ------------------------------------------------------// - - // fast integers from least integers - // int_fast_t<> works correctly for unsigned too, in spite of the name. - template< typename LeastInt > - struct int_fast_t - { - typedef LeastInt fast; - typedef fast type; - }; // imps may specialize - - namespace detail{ - - // convert category to type - template< int Category > struct int_least_helper {}; // default is empty - template< int Category > struct uint_least_helper {}; // default is empty - - // specializatons: 1=long, 2=int, 3=short, 4=signed char, - // 6=unsigned long, 7=unsigned int, 8=unsigned short, 9=unsigned char - // no specializations for 0 and 5: requests for a type > long are in error -#ifdef BOOST_HAS_LONG_LONG - template<> struct int_least_helper<1> { typedef network_boost::long_long_type least; }; -#elif defined(BOOST_HAS_MS_INT64) - template<> struct int_least_helper<1> { typedef __int64 least; }; -#endif - template<> struct int_least_helper<2> { typedef long least; }; - template<> struct int_least_helper<3> { typedef int least; }; - template<> struct int_least_helper<4> { typedef short least; }; - template<> struct int_least_helper<5> { typedef signed char least; }; -#ifdef BOOST_HAS_LONG_LONG - template<> struct uint_least_helper<1> { typedef network_boost::ulong_long_type least; }; -#elif defined(BOOST_HAS_MS_INT64) - template<> struct uint_least_helper<1> { typedef unsigned __int64 least; }; -#endif - template<> struct uint_least_helper<2> { typedef unsigned long least; }; - template<> struct uint_least_helper<3> { typedef unsigned int least; }; - template<> struct uint_least_helper<4> { typedef unsigned short least; }; - template<> struct uint_least_helper<5> { typedef unsigned char least; }; - - template - struct exact_signed_base_helper{}; - template - struct exact_unsigned_base_helper{}; - - template <> struct exact_signed_base_helper { typedef signed char exact; }; - template <> struct exact_unsigned_base_helper { typedef unsigned char exact; }; -#if USHRT_MAX != UCHAR_MAX - template <> struct exact_signed_base_helper { typedef short exact; }; - template <> struct exact_unsigned_base_helper { typedef unsigned short exact; }; -#endif -#if UINT_MAX != USHRT_MAX - template <> struct exact_signed_base_helper { typedef int exact; }; - template <> struct exact_unsigned_base_helper { typedef unsigned int exact; }; -#endif -#if ULONG_MAX != UINT_MAX && ( !defined __TI_COMPILER_VERSION__ || \ - ( __TI_COMPILER_VERSION__ >= 7000000 && !defined __TI_40BIT_LONG__ ) ) - template <> struct exact_signed_base_helper { typedef long exact; }; - template <> struct exact_unsigned_base_helper { typedef unsigned long exact; }; -#endif -#if defined(BOOST_HAS_LONG_LONG) &&\ - ((defined(ULLONG_MAX) && (ULLONG_MAX != ULONG_MAX)) ||\ - (defined(ULONG_LONG_MAX) && (ULONG_LONG_MAX != ULONG_MAX)) ||\ - (defined(ULONGLONG_MAX) && (ULONGLONG_MAX != ULONG_MAX)) ||\ - (defined(_ULLONG_MAX) && (_ULLONG_MAX != ULONG_MAX))) - template <> struct exact_signed_base_helper { typedef network_boost::long_long_type exact; }; - template <> struct exact_unsigned_base_helper { typedef network_boost::ulong_long_type exact; }; -#endif - - - } // namespace detail - - // integer templates specifying number of bits ---------------------------// - - // signed - template< int Bits > // bits (including sign) required - struct int_t : public network_boost::detail::exact_signed_base_helper - { - BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(network_boost::intmax_t) * CHAR_BIT), - "No suitable signed integer type with the requested number of bits is available."); - typedef typename network_boost::detail::int_least_helper - < -#ifdef BOOST_HAS_LONG_LONG - (Bits <= (int)(sizeof(network_boost::long_long_type) * CHAR_BIT)) + -#else - 1 + -#endif - (Bits-1 <= ::std::numeric_limits::digits) + - (Bits-1 <= ::std::numeric_limits::digits) + - (Bits-1 <= ::std::numeric_limits::digits) + - (Bits-1 <= ::std::numeric_limits::digits) - >::least least; - typedef typename int_fast_t::type fast; - }; - - // unsigned - template< int Bits > // bits required - struct uint_t : public network_boost::detail::exact_unsigned_base_helper - { - BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(network_boost::uintmax_t) * CHAR_BIT), - "No suitable unsigned integer type with the requested number of bits is available."); -#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) && defined(BOOST_NO_INTEGRAL_INT64_T) - // It's really not clear why this workaround should be needed... shrug I guess! JM - BOOST_STATIC_CONSTANT(int, s = - 6 + - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits)); - typedef typename detail::int_least_helper< ::network_boost::uint_t::s>::least least; -#else - typedef typename network_boost::detail::uint_least_helper - < -#ifdef BOOST_HAS_LONG_LONG - (Bits <= (int)(sizeof(network_boost::long_long_type) * CHAR_BIT)) + -#else - 1 + -#endif - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits) + - (Bits <= ::std::numeric_limits::digits) - >::least least; -#endif - typedef typename int_fast_t::type fast; - // int_fast_t<> works correctly for unsigned too, in spite of the name. - }; - - // integer templates specifying extreme value ----------------------------// - - // signed -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< network_boost::long_long_type MaxValue > // maximum value to require support -#else - template< long MaxValue > // maximum value to require support -#endif - struct int_max_value_t - { - typedef typename network_boost::detail::int_least_helper - < -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG) - (MaxValue <= ::network_boost::integer_traits::const_max) + -#else - 1 + -#endif - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) - >::least least; - typedef typename int_fast_t::type fast; - }; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< network_boost::long_long_type MinValue > // minimum value to require support -#else - template< long MinValue > // minimum value to require support -#endif - struct int_min_value_t - { - typedef typename network_boost::detail::int_least_helper - < -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG) - (MinValue >= ::network_boost::integer_traits::const_min) + -#else - 1 + -#endif - (MinValue >= ::network_boost::integer_traits::const_min) + - (MinValue >= ::network_boost::integer_traits::const_min) + - (MinValue >= ::network_boost::integer_traits::const_min) + - (MinValue >= ::network_boost::integer_traits::const_min) - >::least least; - typedef typename int_fast_t::type fast; - }; - - // unsigned -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< network_boost::ulong_long_type MaxValue > // minimum value to require support -#else - template< unsigned long MaxValue > // minimum value to require support -#endif - struct uint_value_t - { -#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) - // It's really not clear why this workaround should be needed... shrug I guess! JM -#if defined(BOOST_NO_INTEGRAL_INT64_T) - BOOST_STATIC_CONSTANT(unsigned, which = - 1 + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max)); - typedef typename detail::int_least_helper< ::network_boost::uint_value_t::which>::least least; -#else // BOOST_NO_INTEGRAL_INT64_T - BOOST_STATIC_CONSTANT(unsigned, which = - 1 + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max)); - typedef typename detail::uint_least_helper< ::network_boost::uint_value_t::which>::least least; -#endif // BOOST_NO_INTEGRAL_INT64_T -#else - typedef typename network_boost::detail::uint_least_helper - < -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) - (MaxValue <= ::network_boost::integer_traits::const_max) + -#else - 1 + -#endif - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) + - (MaxValue <= ::network_boost::integer_traits::const_max) - >::least least; -#endif - typedef typename int_fast_t::type fast; - }; - - -} // namespace network_boost - -#endif // BOOST_INTEGER_HPP diff --git a/src/boost/integer/static_log2.hpp b/src/boost/integer/static_log2.hpp deleted file mode 100644 index 1bb0cb6f..00000000 --- a/src/boost/integer/static_log2.hpp +++ /dev/null @@ -1,127 +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/integer_fwd.hpp" // for network_boost::intmax_t - -namespace network_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 network_boost::static_log2_argument_type argument_type; - typedef network_boost::static_log2_result_type result_type; - - template - struct choose_initial_n { - - BOOST_STATIC_CONSTANT(bool, 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 { - - BOOST_STATIC_CONSTANT(bool, 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 - // ---------------------------------------- - - 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/src/boost/integer_fwd.hpp b/src/boost/integer_fwd.hpp deleted file mode 100644 index bc1275a5..00000000 --- a/src/boost/integer_fwd.hpp +++ /dev/null @@ -1,187 +0,0 @@ -// Boost integer_fwd.hpp header file ---------------------------------------// - -// (C) Copyright Dave Abrahams and Daryle Walker 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. - -#ifndef BOOST_INTEGER_FWD_HPP -#define BOOST_INTEGER_FWD_HPP - -#include // for UCHAR_MAX, etc. -#include // for std::size_t - -#include // for BOOST_NO_INTRINSIC_WCHAR_T -#include // for std::numeric_limits -#include // For intmax_t - - -namespace network_boost -{ - -#ifdef BOOST_NO_INTEGRAL_INT64_T - typedef unsigned long static_log2_argument_type; - typedef int static_log2_result_type; - typedef long static_min_max_signed_type; - typedef unsigned long static_min_max_unsigned_type; -#else - typedef network_boost::uintmax_t static_min_max_unsigned_type; - typedef network_boost::intmax_t static_min_max_signed_type; - typedef network_boost::uintmax_t static_log2_argument_type; - typedef int static_log2_result_type; -#endif - -// From ------------------------------------------------// - -// Only has typedefs or using statements, with #conditionals - - -// From -----------------------------------------// - -template < class T > - class integer_traits; - -template < > - class integer_traits< bool >; - -template < > - class integer_traits< char >; - -template < > - class integer_traits< signed char >; - -template < > - class integer_traits< unsigned char >; - -#ifndef BOOST_NO_INTRINSIC_WCHAR_T -template < > - class integer_traits< wchar_t >; -#endif - -template < > - class integer_traits< short >; - -template < > - class integer_traits< unsigned short >; - -template < > - class integer_traits< int >; - -template < > - class integer_traits< unsigned int >; - -template < > - class integer_traits< long >; - -template < > - class integer_traits< unsigned long >; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG) -template < > -class integer_traits< ::network_boost::long_long_type>; - -template < > -class integer_traits< ::network_boost::ulong_long_type >; -#elif !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_MS_INT64) -template < > -class integer_traits<__int64>; - -template < > -class integer_traits; -#endif - - -// From ------------------------------------------------// - -template < typename LeastInt > - struct int_fast_t; - -template< int Bits > - struct int_t; - -template< int Bits > - struct uint_t; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< network_boost::long_long_type MaxValue > // maximum value to require support -#else - template< long MaxValue > // maximum value to require support -#endif - struct int_max_value_t; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< network_boost::long_long_type MinValue > // minimum value to require support -#else - template< long MinValue > // minimum value to require support -#endif - struct int_min_value_t; - -#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) - template< network_boost::ulong_long_type MaxValue > // maximum value to require support -#else - template< unsigned long MaxValue > // maximum value to require support -#endif - struct uint_value_t; - - -// From -----------------------------------// - -template < std::size_t Bit > - struct high_bit_mask_t; - -template < std::size_t Bits > - struct low_bits_mask_t; - -template < > - struct low_bits_mask_t< ::std::numeric_limits::digits >; - -// From ------------------------------------// - -template - struct static_log2; - -template <> struct static_log2<0u>; - - -// From ---------------------------------// - -template - struct static_signed_min; - -template - struct static_signed_max; - -template - struct static_unsigned_min; - -template - struct static_unsigned_max; - - -// From - -#ifdef BOOST_NO_INTEGRAL_INT64_T - typedef unsigned long static_gcd_type; -#else - typedef network_boost::uintmax_t static_gcd_type; -#endif - -template < static_gcd_type Value1, static_gcd_type Value2 > - struct static_gcd; -template < static_gcd_type Value1, static_gcd_type Value2 > - struct static_lcm; - - -// From - -template < typename IntegerType > - class gcd_evaluator; -template < typename IntegerType > - class lcm_evaluator; - - -} // namespace network_boost - - -#endif // BOOST_INTEGER_FWD_HPP diff --git a/src/boost/integer_traits.hpp b/src/boost/integer_traits.hpp deleted file mode 100644 index 31e976f3..00000000 --- a/src/boost/integer_traits.hpp +++ /dev/null @@ -1,256 +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$ - * - * 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 - -// -// We simply cannot include this header on gcc without getting copious warnings of the kind: -// -// ../../../boost/integer_traits.hpp:164:66: warning: use of C99 long long integer constant -// -// And yet there is no other reasonable implementation, so we declare this a system header -// to suppress these warnings. -// -#if defined(__GNUC__) && (__GNUC__ >= 4) -#pragma GCC system_header -#endif - -namespace network_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 -#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< ::network_boost::long_long_type> - : public std::numeric_limits< ::network_boost::long_long_type>, - public detail::integer_traits_base< ::network_boost::long_long_type, LLONG_MIN, LLONG_MAX> -{ }; - -template<> -class integer_traits< ::network_boost::ulong_long_type> - : public std::numeric_limits< ::network_boost::ulong_long_type>, - public detail::integer_traits_base< ::network_boost::ulong_long_type, 0, ULLONG_MAX> -{ }; - -#elif defined(ULONG_LONG_MAX) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::network_boost::long_long_type> : public std::numeric_limits< ::network_boost::long_long_type>, public detail::integer_traits_base< ::network_boost::long_long_type, LONG_LONG_MIN, LONG_LONG_MAX>{ }; -template<> -class integer_traits< ::network_boost::ulong_long_type> - : public std::numeric_limits< ::network_boost::ulong_long_type>, - public detail::integer_traits_base< ::network_boost::ulong_long_type, 0, ULONG_LONG_MAX> -{ }; - -#elif defined(ULONGLONG_MAX) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::network_boost::long_long_type> - : public std::numeric_limits< ::network_boost::long_long_type>, - public detail::integer_traits_base< ::network_boost::long_long_type, LONGLONG_MIN, LONGLONG_MAX> -{ }; - -template<> -class integer_traits< ::network_boost::ulong_long_type> - : public std::numeric_limits< ::network_boost::ulong_long_type>, - public detail::integer_traits_base< ::network_boost::ulong_long_type, 0, ULONGLONG_MAX> -{ }; - -#elif defined(_LLONG_MAX) && defined(_C2) && defined(BOOST_HAS_LONG_LONG) - -template<> -class integer_traits< ::network_boost::long_long_type> - : public std::numeric_limits< ::network_boost::long_long_type>, - public detail::integer_traits_base< ::network_boost::long_long_type, -_LLONG_MAX - _C2, _LLONG_MAX> -{ }; - -template<> -class integer_traits< ::network_boost::ulong_long_type> - : public std::numeric_limits< ::network_boost::ulong_long_type>, - public detail::integer_traits_base< ::network_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< ::network_boost::long_long_type> - : public std::numeric_limits< ::network_boost::long_long_type>, - public detail::integer_traits_base< ::network_boost::long_long_type, (1LL << (sizeof(::network_boost::long_long_type) * CHAR_BIT - 1)), ~(1LL << (sizeof(::network_boost::long_long_type) * CHAR_BIT - 1))> -{ }; - -template<> -class integer_traits< ::network_boost::ulong_long_type> - : public std::numeric_limits< ::network_boost::ulong_long_type>, - public detail::integer_traits_base< ::network_boost::ulong_long_type, 0, ~0uLL> -{ }; - -#elif defined(BOOST_HAS_MS_INT64) - -template<> -class integer_traits< __int64> - : public std::numeric_limits< __int64>, - public detail::integer_traits_base< __int64, _I64_MIN, _I64_MAX> -{ }; - -template<> -class integer_traits< unsigned __int64> - : public std::numeric_limits< unsigned __int64>, - public detail::integer_traits_base< unsigned __int64, 0, _UI64_MAX> -{ }; - -#endif -#endif - -} // namespace network_boost - -#endif /* BOOST_INTEGER_TRAITS_HPP */ - - - diff --git a/src/boost/intrusive/detail/config_begin.hpp b/src/boost/intrusive/detail/config_begin.hpp deleted file mode 100644 index ad3bdd22..00000000 --- a/src/boost/intrusive/detail/config_begin.hpp +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2006-2013 -// -// Distributed under the Boost Software License, Version 1.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/intrusive for documentation. -// -///////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_CONFIG_HPP -#include -#endif - -#ifdef BOOST_MSVC - - #pragma warning (push) - // - //'function' : resolved overload was found by argument-dependent lookup - //A function found by argument-dependent lookup (Koenig lookup) was eventually - //chosen by overload resolution. - // - //In Visual C++ .NET and earlier compilers, a different function would have - //been called. To pick the original function, use an explicitly qualified name. - // - - //warning C4275: non dll-interface class 'x' used as base for - //dll-interface class 'Y' - #pragma warning (disable : 4275) - //warning C4251: 'x' : class 'y' needs to have dll-interface to - //be used by clients of class 'z' - #pragma warning (disable : 4251) - #pragma warning (disable : 4675) - #pragma warning (disable : 4996) - #pragma warning (disable : 4503) - #pragma warning (disable : 4284) // odd return type for operator-> - #pragma warning (disable : 4244) // possible loss of data - #pragma warning (disable : 4521) ////Disable "multiple copy constructors specified" - #pragma warning (disable : 4522) - #pragma warning (disable : 4146) - #pragma warning (disable : 4267) //conversion from 'X' to 'Y', possible loss of data - #pragma warning (disable : 4127) //conditional expression is constant - #pragma warning (disable : 4706) //assignment within conditional expression - #pragma warning (disable : 4541) //'typeid' used on polymorphic type 'network_boost::exception' with /GR- - #pragma warning (disable : 4512) //'typeid' used on polymorphic type 'network_boost::exception' with /GR- -#endif - -//#define BOOST_INTRUSIVE_USE_ITERATOR_FACADE -//#define BOOST_INTRUSIVE_USE_ITERATOR_ENABLE_IF_CONVERTIBLE diff --git a/src/boost/intrusive/detail/config_end.hpp b/src/boost/intrusive/detail/config_end.hpp deleted file mode 100644 index a081443e..00000000 --- a/src/boost/intrusive/detail/config_end.hpp +++ /dev/null @@ -1,15 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2006-2013 -// -// Distributed under the Boost Software License, Version 1.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/intrusive for documentation. -// -///////////////////////////////////////////////////////////////////////////// - -#if defined BOOST_MSVC - #pragma warning (pop) -#endif diff --git a/src/boost/intrusive/detail/has_member_function_callable_with.hpp b/src/boost/intrusive/detail/has_member_function_callable_with.hpp deleted file mode 100644 index 317023d7..00000000 --- a/src/boost/intrusive/detail/has_member_function_callable_with.hpp +++ /dev/null @@ -1,340 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2014-2014. Distributed under the Boost -// Software License, Version 1.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/container for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_CALLABLE_WITH_HPP -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_CALLABLE_WITH_HPP - -//Mark that we don't support 0 arg calls due to compiler ICE in GCC 3.4/4.0/4.1 and -//wrong SFINAE for GCC 4.2/4.3 -#if defined(__GNUC__) && !defined(__clang__) && ((__GNUC__*100 + __GNUC_MINOR__*10) >= 340) && ((__GNUC__*100 + __GNUC_MINOR__*10) <= 430) - #define BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED -#elif defined(BOOST_INTEL) && (BOOST_INTEL < 1200 ) - #define BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED -#endif -#include -#include -#include - -namespace network_boost_intrusive_hmfcw { - -typedef char yes_type; -struct no_type{ char dummy[2]; }; - -#if defined(BOOST_NO_CXX11_DECLTYPE) - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - -template -struct make_dontcare -{ - typedef dont_care type; -}; - -#endif - -struct dont_care -{ - dont_care(...); -}; - -struct private_type -{ - static private_type p; - private_type const &operator,(int) const; -}; - -template -no_type is_private_type(T const &); -yes_type is_private_type(private_type const &); - -#endif //#if defined(BOOST_NO_CXX11_DECLTYPE) - -#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - -template struct remove_cv { typedef T type; }; -template struct remove_cv { typedef T type; }; -template struct remove_cv { typedef T type; }; -template struct remove_cv { typedef T type; }; - -#endif - -} //namespace network_boost_intrusive_hmfcw { - -#endif //BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_CALLABLE_WITH_HPP - -#ifndef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME - #error "You MUST define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME before including this header!" -#endif - -#ifndef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN - #error "You MUST define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN before including this header!" -#endif - -#ifndef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX - #error "You MUST define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX before including this header!" -#endif - -#if BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX < BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN - #error "BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX value MUST be greater or equal than BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN!" -#endif - -#if BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX == 0 - #define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_COMMA_IF -#else - #define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_COMMA_IF , -#endif - -#ifndef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG - #error "BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG not defined!" -#endif - -#ifndef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END - #error "BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END not defined!" -#endif - -BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_DECLTYPE) - //With decltype and variadic templaes, things are pretty easy - template - struct BOOST_MOVE_CAT(has_member_function_callable_with_,BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - { - template - static decltype(network_boost::move_detail::declval(). - BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME(::network_boost::move_detail::declval()...) - , network_boost_intrusive_hmfcw::yes_type()) Test(U* f); - template - static network_boost_intrusive_hmfcw::no_type Test(...); - static const bool value = sizeof(Test((Fun*)0)) == sizeof(network_boost_intrusive_hmfcw::yes_type); - }; - -#else //defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_NO_CXX11_DECLTYPE) - - ///////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////// - // - // has_member_function_callable_with_impl_XXX - // declaration, special case and 0 arg specializaton - // - ///////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////// - - #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - ///////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////// - // - // has_member_function_callable_with_impl_XXX for 1 to N arguments - // - ///////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////// - - //defined(BOOST_NO_CXX11_DECLTYPE) must be true - template - struct FunWrapTmpl : Fun - { - using Fun::BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME; - network_boost_intrusive_hmfcw::private_type BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME(DontCares...) const; - }; - - template - struct BOOST_MOVE_CAT(has_member_function_callable_with_,BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - { - typedef FunWrapTmpl::type...> FunWrap; - - static bool const value = (sizeof(network_boost_intrusive_hmfcw::no_type) == - sizeof(network_boost_intrusive_hmfcw::is_private_type - ( (::network_boost::move_detail::declval< FunWrap >(). - BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME(::network_boost::move_detail::declval()...), 0) ) - ) - ); - }; - #else //defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - - //Preprocessor must be used to generate specializations instead of variadic templates - - template - class BOOST_MOVE_CAT(has_member_function_named_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - { - struct BaseMixin - { - void BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME(); - }; - - struct Base - : public network_boost_intrusive_hmfcw::remove_cv::type, public BaseMixin - { //Declare the unneeded default constructor as some old compilers wrongly require it with is_convertible - Base(); - }; - template class Helper{}; - - template - static network_boost_intrusive_hmfcw::no_type deduce - (U*, Helper* = 0); - static network_boost_intrusive_hmfcw::yes_type deduce(...); - - public: - static const bool value = sizeof(network_boost_intrusive_hmfcw::yes_type) == sizeof(deduce((Base*)0)); - }; - - ///////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////// - // - // has_member_function_callable_with_impl_XXX specializations - // - ///////////////////////////////////////////////////////// - - template - struct BOOST_MOVE_CAT(has_member_function_callable_with_impl_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME); - - //No BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME member specialization - template - struct BOOST_MOVE_CAT(has_member_function_callable_with_impl_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - - { - static const bool value = false; - }; - - #if BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN == 0 - //0 arg specialization when BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME is present - #if !defined(BOOST_NO_CXX11_DECLTYPE) - - template - struct BOOST_MOVE_CAT(has_member_function_callable_with_impl_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - { - template - static decltype(network_boost::move_detail::declval().BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME() - , network_boost_intrusive_hmfcw::yes_type()) Test(U* f); - - template - static network_boost_intrusive_hmfcw::no_type Test(...); - static const bool value = sizeof(Test((Fun*)0)) == sizeof(network_boost_intrusive_hmfcw::yes_type); - }; - - #else //defined(BOOST_NO_CXX11_DECLTYPE) - - #if !defined(BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED) - - template().BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME(), 0)> - struct BOOST_MOVE_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - { network_boost_intrusive_hmfcw::yes_type dummy[N ? 1 : 2]; }; - - template - struct BOOST_MOVE_CAT(has_member_function_callable_with_impl_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - { - template static BOOST_MOVE_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - Test(BOOST_MOVE_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)*); - template static network_boost_intrusive_hmfcw::no_type Test(...); - static const bool value = sizeof(Test< Fun >(0)) == sizeof(network_boost_intrusive_hmfcw::yes_type); - }; - - #else //defined(BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED) - - template - struct BOOST_MOVE_CAT(has_member_function_callable_with_impl_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - {//GCC [3.4-4.3) gives ICE when instantiating the 0 arg version so it is not supported. - static const bool value = true; - }; - - #endif//!defined(BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED) - #endif //!defined(BOOST_NO_CXX11_DECLTYPE) - #endif //#if BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN == 0 - - #if BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX > 0 - //1 to N arg specialization when BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME is present - //Declare some unneeded default constructor as some old compilers wrongly require it with is_convertible - #if defined(BOOST_NO_CXX11_DECLTYPE) - #define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_ITERATION(N)\ - \ - template\ - struct BOOST_MOVE_CAT(FunWrap##N, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)\ - : Fun\ - {\ - using Fun::BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME;\ - BOOST_MOVE_CAT(FunWrap##N, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)();\ - network_boost_intrusive_hmfcw::private_type BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME\ - (BOOST_MOVE_REPEAT##N(network_boost_intrusive_hmfcw::dont_care)) const;\ - };\ - \ - template\ - struct BOOST_MOVE_CAT(has_member_function_callable_with_impl_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)\ - {\ - static bool const value = (sizeof(network_boost_intrusive_hmfcw::no_type) == sizeof(network_boost_intrusive_hmfcw::is_private_type\ - ( (::network_boost::move_detail::declval\ - < BOOST_MOVE_CAT(FunWrap##N, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) >().\ - BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME(BOOST_MOVE_DECLVAL##N), 0) )\ - )\ - );\ - };\ - // - #else - #define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_ITERATION(N)\ - template\ - struct BOOST_MOVE_CAT(has_member_function_callable_with_impl_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)\ - \ - {\ - template\ - static decltype(network_boost::move_detail::declval().\ - BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME(BOOST_MOVE_DECLVAL##N)\ - , network_boost_intrusive_hmfcw::yes_type()) Test(U* f);\ - template\ - static network_boost_intrusive_hmfcw::no_type Test(...);\ - static const bool value = sizeof(Test((Fun*)0)) == sizeof(network_boost_intrusive_hmfcw::yes_type);\ - };\ - // - #endif - //////////////////////////////////// - // Build and invoke BOOST_MOVE_ITERATE_NTOM macrofunction, note that N has to be at least 1 - //////////////////////////////////// - #if BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN == 0 - #define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_ITERATE_MIN 1 - #else - #define BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_ITERATE_MIN BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN - #endif - BOOST_MOVE_CAT - (BOOST_MOVE_CAT(BOOST_MOVE_CAT(BOOST_MOVE_ITERATE_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_ITERATE_MIN), TO) - ,BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX) - (BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_ITERATION) - #undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_ITERATION - #undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_ITERATE_MIN - //////////////////////////////////// - // End of BOOST_MOVE_ITERATE_NTOM - //////////////////////////////////// - #endif //BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX > 0 - - ///////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////// - // - // has_member_function_callable_with_FUNC - // - ///////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////// - - //Otherwise use the preprocessor - template - struct BOOST_MOVE_CAT(has_member_function_callable_with_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - : public BOOST_MOVE_CAT(has_member_function_callable_with_impl_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME) - ::value - BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_COMMA_IF BOOST_MOVE_CAT(BOOST_MOVE_TARG,BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX)> - {}; - #endif //defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) -#endif - -BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END - -//Undef local macros -#undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_COMMA_IF - -//Undef user defined macros -#undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME -#undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MIN -#undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_MAX -#undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_BEG -#undef BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_NS_END diff --git a/src/boost/intrusive/detail/mpl.hpp b/src/boost/intrusive/detail/mpl.hpp deleted file mode 100644 index b764a763..00000000 --- a/src/boost/intrusive/detail/mpl.hpp +++ /dev/null @@ -1,206 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2006-2014 -// (C) Copyright Microsoft Corporation 2014 -// -// Distributed under the Boost Software License, Version 1.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/intrusive for documentation. -// -///////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_INTRUSIVE_DETAIL_MPL_HPP -#define BOOST_INTRUSIVE_DETAIL_MPL_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#include -#include -#include - -namespace network_boost { -namespace intrusive { -namespace detail { - -using network_boost::move_detail::is_same; -using network_boost::move_detail::add_const; -using network_boost::move_detail::remove_const; -using network_boost::move_detail::remove_cv; -using network_boost::move_detail::remove_reference; -using network_boost::move_detail::add_reference; -using network_boost::move_detail::remove_pointer; -using network_boost::move_detail::add_pointer; -using network_boost::move_detail::true_type; -using network_boost::move_detail::false_type; -using network_boost::move_detail::enable_if_c; -using network_boost::move_detail::enable_if; -using network_boost::move_detail::disable_if_c; -using network_boost::move_detail::disable_if; -using network_boost::move_detail::is_convertible; -using network_boost::move_detail::if_c; -using network_boost::move_detail::if_; -using network_boost::move_detail::is_const; -using network_boost::move_detail::identity; -using network_boost::move_detail::alignment_of; -using network_boost::move_detail::is_empty; -using network_boost::move_detail::addressof; -using network_boost::move_detail::integral_constant; -using network_boost::move_detail::enable_if_convertible; -using network_boost::move_detail::disable_if_convertible; -using network_boost::move_detail::bool_; -using network_boost::move_detail::true_; -using network_boost::move_detail::false_; -using network_boost::move_detail::yes_type; -using network_boost::move_detail::no_type; -using network_boost::move_detail::apply; -using network_boost::move_detail::eval_if_c; -using network_boost::move_detail::eval_if; -using network_boost::move_detail::unvoid_ref; -using network_boost::move_detail::add_const_if_c; - -template -struct ls_zeros -{ - static const std::size_t value = (S & std::size_t(1)) ? 0 : (1 + ls_zeros<(S>>1u)>::value); -}; - -template<> -struct ls_zeros<0> -{ - static const std::size_t value = 0; -}; - -template<> -struct ls_zeros<1> -{ - static const std::size_t value = 0; -}; - -// Infrastructure for providing a default type for T::TNAME if absent. -#define BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(TNAME) \ - template \ - struct boost_intrusive_default_type_ ## TNAME \ - { \ - template \ - static char test(int, typename X::TNAME*); \ - \ - template \ - static int test(...); \ - \ - struct DefaultWrap { typedef DefaultType TNAME; }; \ - \ - static const bool value = (1 == sizeof(test(0, 0))); \ - \ - typedef typename \ - ::network_boost::intrusive::detail::if_c \ - ::type::TNAME type; \ - }; \ - // - -#define BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(INSTANTIATION_NS_PREFIX, T, TNAME, TIMPL) \ - typename INSTANTIATION_NS_PREFIX \ - boost_intrusive_default_type_ ## TNAME< T, TIMPL >::type \ -// - -#define BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(TNAME)\ - template \ - struct boost_intrusive_eval_default_type_ ## TNAME \ - { \ - template \ - static char test(int, typename X::TNAME*); \ - \ - template \ - static int test(...); \ - \ - struct DefaultWrap \ - { typedef typename DefaultType::type TNAME; }; \ - \ - static const bool value = (1 == sizeof(test(0, 0))); \ - \ - typedef typename \ - ::network_boost::intrusive::detail::eval_if_c \ - < value \ - , ::network_boost::intrusive::detail::identity \ - , ::network_boost::intrusive::detail::identity \ - >::type::TNAME type; \ - }; \ -// - -#define BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_EVAL_DEFAULT(INSTANTIATION_NS_PREFIX, T, TNAME, TIMPL) \ - typename INSTANTIATION_NS_PREFIX \ - boost_intrusive_eval_default_type_ ## TNAME< T, TIMPL >::type \ -// - -#define BOOST_INTRUSIVE_INTERNAL_STATIC_BOOL_IS_TRUE(TRAITS_PREFIX, TYPEDEF_TO_FIND) \ -template \ -struct TRAITS_PREFIX##_bool\ -{\ - template\ - struct two_or_three {yes_type _[2 + Add];};\ - template static yes_type test(...);\ - template static two_or_three test (int);\ - static const std::size_t value = sizeof(test(0));\ -};\ -\ -template \ -struct TRAITS_PREFIX##_bool_is_true\ -{\ - static const bool value = TRAITS_PREFIX##_bool::value > sizeof(yes_type)*2;\ -};\ -// - -#define BOOST_INTRUSIVE_HAS_STATIC_MEMBER_FUNC_SIGNATURE(TRAITS_NAME, FUNC_NAME) \ - template \ - class TRAITS_NAME \ - { \ - private: \ - template struct helper;\ - template \ - static ::network_boost::intrusive::detail::yes_type test(helper<&T::FUNC_NAME>*); \ - template static ::network_boost::intrusive::detail::no_type test(...); \ - public: \ - static const bool value = sizeof(test(0)) == sizeof(::network_boost::intrusive::detail::yes_type); \ - }; \ -// - -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNC_CALLED(TRAITS_NAME, FUNC_NAME) \ -template \ -struct TRAITS_NAME \ -{ \ - struct BaseMixin \ - { \ - void FUNC_NAME(); \ - }; \ - struct Base : public Type, public BaseMixin { Base(); }; \ - template class Helper{}; \ - template \ - static ::network_boost::intrusive::detail::no_type test(U*, Helper* = 0); \ - static ::network_boost::intrusive::detail::yes_type test(...); \ - static const bool value = sizeof(::network_boost::intrusive::detail::yes_type) == sizeof(test((Base*)(0))); \ -};\ -// - -#define BOOST_INTRUSIVE_HAS_MEMBER_FUNC_CALLED_IGNORE_SIGNATURE(TRAITS_NAME, FUNC_NAME) \ -BOOST_INTRUSIVE_HAS_MEMBER_FUNC_CALLED(TRAITS_NAME##_ignore_signature, FUNC_NAME) \ -\ -template \ -struct TRAITS_NAME \ - : public TRAITS_NAME##_ignore_signature \ -{};\ -// - -} //namespace detail -} //namespace intrusive -} //namespace network_boost - -#include - -#endif //BOOST_INTRUSIVE_DETAIL_MPL_HPP diff --git a/src/boost/intrusive/detail/pointer_element.hpp b/src/boost/intrusive/detail/pointer_element.hpp deleted file mode 100644 index c13a2925..00000000 --- a/src/boost/intrusive/detail/pointer_element.hpp +++ /dev/null @@ -1,168 +0,0 @@ -////////////////////////////////////////////////////////////////////////////// -// -// (C) Copyright Ion Gaztanaga 2014-2014. Distributed under the Boost -// Software License, Version 1.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/intrusive for documentation. -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef BOOST_INTRUSIVE_DETAIL_POINTER_ELEMENT_HPP -#define BOOST_INTRUSIVE_DETAIL_POINTER_ELEMENT_HPP - -#ifndef BOOST_CONFIG_HPP -# include -#endif - -#if defined(BOOST_HAS_PRAGMA_ONCE) -# pragma once -#endif - -#ifndef BOOST_INTRUSIVE_DETAIL_WORKAROUND_HPP -#include -#endif //BOOST_INTRUSIVE_DETAIL_WORKAROUND_HPP - -namespace network_boost { -namespace intrusive { -namespace detail{ - -////////////////////// -//struct first_param -////////////////////// - -template struct first_param -{ typedef void type; }; - -#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) - - template