$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: jefffaust_at_[hidden]
Date: 2007-05-28 20:56:28
Author: jefffaust
Date: 2007-05-28 20:56:28 EDT (Mon, 28 May 2007)
New Revision: 4345
URL: http://svn.boost.org/trac/boost/changeset/4345
Log:
Rearrange container_stream_state to be defined before first use.
Text files modified: 
   sandbox/explore/boost/explore/stream_container.hpp |    65 ++++++++++++++++++++------------------- 
   1 files changed, 34 insertions(+), 31 deletions(-)
Modified: sandbox/explore/boost/explore/stream_container.hpp
==============================================================================
--- sandbox/explore/boost/explore/stream_container.hpp	(original)
+++ sandbox/explore/boost/explore/stream_container.hpp	2007-05-28 20:56:28 EDT (Mon, 28 May 2007)
@@ -34,7 +34,41 @@
         BOOST_EXPLORE_INIT_STRING(assoc_separator, ":")
         BOOST_EXPLORE_INIT_STRING(assoc_start, "")
         BOOST_EXPLORE_INIT_STRING(assoc_end, "")
+    }
+
+    // A simple collection of additional stream state
+    template<typename Elem, typename Tr>
+    struct container_stream_state
+    {
+        typedef std::basic_string<Elem, Tr> str_typ;
+        container_stream_state()
+        {
+            init<Elem>();
+        }
+
+        // is there an easier way to specialize between char and wchar_t?
+        // Concern: this is only specialized for char and wchar_t streams.
+        template<typename El>
+        void init()
+        {
+            separator = detail::init_separator<El>();
+            start = detail::init_start<El>();
+            end = detail::init_end<El>();
+            assoc_separator = detail::init_assoc_separator<El>();
+            assoc_start = detail::init_assoc_start<El>();
+            assoc_end = detail::init_assoc_end<El>();
+        }
+
+        str_typ separator;
+        str_typ start;
+        str_typ end;
+        str_typ assoc_separator;
+        str_typ assoc_start;
+        str_typ assoc_end;
+    };
 
+    namespace detail 
+    {
         // manipulator function wrapper for 1 char/wchar_t argument.  When streamed, will run manipulator
         // function with argument.
         template<typename Elem>
@@ -100,37 +134,6 @@
         }
     }
 
-    // A simple collection of additional stream state
-    template<typename Elem, typename Tr>
-    struct container_stream_state
-    {
-        typedef std::basic_string<Elem, Tr> str_typ;
-        container_stream_state()
-        {
-            init<Elem>();
-        }
-
-        // is there an easier way to specialize between char and wchar_t?
-        // Concern: this is only specialized for char and wchar_t streams.
-        template<typename El>
-        void init()
-        {
-            separator = detail::init_separator<El>();
-            start = detail::init_start<El>();
-            end = detail::init_end<El>();
-            assoc_separator = detail::init_assoc_separator<El>();
-            assoc_start = detail::init_assoc_start<El>();
-            assoc_end = detail::init_assoc_end<El>();
-        }
-
-        str_typ separator;
-        str_typ start;
-        str_typ end;
-        str_typ assoc_separator;
-        str_typ assoc_start;
-        str_typ assoc_end;
-    };
-
     struct stream_normal_value
     {
         template<typename Elem, typename Tr, typename T>