$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r56635 - in trunk/boost/spirit: . home/karma home/support include
From: hartmut.kaiser_at_[hidden]
Date: 2009-10-07 13:12:39
Author: hkaiser
Date: 2009-10-07 13:12:39 EDT (Wed, 07 Oct 2009)
New Revision: 56635
URL: http://svn.boost.org/trac/boost/changeset/56635
Log:
Spirit: disable Phoenix attributes for V2.1
Added:
   trunk/boost/spirit/include/version.hpp   (contents, props changed)
Text files modified: 
   trunk/boost/spirit/home/karma/phoenix_attributes.hpp |    11 +++++++++++                             
   trunk/boost/spirit/home/support/container.hpp        |    15 +++++++++++++++                         
   trunk/boost/spirit/home/support/context.hpp          |     2 +-                                      
   trunk/boost/spirit/version.hpp                       |     8 +-------                                
   4 files changed, 28 insertions(+), 8 deletions(-)
Modified: trunk/boost/spirit/home/karma/phoenix_attributes.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/phoenix_attributes.hpp	(original)
+++ trunk/boost/spirit/home/karma/phoenix_attributes.hpp	2009-10-07 13:12:39 EDT (Wed, 07 Oct 2009)
@@ -10,6 +10,11 @@
 #pragma once
 #endif
 
+#include <boost/spirit/include/version.hpp>
+
+// we support Phoenix attributes only starting with V2.2
+#if SPIRIT_VERSION >= 0x2020
+
 #include <boost/spirit/home/support/attributes.hpp>
 #include <boost/spirit/home/support/container.hpp>
 
@@ -25,6 +30,11 @@
     // attribute (Kleene, plus, list, repeat, etc.)
     ///////////////////////////////////////////////////////////////////////////
     template <typename Eval>
+    struct is_container<phoenix::actor<Eval> const>
+      : is_container<typename boost::result_of<phoenix::actor<Eval>()>::type>
+    {};
+
+    template <typename Eval>
     struct container_iterator<phoenix::actor<Eval> const>
     {
         typedef phoenix::actor<Eval> const& type;
@@ -97,3 +107,4 @@
 }}}
 
 #endif
+#endif
Modified: trunk/boost/spirit/home/support/container.hpp
==============================================================================
--- trunk/boost/spirit/home/support/container.hpp	(original)
+++ trunk/boost/spirit/home/support/container.hpp	2009-10-07 13:12:39 EDT (Wed, 07 Oct 2009)
@@ -49,6 +49,11 @@
     {};
 
    template <typename T>
+   struct is_container<T&> 
+     : is_container<T> 
+   {};
+
+   template <typename T>
    struct is_container<optional<T> > 
      : is_container<T> 
    {};
@@ -130,6 +135,11 @@
     {};
     //]
 
+    template <typename T>
+    struct container_value<T&> 
+      : container_value<T> 
+    {};
+
     // this will be instantiated if the optional holds a container
     template <typename T>
     struct container_value<optional<T> > 
@@ -177,6 +187,11 @@
     };
 
     template <typename Container>
+    struct container_iterator<Container&>
+      : container_iterator<Container>
+    {};
+
+    template <typename Container>
     struct container_iterator<Container const>
     {
         typedef typename Container::const_iterator type;
Modified: trunk/boost/spirit/home/support/context.hpp
==============================================================================
--- trunk/boost/spirit/home/support/context.hpp	(original)
+++ trunk/boost/spirit/home/support/context.hpp	2009-10-07 13:12:39 EDT (Wed, 07 Oct 2009)
@@ -170,7 +170,7 @@
     phoenix::actor<attribute<1> > const _r1 = attribute<1>();
     phoenix::actor<attribute<2> > const _r2 = attribute<2>();
 
-    //  Bring in the rest of the attributes (_4 .. _N+1), using PP
+    //  Bring in the rest of the attributes (_r4 .. _rN+1), using PP
     BOOST_PP_REPEAT_FROM_TO(
         3, SPIRIT_ATTRIBUTES_LIMIT, SPIRIT_DECLARE_ATTRIBUTE, _)
 
Added: trunk/boost/spirit/include/version.hpp
==============================================================================
--- (empty file)
+++ trunk/boost/spirit/include/version.hpp	2009-10-07 13:12:39 EDT (Wed, 07 Oct 2009)
@@ -0,0 +1,20 @@
+/*=============================================================================
+  Copyright (c) 2001-2009 Joel de Guzman
+  Copyright (c) 2001-2009 Hartmut Kaiser
+  http://spirit.sourceforge.net/
+
+  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_VERSION_NOVEMBER_13_2008_0834AM)
+#define SPIRIT_VERSION_NOVEMBER_13_2008_0834AM
+
+///////////////////////////////////////////////////////////////////////////////
+//
+//  This is the version of the current Spirit distribution
+//
+///////////////////////////////////////////////////////////////////////////////
+#define SPIRIT_VERSION 0x2010
+#define SPIRIT_PIZZA_VERSION COSMIC_KARMA  // :-)
+
+#endif
Modified: trunk/boost/spirit/version.hpp
==============================================================================
--- trunk/boost/spirit/version.hpp	(original)
+++ trunk/boost/spirit/version.hpp	2009-10-07 13:12:39 EDT (Wed, 07 Oct 2009)
@@ -9,12 +9,6 @@
 #if !defined(SPIRIT_VERSION_NOVEMBER_13_2008_0834AM)
 #define SPIRIT_VERSION_NOVEMBER_13_2008_0834AM
 
-///////////////////////////////////////////////////////////////////////////////
-//
-//  This is the version of the current Spirit distribution
-//
-///////////////////////////////////////////////////////////////////////////////
-#define SPIRIT_VERSION 0x2010
-#define SPIRIT_PIZZA_VERSION COSMIC_KARMA  // :-)
+#include <boost/spirit/include/version.hpp>
 
 #endif