$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r55576 - in trunk/boost/spirit/home: karma/numeric qi/nonterminal support
From: hartmut.kaiser_at_[hidden]
Date: 2009-08-13 20:53:26
Author: hkaiser
Date: 2009-08-13 20:53:25 EDT (Thu, 13 Aug 2009)
New Revision: 55576
URL: http://svn.boost.org/trac/boost/changeset/55576
Log:
Spirit: trying to fix compilation problems with older versions of Boost while BOOST_SPIRIT_DEBUG is defined
Text files modified: 
   trunk/boost/spirit/home/karma/numeric/real_policies.hpp  |    23 +++++++++++------------                 
   trunk/boost/spirit/home/qi/nonterminal/debug_handler.hpp |     1 +                                       
   trunk/boost/spirit/home/qi/nonterminal/simple_trace.hpp  |    26 +-------------------------              
   trunk/boost/spirit/home/support/unused.hpp               |    28 ++++++++++++++++++++++++++++            
   4 files changed, 41 insertions(+), 37 deletions(-)
Modified: trunk/boost/spirit/home/karma/numeric/real_policies.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/numeric/real_policies.hpp	(original)
+++ trunk/boost/spirit/home/karma/numeric/real_policies.hpp	2009-08-13 20:53:25 EDT (Thu, 13 Aug 2009)
@@ -92,10 +92,10 @@
         //  between 0.001 and 100000 will be generated using the fixed format, 
         //  all others will be generated using the scientific representation.
         //
-        //  The trailing_zeros_flag can be used to force the output of trailing 
-        //  zeros in the fractional part up to the number of digits returned by 
-        //  the precision() member function. The default is not to generate 
-        //  the trailing zeros.
+        //  The function trailing_zeros() can be used to force the output of 
+        //  trailing zeros in the fractional part up to the number of digits 
+        //  returned by the precision() member function. The default is not to 
+        //  generate the trailing zeros.
         //  
         //      n     The floating point number to output. This can be used to 
         //            adjust the formatting flags depending on the value of 
@@ -182,13 +182,12 @@
         //            I.e. a fractional part of 0.01234 is represented as 1234 
         //            when the 'precision_' parameter is 5.
         //
-        //  Note: If the trailing_zeros flag is not returned from the 
-        //        floatfield() function, the 'precision_' parameter will have 
-        //        been corrected from the value the precision() function 
-        //        returned earlier (defining the maximal number of fractional 
-        //        digits) in the sense, that it takes into account trailing 
-        //        zeros. I.e. a floating point number 0.0123 and a value of 5 
-        //        returned from precision() will result in:
+        //  Note: If trailing_zeros() does not return true the 'precision_' 
+        //        parameter will have been corrected from the value the 
+        //        precision() function returned earlier (defining the maximal 
+        //        number of fractional digits) in the sense, that it takes into 
+        //        account trailing zeros. I.e. a floating point number 0.0123 
+        //        and a value of 5 returned from precision() will result in:
         //
         //        trailing_zeros is not specified:
         //            n           123
@@ -250,7 +249,7 @@
         //
         //      sink      The output iterator to use for generation
         //      n         The (signed) floating point number to convert. 
-        //      
+        //
         //  The Tag template parameter is either of the type unused_type or
         //  describes the character class and conversion to be applied to any 
         //  output possibly influenced by either the lower[...] or upper[...] 
Modified: trunk/boost/spirit/home/qi/nonterminal/debug_handler.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/nonterminal/debug_handler.hpp	(original)
+++ trunk/boost/spirit/home/qi/nonterminal/debug_handler.hpp	2009-08-13 20:53:25 EDT (Thu, 13 Aug 2009)
@@ -11,6 +11,7 @@
 #pragma once
 #endif
 
+#include <boost/spirit/home/support/unused.hpp>
 #include <boost/spirit/home/qi/nonterminal/rule.hpp>
 #include <boost/spirit/home/qi/operator/expect.hpp>
 #include <boost/function.hpp>
Modified: trunk/boost/spirit/home/qi/nonterminal/simple_trace.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/nonterminal/simple_trace.hpp	(original)
+++ trunk/boost/spirit/home/qi/nonterminal/simple_trace.hpp	2009-08-13 20:53:25 EDT (Thu, 13 Aug 2009)
@@ -11,6 +11,7 @@
 #pragma once
 #endif
 
+#include <boost/spirit/home/support/unused.hpp>
 #include <boost/fusion/include/out.hpp>
 #include <iostream>
 
@@ -29,31 +30,6 @@
 #define BOOST_SPIRIT_DEBUG_INDENT 2
 #endif
 
-#if !defined(BOOST_FUSION_UNUSED_HAS_IO)
-namespace boost { namespace fusion
-{
-    namespace detail
-    {
-        struct unused_only
-        {
-            unused_only(unused_type const&) {}
-        };
-    }
-
-    template <typename Out>
-    inline Out& operator<<(Out& out, detail::unused_only const&)
-    {
-        return out;
-    }
-
-    template <typename In>
-    inline In& operator>>(In& in, unused_type&)
-    {
-        return in;
-    }
-}}
-#endif
-
 namespace boost { namespace spirit { namespace qi
 {
     struct simple_trace
Modified: trunk/boost/spirit/home/support/unused.hpp
==============================================================================
--- trunk/boost/spirit/home/support/unused.hpp	(original)
+++ trunk/boost/spirit/home/support/unused.hpp	2009-08-13 20:53:25 EDT (Thu, 13 Aug 2009)
@@ -14,6 +14,34 @@
 #include <boost/fusion/include/unused.hpp>
 #include <boost/mpl/bool.hpp>
 
+///////////////////////////////////////////////////////////////////////////////
+// implement streaming operators for unused_type for older versions of Fusion
+#if !defined(BOOST_FUSION_UNUSED_HAS_IO)
+namespace boost { namespace fusion
+{
+    namespace detail
+    {
+        struct unused_only
+        {
+            unused_only(unused_type const&) {}
+        };
+    }
+
+    template <typename Out>
+    inline Out& operator<<(Out& out, detail::unused_only const&)
+    {
+        return out;
+    }
+
+    template <typename In>
+    inline In& operator>>(In& in, unused_type&)
+    {
+        return in;
+    }
+}}
+#endif
+
+///////////////////////////////////////////////////////////////////////////////
 namespace boost { namespace spirit
 {
     ///////////////////////////////////////////////////////////////////////////