Boost logo

Boost-Commit :

From: chochlik_at_[hidden]
Date: 2008-07-09 12:55:29


Author: matus.chochlik
Date: 2008-07-09 12:55:27 EDT (Wed, 09 Jul 2008)
New Revision: 47272
URL: http://svn.boost.org/trac/boost/changeset/47272

Log:
- Updated the support for types derived from a typedef-ined type
- The name_to_string utility has been removed meta_object's base_name and full_name member functions are to be used instead.
Removed:
   sandbox/mirror/boost/mirror/utils/name_to_stream/
   sandbox/mirror/boost/mirror/utils/name_to_stream.hpp
Text files modified:
   sandbox/mirror/boost/mirror/detail/meta_attribs_base.hpp | 25 +++++++++------------
   sandbox/mirror/boost/mirror/detail/meta_type_registering.hpp | 22 ++----------------
   sandbox/mirror/boost/mirror/detail/traversal.hpp | 4 +-
   sandbox/mirror/boost/mirror/meta_class.hpp | 45 +++++++++++++++++++++++++++++++++++++--
   sandbox/mirror/boost/mirror/meta_types/_array.hpp | 24 ++++++++++++++-------
   sandbox/mirror/boost/mirror/meta_types/_const_volatile.hpp | 9 +++++--
   sandbox/mirror/boost/mirror/meta_types/_free_fn.hpp | 3 +
   sandbox/mirror/boost/mirror/meta_types/_ptr_ref.hpp | 6 +++-
   sandbox/mirror/libs/mirror/doc/xml/mirror/_library.xml | 3 ++
   sandbox/mirror/libs/mirror/example/registering/classes.cpp | 26 +++++++++++++---------
   sandbox/mirror/libs/mirror/example/registering/namespaces.cpp | 34 ++++++------------------------
   sandbox/mirror/libs/mirror/example/registering/types.cpp | 6 ++++
   sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp | 1
   sandbox/mirror/libs/mirror/example/serialization/cube.cpp | 3 --
   14 files changed, 116 insertions(+), 95 deletions(-)

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-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -149,11 +149,15 @@
 #define BOOST_MIRROR_REG_TEMPLATE_OR_CLASS_ATTRIB_BASE_PROLOGUE( \
         SPECIFIERS, \
         TYPE_SELECTOR, \
- NAME \
+ NAME, \
+ TYPENAME_KW \
 ) \
         partial_list_##NAME; \
         typedef mpl::int_< mpl::size< partial_list_##NAME >::value > \
                 position_of_##NAME; \
+ typedef TYPENAME_KW ::boost::mirror::typedef_::extract_type< \
+ TYPE_SELECTOR \
+ >::type type_of_##NAME; \
         static const bchar* base_name( \
                 position_of_##NAME \
         ){return BOOST_STR_LIT(#NAME);} \
@@ -171,9 +175,7 @@
         TYPENAME_KW \
 ) typedef TYPENAME_KW mpl::push_back< \
         partial_list_##NAME, \
- TYPENAME_KW ::boost::mirror::typedef_::extract_type< \
- TYPE_SELECTOR \
- >::type \
+ type_of_##NAME \
>::type
 
 /** Helper macro expanding into the declaraion of getter
@@ -185,9 +187,7 @@
         GETTER_BODY, \
         TYPENAME_KW \
 ) inline static TYPENAME_KW call_traits< \
- TYPENAME_KW ::boost::mirror::typedef_::extract_type< \
- TYPE_SELECTOR \
- >::type \
+ type_of_##NAME \
>::param_type get( \
                 const Class& instance, \
                 position_of_##NAME position \
@@ -220,18 +220,14 @@
                 Class& instance, \
                 position_of_##NAME, \
                 TYPENAME_KW call_traits< \
- TYPENAME_KW ::boost::mirror::typedef_::extract_type< \
- TYPE_SELECTOR \
- >::type \
+ type_of_##NAME \
>::param_type value \
         ) SETTER_BODY \
         inline static void set( \
                 const Class& instance, \
                 position_of_##NAME, \
                 TYPENAME_KW call_traits< \
- TYPENAME_KW ::boost::mirror::typedef_::extract_type< \
- TYPE_SELECTOR \
- >::type \
+ type_of_##NAME \
>::param_type value \
         ) { }
 
@@ -247,7 +243,8 @@
         BOOST_MIRROR_REG_TEMPLATE_OR_CLASS_ATTRIB_BASE_PROLOGUE( \
                 SPECIFIERS, \
                 TYPE_SELECTOR, \
- NAME \
+ NAME, \
+ TYPENAME_KW \
         ) \
         BOOST_MIRROR_REG_TEMPLATE_OR_CLASS_ATTRIB_GETTER( \
                 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-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -108,29 +108,13 @@
          * from regular types and typedef type selectors
          * in a uniform way.
          *
- * By default the template argument is 'returned'
          */
         template <class TypeOrTypedefSelector>
         struct extract_type
         {
- typedef TypeOrTypedefSelector type;
- };
-
- /** This is specialization for the templates in mirror::typedef_
- * that represent the registered typedefined types.
- * In this case the base_type of the selector is returned
- */
- template <
- template <class> class TypedefSelector,
- class NamespacePlaceholder
- >
- struct extract_type<TypedefSelector<typedef_tag<NamespacePlaceholder> > >
- {
- typedef typename TypedefSelector<
- typedef_tag<
- NamespacePlaceholder
- >
- >::base_type type;
+ typedef typename ::boost::mirror::meta_type<
+ TypeOrTypedefSelector
+ >::reflected_type type;
         };
 } // namespace typedef_
 

Modified: sandbox/mirror/boost/mirror/detail/traversal.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/traversal.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/traversal.hpp 2008-07-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -116,7 +116,7 @@
                                 typedef BOOST_TYPEOF(ma.get(*ptr_to_inst)) instance_type;
                                 instance_type instance(ma.get(*ptr_to_inst));
                                 //
- typedef typename MetaAttribute::type
+ typedef typename MetaAttribute::type
                                         attrib_type_selector;
                                 // traverse the attribute
                                 TraversalType<
@@ -155,7 +155,7 @@
                                 );
                                 //
                                 // traverse the attributes
- typedef typename MetaAttribute::type
+ typedef typename MetaAttribute::type
                                         attrib_type_selector;
                                 TraversalType<
                                         BOOST_MIRRORED_CLASS(attrib_type_selector),

Modified: sandbox/mirror/boost/mirror/meta_class.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_class.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_class.hpp 2008-07-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -37,15 +37,15 @@
 
 namespace boost {
 namespace mirror {
+namespace detail {
 
-
-/** Meta class - specializes the meta_type for classes
+/** Common base for various meta_class specializations
  */
 template <
         class Class,
         class VariantTag
>
-struct meta_class : public meta_type<Class>
+struct meta_class_base
 {
         /** The base classes of a class.
          * The member base_classes::list is a mpl::vector of
@@ -82,6 +82,45 @@
                 destructor;
 };
 
+} // namespace detail
+
+/** Meta class - specializes the meta_type for classes
+ */
+template <
+ class Class,
+ class VariantTag
+>
+struct meta_class
+: public meta_type<Class>
+, public detail::meta_class_base<Class, VariantTag>
+{ };
+
+/** Meta class - specialization for typedefined types
+ */
+template <
+ template <class> class TypedefSelector,
+ class MetaNamespace,
+ class VariantTag
+>
+struct meta_class<
+ TypedefSelector<typedef_::typedef_tag<MetaNamespace> >,
+ VariantTag
+>
+: public meta_type<
+ TypedefSelector<typedef_::typedef_tag<MetaNamespace> >
+>
+, public detail::meta_class_base<
+ typename typedef_::extract_type<
+ TypedefSelector<
+ typedef_::typedef_tag<MetaNamespace>
+ >
+ >::type,
+ VariantTag
+>
+{ };
+
+
+
 
 /** This macro should be included in the definition of every class
  * with private or protected members, that should be refleccted

Modified: sandbox/mirror/boost/mirror/meta_types/_array.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_types/_array.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_types/_array.hpp 2008-07-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -28,7 +28,8 @@
>
 {
         typedef typename meta_type<ElementType>::scope scope;
- typedef ElementType reflected_type[Size];
+ typedef typename meta_type<ElementType>::reflected_type
+ reflected_type[Size];
 };
 
 
@@ -39,7 +40,8 @@
>
 {
         typedef typename meta_type<ElementType>::scope scope;
- typedef const ElementType reflected_type[Size];
+ typedef typename const meta_type<ElementType>::reflected_type
+ reflected_type[Size];
 };
 
 template <class ElementType, size_t Size>
@@ -49,7 +51,8 @@
>
 {
         typedef typename meta_type<ElementType>::scope scope;
- typedef volatile ElementType reflected_type[Size];
+ typedef typename volatile meta_type<ElementType>::reflected_type
+ reflected_type[Size];
 };
 
 template <class ElementType, size_t Size>
@@ -60,7 +63,8 @@
>
 {
         typedef typename meta_type<ElementType>::scope scope;
- typedef const volatile ElementType reflected_type[Size];
+ typedef typename const volatile meta_type<ElementType>::reflected_type
+ reflected_type[Size];
 };
 
 template <class ElementType>
@@ -70,7 +74,8 @@
>
 {
         typedef typename meta_type<ElementType>::scope scope;
- typedef ElementType reflected_type[];
+ typedef typename meta_type<ElementType>::reflected_type
+ reflected_type[];
 };
 
 template <class ElementType>
@@ -80,7 +85,8 @@
>
 {
         typedef typename meta_type<ElementType>::scope scope;
- typedef ElementType const reflected_type [];
+ typedef typename meta_type<ElementType>::reflected_type const
+ reflected_type[];
 };
 
 template <class ElementType>
@@ -90,7 +96,8 @@
>
 {
         typedef typename meta_type<ElementType>::scope scope;
- typedef ElementType volatile reflected_type [];
+ typedef typename meta_type<ElementType>::reflected_type volatile
+ reflected_type[];
 };
 
 template <class ElementType>
@@ -101,7 +108,8 @@
>
 {
         typedef typename meta_type<ElementType>::scope scope;
- typedef ElementType const volatile reflected_type [];
+ typedef typename meta_type<ElementType>::reflected_type const volatile
+ reflected_type[];
 };
 
 

Modified: sandbox/mirror/boost/mirror/meta_types/_const_volatile.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_types/_const_volatile.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_types/_const_volatile.hpp 2008-07-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -27,7 +27,8 @@
>
 {
         typedef typename meta_type<NonConstType>::scope scope;
- typedef const NonConstType reflected_type;
+ typedef const typename meta_type<NonConstType>::reflected_type
+ reflected_type;
 };
 
 /** Meta-types for volatile types
@@ -39,7 +40,8 @@
>
 {
         typedef typename meta_type<NonVolatileType>::scope scope;
- typedef volatile NonVolatileType reflected_type;
+ typedef volatile typename meta_type<NonVolatileType>::reflected_type
+ reflected_type;
 };
 
 /** Meta-types for const volatile types
@@ -51,7 +53,8 @@
>
 {
         typedef typename meta_type<NonCVType>::scope scope;
- typedef const volatile NonCVType reflected_type;
+ typedef const volatile typename meta_type<NonCVType>::reflected_type
+ reflected_type;
 };
 
 } // namespace mirror

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-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -64,7 +64,8 @@
> \
 { \
         typedef typename meta_type<void>::scope scope; \
- typedef RetVal(reflected_type)(BOOST_PP_ENUM_PARAMS(ARG_COUNT, T)); \
+ typedef typename meta_type<RetVal>::reflected_type \
+ (reflected_type)(BOOST_PP_ENUM_PARAMS(ARG_COUNT, T)); \
 };
 
 BOOST_PP_REPEAT(16, BOOST_MIRROR_DECLARE_FREE_FUNCTION_META_TYPE, default)

Modified: sandbox/mirror/boost/mirror/meta_types/_ptr_ref.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_types/_ptr_ref.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_types/_ptr_ref.hpp 2008-07-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -27,7 +27,8 @@
>
 {
         typedef typename meta_type<PointeeType>::scope scope;
- typedef PointeeType* reflected_type;
+ typedef typename meta_type<PointeeType>::reflected_type*
+ reflected_type;
 };
 
 /** Meta-types for references
@@ -39,7 +40,8 @@
>
 {
         typedef typename meta_type<ReferredToType>::scope scope;
- typedef ReferredToType& reflected_type;
+ typedef typename meta_type<ReferredToType>::reflected_type&
+ reflected_type;
 };
 
 } // namespace mirror

Deleted: sandbox/mirror/boost/mirror/utils/name_to_stream.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/utils/name_to_stream.hpp 2008-07-09 12:55:27 EDT (Wed, 09 Jul 2008)
+++ (empty file)
@@ -1,24 +0,0 @@
-/**
- * \file boost/mirror/utils/name_to_stream.hpp
- * Putting names of reflected nammespaces, classes, etc. to streams
- *
- * 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_UTILS_NAME_TO_STREAM_HPP
-#define BOOST_MIRROR_UTILS_NAME_TO_STREAM_HPP
-
-#include <boost/mirror/utils/name_to_stream/namespace.hpp>
-#include <boost/mirror/utils/name_to_stream/type.hpp>
-#include <boost/mirror/utils/name_to_stream/class.hpp>
-
-namespace boost {
-namespace mirror {
-
-} // namespace mirror
-} // namespace boost
-
-#endif //include guard
-

Modified: sandbox/mirror/libs/mirror/doc/xml/mirror/_library.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/xml/mirror/_library.xml (original)
+++ sandbox/mirror/libs/mirror/doc/xml/mirror/_library.xml 2008-07-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -274,5 +274,8 @@
                         - Tested with gcc 4.3.0 on SuSE
                         - Tested with intel 10.1 on SuSE (fails with some examples)
                 </revision>
+ <revision id="20080709" major="0" minor="2" micro="1" author="m_ch">
+ - The name_to_string utility has been removed meta_object's base_name and full_name member functions are to be used instead.
+ </revision>
         </revisions>
 </library>

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-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -24,7 +24,6 @@
 #include <boost/mirror/meta_type.hpp>
 #include <boost/mirror/meta_class.hpp>
 
-#include <boost/mirror/utils/name_to_stream.hpp>
 #include <boost/mirror/algorithms.hpp>
 
 #include <boost/mirror/traits/reflects_global_scope.hpp>
@@ -93,6 +92,8 @@
                 ::boost::bcout << a_string << ::std::endl;
         }
         //
+ // attribute with a type based on a typedefined type
+ const ::boost::bchar* (*a_function)(int);
 public:
         // A little weird getter/setter pair
         // Note that the getter is not const
@@ -192,15 +193,20 @@
         )
         //
         // this is an attrib that has no getter but has a setter function
- // Also note that macros with the _TD suffix allow to register
- // attributes with typedef'd types
- //BOOST_MIRROR_REG_CLASS_ATTRIB_SETTER_TD(4, _boost, ::boost, bstring, a_string, set_string)
+ // NOTE that the type of this attribute is typedef'd
         BOOST_MIRROR_REG_CLASS_ATTRIB(
                 _, BOOST_MIRROR_TYPEDEF(::boost, bstring), a_string,
                 {return instance.a_string;},
                 {dest = DestType(instance.a_string); return dest;},
                 {instance.set_string(value);}
         )
+ // another typedefd attribute
+ BOOST_MIRROR_REG_CLASS_ATTRIB(
+ static, const BOOST_MIRROR_TYPEDEF(::boost, bchar) * (*)(int), a_function,
+ {return instance.a_function;},
+ {dest = DestType(instance.a_function); return dest;},
+ { } // no setter
+ )
         //
         // and the last one is accessed by the means of a pair of getter/setter functions
         BOOST_MIRROR_REG_CLASS_ATTRIB(
@@ -244,7 +250,7 @@
                 else return s << "Unknown meta object";
                 //
                 // print out it's name
- s << name_to_stream<meta_object>() << "' " << endl;
+ s << meta_object::full_name() << "' " << endl;
                 //
                 //
                 typedef typename meta_object::scope meta_scope;
@@ -256,9 +262,9 @@
                         s << "on the global scope";
                 // if it's a class
                 else if(reflects_class<meta_scope>::value)
- s << "inside of the '" << name_to_stream<meta_scope>() << "' class";
+ s << "inside of the '" << meta_scope::full_name() << "' class";
                 // otherwise
- else s << "in the '" << name_to_stream<meta_scope>() << "' namespace";
+ else s << "in the '" << meta_scope::full_name() << "' namespace";
                 s << "." << endl;
                 //
                 // print the base classes if any
@@ -291,7 +297,7 @@
                         // of the base class
                         using namespace ::std;
                         typedef typename MetaInheritance::meta_base_class meta_class;
- s << endl << " - " << name_to_stream<meta_class>();
+ s << endl << " - " << meta_class::full_name();
                 }
         };
         //
@@ -339,9 +345,7 @@
                 {
                         using namespace ::std;
                         s << endl << " - " <<
- name_to_stream<
- BOOST_MIRRORED_TYPE(typename MetaAttribute::type_selector)
- >() <<
+ BOOST_MIRRORED_TYPE(typename MetaAttribute::type_selector)::full_name() <<
                                 " " <<
                                 ma.base_name();
                 }

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-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -12,8 +12,6 @@
 #include <boost/char_type_switch/iostream.hpp>
 // namespace registering
 #include <boost/mirror/meta_namespace.hpp>
-// utility that allows to put the name of the namespace to a given stream
-#include <boost/mirror/utils/name_to_stream/namespace.hpp>
 //
 // mpl size meta function
 #include <boost/mpl/size.hpp>
@@ -93,34 +91,16 @@
         bcout << "|05| " <<mpl::size<meta_ns_test::ancestors>::value << endl;
         bcout << "|06| " <<mpl::size<meta_ns_test_stuff_detail::ancestors>::value << endl;
         //
- // the name_to_stream<meta_object> class allows to put the full name
- // (including the scope) into a stream
- bcout << "|07| " <<name_to_stream< BOOST_MIRRORED_GLOBAL_SCOPE() >() << endl;
- bcout << "|08| " <<name_to_stream< BOOST_MIRRORED_NAMESPACE(::test) >() << endl;
- bcout << "|09| " <<name_to_stream< BOOST_MIRRORED_NAMESPACE(::test::stuff) >() << endl;
- bcout << "|10| " <<name_to_stream< BOOST_MIRRORED_NAMESPACE(::test::stuff::detail) >() << endl;
- // in this case the :: is prepended to the full name
- // thus test::stuff -> ::test::stuff
- bcout << "|11| " <<name_to_stream< BOOST_MIRRORED_GLOBAL_SCOPE() >(true) << endl;
- bcout << "|12| " <<name_to_stream< BOOST_MIRRORED_NAMESPACE(::test) >(true) << endl;
- bcout << "|13| " <<name_to_stream< BOOST_MIRRORED_NAMESPACE(::test::stuff) >(true) << endl;
- bcout << "|14| " <<name_to_stream< BOOST_MIRRORED_NAMESPACE(::test::stuff::detail) >(true) << endl;
- //
- // there are few namespace registered by default
- // including (::std, ::boost, ::boost::mirror)
- bcout << "|15| " <<name_to_stream< BOOST_MIRRORED_NAMESPACE(::std) >(true) << endl;
- bcout << "|16| " <<name_to_stream< BOOST_MIRRORED_NAMESPACE(::boost) >(true) << endl;
- bcout << "|17| " <<name_to_stream< BOOST_MIRRORED_NAMESPACE(::boost::mirror) >(true) << endl;
         //
         // printing out the full namespace names directly without the name_to_stream
         // printer template
- bcout << "|18| " << BOOST_MIRRORED_GLOBAL_SCOPE() ::full_name() << endl;
- bcout << "|19| " << BOOST_MIRRORED_NAMESPACE(::std) ::full_name() << endl;
- bcout << "|20| " << BOOST_MIRRORED_NAMESPACE(::boost) ::full_name() << endl;
- bcout << "|21| " << BOOST_MIRRORED_NAMESPACE(::boost::mirror) ::full_name() << endl;
- bcout << "|22| " << BOOST_MIRRORED_NAMESPACE(::test) ::full_name() << endl;
- bcout << "|23| " << BOOST_MIRRORED_NAMESPACE(::test::stuff) ::full_name() << endl;
- bcout << "|24| " << BOOST_MIRRORED_NAMESPACE(::test::stuff::detail) ::full_name() << endl;
+ bcout << "|07| " << BOOST_MIRRORED_GLOBAL_SCOPE() ::full_name() << endl;
+ bcout << "|08| " << BOOST_MIRRORED_NAMESPACE(::std) ::full_name() << endl;
+ bcout << "|09| " << BOOST_MIRRORED_NAMESPACE(::boost) ::full_name() << endl;
+ bcout << "|10| " << BOOST_MIRRORED_NAMESPACE(::boost::mirror) ::full_name() << endl;
+ bcout << "|11| " << BOOST_MIRRORED_NAMESPACE(::test) ::full_name() << endl;
+ bcout << "|12| " << BOOST_MIRRORED_NAMESPACE(::test::stuff) ::full_name() << endl;
+ bcout << "|13| " << BOOST_MIRRORED_NAMESPACE(::test::stuff::detail) ::full_name() << endl;
         return 0;
 }
 

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-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -164,8 +164,12 @@
         //
         bcout << "|26| " << BOOST_MIRRORED_TYPE(bool) ::full_name() << endl;
         bcout << "|27| " << BOOST_MIRRORED_TYPE(bchar) ::full_name() << endl;
+ //
+ // reflection of typedefined types
         bcout << "|28| " << BOOST_MIRRORED_TYPEDEF(::boost, bchar) ::full_name() << endl;
- bcout << "|29| " << BOOST_MIRRORED_TYPEDEF(::boost, bstring) ::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 << "|30| " << BOOST_MIRRORED_TYPE(int const * const volatile) ::full_name() << endl;
         bcout << "|31| " << BOOST_MIRRORED_TYPE(int volatile * const * volatile * const *) ::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-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -29,7 +29,6 @@
 #include <boost/mirror/meta_type.hpp>
 #include <boost/mirror/meta_class.hpp>
 
-#include <boost/mirror/utils/name_to_stream.hpp>
 #include <boost/mirror/algorithms.hpp>
 
 /** First declare some namespaces and classes

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-09 12:55:27 EDT (Wed, 09 Jul 2008)
@@ -34,12 +34,9 @@
 #include <boost/mirror/meta_type.hpp>
 #include <boost/mirror/meta_class.hpp>
 
-#include <boost/mirror/utils/name_to_stream.hpp>
-
 
 /** First declare some namespaces and classes
  */
-
 namespace Graphics {
 
         // coordinates


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