update boost on linux
This commit is contained in:
@@ -1,62 +0,0 @@
|
||||
// Copyright (c) 2009-2016 Vladimir Batov.
|
||||
// Use, modification and distribution are subject to the Boost Software License,
|
||||
// Version 1.0. See http://www.boost.org/LICENSE_1_0.txt.
|
||||
|
||||
#ifndef BOOST_PARAMETER_EXT_PRIVATE_HPP
|
||||
#define BOOST_PARAMETER_EXT_PRIVATE_HPP
|
||||
|
||||
#include <boost/parameter/keyword.hpp>
|
||||
|
||||
// A Boost.Parameter extension by Andrey Semashev.
|
||||
// This should really go to Boost.Parameter in the end.
|
||||
|
||||
namespace boost { namespace parameter {
|
||||
|
||||
// The metafunction, given the type of the arguments pack and the keyword tag,
|
||||
// returns the corresponding parameter type
|
||||
template< typename ArgsT, typename KeywordTagT >
|
||||
struct parameter_type
|
||||
{
|
||||
typedef void type;
|
||||
};
|
||||
|
||||
template< typename ArgT, typename KeywordTagT >
|
||||
struct parameter_type<aux::tagged_argument<KeywordTagT, ArgT>, KeywordTagT>
|
||||
{
|
||||
typedef typename aux::tagged_argument< KeywordTagT, ArgT >::value_type type;
|
||||
};
|
||||
|
||||
template< typename KeywordTagT1, typename ArgT, typename KeywordTagT2 >
|
||||
struct parameter_type< aux::tagged_argument< KeywordTagT1, ArgT >, KeywordTagT2 >
|
||||
{
|
||||
typedef void type;
|
||||
};
|
||||
|
||||
template< typename ArgT, typename TailT, typename KeywordTagT >
|
||||
struct parameter_type<
|
||||
aux::arg_list<
|
||||
aux::tagged_argument< KeywordTagT, ArgT >,
|
||||
TailT
|
||||
>,
|
||||
KeywordTagT
|
||||
>
|
||||
{
|
||||
typedef typename aux::tagged_argument< KeywordTagT, ArgT >::value_type type;
|
||||
};
|
||||
|
||||
template< typename KeywordTagT1, typename ArgT, typename TailT, typename KeywordTagT2 >
|
||||
struct parameter_type<
|
||||
aux::arg_list<
|
||||
aux::tagged_argument< KeywordTagT1, ArgT >,
|
||||
TailT
|
||||
>,
|
||||
KeywordTagT2
|
||||
> :
|
||||
public parameter_type< TailT, KeywordTagT2 >
|
||||
{
|
||||
};
|
||||
|
||||
}} // boost::parameter
|
||||
|
||||
#endif // BOOST_PARAMETER_EXT_PRIVATE_HPP
|
||||
|
||||
@@ -5,18 +5,34 @@
|
||||
#ifndef BOOST_CONVERT_DETAIL_IS_CHAR_HPP
|
||||
#define BOOST_CONVERT_DETAIL_IS_CHAR_HPP
|
||||
|
||||
#include <boost/mpl/bool.hpp>
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
#include <boost/convert/detail/config.hpp>
|
||||
#include <type_traits>
|
||||
#include <cctype>
|
||||
#include <cwctype>
|
||||
|
||||
namespace boost { namespace cnv
|
||||
{
|
||||
using char_type = char;
|
||||
using uchar_type = unsigned char;
|
||||
using wchar_type = wchar_t;
|
||||
|
||||
namespace detail
|
||||
{
|
||||
template<typename T> struct is_char : mpl::false_ {};
|
||||
template<> struct is_char<char> : mpl:: true_ {};
|
||||
template<> struct is_char<wchar_t> : mpl:: true_ {};
|
||||
template<typename> struct is_char : std::false_type {};
|
||||
template<> struct is_char< char_type> : std:: true_type {};
|
||||
template<> struct is_char<wchar_type> : std:: true_type {};
|
||||
}
|
||||
template <typename T> struct is_char : detail::is_char<typename remove_const<T>::type> {};
|
||||
template <typename T> struct is_char : detail::is_char<typename boost::remove_const<T>::type> {};
|
||||
|
||||
template<typename char_type> inline bool is_space(char_type);
|
||||
template<typename char_type> inline char_type to_upper(char_type);
|
||||
|
||||
template<> inline bool is_space ( char_type c) { return bool(std::isspace(static_cast<uchar_type>(c))); }
|
||||
template<> inline bool is_space (uchar_type c) { return bool(std::isspace(c)); }
|
||||
template<> inline bool is_space (wchar_type c) { return bool(std::iswspace(c)); }
|
||||
template<> inline char_type to_upper ( char_type c) { return std::toupper(static_cast<uchar_type>(c)); }
|
||||
template<> inline uchar_type to_upper (uchar_type c) { return std::toupper(c); }
|
||||
template<> inline wchar_type to_upper (wchar_type c) { return std::towupper(c); }
|
||||
}}
|
||||
|
||||
#endif // BOOST_CONVERT_DETAIL_IS_CHAR_HPP
|
||||
|
||||
@@ -5,7 +5,33 @@
|
||||
#ifndef BOOST_CONVERT_FORWARD_HPP
|
||||
#define BOOST_CONVERT_FORWARD_HPP
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/version.hpp>
|
||||
#include <boost/optional.hpp>
|
||||
|
||||
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
||||
#undef BOOST_CONVERT_CXX11
|
||||
#else
|
||||
#define BOOST_CONVERT_CXX11
|
||||
#endif
|
||||
|
||||
// Intel 12.0 and lower have broken SFINAE
|
||||
#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1200)
|
||||
# define BOOST_CONVERT_IS_NOT_SUPPORTED
|
||||
#endif
|
||||
|
||||
// No C++11 support
|
||||
#if defined(BOOST_GCC_VERSION) && (BOOST_GCC_VERSION <= 40600)
|
||||
# define BOOST_CONVERT_IS_NOT_SUPPORTED
|
||||
#endif
|
||||
|
||||
// MSVC-11 and lower have broken SFINAE
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
|
||||
# define BOOST_CONVERT_IS_NOT_SUPPORTED
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
||||
//MSVC++ 7.0 _MSC_VER == 1300
|
||||
//MSVC++ 7.1 _MSC_VER == 1310 (Visual Studio 2003)
|
||||
//MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005)
|
||||
@@ -29,23 +55,4 @@
|
||||
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/version.hpp>
|
||||
#include <boost/optional.hpp>
|
||||
|
||||
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
|
||||
#undef BOOST_CONVERT_CXX11
|
||||
#else
|
||||
#define BOOST_CONVERT_CXX11
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1200) /* Intel 12.0 and lower have broken SFINAE */
|
||||
#error "Boost.Convert is not supported on this platform due to broken SFINAE."
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1800) /* MSVC-11 and lower have broken SFINAE */
|
||||
//# error "Boost.Convert is not supported on this platform due to broken SFINAE."
|
||||
# define BOOST_CONVERT_MSVC_SFINAE_BROKEN
|
||||
#endif
|
||||
|
||||
#endif // BOOST_CONVERT_FORWARD_HPP
|
||||
@@ -5,7 +5,6 @@
|
||||
#ifndef BOOST_CONVERT_HAS_MEMBER_HPP
|
||||
#define BOOST_CONVERT_HAS_MEMBER_HPP
|
||||
|
||||
#include <boost/type_traits/remove_const.hpp>
|
||||
#include <boost/type_traits/detail/yes_no_type.hpp>
|
||||
|
||||
// This macro allows to check if a type has a member named "__member_name__"...
|
||||
@@ -41,7 +40,7 @@
|
||||
template <typename __boost_has_member_T__> /*C4*/ \
|
||||
class __trait_name__ \
|
||||
{ \
|
||||
typedef typename ::boost::remove_const<__boost_has_member_T__>::type check_type; \
|
||||
typedef typename boost::remove_const<__boost_has_member_T__>::type check_type; \
|
||||
typedef ::boost::type_traits::yes_type yes_type; \
|
||||
typedef ::boost::type_traits:: no_type no_type; \
|
||||
\
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#ifndef BOOST_CONVERT_IS_CONVERTER_HPP
|
||||
#define BOOST_CONVERT_IS_CONVERTER_HPP
|
||||
|
||||
#include <boost/convert/detail/forward.hpp>
|
||||
#include <boost/convert/detail/config.hpp>
|
||||
#include <boost/convert/detail/is_callable.hpp>
|
||||
#include <boost/utility/enable_if.hpp>
|
||||
#include <boost/type_traits.hpp>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#ifndef BOOST_CONVERT_IS_FUNCTION_HPP
|
||||
#define BOOST_CONVERT_IS_FUNCTION_HPP
|
||||
|
||||
#include <boost/convert/detail/forward.hpp>
|
||||
#include <boost/convert/detail/config.hpp>
|
||||
#include <boost/convert/detail/has_member.hpp>
|
||||
#include <boost/utility/enable_if.hpp>
|
||||
#include <boost/type_traits.hpp>
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace boost { namespace cnv
|
||||
{
|
||||
namespace detail
|
||||
{
|
||||
template<typename T, bool is_range_class> struct is_string : mpl::false_ {};
|
||||
template<typename T, bool is_range_class> struct is_string : std::false_type {};
|
||||
|
||||
template<typename T> struct is_string<T*, false>
|
||||
{
|
||||
@@ -27,7 +27,7 @@ namespace boost { namespace cnv
|
||||
};
|
||||
}
|
||||
template<typename T> struct is_string : detail::is_string<
|
||||
typename remove_const<T>::type,
|
||||
typename boost::remove_const<T>::type,
|
||||
boost::is_class<T>::value && boost::cnv::is_range<T>::value> {};
|
||||
}}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace boost { namespace cnv
|
||||
{
|
||||
namespace detail
|
||||
{
|
||||
template<typename T, bool is_class> struct is_range : mpl::false_ {};
|
||||
template<typename T, bool is_class> struct is_range : std::false_type {};
|
||||
|
||||
template<typename T> struct is_range<T, /*is_class=*/true>
|
||||
{
|
||||
@@ -24,7 +24,7 @@ namespace boost { namespace cnv
|
||||
static bool const value = has_begin<T>::value && has_end<T>::value;
|
||||
};
|
||||
}
|
||||
template<typename T> struct is_range : detail::is_range<typename remove_const<T>::type, boost::is_class<T>::value> {};
|
||||
template<typename T> struct is_range : detail::is_range<typename boost::remove_const<T>::type, boost::is_class<T>::value> {};
|
||||
template<typename T, typename enable =void> struct range;
|
||||
template<typename T, typename enable =void> struct iterator;
|
||||
|
||||
@@ -38,9 +38,9 @@ namespace boost { namespace cnv
|
||||
template<typename T>
|
||||
struct iterator<T*, void>
|
||||
{
|
||||
typedef typename remove_const<T>::type value_type;
|
||||
typedef T* type;
|
||||
typedef value_type const* const_type;
|
||||
typedef typename boost::remove_const<T>::type value_type;
|
||||
typedef T* type;
|
||||
typedef value_type const* const_type;
|
||||
};
|
||||
template<typename T>
|
||||
struct range_base
|
||||
@@ -74,20 +74,21 @@ namespace boost { namespace cnv
|
||||
|
||||
range (T& r) : base_type(r.begin(), r.end()) {}
|
||||
|
||||
iterator end () { return base_type::end_; }
|
||||
const_iterator end () const { return base_type::end_; }
|
||||
sentry_type sentry () const { return base_type::end_; }
|
||||
bool empty () const { return base_type::begin_ == base_type::end_; }
|
||||
iterator end () { return base_type::end_; }
|
||||
const_iterator end () const { return base_type::end_; }
|
||||
sentry_type sentry () const { return base_type::end_; }
|
||||
std::size_t size () const { return base_type::end_ - base_type::begin_; }
|
||||
bool empty () const { return base_type::begin_ == base_type::end_; }
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct range<T*, typename enable_if<cnv::is_char<T> >::type> : public range_base<T*>
|
||||
{
|
||||
typedef range this_type;
|
||||
typedef range_base<T*> base_type;
|
||||
typedef typename remove_const<T>::type value_type;
|
||||
typedef T* iterator;
|
||||
typedef value_type const* const_iterator;
|
||||
using this_type = range;
|
||||
using base_type = range_base<T*>;
|
||||
using value_type = typename boost::remove_const<T>::type;
|
||||
using iterator = T*;
|
||||
using const_iterator = value_type const*;
|
||||
|
||||
struct sentry_type
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user