boost/boost-fix-spirit-attr-handling.patch

48 lines
1.7 KiB
Diff

Index: boost/spirit/home/qi/auxiliary/attr.hpp
===================================================================
--- boost/spirit/home/qi/auxiliary/attr.hpp (revision 69217)
+++ boost/spirit/home/qi/auxiliary/attr.hpp (revision 69218)
@@ -18,6 +18,7 @@
#include <boost/spirit/home/qi/detail/assign_to.hpp>
#include <boost/spirit/home/qi/meta_compiler.hpp>
#include <boost/spirit/home/support/common_terminals.hpp>
+#include <boost/spirit/home/support/handles_container.hpp>
#include <boost/type_traits/add_reference.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/remove_const.hpp>
@@ -96,6 +97,14 @@
};
}}}
+namespace boost { namespace spirit { namespace traits
+{
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename T, typename Attr, typename Context, typename Iterator>
+ struct handles_container<qi::attr_parser<T>, Attr, Context, Iterator>
+ : traits::is_container<Attr> {};
+}}}
+
#endif
Index: boost/spirit/home/qi/string/symbols.hpp
===================================================================
--- boost/spirit/home/qi/string/symbols.hpp (revision 70041)
+++ boost/spirit/home/qi/string/symbols.hpp (revision 70042)
@@ -398,6 +398,15 @@
};
}}}
+namespace boost { namespace spirit { namespace traits
+{
+ ///////////////////////////////////////////////////////////////////////////
+ template <typename Char, typename T, typename Lookup, typename Filter
+ , typename Attr, typename Context, typename Iterator>
+ struct handles_container<qi::symbols<Char, T, Lookup, Filter>, Attr, Context, Iterator>
+ : traits::is_container<Attr> {};
+}}}
+
#if defined(BOOST_MSVC)
# pragma warning(pop)
#endif