Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r70225 - in trunk: boost/spirit/home/karma/directive libs/spirit/doc libs/spirit/test/karma
From: hartmut.kaiser_at_[hidden]
Date: 2011-03-20 14:25:46


Author: hkaiser
Date: 2011-03-20 14:25:44 EDT (Sun, 20 Mar 2011)
New Revision: 70225
URL: http://svn.boost.org/trac/boost/changeset/70225

Log:
Spirit: comment fixes, minor adjustments
Text files modified:
   trunk/boost/spirit/home/karma/directive/center_alignment.hpp | 4 ++--
   trunk/boost/spirit/home/karma/directive/right_alignment.hpp | 6 +++---
   trunk/libs/spirit/doc/what_s_new.qbk | 9 ++++++++-
   trunk/libs/spirit/test/karma/kleene.cpp | 21 +++++++++++++++++++++
   4 files changed, 34 insertions(+), 6 deletions(-)

Modified: trunk/boost/spirit/home/karma/directive/center_alignment.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/directive/center_alignment.hpp (original)
+++ trunk/boost/spirit/home/karma/directive/center_alignment.hpp 2011-03-20 14:25:44 EDT (Sun, 20 Mar 2011)
@@ -51,7 +51,7 @@
           , terminal_ex<tag::center, fusion::vector1<T> > >
       : mpl::true_ {};
 
- // enables *lazy* delimit(d)[g], where d provides a generator
+ // enables *lazy* center(d)[g], where d provides a generator
     template <>
     struct use_lazy_directive<karma::domain, tag::center, 1>
       : mpl::true_ {};
@@ -63,7 +63,7 @@
           , terminal_ex<tag::center, fusion::vector2<Width, Padding> > >
       : spirit::traits::matches<karma::domain, Padding> {};
 
- // enables *lazy* delimit(w, d)[g], where d provides a generator and w is
+ // enables *lazy* center(w, d)[g], where d provides a generator and w is
     // a maximum width
     template <>
     struct use_lazy_directive<karma::domain, tag::center, 2>

Modified: trunk/boost/spirit/home/karma/directive/right_alignment.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/directive/right_alignment.hpp (original)
+++ trunk/boost/spirit/home/karma/directive/right_alignment.hpp 2011-03-20 14:25:44 EDT (Sun, 20 Mar 2011)
@@ -51,7 +51,7 @@
           , terminal_ex<tag::right_align, fusion::vector1<T> > >
       : mpl::true_ {};
 
- // enables *lazy* delimit(d)[g], where d provides a generator
+ // enables *lazy* right_align(d)[g], where d provides a generator
     template <>
     struct use_lazy_directive<karma::domain, tag::right_align, 1>
       : mpl::true_ {};
@@ -63,8 +63,8 @@
           , terminal_ex<tag::right_align, fusion::vector2<Width, Padding> > >
       : spirit::traits::matches<karma::domain, Padding> {};
 
- // enables *lazy* delimit(w, d)[g], where d provides a generator and w is
- // a maximum width
+ // enables *lazy* right_align(w, d)[g], where d provides a generator and w
+ // is a maximum width
     template <>
     struct use_lazy_directive<karma::domain, tag::right_align, 2>
       : mpl::true_ {};

Modified: trunk/libs/spirit/doc/what_s_new.qbk
==============================================================================
--- trunk/libs/spirit/doc/what_s_new.qbk (original)
+++ trunk/libs/spirit/doc/what_s_new.qbk 2011-03-20 14:25:44 EDT (Sun, 20 Mar 2011)
@@ -55,7 +55,8 @@
   a test.
 * Fixed the __qi__ __qi_attr__ parser, the __qi__ __qi_symbols__ parser, and
   the __karma__ [karma_symbols `symbols<>`] generator to properly handle
- container attributes. Those have been broken in Boost V1.46.1.
+ container attributes. Those have been broken in Boost V1.46.1 (thanks to
+ Aaron Graham and Joerg Becker for reporting those).
 
 [heading Breaking Changes]
 
@@ -92,6 +93,12 @@
   in order for the new behavior to kick in. By default, the old behavior
   is still in place.
 * Alternatives now support attribute compatibility.
+* The attribute handling for container attributes of sequences and container
+ components (list, Kleene, Plus, and repeat) has been completely rewritten.
+ It now supports many more use cases and behaves much more predictable than
+ the older version. Thanks to Thomas Taylor, Richard Crossley, Semen,
+ Adalberto Castelo, and many others for reporting bugs and helping in making
+ the new code behave as expected.
 
 [endsect]
 

Modified: trunk/libs/spirit/test/karma/kleene.cpp
==============================================================================
--- trunk/libs/spirit/test/karma/kleene.cpp (original)
+++ trunk/libs/spirit/test/karma/kleene.cpp 2011-03-20 14:25:44 EDT (Sun, 20 Mar 2011)
@@ -47,6 +47,18 @@
     mutable std::vector<char>::iterator it;
 };
 
+struct A
+{
+ double d1;
+ double d2;
+};
+
+BOOST_FUSION_ADAPT_STRUCT(
+ A,
+ (double, d1)
+ (double, d2)
+)
+
 ///////////////////////////////////////////////////////////////////////////////
 int main()
 {
@@ -219,6 +231,15 @@
         BOOST_TEST(test("[6162636465666768]", '[' << *hex[action(v)] << ']'));
     }
 
+ {
+ using boost::spirit::karma::double_;
+
+ std::vector<A> v(1);
+ v[0].d1 = 1.0;
+ v[0].d2 = 2.0;
+ BOOST_TEST(test("A1.02.0", 'A' << *(double_ << double_), v));
+ }
+
     return boost::report_errors();
 }
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk