update boost

This commit is contained in:
2023-11-24 12:56:13 -06:00
parent cfc99971af
commit 19d727037a
9260 changed files with 849256 additions and 299957 deletions

View File

@@ -4,8 +4,8 @@
// Distributed under the 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(SPIRIT_REPOSITORY_KARMA_APR_28_2009_1259PM)
#define SPIRIT_REPOSITORY_KARMA_APR_28_2009_1259PM
#ifndef BOOST_SPIRIT_REPOSITORY_KARMA_HPP
#define BOOST_SPIRIT_REPOSITORY_KARMA_HPP
#if defined(_MSC_VER)
#pragma once

View File

@@ -4,8 +4,8 @@
// Distributed under the 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(SPIRIT_REPOSITORY_KARMA_DIRECTIVE_APR_28_2009_1258PM)
#define SPIRIT_REPOSITORY_KARMA_DIRECTIVE_APR_28_2009_1258PM
#ifndef BOOST_SPIRIT_REPOSITORY_KARMA_DIRECTIVE_HPP
#define BOOST_SPIRIT_REPOSITORY_KARMA_DIRECTIVE_HPP
#if defined(_MSC_VER)
#pragma once

View File

@@ -5,8 +5,8 @@
// Distributed under the 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(SPIRIT_REPOSITORY_KARMA_NONTERMINAL_AUG_12_2009_0807PM)
#define SPIRIT_REPOSITORY_KARMA_NONTERMINAL_AUG_12_2009_0807PM
#ifndef BOOST_SPIRIT_REPOSITORY_KARMA_NONTERMINAL_HPP
#define BOOST_SPIRIT_REPOSITORY_KARMA_NONTERMINAL_HPP
#if defined(_MSC_VER)
#pragma once

View File

@@ -27,6 +27,7 @@
#include <boost/spirit/home/support/nonterminal/locals.hpp>
#include <boost/spirit/repository/home/support/subrule_context.hpp>
#include <boost/static_assert.hpp>
#include <boost/fusion/include/as_map.hpp>
#include <boost/fusion/include/at_key.hpp>
#include <boost/fusion/include/cons.hpp>
@@ -41,7 +42,10 @@
#include <boost/mpl/identity.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/type_traits/add_reference.hpp>
#include <boost/proto/extends.hpp>
#include <boost/proto/traits.hpp>
#include <boost/type_traits/is_const.hpp>
#include <boost/type_traits/is_reference.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/type_traits/remove_reference.hpp>
@@ -390,8 +394,10 @@ namespace boost { namespace spirit { namespace repository { namespace karma
typedef typename
spirit::detail::attr_from_sig<sig_type>::type
attr_type;
typedef typename add_reference<
typename add_const<attr_type>::type>::type attr_reference_type;
BOOST_STATIC_ASSERT_MSG(
!is_reference<attr_type>::value && !is_const<attr_type>::value,
"Const/reference qualifiers on Karma subrule attribute are meaningless");
typedef attr_type const& attr_reference_type;
// parameter_types is a sequence of types passed as parameters to the subrule
typedef typename
@@ -461,7 +467,7 @@ namespace boost { namespace spirit { namespace repository { namespace karma
def_type(compile<spirit::karma::domain>(expr), name_)));
}
#define SUBRULE_MODULUS_ASSIGN_OPERATOR(lhs_ref, rhs_ref) \
#define BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(lhs_ref, rhs_ref) \
template <typename Expr> \
friend typename group_type_helper<Expr, true>::type \
operator%=(subrule lhs_ref sr, Expr rhs_ref expr) \
@@ -475,20 +481,20 @@ namespace boost { namespace spirit { namespace repository { namespace karma
/**/
// non-const versions needed to suppress proto's %= kicking in
SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, const&)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, const&)
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, &&)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, &&)
#else
SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, &)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, &)
#endif
SUBRULE_MODULUS_ASSIGN_OPERATOR(&, const&)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(&, const&)
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
SUBRULE_MODULUS_ASSIGN_OPERATOR(&, &&)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(&, &&)
#else
SUBRULE_MODULUS_ASSIGN_OPERATOR(&, &)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(&, &)
#endif
#undef SUBRULE_MODULUS_ASSIGN_OPERATOR
#undef BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR
std::string const& name() const
{

View File

@@ -4,8 +4,8 @@
// Distributed under the 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(SPIRIT_REPOSITORY_QI_APR_28_2009_1258PM)
#define SPIRIT_REPOSITORY_QI_APR_28_2009_1258PM
#ifndef BOOST_SPIRIT_REPOSITORY_QI_HPP
#define BOOST_SPIRIT_REPOSITORY_QI_HPP
#if defined(_MSC_VER)
#pragma once

View File

@@ -4,8 +4,8 @@
// Distributed under the 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(SPIRIT_REPOSITORY_QI_DIRECTIVE_APR_28_2009_1258PM)
#define SPIRIT_REPOSITORY_QI_DIRECTIVE_APR_28_2009_1258PM
#ifndef BOOST_SPIRIT_REPOSITORY_QI_DIRECTIVE_HPP
#define BOOST_SPIRIT_REPOSITORY_QI_DIRECTIVE_HPP
#if defined(_MSC_VER)
#pragma once

View File

@@ -5,8 +5,8 @@
// Distributed under the 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(SPIRIT_REPOSITORY_QI_DISTINCT_MAY_20_2009_0825M)
#define SPIRIT_REPOSITORY_QI_DISTINCT_MAY_20_2009_0825M
#ifndef BOOST_SPIRIT_REPOSITORY_QI_DIRECTIVE_DISTINCT_HPP
#define BOOST_SPIRIT_REPOSITORY_QI_DIRECTIVE_DISTINCT_HPP
#if defined(_MSC_VER)
#pragma once
@@ -94,9 +94,9 @@ namespace boost { namespace spirit { namespace repository {namespace qi
}
template <typename Context>
info what(Context& /*ctx*/) const
info what(Context& ctx) const
{
return info("distinct");
return info("distinct", subject.what(ctx));
}
Subject subject;

View File

@@ -5,8 +5,8 @@
Distributed under the 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(SPIRIT_KWD_NOVEMBER_14_2008_1148AM)
#define SPIRIT_KWD_NOVEMBER_14_2008_1148AM
#ifndef BOOST_SPIRIT_REPOSITORY_QI_DIRECTIVE_KWD_HPP
#define BOOST_SPIRIT_REPOSITORY_QI_DIRECTIVE_KWD_HPP
#if defined(_MSC_VER)
#pragma once
@@ -25,6 +25,12 @@
#include <boost/fusion/include/at.hpp>
#include <vector>
#if defined(_MSC_VER)
# pragma warning(push)
# pragma warning(disable: 4127) // conditional expression is constant
# pragma warning(disable: 4512) // assignment operator could not be generated.
#endif
namespace boost { namespace spirit
{
///////////////////////////////////////////////////////////////////////////
@@ -170,11 +176,6 @@ template <typename T>
flag=true;
return true;
}
private:
// silence MSVC warning C4512: assignment operator could not be generated
kwd_pass_iterator& operator= (kwd_pass_iterator const&);
};
template <typename T>
@@ -202,10 +203,6 @@ template <typename T>
}
T const exact;
private:
// silence MSVC warning C4512: assignment operator could not be generated
kwd_exact_iterator& operator= (kwd_exact_iterator const&);
};
template <typename T>
@@ -234,10 +231,6 @@ template <typename T>
}
T const min;
T const max;
private:
// silence MSVC warning C4512: assignment operator could not be generated
kwd_finite_iterator& operator= (kwd_finite_iterator const&);
};
template <typename T>
@@ -254,10 +247,6 @@ template <typename T>
return true;
}
T const min;
private:
// silence MSVC warning C4512: assignment operator could not be generated
kwd_infinite_iterator& operator= (kwd_infinite_iterator const&);
};
// This class enables the transportation of parameters needed to call
@@ -439,11 +428,9 @@ template <typename T>
no_case_keyword,
spirit::qi::no_case_literal_string< KeywordType, true>,
spirit::qi::literal_string<KeywordType, true> >::type keyword_string_type;
keyword_string_type keyword;
private:
// silence MSVC warning C4512: assignment operator could not be generated
kwd_parser& operator= (kwd_parser const&);
keyword_string_type keyword;
private:
template <typename Iterator, typename Context, typename Skipper>
static spirit::qi::detail::fail_function<Iterator, Context, Skipper>
fail_function(
@@ -585,10 +572,8 @@ template <typename Subject, typename KeywordType, typename LoopIter, typename Di
LoopIter iter;
KeywordType keyword;
private:
// silence MSVC warning C4512: assignment operator could not be generated
complex_kwd_parser& operator= (complex_kwd_parser const&);
private:
template <typename Iterator, typename Context, typename Skipper>
static spirit::qi::detail::fail_function<Iterator, Context, Skipper>
fail_function(
@@ -1201,5 +1186,9 @@ namespace boost { namespace spirit { namespace traits
}}}
#if defined(_MSC_VER)
# pragma warning(pop)
#endif
#endif

View File

@@ -5,8 +5,8 @@
// Distributed under the 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(SPIRIT_REPOSITORY_QI_NONTERMINAL_AUG_12_2009_1140AM)
#define SPIRIT_REPOSITORY_QI_NONTERMINAL_AUG_12_2009_1140AM
#ifndef BOOST_SPIRIT_REPOSITORY_QI_NONTERMINAL_HPP
#define BOOST_SPIRIT_REPOSITORY_QI_NONTERMINAL_HPP
#if defined(_MSC_VER)
#pragma once

View File

@@ -27,6 +27,7 @@
#include <boost/spirit/home/support/nonterminal/locals.hpp>
#include <boost/spirit/repository/home/support/subrule_context.hpp>
#include <boost/static_assert.hpp>
#include <boost/fusion/include/as_map.hpp>
#include <boost/fusion/include/at_key.hpp>
#include <boost/fusion/include/cons.hpp>
@@ -41,7 +42,9 @@
#include <boost/mpl/identity.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/type_traits/add_reference.hpp>
#include <boost/proto/extends.hpp>
#include <boost/proto/traits.hpp>
#include <boost/type_traits/is_reference.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/type_traits/remove_reference.hpp>
@@ -413,7 +416,10 @@ namespace boost { namespace spirit { namespace repository { namespace qi
typedef typename
spirit::detail::attr_from_sig<sig_type>::type
attr_type;
typedef typename add_reference<attr_type>::type attr_reference_type;
BOOST_STATIC_ASSERT_MSG(
!is_reference<attr_type>::value,
"Reference qualifier on Qi subrule attribute type is meaningless");
typedef attr_type& attr_reference_type;
// parameter_types is a sequence of types passed as parameters to the subrule
typedef typename
@@ -483,7 +489,7 @@ namespace boost { namespace spirit { namespace repository { namespace qi
def_type(compile<spirit::qi::domain>(expr), name_)));
}
#define SUBRULE_MODULUS_ASSIGN_OPERATOR(lhs_ref, rhs_ref) \
#define BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(lhs_ref, rhs_ref) \
template <typename Expr> \
friend typename group_type_helper<Expr, true>::type \
operator%=(subrule lhs_ref sr, Expr rhs_ref expr) \
@@ -497,20 +503,20 @@ namespace boost { namespace spirit { namespace repository { namespace qi
/**/
// non-const versions needed to suppress proto's %= kicking in
SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, const&)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, const&)
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, &&)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, &&)
#else
SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, &)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(const&, &)
#endif
SUBRULE_MODULUS_ASSIGN_OPERATOR(&, const&)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(&, const&)
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
SUBRULE_MODULUS_ASSIGN_OPERATOR(&, &&)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(&, &&)
#else
SUBRULE_MODULUS_ASSIGN_OPERATOR(&, &)
BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR(&, &)
#endif
#undef SUBRULE_MODULUS_ASSIGN_OPERATOR
#undef BOOST_SPIRIT_SUBRULE_MODULUS_ASSIGN_OPERATOR
std::string const& name() const
{

View File

@@ -5,8 +5,8 @@
// Distributed under the 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(SPIRIT_REPOSITORY_QI_OPERATOR_OCT_20_2010_1258PM)
#define SPIRIT_REPOSITORY_QI_OPERATOR_OCT_20_2010_1258PM
#ifndef BOOST_SPIRIT_REPOSITORY_QI_OPERATOR_HPP
#define BOOST_SPIRIT_REPOSITORY_QI_OPERATOR_HPP
#if defined(_MSC_VER)
#pragma once

View File

@@ -4,15 +4,17 @@
Distributed under the 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(SPIRIT_KEYWORDS_DETAIL_MARCH_13_2007_1145PM)
#define SPIRIT_KEYWORDS_DETAIL_MARCH_13_2007_1145PM
#ifndef BOOST_SPIRIT_REPOSITORY_QI_OPERATOR_DETAIL_KEYWORDS_HPP
#define BOOST_SPIRIT_REPOSITORY_QI_OPERATOR_DETAIL_KEYWORDS_HPP
#if defined(_MSC_VER)
#pragma once
#endif
#include <boost/fusion/include/nview.hpp>
#include <boost/spirit/repository/home/qi/directive/kwd.hpp> // for skipper_keyword_marker
#include <boost/spirit/home/qi/string/lit.hpp>
#include <boost/fusion/include/at.hpp>
#include <boost/fusion/include/any.hpp>
namespace boost { namespace spirit { namespace repository { namespace qi { namespace detail {
// Variant visitor class which handles dispatching the parsing to the selected parser
// This also handles passing the correct attributes and flags/counters to the subject parsers
@@ -82,7 +84,9 @@ namespace boost { namespace spirit { namespace repository { namespace qi { names
Iterator save = first;
skipper_keyword_marker<Skipper,NoCasePass>
marked_skipper(skipper,flags[Index::value],counters[Index::value]);
if(subject.parse(first,last,context,marked_skipper,fusion::at_c<Index::value>(attr)))
typename fusion::result_of::at_c<typename remove_reference<Attribute>::type, Index::value>::type
attr_ = fusion::at_c<Index::value>(attr);
if(subject.parse(first,last,context,marked_skipper,attr_))
{
return true;
}
@@ -90,6 +94,10 @@ namespace boost { namespace spirit { namespace repository { namespace qi { names
return false;
}
#if defined(_MSC_VER)
# pragma warning(push)
# pragma warning(disable: 4127) // conditional expression is constant
#endif
// Handle unused attributes
template <typename T> bool call(T &idx, mpl::false_) const{
@@ -114,6 +122,9 @@ namespace boost { namespace spirit { namespace repository { namespace qi { names
}
return false;
}
#if defined(_MSC_VER)
# pragma warning(pop)
#endif
const Elements &elements;
Iterator &first;
@@ -181,7 +192,7 @@ namespace boost { namespace spirit { namespace repository { namespace qi { names
///////////////////////////////////////////////////////////////////////////
// get_keyword_char_type
//
// Collapses the character type comming from the subject kwd parsers and
// Collapses the character type coming from the subject kwd parsers and
// and checks that they are all identical (necessary in order to be able
// to build a tst parser to parse the keywords.
///////////////////////////////////////////////////////////////////////////
@@ -475,7 +486,7 @@ namespace boost { namespace spirit { namespace repository { namespace qi { names
return true;
}
// Second pass case insensitive
else if(parser_index_type* val_ptr
if(parser_index_type* val_ptr
= lookup->find(saved_first,last,nc_filter()))
{
first = saved_first;
@@ -638,6 +649,10 @@ namespace boost { namespace spirit { namespace repository { namespace qi { names
}
};
#ifdef _MSC_VER
# pragma warning(push)
# pragma warning(disable: 4512) // assignment operator could not be generated.
#endif
template <typename ParseDispatcher>
struct complex_kwd_function
{
@@ -688,11 +703,10 @@ namespace boost { namespace spirit { namespace repository { namespace qi { names
Context& context;
Skipper const& skipper;
ParseDispatcher const& dispatcher;
private:
// silence MSVC warning C4512: assignment operator could not be generated
complex_kwd_function& operator= (complex_kwd_function const&);
};
#ifdef _MSC_VER
# pragma warning(pop)
#endif
}}}}}

View File

@@ -5,8 +5,8 @@
Distributed under the 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(SPIRIT_KEYWORDS_OR_MARCH_13_2007_1145PM)
#define SPIRIT_KEYWORDS_OR_MARCH_13_2007_1145PM
#ifndef BOOST_SPIRIT_REPOSITORY_QI_OPERATOR_KEYWORDS_HPP
#define BOOST_SPIRIT_REPOSITORY_QI_OPERATOR_KEYWORDS_HPP
#if defined(_MSC_VER)
#pragma once
@@ -24,7 +24,6 @@
#include <boost/fusion/include/value_at.hpp>
#include <boost/fusion/include/mpl.hpp>
#include <boost/optional.hpp>
#include <boost/foreach.hpp>
#include <boost/array.hpp>
#include <boost/spirit/home/qi/string/symbols.hpp>
#include <boost/spirit/home/qi/string/lit.hpp>
@@ -41,6 +40,8 @@
#include <boost/fusion/include/zip_view.hpp>
#include <boost/fusion/include/as_vector.hpp>
#include <boost/variant/static_visitor.hpp>
#include <boost/proto/operators.hpp>
#include <boost/proto/tags.hpp>
#include <boost/type_traits/remove_const.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/spirit/repository/home/qi/operator/detail/keywords.hpp>
@@ -263,7 +264,7 @@ namespace boost { namespace spirit { namespace repository { namespace qi
// 1) parse a keyword and fetch the parser index associated with that keyword
// 2) call the associated parser and store the parsed value in the matching attribute.
while(true)
for(;;)
{
spirit::qi::skip_over(first, last, skipper);
@@ -278,10 +279,10 @@ namespace boost { namespace spirit { namespace repository { namespace qi
if(!complex_keywords_inst.parse(complex_function))
{
first = save;
// Check that we are leaving the keywords parser in a successfull state
BOOST_FOREACH(bool &valid,flags)
// Check that we are leaving the keywords parser in a successful state
for(typename flags_type::size_type i = 0, size = flags.size(); i < size; ++i)
{
if(!valid)
if(!flags[i])
{
return false;
}
@@ -292,7 +293,7 @@ namespace boost { namespace spirit { namespace repository { namespace qi
save = first;
}
}
return false;
BOOST_UNREACHABLE_RETURN(false)
}
// Handle the mixed kwd and ikwd case
@@ -344,7 +345,7 @@ namespace boost { namespace spirit { namespace repository { namespace qi
// 1) parse a keyword and fetch the parser index associated with that keyword
// 2) call the associated parser and store the parsed value in the matching attribute.
while(true)
for(;;)
{
spirit::qi::skip_over(first, last, skipper);
Iterator save = first;
@@ -359,10 +360,10 @@ namespace boost { namespace spirit { namespace repository { namespace qi
if(!complex_keywords_inst.parse(complex_function))
{
first = save;
// Check that we are leaving the keywords parser in a successfull state
BOOST_FOREACH(bool &valid,flags)
// Check that we are leaving the keywords parser in a successful state
for(typename flags_type::size_type i = 0, size = flags.size(); i < size; ++i)
{
if(!valid)
if(!flags[i])
{
return false;
}
@@ -375,7 +376,7 @@ namespace boost { namespace spirit { namespace repository { namespace qi
}
}
}
return false;
BOOST_UNREACHABLE_RETURN(false)
}
template <typename Context>

View File

@@ -4,8 +4,8 @@
// Distributed under the 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(SPIRIT_REPOSITORY_QI_PRIMITIVE_APR_28_2009_1258PM)
#define SPIRIT_REPOSITORY_QI_PRIMITIVE_APR_28_2009_1258PM
#ifndef BOOST_SPIRIT_REPOSITORY_QI_PRIMITIVE_HPP
#define BOOST_SPIRIT_REPOSITORY_QI_PRIMITIVE_HPP
#if defined(_MSC_VER)
#pragma once