summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2014-10-19 20:22:58 (GMT)
committerTobias Markmann <tm@ayena.de>2014-10-20 13:49:33 (GMT)
commit6b22dfcf59474dd016a0355a3102a1dd3692d92c (patch)
tree2b1fd33be433a91e81fee84fdc2bf1b52575d934 /3rdParty/Boost/src/boost/spirit/home/support
parent38b0cb785fea8eae5e48fae56440695fdfd10ee1 (diff)
downloadswift-6b22dfcf59474dd016a0355a3102a1dd3692d92c.zip
swift-6b22dfcf59474dd016a0355a3102a1dd3692d92c.tar.bz2
Update Boost in 3rdParty to version 1.56.0.
This updates Boost in our 3rdParty directory to version 1.56.0. Updated our update.sh script to stop on error. Changed error reporting in SwiftTools/CrashReporter.cpp to SWIFT_LOG due to missing include of <iostream> with newer Boost. Change-Id: I4b35c77de951333979a524097f35f5f83d325edc
Diffstat (limited to '3rdParty/Boost/src/boost/spirit/home/support')
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp35
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp49
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp40
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp40
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp47
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp4
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp2
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp2
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/container.hpp16
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/context.hpp6
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp10
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp30
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp4
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp4
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp22
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp8
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp10
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp13
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp5
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp4
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/info.hpp42
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp38
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp23
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp7
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/limits.hpp13
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp29
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp4
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp64
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp63
29 files changed, 263 insertions, 371 deletions
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp b/3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp
index db36072..f1433da 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2011 Hartmut Kaiser
+// Copyright (c) 2001-2013 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,12 +10,21 @@
#pragma once
#endif
-// Allow to work around the MPL problem in BOOST_MPL_ASSERT_MSG generating
-// multiple definition linker errors for certain compilers (VC++)
-#if BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG != 0
+#include <boost/config.hpp>
+
+// Work around the MPL problem in BOOST_MPL_ASSERT_MSG generating
+// multiple definition linker errors for certain compilers (VC++ 8).
+// BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG can also be defined by user.
+#if !defined(BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG)
+# if defined(BOOST_MSVC) && BOOST_MSVC < 1500
+# define BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG 1
+# endif
+#endif
+
+#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) || BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG != 0
#include <boost/static_assert.hpp>
#define BOOST_SPIRIT_ASSERT_MSG(Cond, Msg, Types) \
- BOOST_STATIC_ASSERT(Cond)
+ BOOST_STATIC_ASSERT_MSG(Cond, # Msg)
#else
#include <boost/mpl/assert.hpp>
#define BOOST_SPIRIT_ASSERT_MSG(Cond, Msg, Types) \
@@ -24,8 +33,22 @@
#define BOOST_SPIRIT_ASSERT_MATCH(Domain, Expr) \
BOOST_SPIRIT_ASSERT_MSG(( \
- boost::spirit::traits::matches<Domain, Expr>::value \
+ boost::spirit::traits::matches< Domain, Expr >::value \
), error_invalid_expression, (Expr))
+// GCC 4.7 will overeagerly instantiate static_asserts in template functions,
+// if the assert condition does not depend on template parameters
+// (see https://svn.boost.org/trac/boost/ticket/8381).
+// There are places where we want to use constant false as the condition in
+// template functions to indicate that these function overloads should never
+// be called. This allows to generate better error messages. To solve this
+// problem we make the condition dependent on the template argument and use
+// the following macro in such places.
+#include <boost/type_traits/is_same.hpp>
+
+#define BOOST_SPIRIT_ASSERT_FAIL(TemplateParam, Msg, Types) \
+ BOOST_SPIRIT_ASSERT_MSG((!boost::is_same< \
+ TemplateParam, TemplateParam >::value), Msg, Types)
+
#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp b/3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp
index 48bff06..163f11c 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2011 Joel de Guzman
- Copyright (c) 2001-2011 Hartmut Kaiser
+ Copyright (c) 2001-2012 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -202,6 +202,19 @@ namespace boost { namespace spirit { namespace traits
struct is_weak_substitute<T, optional<Expected> >
: is_weak_substitute<T, Expected> {};
+#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES)
+ template <typename T, typename Expected>
+ struct is_weak_substitute<boost::variant<T>, Expected>
+ : is_weak_substitute<T, Expected>
+ {};
+
+ template <typename T0, typename T1, typename ...TN, typename Expected>
+ struct is_weak_substitute<boost::variant<T0, T1, TN...>,
+ Expected>
+ : mpl::bool_<is_weak_substitute<T0, Expected>::type::value &&
+ is_weak_substitute<boost::variant<T1, TN...>, Expected>::type::value>
+ {};
+#else
#define BOOST_SPIRIT_IS_WEAK_SUBSTITUTE(z, N, _) \
is_weak_substitute<BOOST_PP_CAT(T, N), Expected>::type::value && \
/***/
@@ -220,6 +233,7 @@ namespace boost { namespace spirit { namespace traits
{};
#undef BOOST_SPIRIT_IS_WEAK_SUBSTITUTE
+#endif
template <typename T>
struct is_weak_substitute<T, T
@@ -516,7 +530,30 @@ namespace boost { namespace spirit { namespace traits
{
if (!val)
return 0;
- return val.get();
+ return traits::size(val.get());
+ }
+ };
+
+ namespace detail
+ {
+ struct attribute_size_visitor : static_visitor<std::size_t>
+ {
+ template <typename T>
+ std::size_t operator()(T const& val) const
+ {
+ return spirit::traits::size(val);
+ }
+ };
+ }
+
+ template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
+ struct attribute_size<variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
+ {
+ typedef std::size_t type;
+
+ static type call(variant<BOOST_VARIANT_ENUM_PARAMS(T)> const& val)
+ {
+ return apply_visitor(detail::attribute_size_visitor(), val);
}
};
@@ -748,7 +785,7 @@ namespace boost { namespace spirit { namespace traits
};
// never called, but needed for decltype-based result_of (C++0x)
-#ifndef BOOST_NO_RVALUE_REFERENCES
+#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
template <typename Element>
typename result<element_attribute(Element)>::type
operator()(Element&&) const;
@@ -1158,8 +1195,8 @@ namespace boost { namespace spirit { namespace traits
template <typename Out>
struct print_fusion_sequence
{
- print_fusion_sequence(Out& out)
- : out(out), is_first(true) {}
+ print_fusion_sequence(Out& out_)
+ : out(out_), is_first(true) {}
typedef void result_type;
@@ -1181,7 +1218,7 @@ namespace boost { namespace spirit { namespace traits
template <typename Out>
struct print_visitor : static_visitor<>
{
- print_visitor(Out& out) : out(out) {}
+ print_visitor(Out& out_) : out(out_) {}
template <typename T>
void operator()(T const& val) const
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp
index 9b8a72f..8bd6c11 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp
@@ -188,7 +188,7 @@ namespace boost { namespace spirit { namespace char_encoding
return isascii_(ch);
}
- static int
+ static bool
isalnum(int ch)
{
BOOST_ASSERT(isascii_(ch));
@@ -196,78 +196,78 @@ namespace boost { namespace spirit { namespace char_encoding
|| (ascii_char_types[ch] & BOOST_CC_DIGIT);
}
- static int
+ static bool
isalpha(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_ALPHA);
+ return (ascii_char_types[ch] & BOOST_CC_ALPHA) ? true : false;
}
- static int
+ static bool
isdigit(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_DIGIT);
+ return (ascii_char_types[ch] & BOOST_CC_DIGIT) ? true : false;
}
- static int
+ static bool
isxdigit(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_XDIGIT);
+ return (ascii_char_types[ch] & BOOST_CC_XDIGIT) ? true : false;
}
- static int
+ static bool
iscntrl(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_CTRL);
+ return (ascii_char_types[ch] & BOOST_CC_CTRL) ? true : false;
}
- static int
+ static bool
isgraph(int ch)
{
return ('\x21' <= ch && ch <= '\x7e');
}
- static int
+ static bool
islower(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_LOWER);
+ return (ascii_char_types[ch] & BOOST_CC_LOWER) ? true : false;
}
- static int
+ static bool
isprint(int ch)
{
return ('\x20' <= ch && ch <= '\x7e');
}
- static int
+ static bool
ispunct(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_PUNCT);
+ return (ascii_char_types[ch] & BOOST_CC_PUNCT) ? true : false;
}
- static int
+ static bool
isspace(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_SPACE);
+ return (ascii_char_types[ch] & BOOST_CC_SPACE) ? true : false;
}
- static int
+ static bool
isblank BOOST_PREVENT_MACRO_SUBSTITUTION (int ch)
{
return ('\x09' == ch || '\x20' == ch);
}
- static int
+ static bool
isupper(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_UPPER);
+ return (ascii_char_types[ch] & BOOST_CC_UPPER) ? true : false;
}
///////////////////////////////////////////////////////////////////////
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp
index 37d2e6f..b2b5dd1 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp
@@ -584,7 +584,7 @@ namespace boost { namespace spirit { namespace char_encoding
return (0 == (ch & ~0xff) || ~0 == (ch | 0xff)) ? true : false;
}
- static int
+ static bool
isalnum(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
@@ -592,78 +592,78 @@ namespace boost { namespace spirit { namespace char_encoding
|| (iso8859_1_char_types[ch] & BOOST_CC_DIGIT);
}
- static int
+ static bool
isalpha(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_ALPHA);
+ return (iso8859_1_char_types[ch] & BOOST_CC_ALPHA) ? true : false;
}
- static int
+ static bool
isdigit(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_DIGIT);
+ return (iso8859_1_char_types[ch] & BOOST_CC_DIGIT) ? true : false;
}
- static int
+ static bool
isxdigit(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_XDIGIT);
+ return (iso8859_1_char_types[ch] & BOOST_CC_XDIGIT) ? true : false;
}
- static int
+ static bool
iscntrl(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_CTRL);
+ return (iso8859_1_char_types[ch] & BOOST_CC_CTRL) ? true : false;
}
- static int
+ static bool
isgraph(int ch)
{
return ('\x21' <= ch && ch <= '\x7e') || ('\xa1' <= ch && ch <= '\xff');
}
- static int
+ static bool
islower(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_LOWER);
+ return (iso8859_1_char_types[ch] & BOOST_CC_LOWER) ? true : false;
}
- static int
+ static bool
isprint(int ch)
{
return ('\x20' <= ch && ch <= '\x7e') || ('\xa0' <= ch && ch <= '\xff');
}
- static int
+ static bool
ispunct(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_PUNCT);
+ return (iso8859_1_char_types[ch] & BOOST_CC_PUNCT) ? true : false;
}
- static int
+ static bool
isspace(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_SPACE);
+ return (iso8859_1_char_types[ch] & BOOST_CC_SPACE) ? true : false;
}
- static int
+ static bool
isblank BOOST_PREVENT_MACRO_SUBSTITUTION (int ch)
{
return ('\x09' == ch || '\x20' == ch || '\xa0' == ch);
}
- static int
+ static bool
isupper(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_UPPER);
+ return (iso8859_1_char_types[ch] & BOOST_CC_UPPER) ? true : false;
}
///////////////////////////////////////////////////////////////////////////
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp
index c32a9e7..fb307ce 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp
@@ -38,81 +38,82 @@ namespace boost { namespace spirit { namespace char_encoding
return (0 == (ch & ~0xff) || ~0 == (ch | 0xff)) ? true : false;
}
- static int
+ static bool
isalnum(int ch)
{
- return std::isalnum(ch);
+ return std::isalnum(ch) ? true : false;
}
- static int
+ static bool
isalpha(int ch)
{
- return std::isalpha(ch);
+ return std::isalpha(ch) ? true : false;
}
- static int
+ static bool
isdigit(int ch)
{
- return std::isdigit(ch);
+ return std::isdigit(ch) ? true : false;
}
- static int
+ static bool
isxdigit(int ch)
{
- return std::isxdigit(ch);
+ return std::isxdigit(ch) ? true : false;
}
- static int
+ static bool
iscntrl(int ch)
{
- return std::iscntrl(ch);
+ return std::iscntrl(ch) ? true : false;
}
- static int
+ static bool
isgraph(int ch)
{
- return std::isgraph(ch);
+ return std::isgraph(ch) ? true : false;
}
- static int
+ static bool
islower(int ch)
{
- return std::islower(ch);
+ return std::islower(ch) ? true : false;
}
- static int
+ static bool
isprint(int ch)
{
- return std::isprint(ch);
+ return std::isprint(ch) ? true : false;
}
- static int
+ static bool
ispunct(int ch)
{
- return std::ispunct(ch);
+ return std::ispunct(ch) ? true : false;
}
- static int
+ static bool
isspace(int ch)
{
- return std::isspace(ch);
+ return std::isspace(ch) ? true : false;
}
- static int
+ static bool
isblank BOOST_PREVENT_MACRO_SUBSTITUTION (int ch)
{
return (ch == ' ' || ch == '\t');
}
- static int
+ static bool
isupper(int ch)
{
- return std::isupper(ch);
+ return std::isupper(ch) ? true : false;
}
///////////////////////////////////////////////////////////////////////////////
// Simple character conversions
///////////////////////////////////////////////////////////////////////////////
+
static int
tolower(int ch)
{
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp
index 99c918c..515a388 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp
@@ -154,6 +154,10 @@ namespace boost { namespace spirit { namespace char_encoding
return (ch == L' ' || ch == L'\t');
}
+ ///////////////////////////////////////////////////////////////////////
+ // Simple character conversions
+ ///////////////////////////////////////////////////////////////////////
+
static wchar_t
tolower(wchar_t ch)
{
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp
index 9febf7e..b5ec3e6 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp
@@ -100,7 +100,7 @@ namespace boost { namespace spirit { namespace char_encoding
return ucd::is_white_space(ch);
}
- static int
+ static bool
isblank BOOST_PREVENT_MACRO_SUBSTITUTION (char_type ch)
{
return ucd::is_blank(ch);
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp
index 3a0526c..370ab67 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp
@@ -284,7 +284,7 @@ namespace boost { namespace spirit { namespace ucd
inline properties::script get_script(::boost::uint32_t ch)
{
- return static_cast<properties::script>(detail::script_lookup(ch) & 0x3F);
+ return static_cast<properties::script>(detail::script_lookup(ch) & 0x7F);
}
inline ::boost::uint32_t to_lowercase(::boost::uint32_t ch)
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/container.hpp b/3rdParty/Boost/src/boost/spirit/home/support/container.hpp
index 7f491aa..5e154cd 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/container.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/container.hpp
@@ -59,6 +59,19 @@ namespace boost { namespace spirit { namespace traits
: is_container<T>
{};
+#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES)
+ template<typename T>
+ struct is_container<boost::variant<T> >
+ : is_container<T>
+ {};
+
+ template<typename T0, typename T1, typename ...TN>
+ struct is_container<boost::variant<T0, T1, TN...> >
+ : mpl::bool_<is_container<T0>::value ||
+ is_container<boost::variant<T1, TN...> >::value>
+ {};
+
+#else
#define BOOST_SPIRIT_IS_CONTAINER(z, N, data) \
is_container<BOOST_PP_CAT(T, N)>::value || \
/***/
@@ -76,6 +89,7 @@ namespace boost { namespace spirit { namespace traits
{};
#undef BOOST_SPIRIT_IS_CONTAINER
+#endif
template <typename T, typename Enable/* = void*/>
struct is_iterator_range
@@ -238,7 +252,7 @@ namespace boost { namespace spirit { namespace traits
static bool is_valid(boost::optional<T> const& val)
{
- return val;
+ return !!val;
}
};
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/context.hpp b/3rdParty/Boost/src/boost/spirit/home/support/context.hpp
index b728b4f..ada873a 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/context.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/context.hpp
@@ -98,7 +98,7 @@ namespace boost { namespace spirit
typedef Locals locals_type;
context(typename Attributes::car_type attribute)
- : attributes(attribute, fusion::nil()), locals() {}
+ : attributes(attribute, fusion::nil_()), locals() {}
template <typename Args, typename Context>
context(
@@ -116,8 +116,8 @@ namespace boost { namespace spirit
)
, locals() {}
- context(Attributes const& attributes)
- : attributes(attributes), locals() {}
+ context(Attributes const& attributes_)
+ : attributes(attributes_), locals() {}
Attributes attributes; // The attributes
Locals locals; // Local variables
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp
index e2fe18d..9312042 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp
@@ -23,6 +23,7 @@
#include <boost/mpl/push_back.hpp>
#include <boost/mpl/equal_to.hpp>
#include <boost/mpl/contains.hpp>
+#include <boost/mpl/limits/list.hpp>
#include <boost/type_traits/is_same.hpp>
namespace boost { namespace spirit { namespace detail
@@ -30,6 +31,8 @@ namespace boost { namespace spirit { namespace detail
template <int size>
struct as_variant_impl;
+#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES)
+#else
template <>
struct as_variant_impl<0>
{
@@ -39,6 +42,7 @@ namespace boost { namespace spirit { namespace detail
typedef variant<> type;
};
};
+#endif
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
@@ -53,7 +57,13 @@ namespace boost { namespace spirit { namespace detail
BOOST_PP_CAT(T, n);
#define BOOST_PP_FILENAME_1 <boost/spirit/home/support/detail/as_variant.hpp>
+
+#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES)
+#define BOOST_PP_ITERATION_LIMITS (1, BOOST_MPL_LIMIT_LIST_SIZE)
+#else
#define BOOST_PP_ITERATION_LIMITS (1, BOOST_VARIANT_LIMIT_TYPES)
+#endif
+
#include BOOST_PP_ITERATE()
#undef BOOST_FUSION_NEXT_ITERATOR
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp
index 4332fa2..f9a3ff1 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp
@@ -98,7 +98,6 @@ namespace boost { namespace spirit
}
static void move(void* const* src, void** dest)
{
- reinterpret_cast<T*>(dest)->~T();
*reinterpret_cast<T*>(dest) =
*reinterpret_cast<T const*>(src);
}
@@ -144,7 +143,6 @@ namespace boost { namespace spirit
}
static void move(void* const* src, void** dest)
{
- (*reinterpret_cast<T**>(dest))->~T();
**reinterpret_cast<T**>(dest) =
**reinterpret_cast<T* const*>(src);
}
@@ -300,11 +298,25 @@ namespace boost { namespace spirit
}
// assignment operator
+#ifdef BOOST_HAS_RVALUE_REFS
+ template <typename T>
+ basic_hold_any& operator=(T&& x)
+ {
+ return assign(std::forward<T>(x));
+ }
+#else
+ template <typename T>
+ basic_hold_any& operator=(T& x)
+ {
+ return assign(x);
+ }
+
template <typename T>
basic_hold_any& operator=(T const& x)
{
return assign(x);
}
+#endif
// utility functions
basic_hold_any& swap(basic_hold_any& x)
@@ -405,15 +417,6 @@ namespace boost { namespace spirit
{
typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type nonref;
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // If 'nonref' is still reference type, it means the user has not
- // specialized 'remove_reference'.
-
- // Please use BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION macro
- // to generate specialization of remove_reference for your class
- // See type traits library documentation for details
- BOOST_STATIC_ASSERT(!is_reference<nonref>::value);
-#endif
nonref* result = any_cast<nonref>(&operand);
if(!result)
@@ -426,11 +429,6 @@ namespace boost { namespace spirit
{
typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type nonref;
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // The comment in the above version of 'any_cast' explains when this
- // assert is fired and what to do.
- BOOST_STATIC_ASSERT(!is_reference<nonref>::value);
-#endif
return any_cast<nonref const&>(const_cast<basic_hold_any<Char> &>(operand));
}
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp
index 73269e2..e8f9f6d 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp
@@ -11,10 +11,6 @@
#pragma once
#endif
-#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
-#define BOOST_SPIRIT_IS_TAG()
-#else
#define BOOST_SPIRIT_IS_TAG() typedef void is_spirit_tag;
-#endif
#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp
index 23cda87..36ee1bb 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp
@@ -31,11 +31,7 @@ public:
const CharT *ptr_ = in_.c_str ();
std::size_t size_ = in_.size ();
-#if defined _MSC_VER && _MSC_VER <= 1200
- out_.erase ();
-#else
out_.clear ();
-#endif
while (size_)
{
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp
index 49bea2f..daa06e7 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp
@@ -12,6 +12,7 @@
#include "partition/charset.hpp"
#include "partition/equivset.hpp"
#include <memory>
+#include <limits>
#include "parser/tree/node.hpp"
#include "parser/parser.hpp"
#include "containers/ptr_list.hpp"
@@ -185,10 +186,10 @@ protected:
while (regex_iter_ != regex_iter_end_)
{
// re-declare var, otherwise we perform an assignment..!
- const typename rules::string &regex_ = *regex_iter_;
+ const typename rules::string &regex2_ = *regex_iter_;
- root_ = parser::parse (regex_.c_str (),
- regex_.c_str () + regex_.size (), *ids_iter_,
+ root_ = parser::parse (regex2_.c_str (),
+ regex2_.c_str () + regex2_.size (), *ids_iter_,
*unique_ids_iter_, *states_iter_, rules_.flags (),
rules_.locale (), node_ptr_vector_, macromap_, token_map_,
internals_._seen_BOL_assertion,
@@ -336,16 +337,16 @@ protected:
equiv_end_ = equivset_->_index_vector.end ();
equiv_iter_ != equiv_end_; ++equiv_iter_)
{
- const std::size_t index_ = *equiv_iter_;
+ const std::size_t equiv_index_ = *equiv_iter_;
- if (index_ == bol_token)
+ if (equiv_index_ == bol_token)
{
if (ptr_[eol_index] == 0)
{
ptr_[bol_index] = transition_;
}
}
- else if (index_ == eol_token)
+ else if (equiv_index_ == eol_token)
{
if (ptr_[bol_index] == 0)
{
@@ -354,7 +355,7 @@ protected:
}
else
{
- ptr_[index_ + dfa_offset] = transition_;
+ ptr_[equiv_index_ + dfa_offset] = transition_;
}
}
}
@@ -560,7 +561,12 @@ protected:
if (token_._negated)
{
- CharT curr_char_ = sizeof (CharT) == 1 ? -128 : 0;
+ // $$$ FIXME JDG July 2014 $$$
+ // this code is problematic on platforms where wchar_t is signed
+ // with min generating negative numbers. This crashes with BAD_ACCESS
+ // because of the vector index below:
+ // ptr_[static_cast<typename Traits::index_type>(curr_char_)]
+ CharT curr_char_ = 0; // (std::numeric_limits<CharT>::min)();
std::size_t i_ = 0;
while (curr_ < chars_end_)
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp
index 349aa6d..449ff4d 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp
@@ -8,14 +8,6 @@
#include <stddef.h> // ptrdiff_t
-#if defined _MSC_VER && _MSC_VER <= 1200
-namespace std
-{
- using ::ptrdiff_t;
- using ::size_t;
-}
-#else
#include <string>
-#endif
#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp
index e09e991..46e50c9 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp
@@ -29,11 +29,7 @@ public:
class iterator
{
public:
-#if defined _MSC_VER && _MSC_VER <= 1200
- friend basic_state_machine;
-#else
friend class basic_state_machine;
-#endif
struct data
{
@@ -225,11 +221,7 @@ public:
}
};
-#if defined _MSC_VER && _MSC_VER <= 1200
- friend iterator;
-#else
friend class iterator;
-#endif
basic_state_machine ()
{
@@ -365,7 +357,7 @@ private:
{
const std::size_t col_ = lu_->at (alpha_index_);
- if (col_ != dead_state_index)
+ if (col_ != static_cast<std::size_t>(dead_state_index))
{
chars_[col_ - dfa_offset] += static_cast<CharT>
(alpha_index_);
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp
index 6bfa6ff..dd58c98 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp
@@ -10,6 +10,7 @@
#include "size_t.hpp"
#include "consts.hpp" // num_chars, num_wchar_ts
#include <string>
+#include <limits>
namespace boost
{
@@ -55,11 +56,7 @@ struct basic_string_token
if (_charset.length () == max_chars_)
{
_negated = !_negated;
-#if defined _MSC_VER && _MSC_VER <= 1200
- _charset.erase ();
-#else
_charset.clear ();
-#endif
}
else if (_charset.length () > max_chars_ / 2)
{
@@ -71,7 +68,7 @@ struct basic_string_token
{
const std::size_t max_chars_ = sizeof (CharT) == 1 ?
num_chars : num_wchar_ts;
- CharT curr_char_ = sizeof (CharT) == 1 ? -128 : 0;
+ CharT curr_char_ = (std::numeric_limits<CharT>::min)();
string temp_;
const CharT *curr_ = _charset.c_str ();
const CharT *chars_end_ = curr_ + _charset.size ();
@@ -126,11 +123,7 @@ struct basic_string_token
void clear ()
{
_negated = false;
-#if defined _MSC_VER && _MSC_VER <= 1200
- _charset.erase ();
-#else
- _charset.clear ();
-#endif
+ _charset.clear ();
}
void intersect (basic_string_token &rhs_, basic_string_token &overlap_)
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp
index cbbb73b..0d6b0ae 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp
@@ -42,11 +42,10 @@ namespace boost { namespace spirit { namespace detail
namespace result_of
{
- template <typename Car, typename Cdr = fusion::nil>
+ template <typename Car, typename Cdr = fusion::nil_>
struct make_cons
{
- typedef typename as_meta_element<Car>::type car_type;
- typedef typename fusion::cons<car_type, Cdr> type;
+ typedef typename as_meta_element<Car>::type car_type; typedef typename fusion::cons<car_type, Cdr> type;
};
}
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp
index 70979a6..1b35043 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp
@@ -17,8 +17,8 @@
#if BOOST_VERSION >= 104000
# include <boost/detail/scoped_enum_emulation.hpp>
#else
-# if !defined(BOOST_NO_SCOPED_ENUMS)
-# define BOOST_NO_SCOPED_ENUMS
+# if !defined(BOOST_NO_CXX11_SCOPED_ENUMS)
+# define BOOST_NO_CXX11_SCOPED_ENUMS
# endif
# define BOOST_SCOPED_ENUM_START(name) struct name { enum enum_type
# define BOOST_SCOPED_ENUM_END };
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/info.hpp b/3rdParty/Boost/src/boost/spirit/home/support/info.hpp
index ff523ab..9b991ac 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/info.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/info.hpp
@@ -28,11 +28,11 @@ namespace boost { namespace spirit
// for uniformity.
struct info
{
- struct nil {};
+ struct nil_ {};
typedef
boost::variant<
- nil
+ nil_
, utf8_string
, recursive_wrapper<info>
, recursive_wrapper<std::pair<info, info> >
@@ -40,30 +40,30 @@ namespace boost { namespace spirit
>
value_type;
- explicit info(utf8_string const& tag)
- : tag(tag), value(nil()) {}
+ explicit info(utf8_string const& tag_)
+ : tag(tag_), value(nil_()) {}
template <typename T>
- info(utf8_string const& tag, T const& value)
- : tag(tag), value(value) {}
+ info(utf8_string const& tag_, T const& value_)
+ : tag(tag_), value(value_) {}
- info(utf8_string const& tag, char value)
- : tag(tag), value(utf8_string(1, value)) {}
+ info(utf8_string const& tag_, char value_)
+ : tag(tag_), value(utf8_string(1, value_)) {}
- info(utf8_string const& tag, wchar_t value)
- : tag(tag), value(to_utf8(value)) {}
+ info(utf8_string const& tag_, wchar_t value_)
+ : tag(tag_), value(to_utf8(value_)) {}
- info(utf8_string const& tag, ucs4_char value)
- : tag(tag), value(to_utf8(value)) {}
+ info(utf8_string const& tag_, ucs4_char value_)
+ : tag(tag_), value(to_utf8(value_)) {}
template <typename Char>
- info(utf8_string const& tag, Char const* str)
- : tag(tag), value(to_utf8(str)) {}
+ info(utf8_string const& tag_, Char const* str)
+ : tag(tag_), value(to_utf8(str)) {}
template <typename Char, typename Traits, typename Allocator>
- info(utf8_string const& tag
+ info(utf8_string const& tag_
, std::basic_string<Char, Traits, Allocator> const& str)
- : tag(tag), value(to_utf8(str)) {}
+ : tag(tag_), value(to_utf8(str)) {}
utf8_string tag;
value_type value;
@@ -75,10 +75,10 @@ namespace boost { namespace spirit
typedef void result_type;
typedef basic_info_walker<Callback> this_type;
- basic_info_walker(Callback& callback, utf8_string const& tag, int depth)
- : callback(callback), tag(tag), depth(depth) {}
+ basic_info_walker(Callback& callback_, utf8_string const& tag_, int depth_)
+ : callback(callback_), tag(tag_), depth(depth_) {}
- void operator()(info::nil) const
+ void operator()(info::nil_) const
{
callback.element(tag, "", depth);
}
@@ -128,8 +128,8 @@ namespace boost { namespace spirit
{
typedef utf8_string string;
- simple_printer(Out& out)
- : out(out) {}
+ simple_printer(Out& out_)
+ : out(out_) {}
void element(string const& tag, string const& value, int /*depth*/) const
{
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp b/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp
index cfac882..06946b8 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp
@@ -21,43 +21,6 @@ namespace boost { namespace spirit { namespace iterator_policies
// single multi_pass_policy as required by the multi_pass template
///////////////////////////////////////////////////////////////////////////
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- // without partial template specialization there is nothing much to do in
- // terms of empty base optimization anyways...
- template <typename T, typename Ownership, typename Checking,
- typename Input, typename Storage>
- struct multi_pass_unique
- : Ownership, Checking, Input, Storage
- {
- multi_pass_unique() {}
- multi_pass_unique(T& x) : Input(x) {}
- multi_pass_unique(T const& x) : Input(x) {}
-
- template <typename MultiPass>
- static void destroy(MultiPass& mp)
- {
- Ownership::destroy(mp);
- Checking::destroy(mp);
- Input::destroy(mp);
- Storage::destroy(mp);
- }
-
- void swap(multi_pass_unique& x)
- {
- this->Ownership::swap(x);
- this->Checking::swap(x);
- this->Input::swap(x);
- this->Storage::swap(x);
- }
-
- template <typename MultiPass>
- inline static void clear_queue(MultiPass& mp)
- {
- Checking::clear_queue(mp);
- Storage::clear_queue(mp);
- }
- };
-#else
///////////////////////////////////////////////////////////////////////////
// select the correct derived classes based on if a policy is empty
template <typename T
@@ -470,7 +433,6 @@ namespace boost { namespace spirit { namespace iterator_policies
inline static bool is_unique(MultiPass const& mp)
{ return Ownership::is_unique(mp); }
};
-#endif
///////////////////////////////////////////////////////////////////////////
// the multi_pass_shared structure is used to combine the shared data items
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp b/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp
index 088b39a..8f8e6c7 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp
@@ -17,29 +17,6 @@
///////////////////////////////////////////////////////////////////////////////
namespace boost { namespace spirit { namespace detail
{
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- ///////////////////////////////////////////////////////////////////////////
- // Meta-function to generate a std::iterator<> base class for multi_pass.
- // This is used mainly to improve conformance of compilers not supporting
- // PTS and thus relying on inheritance to recognize an iterator.
- //
- // We are using boost::iterator<> because it offers an automatic
- // workaround for broken std::iterator<> implementations.
- ///////////////////////////////////////////////////////////////////////////
- template <typename T, typename InputPolicy>
- struct iterator_base_creator
- {
- typedef typename InputPolicy::BOOST_NESTED_TEMPLATE unique<T> input_type;
-
- typedef boost::iterator <
- std::forward_iterator_tag
- , typename input_type::value_type
- , typename input_type::difference_type
- , typename input_type::pointer
- , typename input_type::reference
- > type;
- };
-#endif
///////////////////////////////////////////////////////////////////////////
// Default implementations of the different policies to be used with a
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp b/3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp
index 2b355bf..3fc2440 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp
@@ -26,9 +26,6 @@ namespace boost { namespace spirit
: private boost::base_from_member<
typename Policies::BOOST_NESTED_TEMPLATE shared<T>*>
, public Policies::BOOST_NESTED_TEMPLATE unique<T>
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- , typename iterator_base_creator<T, typename Policies::input_policy>::type
-#endif
{
private:
// unique and shared data types
@@ -41,11 +38,7 @@ namespace boost { namespace spirit
// define the types the standard embedded iterator typedefs are taken
// from
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- typedef typename iterator_base_creator<Input, T>::type iterator_type;
-#else
typedef typename policies_base_type::input_policy iterator_type;
-#endif
public:
// standard iterator typedefs
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/limits.hpp b/3rdParty/Boost/src/boost/spirit/home/support/limits.hpp
index ff53967..8abb4f1 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/limits.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/limits.hpp
@@ -12,17 +12,6 @@
#include <boost/spirit/include/phoenix_core.hpp>
-#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
-
-#if !defined(SPIRIT_ARGUMENTS_LIMIT)
-# define SPIRIT_ARGUMENTS_LIMIT PHOENIX_LIMIT
-#endif
-#if !defined(SPIRIT_ATTRIBUTES_LIMIT)
-# define SPIRIT_ATTRIBUTES_LIMIT PHOENIX_LIMIT
-#endif
-
-#else
-
#if !defined(SPIRIT_ARGUMENTS_LIMIT)
# define SPIRIT_ARGUMENTS_LIMIT BOOST_PHOENIX_LIMIT
#endif
@@ -31,5 +20,3 @@
#endif
#endif
-
-#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp b/3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp
index 04a7437..3868475 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp
@@ -258,7 +258,7 @@ namespace boost { namespace spirit { namespace detail
typedef typename
proto::reverse_fold_tree<
proto::_
- , proto::make<fusion::nil>
+ , proto::make<fusion::nil_>
, make_binary_helper<Grammar>
>::template impl<Expr, State, Data>
reverse_fold_tree;
@@ -362,13 +362,6 @@ namespace boost { namespace spirit { namespace detail
)>::type
lhs_component;
-#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
- typedef typename
- proto::result_of::value<
- typename proto::result_of::child_c<Expr, 1>::type
- >::type
- rhs_component;
-#else
typedef
typename mpl::eval_if_c<
phoenix::is_actor<
@@ -380,7 +373,6 @@ namespace boost { namespace spirit { namespace detail
>
>::type
rhs_component;
-#endif
typedef typename
result_of::make_cons<
@@ -396,24 +388,6 @@ namespace boost { namespace spirit { namespace detail
result<make_component_(elements_type, Data)>::type
result_type;
-#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
- result_type operator()(
- typename impl::expr_param expr
- , typename impl::state_param state
- , typename impl::data_param data
- ) const
- {
- elements_type elements =
- detail::make_cons(
- Grammar()(
- proto::child_c<0>(expr), state, data) // LHS
- , detail::make_cons(
- proto::value(proto::child_c<1>(expr))) // RHS
- );
-
- return make_component_()(elements, data);
- }
-#else
result_type operator()(
typename impl::expr_param expr
, typename impl::state_param state
@@ -466,7 +440,6 @@ namespace boost { namespace spirit { namespace detail
return make_component_()(elements, data);
}
-#endif
};
};
}}}
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp b/3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp
index f037acc..f214096 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp
@@ -50,8 +50,8 @@ namespace boost { namespace spirit { namespace detail
struct result<F(A0&)>
: result_type<A0> {};
- expand_arg(Context& context)
- : context(context)
+ expand_arg(Context& context_)
+ : context(context_)
{
}
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp b/3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp
index d52fad2..3ef8c83 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp
@@ -33,10 +33,10 @@ namespace boost { namespace spirit
typedef Terminal terminal_type;
typedef Args args_type;
- terminal_ex(Args const& args)
- : args(args) {}
- terminal_ex(Args const& args, Terminal const& term)
- : args(args), term(term) {}
+ terminal_ex(Args const& args_)
+ : args(args_) {}
+ terminal_ex(Args const& args_, Terminal const& term_)
+ : args(args_), term(term_) {}
Args args; // Args is guaranteed to be a fusion::vectorN so you
// can use that template for detection and specialization
@@ -50,10 +50,10 @@ namespace boost { namespace spirit
typedef Actor actor_type;
static int const arity = Arity;
- lazy_terminal(Actor const& actor)
- : actor(actor) {}
- lazy_terminal(Actor const& actor, Terminal const& term)
- : actor(actor), term(term) {}
+ lazy_terminal(Actor const& actor_)
+ : actor(actor_) {}
+ lazy_terminal(Actor const& actor_, Terminal const& term_)
+ : actor(actor_), term(term_) {}
Actor actor;
Terminal term;
@@ -104,11 +104,11 @@ namespace boost { namespace spirit
typedef result_type type;
result_type
- operator()(F f, A0 const& _0) const
+ operator()(F f, A0 const& _0_) const
{
typedef typename result_type::proto_child0 child_type;
return result_type::make(child_type(
- phoenix::detail::expression::function_eval<F, A0>::make(f, _0)
+ phoenix::detail::expression::function_eval<F, A0>::make(f, _0_)
, f.proto_base().child0
));
}
@@ -129,11 +129,11 @@ namespace boost { namespace spirit
typedef result_type type;
result_type
- operator()(F f, A0 const& _0, A1 const& _1) const
+ operator()(F f, A0 const& _0_, A1 const& _1_) const
{
typedef typename result_type::proto_child0 child_type;
return result_type::make(child_type(
- phoenix::detail::expression::function_eval<F, A0, A1>::make(f, _0, _1)
+ phoenix::detail::expression::function_eval<F, A0, A1>::make(f, _0_, _1_)
, f.proto_base().child0
));
}
@@ -154,11 +154,11 @@ namespace boost { namespace spirit
typedef result_type type;
result_type
- operator()(F f, A0 const& _0, A1 const& _1, A2 const& _2) const
+ operator()(F f, A0 const& _0_, A1 const& _1_, A2 const& _2_) const
{
typedef typename result_type::proto_child0 child_type;
return result_type::make(child_type(
- phoenix::detail::expression::function_eval<F, A0, A1, A2>::make(f, _0, _1, _2)
+ phoenix::detail::expression::function_eval<F, A0, A1, A2>::make(f, _0_, _1_, _2_)
, f.proto_base().child0
));
}
@@ -368,42 +368,42 @@ namespace boost { namespace spirit
template <typename A0>
typename result<A0>::type
- operator()(A0 const& _0
+ operator()(A0 const& _0_
, typename detail::contains_actor<A0>::is_false = 0) const
{
typedef typename result<A0>::type result_type;
typedef typename result_type::proto_child0 child_type;
return result_type::make(
child_type(
- detail::make_vector(_0)
+ detail::make_vector(_0_)
, this->proto_base().child0)
);
}
template <typename A0, typename A1>
typename result<A0, A1>::type
- operator()(A0 const& _0, A1 const& _1
+ operator()(A0 const& _0_, A1 const& _1_
, typename detail::contains_actor<A0, A1>::is_false = 0) const
{
typedef typename result<A0, A1>::type result_type;
typedef typename result_type::proto_child0 child_type;
return result_type::make(
child_type(
- detail::make_vector(_0, _1)
+ detail::make_vector(_0_, _1_)
, this->proto_base().child0)
);
}
template <typename A0, typename A1, typename A2>
typename result<A0, A1, A2>::type
- operator()(A0 const& _0, A1 const& _1, A2 const& _2
+ operator()(A0 const& _0_, A1 const& _1_, A2 const& _2_
, typename detail::contains_actor<A0, A1, A2>::is_false = 0) const
{
typedef typename result<A0, A1, A2>::type result_type;
typedef typename result_type::proto_child0 child_type;
return result_type::make(
child_type(
- detail::make_vector(_0, _1, _2)
+ detail::make_vector(_0_, _1_, _2_)
, this->proto_base().child0)
);
}
@@ -412,38 +412,38 @@ namespace boost { namespace spirit
// least one arg is a Phoenix actor.
template <typename A0>
typename result<A0>::type
- operator()(A0 const& _0
+ operator()(A0 const& _0_
, typename detail::contains_actor<A0>::is_true = 0) const
{
return make_lazy<this_type
, typename phoenix::as_actor<A0>::type>()(*this
- , phoenix::as_actor<A0>::convert(_0));
+ , phoenix::as_actor<A0>::convert(_0_));
}
template <typename A0, typename A1>
typename result<A0, A1>::type
- operator()(A0 const& _0, A1 const& _1
+ operator()(A0 const& _0_, A1 const& _1_
, typename detail::contains_actor<A0, A1>::is_true = 0) const
{
return make_lazy<this_type
, typename phoenix::as_actor<A0>::type
, typename phoenix::as_actor<A1>::type>()(*this
- , phoenix::as_actor<A0>::convert(_0)
- , phoenix::as_actor<A1>::convert(_1));
+ , phoenix::as_actor<A0>::convert(_0_)
+ , phoenix::as_actor<A1>::convert(_1_));
}
template <typename A0, typename A1, typename A2>
typename result<A0, A1, A2>::type
- operator()(A0 const& _0, A1 const& _1, A2 const& _2
+ operator()(A0 const& _0_, A1 const& _1_, A2 const& _2_
, typename detail::contains_actor<A0, A1, A2>::is_true = 0) const
{
return make_lazy<this_type
, typename phoenix::as_actor<A0>::type
, typename phoenix::as_actor<A1>::type
, typename phoenix::as_actor<A2>::type>()(*this
- , phoenix::as_actor<A0>::convert(_0)
- , phoenix::as_actor<A1>::convert(_1)
- , phoenix::as_actor<A2>::convert(_2));
+ , phoenix::as_actor<A0>::convert(_0_)
+ , phoenix::as_actor<A1>::convert(_1_)
+ , phoenix::as_actor<A2>::convert(_2_));
}
private:
@@ -547,7 +547,6 @@ namespace boost { namespace spirit
}}
-#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
namespace boost { namespace phoenix
{
template <typename Tag>
@@ -558,6 +557,10 @@ namespace boost { namespace phoenix
template <typename Tag>
struct custom_terminal<Tag, typename Tag::is_spirit_tag>
{
+#ifndef BOOST_PHOENIX_NO_SPECIALIZE_CUSTOM_TERMINAL
+ typedef void _is_default_custom_terminal; // fix for #7730
+#endif
+
typedef spirit::terminal<Tag> result_type;
template <typename Context>
@@ -567,7 +570,6 @@ namespace boost { namespace phoenix
}
};
}}
-#endif
// Define a spirit terminal. This macro may be placed in any namespace.
// Common placeholders are placed in the main boost::spirit namespace
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp b/3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp
index cf6bc5d..0d206bf 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp
@@ -9,67 +9,4 @@
#if !defined(BOOST_SPIRIT_TERMINAL_EXPRESSION_MARCH_24_2011_1210AM)
#define BOOST_SPIRIT_TERMINAL_EXPRESSION_MARCH_24_2011_1210AM
-#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
-
-namespace boost { namespace phoenix { namespace detail
-{
- namespace expression
- {
- template <
- typename F, typename A0 = void, typename A1 = void
- , typename A2 = void, typename Dummy = void>
- struct function_eval;
-
- template <typename F, typename A0>
- struct function_eval<F, A0>
- {
- typedef phoenix::actor<
- typename phoenix::as_composite<
- phoenix::detail::function_eval<1>, F, A0
- >::type
- > type;
-
- static type make(F f, A0 const & _0)
- {
- return phoenix::compose<
- phoenix::detail::function_eval<1> >(f, _0);
- }
- };
-
- template <typename F, typename A0, typename A1>
- struct function_eval<F, A0, A1>
- {
- typedef phoenix::actor<
- typename phoenix::as_composite<
- phoenix::detail::function_eval<2>, F, A0, A1
- >::type
- > type;
-
- static type make(F f, A0 const & _0, A1 const & _1)
- {
- return phoenix::compose<
- phoenix::detail::function_eval<2> >(f, _0, _1);
- }
- };
-
- template <typename F, typename A0, typename A1, typename A2>
- struct function_eval<F, A0, A1, A2>
- {
- typedef phoenix::actor<
- typename phoenix::as_composite<
- phoenix::detail::function_eval<3>, F, A0, A1, A2
- >::type
- > type;
-
- static type make(F f, A0 const & _0, A1 const & _1, A2 const & _2)
- {
- return phoenix::compose<
- phoenix::detail::function_eval<3> >(f, _0, _1, _2);
- }
- };
- }
-}}}
-
-#endif // !BOOST_SPIRIT_USE_PHOENIX_V3
-
#endif