Boost logo

Boost-Commit :

From: chochlik_at_[hidden]
Date: 2008-07-15 07:16:29


Author: matus.chochlik
Date: 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
New Revision: 47437
URL: http://svn.boost.org/trac/boost/changeset/47437

Log:
[mirror 0.2.x]
- Moved everything related to char_type_switch to the boost::cts namespace
- Renamed some of the char_type_switch preprocessor symbols and macros
- Updated the documentation
Added:
   sandbox/mirror/boost/mirror/meta_namespaces/boost_cts.hpp (contents, props changed)
   sandbox/mirror/doc/Jamfile.v2 (contents, props changed)
   sandbox/mirror/doc/src/
   sandbox/mirror/doc/src/boostbook.css (contents, props changed)
   sandbox/mirror/doc/src/docutils.css (contents, props changed)
   sandbox/mirror/doc/src/images/
   sandbox/mirror/doc/src/images/blank.png (contents, props changed)
   sandbox/mirror/doc/src/images/caution.png (contents, props changed)
   sandbox/mirror/doc/src/images/draft.png (contents, props changed)
   sandbox/mirror/doc/src/images/home.png (contents, props changed)
   sandbox/mirror/doc/src/images/important.png (contents, props changed)
   sandbox/mirror/doc/src/images/next.png (contents, props changed)
   sandbox/mirror/doc/src/images/next_disabled.png (contents, props changed)
   sandbox/mirror/doc/src/images/note.png (contents, props changed)
   sandbox/mirror/doc/src/images/prev.png (contents, props changed)
   sandbox/mirror/doc/src/images/prev_disabled.png (contents, props changed)
   sandbox/mirror/doc/src/images/tip.png (contents, props changed)
   sandbox/mirror/doc/src/images/toc-blank.png (contents, props changed)
   sandbox/mirror/doc/src/images/toc-minus.png (contents, props changed)
   sandbox/mirror/doc/src/images/toc-plus.png (contents, props changed)
   sandbox/mirror/doc/src/images/up.png (contents, props changed)
   sandbox/mirror/doc/src/images/up_disabled.png (contents, props changed)
   sandbox/mirror/doc/src/images/warning.png (contents, props changed)
   sandbox/mirror/doc/src/mirror.xml (contents, props changed)
   sandbox/mirror/doc/src/reference.css (contents, props changed)
Text files modified:
   sandbox/mirror/boost/char_type_switch/choice.hpp | 14 ++--
   sandbox/mirror/boost/char_type_switch/iostream.hpp | 35 +++++++----
   sandbox/mirror/boost/char_type_switch/string.hpp | 31 +++++-----
   sandbox/mirror/boost/mirror/detail/argument_type_list.hpp | 12 ++--
   sandbox/mirror/boost/mirror/detail/decorated_type_name.hpp | 118 +++++++++++++++++++++++++--------------
   sandbox/mirror/boost/mirror/detail/full_name_builder.hpp | 26 ++++----
   sandbox/mirror/boost/mirror/detail/function_type_name.hpp | 28 ++++----
   sandbox/mirror/boost/mirror/detail/meta_attribs_base.hpp | 4
   sandbox/mirror/boost/mirror/detail/meta_type_registering.hpp | 8 +-
   sandbox/mirror/boost/mirror/detail/static_int_to_str.hpp | 30 +++++-----
   sandbox/mirror/boost/mirror/detail/template_name.hpp | 18 +++---
   sandbox/mirror/boost/mirror/function/select_base_name.hpp | 2
   sandbox/mirror/boost/mirror/function/select_full_name.hpp | 2
   sandbox/mirror/boost/mirror/meta_attributes.hpp | 8 +-
   sandbox/mirror/boost/mirror/meta_classes/boost_tuple.hpp | 4
   sandbox/mirror/boost/mirror/meta_namespace.hpp | 18 +++---
   sandbox/mirror/boost/mirror/meta_types/_free_fn.hpp | 6 +-
   sandbox/mirror/boost/mirror/meta_types/boost_bstring.hpp | 5 +
   sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp | 22 +++---
   sandbox/mirror/boost/mirror/visitors/sample.hpp | 28 ++++----
   sandbox/mirror/libs/mirror/doc/introduction.xml | 14 ++--
   sandbox/mirror/libs/mirror/doc/mirror.xml | 4 +
   sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml | 6 +-
   sandbox/mirror/libs/mirror/doc/reference/meta_type.xml | 14 ++--
   sandbox/mirror/libs/mirror/doc/samples/typenames_naive.xml | 2
   sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml | 8 +-
   sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml | 2
   sandbox/mirror/libs/mirror/example/algorithms/begin_end.cpp | 2
   sandbox/mirror/libs/mirror/example/registering/classes.cpp | 16 +++--
   sandbox/mirror/libs/mirror/example/registering/namespaces.cpp | 2
   sandbox/mirror/libs/mirror/example/registering/types.cpp | 12 ++-
   sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp | 4 +
   sandbox/mirror/libs/mirror/example/serialization/cube.cpp | 2
   sandbox/mirror/libs/mirror/example/special/boost_tuple.cpp | 10 ++-
   sandbox/mirror/libs/mirror/example/special/std_pair.cpp | 2
   sandbox/mirror/libs/mirror/example/traversal/sample_meta_path.cpp | 2
   sandbox/mirror/libs/mirror/example/traversal/sample_visitor.cpp | 1
   37 files changed, 296 insertions(+), 226 deletions(-)

Modified: sandbox/mirror/boost/char_type_switch/choice.hpp
==============================================================================
--- sandbox/mirror/boost/char_type_switch/choice.hpp (original)
+++ sandbox/mirror/boost/char_type_switch/choice.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 /**
- * \file boost/char_width_switch/choice.hpp
+ * \file boost/char_type_switch/choice.hpp
  * Definition of pp symbols for choosing of the used character type
  *
  * Copyright 2008 Matus Chochlik. Distributed under the Boost
@@ -7,20 +7,22 @@
  * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  */
 
-#ifndef BOOST_CHAR_WIDTH_SWITCH_CHOICE
-#define BOOST_CHAR_WIDTH_SWITCH_CHOICE
+#ifndef BOOST_CHAR_TYPE_SWITCH_CHOICE
+#define BOOST_CHAR_TYPE_SWITCH_CHOICE
 
+// this is technically not necessary, but ..
 namespace boost {
+namespace cts {
 
-// TODO: there is a lot of work to do here ;)
-#ifndef BOOST_USE_WIDE_CHARS
+#ifndef BOOST_CTS_USE_WIDE_CHARS
 
 # ifdef UNICODE
-# define BOOST_USE_WIDE_CHARS
+# define BOOST_CTS_USE_WIDE_CHARS
 # endif
 
 #endif
 
+} // namespace cts
 } // namespace boost
 
 #endif //include guard

Modified: sandbox/mirror/boost/char_type_switch/iostream.hpp
==============================================================================
--- sandbox/mirror/boost/char_type_switch/iostream.hpp (original)
+++ sandbox/mirror/boost/char_type_switch/iostream.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 /**
- * \file boost/char_width_switch/iostream.hpp
+ * \file boost/char_type_switch/iostream.hpp
  * Narrow/Wide character type switching for iostreams
  *
  * Copyright 2008 Matus Chochlik. Distributed under the Boost
@@ -7,35 +7,42 @@
  * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  */
 
-#ifndef BOOST_CHAR_WIDTH_SWITCH_IOSTREAM
-#define BOOST_CHAR_WIDTH_SWITCH_IOSTREAM
+#ifndef BOOST_CHAR_TYPE_SWITCH_IOSTREAM
+#define BOOST_CHAR_TYPE_SWITCH_IOSTREAM
 
 #include <boost/char_type_switch/choice.hpp>
 // Needed for ::std cout, cin, cerr, wcin, wcout, wcerr
 #include <iostream>
 
 namespace boost {
+namespace cts {
 
-#ifdef BOOST_USE_WIDE_CHARS
- // If wide characters were chosen
+#ifdef BOOST_CTS_USE_WIDE_CHARS
+ // If wide characters were picked
+ typedef ::std::wistream bistream;
+ typedef ::std::wostream bostream;
         //
         // define input stream
- ::std::wistream& bcin = ::std::wcin;
+ inline ::std::wistream& bcin(void){return ::std::wcin;}
         // define output stream
- ::std::wostream& bcout = ::std::wcout;
+ inline ::std::wostream& bcout(void){return ::std::wcout;}
         // define error stream
- ::std::wostream& bcerr = ::std::wcerr;
-#else // NOT BOOST_USE_WIDE_CHARS
- // if narrow characters were chosen
+ inline ::std::wostream& bcerr(void){return ::std::wcerr;}
+#else // NOT BOOST_CTS_USE_WIDE_CHARS
+ // if narrow characters were picked
+ //
+ typedef ::std::istream bistream;
+ typedef ::std::ostream bostream;
         //
         // define input stream
- ::std::istream& bcin = ::std::cin;
+ inline ::std::istream& bcin(void){return ::std::cin;}
         // define output stream
- ::std::ostream& bcout = ::std::cout;
+ inline ::std::ostream& bcout(void){return ::std::cout;}
         // define error stream
- ::std::ostream& bcerr = ::std::cerr;
-#endif // NOT BOOST_USE_WIDE_CHARS
+ inline ::std::ostream& bcerr(void){return ::std::cerr;}
+#endif // NOT BOOST_CTS_USE_WIDE_CHARS
 
+} // namespace cts
 } // namespace boost
 
 #endif //include guard

Modified: sandbox/mirror/boost/char_type_switch/string.hpp
==============================================================================
--- sandbox/mirror/boost/char_type_switch/string.hpp (original)
+++ sandbox/mirror/boost/char_type_switch/string.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 /**
- * \file boost/char_width_switch/string.hpp
+ * \file boost/char_type_switch/string.hpp
  * Narrow/Wide character type switching for string.
  *
  * Copyright 2008 Matus Chochlik. Distributed under the Boost
@@ -7,8 +7,8 @@
  * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  */
 
-#ifndef BOOST_CHAR_WIDTH_SWITCH_STRING
-#define BOOST_CHAR_WIDTH_SWITCH_STRING
+#ifndef BOOST_CHAR_TYPE_SWITCH_STRING
+#define BOOST_CHAR_TYPE_SWITCH_STRING
 
 
 #include <boost/char_type_switch/choice.hpp>
@@ -20,23 +20,24 @@
 #include <cstring>
 
 namespace boost {
+namespace cts {
 
 
-#ifdef BOOST_USE_WIDE_CHARS
+#ifdef BOOST_CTS_USE_WIDE_CHARS
 
 #include <boost/preprocessor/wstringize.hpp>
 
- // If wide characters were chosen
+ // If wide characters were picked
         //
         // define character type
         typedef wchar_t bchar;
         // define string class type
         typedef ::std::wstring bstring;
         // define macro for string literal type selection
-# define BOOST_STR_LIT(STR) L##STR
+# define BOOST_CTS_LIT(STR) L##STR
         // stringization
 # define BOOST_CTS_STRINGIZE(TO_TEXT) BOOST_PP_WSTRINGIZE(TO_TEXT)
-#else // NOT BOOST_USE_WIDE_CHARS
+#else // NOT BOOST_CTS_USE_WIDE_CHARS
 
 #include <boost/preprocessor/stringize.hpp>
 
@@ -47,14 +48,14 @@
         // define string class type
         typedef ::std::string bstring;
         // define macro for string literal type selection
-# define BOOST_STR_LIT(STR) STR
+# define BOOST_CTS_LIT(STR) STR
         // stringization
 # define BOOST_CTS_STRINGIZE(TO_TEXT) BOOST_PP_STRINGIZE(TO_TEXT)
-#endif // NOT BOOST_USE_WIDE_CHARS
+#endif // NOT BOOST_CTS_USE_WIDE_CHARS
 
 // define macro expanding into a compile time const length
 // of the given string literal
-#define BOOST_STR_LIT_LENGTH(STR) ((sizeof(STR)/sizeof(char))-1)
+#define BOOST_CTS_LIT_LENGTH(STR) ((sizeof(STR)/sizeof(::boost::bchar))-1)
 
 
 /** Wrappers of cstring functions
@@ -74,7 +75,7 @@
 
 inline size_t bstrlen(const bchar* str)
 {
-#ifdef BOOST_USE_WIDE_CHARS
+#ifdef BOOST_CTS_USE_WIDE_CHARS
         return ::std::wcslen(str);
 #else
         return ::std::strlen(str);
@@ -85,7 +86,7 @@
         
 inline int bstrcmp(const bchar* a, const bchar* b)
 {
-#ifdef BOOST_USE_WIDE_CHARS
+#ifdef BOOST_CTS_USE_WIDE_CHARS
         return ::std::wcscmp(a, b);
 #else
         return ::std::strcmp(a, b);
@@ -96,7 +97,7 @@
  */
 inline bchar* bstrcpy(bchar* dst, const bchar* src)
 {
-#ifdef BOOST_USE_WIDE_CHARS
+#ifdef BOOST_CTS_USE_WIDE_CHARS
         return ::std::wcscpy(dst, src);
 #else
         return ::std::strcpy(dst, src);
@@ -107,7 +108,7 @@
  */
 inline bchar* bstrncpy(bchar* dst, const bchar* src, size_t count)
 {
-#ifdef BOOST_USE_WIDE_CHARS
+#ifdef BOOST_CTS_USE_WIDE_CHARS
         return ::std::wcsncpy(dst, src, count);
 #else
         return ::std::strncpy(dst, src, count);
@@ -119,7 +120,7 @@
 #pragma warning(pop)
 #endif
 
-
+} // namespace cts
 } // namespace boost
 
 #endif //include guard

Modified: sandbox/mirror/boost/mirror/detail/argument_type_list.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/argument_type_list.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/argument_type_list.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -59,22 +59,22 @@
                 template <typename T>
                 inline void operator()(::boost::mpl::identity<T>)
                 {
- static bstring comma(BOOST_STR_LIT(", "));
+ static cts::bstring comma(BOOST_CTS_LIT(", "));
                         list.append(BOOST_MIRRORED_TYPE(T)::get_name(FullOrBase()));
                         list.append(comma);
                 }
 
- inline append_arg_typename(bstring& _list)
+ inline append_arg_typename(cts::bstring& _list)
                 : list(_list)
                 { }
         private:
- bstring& list;
+ cts::bstring& list;
         };
 
         template <typename ArgTypeList, class FullOrBase, class Size>
         static void do_append_args(
                 ArgTypeList*,
- bstring& str,
+ cts::bstring& str,
                 FullOrBase full_or_base,
                 Size
         )
@@ -104,7 +104,7 @@
         template <typename ArgTypeList, class FullOrBase>
         inline static void do_append_args(
                 ArgTypeList*,
- bstring& str,
+ cts::bstring& str,
                 FullOrBase,
                 mpl::int_<0>
         )
@@ -113,7 +113,7 @@
         template <typename ArgTypeList, class FullOrBase>
         inline static void append_args(
                 ArgTypeList*,
- bstring& str,
+ cts::bstring& str,
                 FullOrBase full_or_base
         )
         {

Modified: sandbox/mirror/boost/mirror/detail/decorated_type_name.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/decorated_type_name.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/decorated_type_name.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -24,12 +24,12 @@
 {
 public:
         template <bool FullName>
- inline static bstring build_name(
+ inline static cts::bstring build_name(
                 mpl::bool_<FullName> full_or_base,
- bstring& left,
- bstring& right,
- bstring& ex,
- bstring& arg
+ cts::bstring& left,
+ cts::bstring& right,
+ cts::bstring& ex,
+ cts::bstring& arg
         )
         {
                 Decorator D(left, right, ex, arg);
@@ -50,13 +50,15 @@
 {
 protected:
         template <bool FullName>
- inline static bstring init_name(mpl::bool_<FullName> full_or_base)
+ inline static cts::bstring init_name(
+ mpl::bool_<FullName> full_or_base
+ )
         {
- bstring left;
- bstring right;
- bstring ex;
- bstring arg;
- bstring temp(build_name(full_or_base, left, right, ex, arg));
+ cts::bstring left;
+ cts::bstring right;
+ cts::bstring ex;
+ cts::bstring arg;
+ cts::bstring temp(build_name(full_or_base, left, right, ex, arg));
                 left.append(temp);
                 left.append(right);
                 left.append(ex);
@@ -65,18 +67,18 @@
         }
 public:
         template <bool FullName>
- static const bstring& get_name(mpl::bool_<FullName> full_or_base)
+ static const cts::bstring& get_name(mpl::bool_<FullName> full_or_base)
         {
- static bstring s_name(init_name(full_or_base));
+ static cts::bstring s_name(init_name(full_or_base));
                 return s_name;
         }
 
- inline static const bstring& base_name(void)
+ inline static const cts::bstring& base_name(void)
         {
                 return get_name(mpl::false_());
         }
 
- inline static const bstring& full_name(void)
+ inline static const cts::bstring& full_name(void)
         {
                 return get_name(mpl::true_());
         }
@@ -94,7 +96,7 @@
 template <typename T>
 struct type_name_decorator
 {
- inline type_name_decorator(bstring&, bstring&);
+ inline type_name_decorator(cts::bstring&, cts::bstring&);
 };
 
 /** Base class for decorators that append something to 'right'
@@ -102,15 +104,17 @@
  */
 struct type_name_right_postfix_decorator
 {
- inline type_name_right_postfix_decorator(bstring& _r, const bchar* _pfx)
- : right(_r), postfix(_pfx) { }
+ inline type_name_right_postfix_decorator(
+ cts::bstring& _r,
+ const cts::bchar* _pfx
+ ) : right(_r), postfix(_pfx) { }
 
         inline ~type_name_right_postfix_decorator(void)
         {
- right.append(bstring(postfix));
+ right.append(cts::bstring(postfix));
         }
- bstring& right;
- const bchar* postfix;
+ cts::bstring& right;
+ const cts::bchar* postfix;
 };
 
 // pointer decorator
@@ -118,8 +122,12 @@
 struct type_name_decorator<T*>
 : type_name_right_postfix_decorator
 {
- inline type_name_decorator(bstring&, bstring& _right, bstring&, bstring&)
- : type_name_right_postfix_decorator(_right, BOOST_STR_LIT(" *"))
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring& _right,
+ cts::bstring&,
+ cts::bstring&
+ ) : type_name_right_postfix_decorator(_right, BOOST_CTS_LIT(" *"))
         { }
 };
 
@@ -129,8 +137,12 @@
 struct type_name_decorator<T&>
 : type_name_right_postfix_decorator
 {
- inline type_name_decorator(bstring&, bstring& _right, bstring&, bstring&)
- : type_name_right_postfix_decorator(_right, BOOST_STR_LIT(" &"))
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring& _right,
+ cts::bstring&,
+ cts::bstring&
+ ) : type_name_right_postfix_decorator(_right, BOOST_CTS_LIT(" &"))
         { }
 };
 
@@ -139,8 +151,12 @@
 struct type_name_decorator<const T>
 : type_name_right_postfix_decorator
 {
- inline type_name_decorator(bstring&, bstring& _right, bstring&, bstring&)
- : type_name_right_postfix_decorator(_right, BOOST_STR_LIT(" const"))
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring& _right,
+ cts::bstring&,
+ cts::bstring&
+ ): type_name_right_postfix_decorator(_right, BOOST_CTS_LIT(" const"))
         { }
 };
 
@@ -149,8 +165,12 @@
 struct type_name_decorator<volatile T>
 : type_name_right_postfix_decorator
 {
- inline type_name_decorator(bstring&, bstring& _right, bstring&, bstring&)
- : type_name_right_postfix_decorator(_right, BOOST_STR_LIT(" volatile"))
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring& _right,
+ cts::bstring&,
+ cts::bstring&
+ ) : type_name_right_postfix_decorator(_right, BOOST_CTS_LIT(" volatile"))
         { }
 };
 
@@ -159,8 +179,12 @@
 struct type_name_decorator<const volatile T>
 : type_name_right_postfix_decorator
 {
- inline type_name_decorator(bstring&, bstring& _r, bstring&, bstring&)
- : type_name_right_postfix_decorator(_r, BOOST_STR_LIT(" const volatile"))
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring& _r,
+ cts::bstring&,
+ cts::bstring&
+ ) : type_name_right_postfix_decorator(_r, BOOST_CTS_LIT(" const volatile"))
         { }
 };
 
@@ -168,10 +192,15 @@
 template <typename T>
 struct type_name_decorator< T[] >
 {
- inline type_name_decorator(bstring&, bstring&, bstring& _ex, bstring&)
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring&,
+ cts::bstring& _ex,
+ cts::bstring&
+ )
         {
- if(_ex.empty()) _ex.append(BOOST_STR_LIT(" "));
- _ex.append(BOOST_STR_LIT("[]"));
+ if(_ex.empty()) _ex.append(BOOST_CTS_LIT(" "));
+ _ex.append(BOOST_CTS_LIT("[]"));
         }
 };
 
@@ -181,29 +210,34 @@
 struct type_name_decorator< T[ Size ] >
 {
 private:
- inline static bstring init_postfix(void)
+ inline static cts::bstring init_postfix(void)
         {
                 typedef typename detail::static_int_to_str<Size>
                         size_string;
                 // init with '['
- bstring res(BOOST_STR_LIT("["));
+ cts::bstring res(BOOST_CTS_LIT("["));
                 //
                 // setup a buffer for the number
                 const size_t max_size = size_string::length::value+1;
- bchar buffer[max_size];
+ cts::bchar buffer[max_size];
                 // put it into the buffer
                 size_string::convert(buffer, max_size);
                 // append the buffer
- res.append(bstring(buffer));
+ res.append(cts::bstring(buffer));
                 // append ']'
- res.append(bstring(BOOST_STR_LIT("]")));
+ res.append(cts::bstring(BOOST_CTS_LIT("]")));
                 return res;
         }
 public:
- inline type_name_decorator(bstring&, bstring&, bstring& _ex, bstring&)
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring&,
+ cts::bstring& _ex,
+ cts::bstring&
+ )
         {
- static bstring s_postfix(init_postfix());
- if(_ex.empty()) _ex.append(BOOST_STR_LIT(" "));
+ static cts::bstring s_postfix(init_postfix());
+ if(_ex.empty()) _ex.append(BOOST_CTS_LIT(" "));
                 _ex.append(s_postfix);
         }
 };

Modified: sandbox/mirror/boost/mirror/detail/full_name_builder.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/full_name_builder.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/full_name_builder.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -44,7 +44,7 @@
                 // don't prepend '::' to types on global scope
                 template <typename Type>
                 inline static void append_separator(
- bstring& _str,
+ cts::bstring& _str,
                         mpl::identity<meta_namespace<namespace_::_> >,
                         mpl::identity<detail::registered_type_info<Type> >
                 )
@@ -53,20 +53,20 @@
                 // append separator to anything else
                 template <typename AnyScope, class AnyMO>
                 inline static void append_separator(
- bstring& _str,
+ cts::bstring& _str,
                         mpl::identity<AnyScope>,
                         mpl::identity<AnyMO>
                 )
                 {
- static const bstring separator(BOOST_STR_LIT("::"));
+ static const cts::bstring separator(BOOST_CTS_LIT("::"));
                         _str.append(separator);
                 }
 
 
                 // initializes the full names
- inline static bstring init_name(mpl::true_ _full)
+ inline static cts::bstring init_name(mpl::true_ _full)
                 {
- bstring res(Scope::get_name(_full));
+ cts::bstring res(Scope::get_name(_full));
                         append_separator(
                                 res,
                                 mpl::identity<Scope>(),
@@ -77,19 +77,19 @@
                 }
 
                 // initializes the base names
- inline static const bstring& init_name(mpl::false_ _base)
+ inline static const cts::bstring& init_name(mpl::false_ _base)
                 {
                         return BaseMetaObject::get_name(_base);
                 }
         public:
                 // base of full name getter
                 template <bool FullName>
- inline static const bstring& build_name(
+ inline static const cts::bstring& build_name(
                         mpl::bool_<FullName> full_or_base,
- bstring& left,
- bstring& right,
- bstring& ex,
- bstring& arg
+ cts::bstring& left,
+ cts::bstring& right,
+ cts::bstring& ex,
+ cts::bstring& arg
                 )
                 {
                         return get_name(full_or_base);
@@ -98,11 +98,11 @@
 
                 // base of full name getter
                 template <bool FullName>
- inline static const bstring& get_name(
+ inline static const cts::bstring& get_name(
                         mpl::bool_<FullName> full_or_base
                 )
                 {
- static bstring s_name(init_name(full_or_base));
+ static cts::bstring s_name(init_name(full_or_base));
                         return s_name;
                 }
         };

Modified: sandbox/mirror/boost/mirror/detail/function_type_name.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/function_type_name.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/function_type_name.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -36,26 +36,26 @@
 {
 public:
         template <bool FullName>
- inline static bstring build_name(
+ inline static cts::bstring build_name(
                 mpl::bool_<FullName> full_or_base,
- bstring& left,
- bstring& right,
- bstring& ex,
- bstring& arg
+ cts::bstring& left,
+ cts::bstring& right,
+ cts::bstring& ex,
+ cts::bstring& arg
         )
         {
- static bstring space(BOOST_STR_LIT(" "));
- static bstring l_par(BOOST_STR_LIT("("));
- static bstring r_par(BOOST_STR_LIT(")"));
+ static cts::bstring space(BOOST_CTS_LIT(" "));
+ static cts::bstring l_par(BOOST_CTS_LIT("("));
+ static cts::bstring r_par(BOOST_CTS_LIT(")"));
         //
                 // the return value type
                 typedef BOOST_MIRRORED_TYPE(RetValType) meta_RV;
                 //
- bstring rv_left;
- bstring rv_right;
- bstring rv_ex;
- bstring rv_arg;
- bstring rv_t(meta_RV::build_name(
+ cts::bstring rv_left;
+ cts::bstring rv_right;
+ cts::bstring rv_ex;
+ cts::bstring rv_arg;
+ cts::bstring rv_t(meta_RV::build_name(
                         full_or_base,
                         rv_left,
                         rv_right,
@@ -81,7 +81,7 @@
                 arg.append(r_par);
                 // the rest of the ret val type
                 arg.append(rv_arg);
- return bstring();
+ return cts::bstring();
         }
 };
 

Modified: sandbox/mirror/boost/mirror/detail/meta_attribs_base.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/meta_attribs_base.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/meta_attribs_base.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -158,9 +158,9 @@
         typedef TYPENAME_KW ::boost::mirror::typedef_::extract_type< \
                 TYPE_SELECTOR \
>::type type_of_##NAME; \
- static const bchar* base_name( \
+ static const ::boost::cts::bchar* base_name( \
                 position_of_##NAME \
- ){return BOOST_STR_LIT(#NAME);} \
+ ){return BOOST_CTS_LIT(#NAME);} \
         static meta_class_attribute_traits< \
                 ::boost::mirror::attrib_storage_specifiers:: SPECIFIERS##_, \
                 TYPE_SELECTOR \

Modified: sandbox/mirror/boost/mirror/detail/meta_type_registering.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/meta_type_registering.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/meta_type_registering.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -33,12 +33,12 @@
                 detail::registered_type_info<Type>
> base_class;
 
- inline static const bstring& base_name(void)
+ inline static const cts::bstring& base_name(void)
         {
                 return base_class::get_name(mpl::false_());
         }
 
- inline static const bstring& full_name(void)
+ inline static const cts::bstring& full_name(void)
         {
                 return base_class::get_name(mpl::true_());
         }
@@ -49,9 +49,9 @@
 };
 
 #define BOOST_MIRROR_REG_TYPE_DECLARE_BASE_NAME(TYPE_NAME_STRING) \
- static const bstring& get_name(mpl::false_) \
+ static const cts::bstring& get_name(mpl::false_) \
         { \
- static bstring s_name(BOOST_STR_LIT(TYPE_NAME_STRING)); \
+ static cts::bstring s_name(BOOST_CTS_LIT(TYPE_NAME_STRING)); \
                 return s_name; \
         }
 

Modified: sandbox/mirror/boost/mirror/detail/static_int_to_str.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/static_int_to_str.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/static_int_to_str.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -37,29 +37,29 @@
         //
         //
         template <int J>
- static inline bchar get_digit(mpl::int_<J> pos)
+ static inline cts::bchar get_digit(mpl::int_<J> pos)
         {
- static const bchar zero = BOOST_STR_LIT('0');
+ static const cts::bchar zero = BOOST_CTS_LIT('0');
                 typedef typename static_pow10<
                         length::value - mpl::int_<J>::value
>::type K;
                 return zero + (I / K::value) % 10;
         }
         //
- static inline void do_copy_to(bchar* _str, mpl::int_<0>){ }
+ static inline void do_copy_to(cts::bchar* _str, mpl::int_<0>){ }
         //
         template <int J>
- static inline void do_copy_to(bchar* _str, mpl::int_<J> pos)
+ static inline void do_copy_to(cts::bchar* _str, mpl::int_<J> pos)
         {
                 _str[J-1] = get_digit(pos);
                 do_copy_to(_str, mpl::int_<J - 1>());
         }
         //
- static bchar* convert(bchar* _str, size_t _max_len)
+ static cts::bchar* convert(cts::bchar* _str, size_t _max_len)
         {
                 assert(_max_len > size_t(length::value));
                 do_copy_to(_str, length());
- _str[length::value] = BOOST_STR_LIT('\0');
+ _str[length::value] = BOOST_CTS_LIT('\0');
                 return _str;
         }
 };
@@ -68,11 +68,11 @@
 struct static_int_to_str<0>
 {
         typedef mpl::int_<1>::type length;
- static bchar* convert(bchar* _str, size_t _max_len)
+ static cts::bchar* convert(cts::bchar* _str, size_t _max_len)
         {
                 assert(_max_len > 1);
- _str[0] = BOOST_STR_LIT('0');
- _str[1] = BOOST_STR_LIT('\0');
+ _str[0] = BOOST_CTS_LIT('0');
+ _str[1] = BOOST_CTS_LIT('\0');
                 return _str;
         }
 };
@@ -89,10 +89,10 @@
                 number_length::value
> length;
         //
- static inline void do_apply_prefix_to(bchar* _str, mpl::int_<0>){ }
+ static inline void do_apply_prefix_to(cts::bchar* _str, mpl::int_<0>){ }
         //
         template <int J>
- static inline void do_apply_prefix_to(bchar* _str, mpl::int_<J> pos)
+ static inline void do_apply_prefix_to(cts::bchar* _str, mpl::int_<J> pos)
         {
                 _str[J-1] = mpl::at<
                         prefix,
@@ -101,7 +101,7 @@
                 do_apply_prefix_to(_str, mpl::int_<J - 1>());
         }
         //
- static bchar* convert(bchar* _str, size_t _max_len)
+ static cts::bchar* convert(cts::bchar* _str, size_t _max_len)
         {
                 // check the length
                 assert(_max_len > size_t(length::value));
@@ -112,15 +112,15 @@
                 // append given int as string
                 static_int_to_str<I>::convert(_str + offs, _max_len - offs);
                 // finalize the string
- _str[length::value] = BOOST_STR_LIT('\0');
+ _str[length::value] = BOOST_CTS_LIT('\0');
                 return _str;
         }
         //
         struct holder
         {
- static const bchar* get(void)
+ static const cts::bchar* get(void)
                 {
- static bchar str[length::value+1] = {0};
+ static cts::bchar str[length::value+1] = {0};
                         if(!str[0]) convert(str, length::value+1);
                         return str;
                 }

Modified: sandbox/mirror/boost/mirror/detail/template_name.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/template_name.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/template_name.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -37,20 +37,20 @@
 
 public:
         template <bool FullName>
- inline static bstring build_name(
+ inline static cts::bstring build_name(
                 mpl::bool_<FullName> full_or_base,
- bstring& left,
- bstring& right,
- bstring& ex,
- bstring& arg
+ cts::bstring& left,
+ cts::bstring& right,
+ cts::bstring& ex,
+ cts::bstring& arg
         )
         {
- static bstring comma(BOOST_STR_LIT(", "));
- static bstring l_angle(BOOST_STR_LIT("< "));
- static bstring r_angle(BOOST_STR_LIT(" >"));
+ static cts::bstring comma(BOOST_CTS_LIT(", "));
+ static cts::bstring l_angle(BOOST_CTS_LIT("< "));
+ static cts::bstring r_angle(BOOST_CTS_LIT(" >"));
                 //
                 // get the template name
- bstring res(base_meta_template::get_name(full_or_base));
+ cts::bstring res(base_meta_template::get_name(full_or_base));
                 // argument list
                 res.append(l_angle);
                 append_args(((TplArgTypeList*)0), res, full_or_base);

Modified: sandbox/mirror/boost/mirror/function/select_base_name.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/function/select_base_name.hpp (original)
+++ sandbox/mirror/boost/mirror/function/select_base_name.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -17,7 +17,7 @@
 struct select_base_name
 {
         template <class MetaObject>
- inline const bchar* operator()(MetaObject) const
+ inline const cts::bchar* operator()(MetaObject) const
         {
                 return MetaObject::base_name();
         }

Modified: sandbox/mirror/boost/mirror/function/select_full_name.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/function/select_full_name.hpp (original)
+++ sandbox/mirror/boost/mirror/function/select_full_name.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -17,7 +17,7 @@
 struct select_full_name
 {
         template <class MetaObject>
- inline const bchar* operator()(MetaObject) const
+ inline const cts::bchar* operator()(MetaObject) const
         {
                 return MetaObject::full_name();
         }

Modified: sandbox/mirror/boost/mirror/meta_attributes.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_attributes.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_attributes.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -310,7 +310,7 @@
                           * attributes from the base classes.
                           */
                         template <int I>
- static const bchar*
+ static const cts::bchar*
                         base_name(mpl::int_<I> pos, mpl::bool_<true>)
                         {
                                 typedef typename inherited_attrib_meta_class_and_pos<I>
@@ -322,7 +322,7 @@
                         }
 
                         template <int I>
- static const bchar*
+ static const cts::bchar*
                         base_name(mpl::int_<I> pos, mpl::bool_<false>)
                         {
                                 typedef typename own_attrib_meta_class_and_pos<I>
@@ -505,7 +505,7 @@
                  * the inherited ones)
                  */
                 template <int I>
- static const bchar*
+ static const cts::bchar*
                 base_name(mpl::int_<I> pos)
                 {
                         return detail::base_name(
@@ -612,7 +612,7 @@
>::type type;
 
                 // base name getter
- inline static const bchar* base_name(void)
+ inline static const cts::bchar* base_name(void)
                 {
                         return meta_attributes::base_name(position());
                 }

Modified: sandbox/mirror/boost/mirror/meta_classes/boost_tuple.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_classes/boost_tuple.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_classes/boost_tuple.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -32,10 +32,10 @@
         //
         // member attribute base name getter
         template <int I>
- static const bchar* base_name(mpl::int_<I>)
+ static const cts::bchar* base_name(mpl::int_<I>)
         {
                 typedef typename boost::mirror::detail::static_int_to_str_w_prefix<
- mpl::vector_c<bchar, BOOST_STR_LIT('_') >, I
+ mpl::vector_c<cts::bchar, BOOST_CTS_LIT('_') >, I
>::holder name;
                 //
                 return name::get();

Modified: sandbox/mirror/boost/mirror/meta_namespace.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_namespace.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_namespace.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -49,12 +49,12 @@
                 NamespacePlaceholder
> base_class;
 
- inline static const bstring& base_name(void)
+ inline static const cts::bstring& base_name(void)
         {
                 return base_class::get_name(mpl::false_());
         }
 
- inline static const bstring& full_name(void)
+ inline static const cts::bstring& full_name(void)
         {
                 return base_class::get_name(mpl::true_());
         }
@@ -79,24 +79,24 @@
         struct _
         {
                 // the base name of the namespace
- inline static const bstring& get_name(mpl::false_)
+ inline static const cts::bstring& get_name(mpl::false_)
                 {
- static bstring s_name;
+ static cts::bstring s_name;
                         return s_name;
                 }
 
                 // the full name of the namespace
- inline static const bstring& get_name(mpl::true_)
+ inline static const cts::bstring& get_name(mpl::true_)
                 {
                         return get_name(mpl::false_());
                 }
 
- inline static const bstring& base_name(void)
+ inline static const cts::bstring& base_name(void)
                 {
                         return get_name(mpl::false_());
                 }
         
- inline static const bstring& full_name(void)
+ inline static const cts::bstring& full_name(void)
                 {
                         return get_name(mpl::true_());
                 }
@@ -167,9 +167,9 @@
                                 _, \
                                 BOOST_PP_SEQ_POP_BACK(NAME_SEQUENCE) \
                         ) :: _ parent_placeholder; /* -4- */ \
- static const bstring& get_name(mpl::false_) \
+ static const ::boost::cts::bstring& get_name(mpl::false_) \
                         { \
- static bstring s_name(BOOST_CTS_STRINGIZE( \
+ static ::boost::cts::bstring s_name(BOOST_CTS_STRINGIZE( \
                                         BOOST_PP_SEQ_HEAD( \
                                                 BOOST_PP_SEQ_REVERSE(NAME_SEQUENCE) \
                                         ) \

Added: sandbox/mirror/boost/mirror/meta_namespaces/boost_cts.hpp
==============================================================================
--- (empty file)
+++ sandbox/mirror/boost/mirror/meta_namespaces/boost_cts.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,24 @@
+/**
+ * \file boost/mirror/meta_namespaces/boost_cts.hpp
+ * Meta-namespace for the boost::cts namespace
+ *
+ * Copyright 2008 Matus Chochlik. 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)
+ */
+
+#ifndef BOOST_MIRROR_META_NAMESPACES_BOOST_CTS_HPP
+#define BOOST_MIRROR_META_NAMESPACES_BOOST_CTS_HPP
+
+#include <boost/mirror/meta_namespace.hpp>
+
+namespace boost {
+namespace mirror {
+
+BOOST_MIRROR_REG_NAMESPACE((boost)(cts))
+
+} // namespace mirror
+} // namespace boost
+
+#endif //include guard
+

Modified: sandbox/mirror/boost/mirror/meta_types/_free_fn.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_types/_free_fn.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_types/_free_fn.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -28,9 +28,9 @@
 #define BOOST_MIRROR_DECLARE_CALLING_CONVENTION_HELPER(CC) \
         struct __##CC##_ \
         { \
- inline static const bstring& name(void) \
+ inline static const ::boost::cts::bstring& name(void) \
                 { \
- static bstring cc_name(BOOST_CTS_STRINGIZE(__##CC)); \
+ static ::boost::cts::bstring cc_name(BOOST_CTS_STRINGIZE(__##CC));\
                         return cc_name; \
                 } \
         };
@@ -41,7 +41,7 @@
 
         struct __default_
         {
- inline static bstring name(void){return bstring();}
+ inline static cts::bstring name(void){return cts::bstring();}
         };
 
 // undefine the helper macros

Modified: sandbox/mirror/boost/mirror/meta_types/boost_bstring.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_types/boost_bstring.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_types/boost_bstring.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -14,14 +14,15 @@
 // register string types
 #include <boost/mirror/meta_types/std_string.hpp>
 #include <boost/char_type_switch/string.hpp>
+#include <boost/mirror/meta_namespaces/boost_cts.hpp>
 
 namespace boost {
 namespace mirror {
 
 /** Register the bchar and bstring
  */
-BOOST_MIRROR_REG_TYPEDEF(::boost, bchar)
-BOOST_MIRROR_REG_TYPEDEF(::boost, bstring)
+BOOST_MIRROR_REG_TYPEDEF(::boost::cts, bchar)
+BOOST_MIRROR_REG_TYPEDEF(::boost::cts, bstring)
 
 
 } // namespace mirror

Modified: sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp (original)
+++ sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -51,7 +51,7 @@
 
                 void print_indent(void) const
                 {
- if(!simple) bcout << ::std::endl << "\t\t";
+ if(!simple) cts::bcout() << ::std::endl << "\t\t";
                 }
 
                 template <
@@ -67,7 +67,7 @@
                         AttribPos
> mca) const
                 {
- bcout << "|attribute '" << mca.base_name() << "'|";
+ cts::bcout() << "|attribute '" << mca.base_name() << "'|";
                         print_indent();
                 }
         
@@ -80,7 +80,7 @@
                         VariantTag
> mca) const
                 {
- bcout << "|attributes|";
+ cts::bcout() << "|attributes|";
                         print_indent();
                 }
         
@@ -93,7 +93,7 @@
                         VariantTag
> mca) const
                 {
- bcout << "|all_attributes|";
+ cts::bcout() << "|all_attributes|";
                         print_indent();
                 }
         
@@ -106,7 +106,7 @@
                         VariantTag
> mca) const
                 {
- bcout << "|base_classes|";
+ cts::bcout() << "|base_classes|";
                         print_indent();
                 }
         
@@ -129,14 +129,14 @@
                                 AccessSpec,
                                 InheritanceSpec
>::meta_base_class mbc;
- bcout << "|base_class '" << mbc::base_name() << "'|";
+ cts::bcout() << "|base_class '" << mbc::base_name() << "'|";
                         print_indent();
                 }
         
                 template <class Class>
                 void operator()(meta_class<Class> mc) const
                 {
- bcout << "|type '" << mc.base_name() << "'|";
+ cts::bcout() << "|type '" << mc.base_name() << "'|";
                         print_indent();
                 }
         };
@@ -213,12 +213,12 @@
         {
                 using ::std::endl;
                 //
- bcout << "\t" << name << ": ";
+ cts::bcout() << "\t" << name << ": ";
                 meta_path::for_each<
                         Axis<Context>,
                         mpl::lambda<mpl::second<mpl::_1> >
>(detail::node_printer());
- bcout << endl;
+ cts::bcout() << endl;
         }
 
         template <class MetaObject, class Context>
@@ -227,9 +227,9 @@
                 using ::std::endl;
                 //
                 detail::node_printer p;
- bcout << "node ";
+ cts::bcout() << "node ";
                 p(mo);
- bcout << ":" << endl;
+ cts::bcout() << ":" << endl;
                 //
                 print_node_set<meta_path::self>("self", mo, ctx);
                 print_node_set<meta_path::parent>("parent", mo, ctx);

Modified: sandbox/mirror/boost/mirror/visitors/sample.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/visitors/sample.hpp (original)
+++ sandbox/mirror/boost/mirror/visitors/sample.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -43,16 +43,16 @@
                 using namespace ::boost;
                 print_indentation();
                 ++indent;
- bcout <<
+ cts::bcout() <<
                         "<type name='" <<
                         MetaClass::base_name();
                 if(!reflects_global_scope<typename MetaClass::scope>::value)
                 {
- bcout <<
+ cts::bcout() <<
                                 "' scope='" <<
                                 MetaClass::scope::full_name();
                 }
- bcout <<
+ cts::bcout() <<
                         "'>" <<
                         endl;
         }
@@ -65,7 +65,7 @@
                 using namespace ::boost;
                 --indent;
                 print_indentation();
- bcout << "</type>" << endl;
+ cts::bcout() << "</type>" << endl;
         }
 
         template <class MetaClass, class BaseClasses, class Context>
@@ -77,7 +77,7 @@
                 {
                         print_indentation();
                         ++indent;
- bcout <<
+ cts::bcout() <<
                                 "<base_classes>" <<
                         endl;
                 }
@@ -92,7 +92,7 @@
                 {
                         --indent;
                         print_indentation();
- bcout << "</base_classes>" << endl;
+ cts::bcout() << "</base_classes>" << endl;
                 }
         }
 
@@ -105,7 +105,7 @@
                 using namespace ::boost;
                 print_indentation();
                 ++indent;
- bcout <<
+ cts::bcout() <<
                         "<base_class number='" <<
                         MetaInheritance::position::value <<
                         "' is_virtual='"<<
@@ -122,7 +122,7 @@
                 using namespace ::boost;
                 --indent;
                 print_indentation();
- bcout << "</base_class>" << endl;
+ cts::bcout() << "</base_class>" << endl;
         }
 
 
@@ -138,7 +138,7 @@
                 {
                         print_indentation();
                         ++indent;
- bcout <<
+ cts::bcout() <<
                                 "<attributes>" <<
                         endl;
                 }
@@ -156,7 +156,7 @@
                 {
                         --indent;
                         print_indentation();
- bcout << "</attributes>" << endl;
+ cts::bcout() << "</attributes>" << endl;
                 }
         }
 
@@ -167,7 +167,7 @@
                 using namespace ::boost;
                 print_indentation();
                 ++indent;
- bcout <<
+ cts::bcout() <<
                         "<attribute number='" <<
                         MetaAttribute::position::value <<
                         "' name='" <<
@@ -187,7 +187,7 @@
                 using namespace ::boost;
                 --indent;
                 print_indentation();
- bcout << "</attribute>" << endl;
+ cts::bcout() << "</attribute>" << endl;
         }
 
         template <class MetaClass, class Context, typename InstanceType>
@@ -211,7 +211,7 @@
                 using namespace ::std;
                 using namespace ::boost;
                 print_indentation();
- bcout <<
+ cts::bcout() <<
                         "<value depth='" <<
                         mpl::size<Context>::value <<
                         "'>" <<
@@ -224,7 +224,7 @@
         void print_indentation(void)
         {
                 for(int i=0;i!=indent;++i)
- bcout << ' ';
+ cts::bcout() << ' ';
         }
 };
 

Added: sandbox/mirror/doc/Jamfile.v2
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/Jamfile.v2 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,24 @@
+# Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
+#
+# 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)
+project mirror/doc ;
+import boostbook : boostbook ;
+
+boostbook doc
+ :
+ src/mirror.xml
+ :
+ <xsl:param>boost.libraries=../../libs/libraries.htm
+
+ <dependency>css
+ <dependency>images
+ ;
+
+install css : [ glob src/*.css ] : <location>html ;
+explicit css ;
+install images : [ glob src/images/*.png ] : <location>html/images ;
+explicit images ;
+
+

Added: sandbox/mirror/doc/src/boostbook.css
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/src/boostbook.css 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,588 @@
+/*=============================================================================
+ Copyright (c) 2004 Joel de Guzman
+ http://spirit.sourceforge.net/
+
+ Distributed under the Boost Software License, Version 1.0. (See accompany-
+ ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================*/
+
+/*=============================================================================
+ Body defaults
+=============================================================================*/
+
+ body
+ {
+ margin: 1em;
+ font-family: sans-serif;
+ }
+
+/*=============================================================================
+ Paragraphs
+=============================================================================*/
+
+ p
+ {
+ text-align: left;
+ font-size: 10pt;
+ line-height: 1.15;
+ }
+
+/*=============================================================================
+ Program listings
+=============================================================================*/
+
+ /* Code on paragraphs */
+ p tt.computeroutput
+ {
+ font-size: 9pt;
+ }
+
+ pre.synopsis
+ {
+ font-size: 90%;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ .programlisting,
+ .screen
+ {
+ font-size: 9pt;
+ display: block;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ /* Program listings in tables don't get borders */
+ td .programlisting,
+ td .screen
+ {
+ margin: 0pc 0pc 0pc 0pc;
+ padding: 0pc 0pc 0pc 0pc;
+ }
+
+/*=============================================================================
+ Headings
+=============================================================================*/
+
+ h1, h2, h3, h4, h5, h6
+ {
+ text-align: left;
+ margin: 1em 0em 0.5em 0em;
+ font-weight: bold;
+ }
+
+ h1 { font: 140% }
+ h2 { font: bold 140% }
+ h3 { font: bold 130% }
+ h4 { font: bold 120% }
+ h5 { font: italic 110% }
+ h6 { font: italic 100% }
+
+ /* Top page titles */
+ title,
+ h1.title,
+ h2.title
+ h3.title,
+ h4.title,
+ h5.title,
+ h6.title,
+ .refentrytitle
+ {
+ font-weight: bold;
+ margin-bottom: 1pc;
+ }
+
+ h1.title { font-size: 140% }
+ h2.title { font-size: 140% }
+ h3.title { font-size: 130% }
+ h4.title { font-size: 120% }
+ h5.title { font-size: 110% }
+ h6.title { font-size: 100% }
+
+ .section h1
+ {
+ margin: 0em 0em 0.5em 0em;
+ font-size: 140%;
+ }
+
+ .section h2 { font-size: 140% }
+ .section h3 { font-size: 130% }
+ .section h4 { font-size: 120% }
+ .section h5 { font-size: 110% }
+ .section h6 { font-size: 100% }
+
+ /* Code on titles */
+ h1 tt.computeroutput { font-size: 140% }
+ h2 tt.computeroutput { font-size: 140% }
+ h3 tt.computeroutput { font-size: 130% }
+ h4 tt.computeroutput { font-size: 120% }
+ h5 tt.computeroutput { font-size: 110% }
+ h6 tt.computeroutput { font-size: 100% }
+
+/*=============================================================================
+ Author
+=============================================================================*/
+
+ h3.author
+ {
+ font-size: 100%
+ }
+
+/*=============================================================================
+ Lists
+=============================================================================*/
+
+ li
+ {
+ font-size: 10pt;
+ line-height: 1.3;
+ }
+
+ /* Unordered lists */
+ ul
+ {
+ text-align: left;
+ }
+
+ /* Ordered lists */
+ ol
+ {
+ text-align: left;
+ }
+
+/*=============================================================================
+ Links
+=============================================================================*/
+
+ a
+ {
+ text-decoration: none; /* no underline */
+ }
+
+ a:hover
+ {
+ text-decoration: underline;
+ }
+
+/*=============================================================================
+ Spirit style navigation
+=============================================================================*/
+
+ .spirit-nav
+ {
+ text-align: right;
+ }
+
+ .spirit-nav a
+ {
+ color: white;
+ padding-left: 0.5em;
+ }
+
+ .spirit-nav img
+ {
+ border-width: 0px;
+ }
+
+/*=============================================================================
+ Copyright footer
+=============================================================================*/
+ .copyright-footer
+ {
+ text-align: right;
+ font-size: 70%;
+ }
+
+ .copyright-footer p
+ {
+ text-align: right;
+ font-size: 80%;
+ }
+
+/*=============================================================================
+ Table of contents
+=============================================================================*/
+
+ .toc
+ {
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.1pc 1pc 0.1pc 1pc;
+ font-size: 80%;
+ line-height: 1.15;
+ }
+
+ .boost-toc
+ {
+ float: right;
+ padding: 0.5pc;
+ }
+
+/*=============================================================================
+ Tables
+=============================================================================*/
+
+ .table-title,
+ div.table p.title
+ {
+ margin-left: 4%;
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+ }
+
+ .informaltable table,
+ .table table
+ {
+ width: 92%;
+ margin-left: 4%;
+ margin-right: 4%;
+ }
+
+ div.informaltable table,
+ div.table table
+ {
+ padding: 4px;
+ }
+
+ /* Table Cells */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ padding: 0.5em;
+ text-align: left;
+ font-size: 9pt;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ padding: 0.5em 0.5em 0.5em 0.5em;
+ border: 1pt solid white;
+ font-size: 80%;
+ }
+
+ table.simplelist
+ {
+ width: auto !important;
+ margin: 0em !important;
+ padding: 0em !important;
+ border: none !important;
+ }
+ table.simplelist td
+ {
+ margin: 0em !important;
+ padding: 0em !important;
+ text-align: left !important;
+ font-size: 9pt !important;
+ border: none !important;
+ }
+
+/*=============================================================================
+ Blurbs
+=============================================================================*/
+
+ div.note,
+ div.tip,
+ div.important,
+ div.caution,
+ div.warning,
+ p.blurb
+ {
+ font-size: 9pt; /* A little bit smaller than the main text */
+ line-height: 1.2;
+ display: block;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ p.blurb img
+ {
+ padding: 1pt;
+ }
+
+/*=============================================================================
+ Variable Lists
+=============================================================================*/
+
+ /* Make the terms in definition lists bold */
+ div.variablelist dl dt,
+ span.term
+ {
+ font-weight: bold;
+ font-size: 10pt;
+ }
+
+ div.variablelist table tbody tr td
+ {
+ text-align: left;
+ vertical-align: top;
+ padding: 0em 2em 0em 0em;
+ font-size: 10pt;
+ margin: 0em 0em 0.5em 0em;
+ line-height: 1;
+ }
+
+ div.variablelist dl dt
+ {
+ margin-bottom: 0.2em;
+ }
+
+ div.variablelist dl dd
+ {
+ margin: 0em 0em 0.5em 2em;
+ font-size: 10pt;
+ }
+
+ div.variablelist table tbody tr td p,
+ div.variablelist dl dd p
+ {
+ margin: 0em 0em 0.5em 0em;
+ line-height: 1;
+ }
+
+/*=============================================================================
+ Misc
+=============================================================================*/
+
+ /* Title of books and articles in bibliographies */
+ span.title
+ {
+ font-style: italic;
+ }
+
+ span.underline
+ {
+ text-decoration: underline;
+ }
+
+ span.strikethrough
+ {
+ text-decoration: line-through;
+ }
+
+ /* Copyright, Legal Notice */
+ div div.legalnotice p
+ {
+ text-align: left
+ }
+
+/*=============================================================================
+ Colors
+=============================================================================*/
+
+ @media screen
+ {
+ body {
+ background-color: #FFFFFF;
+ }
+
+ /* Links */
+ a
+ {
+ color: #005a9c;
+ }
+
+ a:visited
+ {
+ color: #9c5a9c;
+ }
+
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
+ h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
+ h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
+ {
+ text-decoration: none; /* no underline */
+ color: #000000;
+ }
+
+ /* Syntax Highlighting */
+ .keyword { color: #0000AA; }
+ .identifier { color: #000000; }
+ .special { color: #707070; }
+ .preprocessor { color: #402080; }
+ .char { color: teal; }
+ .comment { color: #800000; }
+ .string { color: teal; }
+ .number { color: teal; }
+ .white_bkd { background-color: #FFFFFF; }
+ .dk_grey_bkd { background-color: #999999; }
+
+ /* Copyright, Legal Notice */
+ .copyright
+ {
+ color: #666666;
+ font-size: small;
+ }
+
+ div div.legalnotice p
+ {
+ color: #666666;
+ }
+
+ /* Program listing */
+ pre.synopsis
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ .programlisting,
+ .screen
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ td .programlisting,
+ td .screen
+ {
+ border: 0px solid #DCDCDC;
+ }
+
+ /* Blurbs */
+ div.note,
+ div.tip,
+ div.important,
+ div.caution,
+ div.warning,
+ p.blurb
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ /* Table of contents */
+ .toc
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ /* Tables */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ background-color: #F0F0F0;
+ border: 1px solid #DCDCDC;
+ }
+
+ .copyright-footer
+ {
+ color: #8F8F8F;
+ }
+
+ /* Misc */
+ span.highlight
+ {
+ color: #00A000;
+ }
+ }
+
+ @media print
+ {
+ /* Links */
+ a
+ {
+ color: black;
+ }
+
+ a:visited
+ {
+ color: black;
+ }
+
+ .spirit-nav
+ {
+ display: none;
+ }
+
+ /* Program listing */
+ pre.synopsis
+ {
+ border: 1px solid gray;
+ }
+
+ .programlisting,
+ .screen
+ {
+ border: 1px solid gray;
+ }
+
+ td .programlisting,
+ td .screen
+ {
+ border: 0px solid #DCDCDC;
+ }
+
+ /* Table of contents */
+ .toc
+ {
+ border: 1px solid gray;
+ }
+
+ .informaltable table,
+ .table table
+ {
+ border: 1px solid gray;
+ border-collapse: collapse;
+ }
+
+ /* Tables */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ border: 1px solid gray;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ border: 1px solid gray;
+ }
+
+ table.simplelist tr td
+ {
+ border: none !important;
+ }
+
+ /* Misc */
+ span.highlight
+ {
+ font-weight: bold;
+ }
+ }
+
+/*=============================================================================
+ Images
+=============================================================================*/
+
+ span.inlinemediaobject img
+ {
+ vertical-align: middle;
+ }
+
+/*==============================================================================
+ Super and Subscript: style so that line spacing isn't effected, see
+ http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341
+==============================================================================*/
+
+sup,
+sub {
+ height: 0;
+ line-height: 1;
+ vertical-align: baseline;
+ _vertical-align: bottom;
+ position: relative;
+
+}
+
+sup {
+ bottom: 1ex;
+}
+
+sub {
+ top: .5ex;
+}
+

Added: sandbox/mirror/doc/src/docutils.css
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/src/docutils.css 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,275 @@
+/*
+:Author: David Goodger
+:Contact: goodger_at_[hidden]
+:Date: $Date: 2007-11-25 14:34:32 -0500 (Sun, 25 Nov 2007) $
+:Revision: $Revision: 41371 $
+:Copyright: This stylesheet has been placed in the public domain.
+
+Default cascading style sheet for the HTML output of Docutils.
+
+See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+customize this style sheet.
+*/
+
+/* used to remove borders from tables and images */
+.borderless, table.borderless td, table.borderless th {
+ border: 0 }
+
+table.borderless td, table.borderless th {
+ /* Override padding for "table.docutils td" with "! important".
+ The right padding separates the table cells. */
+ padding: 0 0.5em 0 0 ! important }
+
+.first {
+ /* Override more specific margin styles with "! important". */
+ margin-top: 0 ! important }
+
+.last, .with-subtitle {
+ margin-bottom: 0 ! important }
+
+.hidden {
+ display: none }
+
+a.toc-backref {
+ text-decoration: none ;
+ color: black }
+
+blockquote.epigraph {
+ margin: 2em 5em ; }
+
+dl.docutils dd {
+ margin-bottom: 0.5em }
+
+/* Uncomment (and remove this text!) to get bold-faced definition list terms
+dl.docutils dt {
+ font-weight: bold }
+*/
+
+div.abstract {
+ margin: 2em 5em }
+
+div.abstract p.topic-title {
+ font-weight: bold ;
+ text-align: center }
+
+div.admonition, div.attention, div.caution, div.danger, div.error,
+div.hint, div.important, div.note, div.tip, div.warning {
+ margin: 2em ;
+ border: medium outset ;
+ padding: 1em }
+
+div.admonition p.admonition-title, div.hint p.admonition-title,
+div.important p.admonition-title, div.note p.admonition-title,
+div.tip p.admonition-title {
+ font-weight: bold ;
+ font-family: sans-serif }
+
+div.attention p.admonition-title, div.caution p.admonition-title,
+div.danger p.admonition-title, div.error p.admonition-title,
+div.warning p.admonition-title {
+ color: red ;
+ font-weight: bold ;
+ font-family: sans-serif }
+
+/* Uncomment (and remove this text!) to get reduced vertical space in
+ compound paragraphs.
+div.compound .compound-first, div.compound .compound-middle {
+ margin-bottom: 0.5em }
+
+div.compound .compound-last, div.compound .compound-middle {
+ margin-top: 0.5em }
+*/
+
+div.dedication {
+ margin: 2em 5em ;
+ text-align: center ;
+ font-style: italic }
+
+div.dedication p.topic-title {
+ font-weight: bold ;
+ font-style: normal }
+
+div.figure {
+ margin-left: 2em ;
+ margin-right: 2em }
+
+div.footer, div.header {
+ clear: both;
+ font-size: smaller }
+
+div.line-block {
+ display: block ;
+ margin-top: 1em ;
+ margin-bottom: 1em }
+
+div.line-block div.line-block {
+ margin-top: 0 ;
+ margin-bottom: 0 ;
+ margin-left: 1.5em }
+
+div.sidebar {
+ margin-left: 1em ;
+ border: medium outset ;
+ padding: 1em ;
+ background-color: #ffffee ;
+ width: 40% ;
+ float: right ;
+ clear: right }
+
+div.sidebar p.rubric {
+ font-family: sans-serif ;
+ font-size: medium }
+
+div.system-messages {
+ margin: 5em }
+
+div.system-messages h1 {
+ color: red }
+
+div.system-message {
+ border: medium outset ;
+ padding: 1em }
+
+div.system-message p.system-message-title {
+ color: red ;
+ font-weight: bold }
+
+div.topic {
+ margin: 2em }
+
+h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
+h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
+ margin-top: 0.4em }
+
+h1.title {
+ text-align: center }
+
+h2.subtitle {
+ text-align: center }
+
+hr.docutils {
+ width: 75% }
+
+img.align-left {
+ clear: left }
+
+img.align-right {
+ clear: right }
+
+ol.simple, ul.simple {
+ margin-bottom: 1em }
+
+ol.arabic {
+ list-style: decimal }
+
+ol.loweralpha {
+ list-style: lower-alpha }
+
+ol.upperalpha {
+ list-style: upper-alpha }
+
+ol.lowerroman {
+ list-style: lower-roman }
+
+ol.upperroman {
+ list-style: upper-roman }
+
+p.attribution {
+ text-align: right ;
+ margin-left: 50% }
+
+p.caption {
+ font-style: italic }
+
+p.credits {
+ font-style: italic ;
+ font-size: smaller }
+
+p.label {
+ white-space: nowrap }
+
+p.rubric {
+ font-weight: bold ;
+ font-size: larger ;
+ color: maroon ;
+ text-align: center }
+
+p.sidebar-title {
+ font-family: sans-serif ;
+ font-weight: bold ;
+ font-size: larger }
+
+p.sidebar-subtitle {
+ font-family: sans-serif ;
+ font-weight: bold }
+
+p.topic-title {
+ font-weight: bold }
+
+pre.address {
+ margin-bottom: 0 ;
+ margin-top: 0 ;
+ font-family: serif ;
+ font-size: 100% }
+
+pre.literal-block, pre.doctest-block {
+ margin-left: 2em ;
+ margin-right: 2em }
+
+span.classifier {
+ font-family: sans-serif ;
+ font-style: oblique }
+
+span.classifier-delimiter {
+ font-family: sans-serif ;
+ font-weight: bold }
+
+span.interpreted {
+ font-family: sans-serif }
+
+span.option {
+ white-space: nowrap }
+
+span.pre {
+ white-space: pre }
+
+span.problematic {
+ color: red }
+
+span.section-subtitle {
+ /* font-size relative to parent (h1..h6 element) */
+ font-size: 80% }
+
+table.citation {
+ border-left: solid 1px gray;
+ margin-left: 1px }
+
+table.docinfo {
+ margin: 2em 4em }
+
+table.docutils {
+ margin-top: 0.5em ;
+ margin-bottom: 0.5em }
+
+table.footnote {
+ border-left: solid 1px black;
+ margin-left: 1px }
+
+table.docutils td, table.docutils th,
+table.docinfo td, table.docinfo th {
+ padding-left: 0.5em ;
+ padding-right: 0.5em ;
+ vertical-align: top }
+
+table.docutils th.field-name, table.docinfo th.docinfo-name {
+ font-weight: bold ;
+ text-align: left ;
+ white-space: nowrap ;
+ padding-left: 0 }
+
+h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
+h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
+ font-size: 100% }
+
+ul.auto-toc {
+ list-style-type: none }

Added: sandbox/mirror/doc/src/images/blank.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/caution.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/draft.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/home.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/important.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/next.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/next_disabled.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/note.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/prev.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/prev_disabled.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/tip.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/toc-blank.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/toc-minus.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/toc-plus.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/up.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/up_disabled.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/images/warning.png
==============================================================================
Binary file. No diff available.

Added: sandbox/mirror/doc/src/mirror.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/src/mirror.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE boostbook PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+ "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<boostbook xmlns:xi="http://www.w3.org/2001/XInclude"
+ last-revision="$Date: 2008-07-15 10:43:00 +0200 (Tue, 15 Jul 2008) $">
+ <title>The Mirror library documentation</title>
+
+ <preface id="about">
+ <title>About this document</title>
+
+ <para>This is the documentation to the Mirror C++ reflection library that is developed
+ with the intention to be proposed as a Boost C++ library at some point in the future.
+ </para>
+ <note><para>The documentation is far from being complete and does not cover every feature
+ already implemented, yet.
+ </para></note>
+
+ </preface>
+
+ <part id="libraries">
+ <title>The Mirror library</title>
+
+ <xi:include href="../../libs/mirror/doc/mirror.xml"/>
+ </part>
+</boostbook>

Added: sandbox/mirror/doc/src/reference.css
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/src/reference.css 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,11 @@
+/*============================================================================
+ Copyright 2003-2004 Douglas Gregor
+ Distributed under the Boost Software License, Version 1.0. (See accompany-
+ ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+============================================================================*/
+
+PRE.synopsis {
+ background-color: #e0ffff;
+ border: thin solid blue;
+ padding: 1em
+}
\ No newline at end of file

Modified: sandbox/mirror/libs/mirror/doc/introduction.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/introduction.xml (original)
+++ sandbox/mirror/libs/mirror/doc/introduction.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -14,17 +14,17 @@
         The aim of the <libraryname>Mirror</libraryname> library is to provide
         useful meta-data at both compile-time and run-time about common
         C++ constructs like namespaces, types
- (and as a important special case <code>typedef</code>-ined types),
+ (and as an important special case <code>typedef</code>-ined types),
         classes and their base classes and member attributes, instances, etc. and to
         provide uniform and generic interfaces for their introspection.
 </para>
 <para>
         Because standard C++ provides only a very limited set of meta-information
- the main drawback of this library is that namespace, types, classes, etc.
+ to build upon, the main drawback of this library is, that namespace, types, classes, etc.
         need to be registered before they can be reflected.
         However <libraryname>Mirror</libraryname> tries to make the process of
         registering simple by providing a set of user-friendly registering macros
- and has many of the native and other common types, classes, templates and
+ and has the native and many of the other common types, classes, templates and
         namespaces pre-registered.
 </para>
 <para>
@@ -50,7 +50,7 @@
                 scope or nested in another namespace).
         </listitem>
         <listitem>
- Type-name inspection, with the support for <code>typedef</code>-ined
+ Type-name querying, with the support for <code>typedef</code>-ined
                 typenames and typenames of derived types like pointers, references,
                 cv-qualified types, arrays, functions and template names. Names
                 with or without nested-name-specifiers can be queried.
@@ -138,7 +138,7 @@
                 In this case the typenames in the output need to correspond to C++ typenames.
         </para>
         <para>
- The obvious choice if one needs to find out what the name of a given type is is to
+ Maybe the first, obvious choice if one needs to find out what the name of a given type is is to
                 use the <code>typeid</code> operator and call the <code>name()</code> function
                 on the returned reference to <code>type_info</code>. The implementation of our
                 <code>get_typename&lt;T&gt;()</code> function from the previous sample code
@@ -154,7 +154,7 @@
                 Thus the returned name is not guarenteed to be unique nor human readable or
                 easily understandable, nor is it portable.
                 Some compilers provide functions that demangle the names returned by
- <code>type_info::name()</code> but again this is not very portable.
+ <code>type_info::name()</code>, but again this is not very portable.
         </para>
         <para>
                 One possible solution is the standardisation of the result of <code>typeid(T).name()</code>
@@ -173,7 +173,7 @@
         </para>
         <para>
                 This is when <libraryname>Mirror</libraryname> comes in handy. One of the basic
- facilities is the <code><classname>meta_type</classname></code> template.
+ facilities is the <code><classname>::boost::mirror::meta_type</classname></code> template.
                 Among other things this template has two member functions - <code>base_name</code>
                 and <code>full_name</code> that return the base type name without the nested
                 name specifier and the full type name with the nested name specifier respectively.

Modified: sandbox/mirror/libs/mirror/doc/mirror.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/mirror.xml (original)
+++ sandbox/mirror/libs/mirror/doc/mirror.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -35,6 +35,10 @@
 
         <title>Mirror</title>
 
+ <note><para>The documentation is far from being complete and does not cover every feature
+ already implemented, yet.
+ </para></note>
+
         <xi:include href="introduction.xml"/>
         <xi:include href="tutorial.xml"/>
         <xi:include href="reference.xml"/>

Modified: sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml (original)
+++ sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -101,7 +101,7 @@
                                 </description>
                         </typedef>
                         <method name="base_name">
- <type>const <classname>bstring</classname>&amp;</type>
+ <type>const <classname>cts::bstring</classname>&amp;</type>
                                 <purpose>
                                         <para>This static member function returns the base name of the
                                         namespace reflected by a <code><classname>meta_namespace</classname></code>.
@@ -115,7 +115,7 @@
                                 </purpose>
                         </method>
                         <method name="full_name">
- <type>const <classname>bstring</classname>&amp;</type>
+ <type>const <classname>cts::bstring</classname>&amp;</type>
                                 <purpose>
                                         <para>This static member function returns the full name of the
                                         namespace reflected by a <code><classname>meta_namespace</classname></code>
@@ -143,7 +143,7 @@
                                                 <type>bool</type>
                                         </template-nontype-parameter>
                                 </template>
- <type>const <classname>bstring</classname>&amp;</type>
+ <type>const <classname>cts::bstring</classname>&amp;</type>
                                 <parameter name="full">
                                         <paramtype>::boost::mpl::bool_&lt;FullName&gt;</paramtype>
                                 </parameter>

Modified: sandbox/mirror/libs/mirror/doc/reference/meta_type.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/reference/meta_type.xml (original)
+++ sandbox/mirror/libs/mirror/doc/reference/meta_type.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -11,7 +11,7 @@
                         <purpose>
                                 <para>The purpose of this class template is to provide meta-data
                                 about the reflected type, especially to allow to get the
- base and full type name, of the reflected type and to
+ base and full type name of the reflected type and to
                                 get information about the scope inside of which this type
                                 has been declared.
                                 </para>
@@ -26,7 +26,7 @@
                         </purpose>
                         <description>
                                 <para>The specializations of <code><classname>meta_type</classname></code> can
- be used to get meta-information about the reflected types at both compile-time and run-time.
+ be used to get meta-information about the reflected types, some at compile-time and some at run-time.
                                 The following examples show type reflection and basic
                                 <code><classname>meta_type</classname></code> usage. Mirror works with the native C++ types
                                 and some of the very common types like <code>::std::string</code>, etc. out of the box.
@@ -74,7 +74,7 @@
                                 </description>
                         </typedef>
                         <method name="base_name">
- <type>const <classname>bstring</classname>&amp;</type>
+ <type>const <classname>cts::bstring</classname>&amp;</type>
                                 <purpose>
                                         <para>This static member function returns the base name of the
                                         type reflected by <code><classname>meta_type</classname></code>
@@ -100,7 +100,7 @@
                                 </notes>
                         </method>
                         <method name="full_name">
- <type>const <classname>bstring</classname>&amp;</type>
+ <type>const <classname>cts::bstring</classname>&amp;</type>
                                 <purpose>
                                         <para>This static member function returns the full name of the
                                         type reflected by <code><classname>meta_type</classname></code>
@@ -131,7 +131,7 @@
                                                 <type>bool</type>
                                         </template-nontype-parameter>
                                 </template>
- <type>const <classname>bstring</classname>&amp;</type>
+ <type>const <classname>cts::bstring</classname>&amp;</type>
                                 <parameter name="full">
                                         <paramtype>::boost::mpl::bool_&lt;FullName&gt;</paramtype>
                                 </parameter>
@@ -143,12 +143,12 @@
                                         <code><classname>meta_type</classname></code>,
                                         depending on the value of the template argument <code>FullName</code>.
                                         For example:
- <programlisting><macroname>meta_type</macroname>(::std::string) :: get_name(::boost::mpl::false_())</programlisting> or
+ <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: get_name(::boost::mpl::false_())</programlisting> or
                                         <programlisting><classname>meta_type</classname> &lt; ::std::string &gt; :: get_name(::boost::mpl::false_())</programlisting>
                                         is equivalent to calling the
                                         <code><methodname>base_name</methodname></code> member function and
                                         returns simply <code>"string"</code> and
- <programlisting><macroname>meta_type</macroname>(::std::string) :: get_name(::boost::mpl::true_())</programlisting> or
+ <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: get_name(::boost::mpl::true_())</programlisting> or
                                         <programlisting><classname>meta_type</classname> &lt; ::std::string &gt; :: get_name( ::boost::mpl::true_())</programlisting> is equivalent to calling the
                                         <code><methodname>full_name</methodname></code> method which
                                         returns <code>"::std::string"</code>.

Modified: sandbox/mirror/libs/mirror/doc/samples/typenames_naive.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/typenames_naive.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/typenames_naive.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -25,7 +25,7 @@
                 get_typename&lt;C&gt;() &lt;&lt;
                 ")" &lt;&lt;
         endl;
- // process args
+ // do something useful
         log &lt;&lt;
                 "leaving foo(" &lt;&lt;
                 get_typename&lt;A&gt;() &lt;&lt;

Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -2,8 +2,7 @@
 <!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
         "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
 <programlisting id="mirror.reference.sample.meta_type.usage01">
-
-#include &lt;iostream&gt;
+#include &lt;boost/char_type_switch/iostream.hpp&gt;
 #include &lt;boost/mirror/meta_type.hpp&gt;
 #include &lt;boost/mirror/meta_types/std_pair.hpp&gt;
 
@@ -24,7 +23,10 @@
         typedef BOOST_MIRRORED_TYPE(T) meta_T;
 
         // print out the full type name
- wcout &lt;&lt; "The full type name is: "&lt;&lt; meta_T::full_name() &lt;&lt; endl;
+ cts::bcout() &lt;&lt;
+ BOOST_CTS_LIT("The full type name is: ") &lt;&lt;
+ meta_T::full_name() &lt;&lt;
+ endl;
 
         return 0;
 }

Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -42,7 +42,7 @@
         print_meta_data&lt; BOOST_MIRRORED_TYPEOF("1" "+" "2") &gt;();
         print_meta_data&lt; BOOST_MIRRORED_TYPEOF(string("1")+string("2")) &gt;();
 
- // another possibility
+ // BOOST_MIRRORED_TYPEOF is actually a shorter form of this:
         print_meta_data&lt; BOOST_MIRRORED_TYPE(
                 BOOST_TYPEOF(L"1" L"+" L"2")
         ) &gt;();

Modified: sandbox/mirror/libs/mirror/example/algorithms/begin_end.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/algorithms/begin_end.cpp (original)
+++ sandbox/mirror/libs/mirror/example/algorithms/begin_end.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -63,6 +63,8 @@
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
+ cts::bostream& bcout = cts::bcout();
+ //
         typedef tuple<bool, unsigned char, char, wchar_t, short, int, long, float, double> T;
         //
         typedef BOOST_MIRRORED_CLASS(T) meta_T;

Modified: sandbox/mirror/libs/mirror/example/registering/classes.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/registering/classes.cpp (original)
+++ sandbox/mirror/libs/mirror/example/registering/classes.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -86,15 +86,15 @@
         // but must be stored by the setter function.
         // Anyway, mirror supports this
         //
- ::boost::bstring a_string;
- void set_string(const ::boost::bstring& a_str)
+ ::boost::cts::bstring a_string;
+ void set_string(const ::boost::cts::bstring& a_str)
         {
                 a_string = a_str;
- ::boost::bcout << a_string << ::std::endl;
+ ::boost::cts::bcout() << a_string << ::std::endl;
         }
         //
         // attribute with a type based on a typedefined type
- const ::boost::bchar* (*a_function)(int);
+ const ::boost::cts::bchar* (*a_function)(int);
 public:
         // A little weird getter/setter pair
         // Note that the getter is not const
@@ -257,7 +257,7 @@
         // to notify mirror that the type was typedefined
         // The typedef must be registered with mirror prior doing this
         BOOST_MIRROR_REG_CLASS_ATTRIB(
- _, BOOST_MIRROR_TYPEDEF(::boost, bstring), a_string,
+ _, BOOST_MIRROR_TYPEDEF(::boost::cts, bstring), a_string,
                 {return instance.a_string;},
                 {dest = DestType(instance.a_string);},
                 {instance.set_string(value);}
@@ -268,7 +268,7 @@
         // type. Such types are again referred to by the BOOST_MIRROR_TYPEDEF
         // macro
         BOOST_MIRROR_REG_CLASS_ATTRIB(
- static, const BOOST_MIRROR_TYPEDEF(::boost, bchar) * (*)(int), a_function,
+ static, const BOOST_MIRROR_TYPEDEF(::boost::cts, bchar) * (*)(int), a_function,
                 {return instance.a_function;},
                 {dest = DestType(instance.a_function);},
                 { } // no setter
@@ -467,6 +467,8 @@
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
+ cts::bostream& bcout = cts::bcout();
+ //
         using ::test::feature::detail::foo;
         using ::test::stuff::detail::bar;
         using ::test::stuff::detail::bar_base;
@@ -484,7 +486,7 @@
         // an embedded class
         bcout << "|04| " << endl << pretty_printer<BOOST_MIRRORED_CLASS(bar::bar_part)>() << endl;
         // typedef'd type
- bcout << "|05| " << endl << pretty_printer<BOOST_MIRRORED_TYPEDEF(::boost, bchar)>() << endl;
+ bcout << "|05| " << endl << pretty_printer<BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar)>() << endl;
         // type of an expression
         bcout << "|06| " << endl << pretty_printer<BOOST_MIRRORED_TYPEOF("foo")>() << endl;
         //

Modified: sandbox/mirror/libs/mirror/example/registering/namespaces.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/registering/namespaces.cpp (original)
+++ sandbox/mirror/libs/mirror/example/registering/namespaces.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -54,6 +54,8 @@
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
+ cts::bostream& bcout = cts::bcout();
+ //
         // NOTE bcout ~ cout when using narrow chars
         // ~ wcout when using wide chars
         // it's typedef'd in the boost namespace

Modified: sandbox/mirror/libs/mirror/example/registering/types.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/registering/types.cpp (original)
+++ sandbox/mirror/libs/mirror/example/registering/types.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -83,6 +83,8 @@
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
+ cts::bostream& bcout = cts::bcout();
+ //
         using ::test::feature::detail::foo;
         using ::test::feature::detail::bar;
         using ::test::feature::detail::foobar;
@@ -130,9 +132,9 @@
         //
         // this reflects bchar as char or wchar_t based
         // on compilation configuration
- typedef BOOST_MIRRORED_TYPE(bchar) meta_bchar;
+ typedef BOOST_MIRRORED_TYPE(cts::bchar) meta_bchar;
         // this reflects a meta-type that allows to query the typedef'd name
- typedef BOOST_MIRRORED_TYPEDEF(::boost, bchar) meta_bchar_td;
+ typedef BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar) meta_bchar_td;
         // this reflects the meta-type for the typedef type foobar
         typedef BOOST_MIRRORED_TYPEDEF(::test::feature::detail, foobar) meta_foobar_td;
         //
@@ -161,12 +163,12 @@
                 bcout << "|25| " << "type of \"foo\" defined on global scope" << endl;
         //
         bcout << "|26| " << BOOST_MIRRORED_TYPE(bool) ::full_name() << endl;
- bcout << "|27| " << BOOST_MIRRORED_TYPE(bchar) ::full_name() << endl;
+ bcout << "|27| " << BOOST_MIRRORED_TYPE(cts::bchar) ::full_name() << endl;
         //
         // reflection of typedefined types
- bcout << "|28| " << BOOST_MIRRORED_TYPEDEF(::boost, bchar) ::full_name() << endl;
+ bcout << "|28| " << BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar) ::full_name() << endl;
         // or another way how to reflect a typedefined type
- bcout << "|29| " << BOOST_MIRRORED_TYPE(BOOST_MIRROR_TYPEDEF(::boost, bstring) const * volatile *) ::full_name() << endl;
+ bcout << "|29| " << BOOST_MIRRORED_TYPE(BOOST_MIRROR_TYPEDEF(::boost::cts, bstring) const * volatile *) ::full_name() << endl;
         //
 
         bcout << "|30| " << BOOST_MIRRORED_TYPE(int const * const volatile) ::full_name() << endl;

Modified: sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp (original)
+++ sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -179,6 +179,8 @@
                         using namespace ::std;
                         using namespace ::boost;
                         using namespace ::boost::mirror;
+ cts::bostream& bcout = cts::bcout();
+ //
                         typedef BOOST_MIRRORED_TYPE(typename MetaAttribute::type) mt;
                         bcout <<
                                 " " <<
@@ -198,6 +200,8 @@
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
+ cts::bostream& bcout = cts::bcout();
+ //
         using namespace ::Test;
         //
         typedef ::Test::H T;

Modified: sandbox/mirror/libs/mirror/example/serialization/cube.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/serialization/cube.cpp (original)
+++ sandbox/mirror/libs/mirror/example/serialization/cube.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -432,7 +432,7 @@
         // compare them
         assert(c1 == c2);
         //
- bcout << "Finished" << endl;
+ cts::bcout() << "Finished" << endl;
         //
         return 0;
 }

Modified: sandbox/mirror/libs/mirror/example/special/boost_tuple.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/special/boost_tuple.cpp (original)
+++ sandbox/mirror/libs/mirror/example/special/boost_tuple.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -41,7 +41,7 @@
                         using namespace ::std;
                         using namespace ::boost;
                         using namespace ::boost::mirror;
- bcout <<
+ cts::bcout() <<
                                 " " <<
                                 ma.base_name() <<
                                 " = " <<
@@ -54,13 +54,13 @@
 
 struct str_printer
 {
- void operator()(const ::boost::bchar* str) const
+ void operator()(const ::boost::cts::bchar* str) const
         {
- ::boost::bcout << str << ", ";
+ ::boost::cts::bcout() << str << ", ";
         }
         ~str_printer(void)
         {
- ::boost::bcout << ::std::endl;
+ ::boost::cts::bcout() << ::std::endl;
         }
 };
 
@@ -70,6 +70,8 @@
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
+ cts::bostream& bcout = cts::bcout();
+ //
         typedef int (*A)(double);
         typedef A (*B)(string);
         typedef B (C)(char, wchar_t);

Modified: sandbox/mirror/libs/mirror/example/special/std_pair.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/special/std_pair.cpp (original)
+++ sandbox/mirror/libs/mirror/example/special/std_pair.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -26,6 +26,8 @@
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
+ cts::bostream& bcout = cts::bcout();
+ //
         //
         typedef pair<const int*, double [654][321]> T1;
         typedef pair<float, const ::std::string&> T2;

Modified: sandbox/mirror/libs/mirror/example/traversal/sample_meta_path.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/traversal/sample_meta_path.cpp (original)
+++ sandbox/mirror/libs/mirror/example/traversal/sample_meta_path.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -171,6 +171,8 @@
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
+ cts::bostream& bcout = cts::bcout();
+ //
         using namespace ::Test;
         //
         typedef BOOST_MIRRORED_CLASS(H) meta_H;

Modified: sandbox/mirror/libs/mirror/example/traversal/sample_visitor.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/traversal/sample_visitor.cpp (original)
+++ sandbox/mirror/libs/mirror/example/traversal/sample_visitor.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -170,6 +170,7 @@
         using namespace ::std;
         using namespace ::boost;
         using namespace ::boost::mirror;
+ cts::bostream &bcout = cts::bcout();
         //
         using namespace ::Test;
         //


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