$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r52421 - in sandbox/mirror: boost/mirror boost/mirror/algorithm boost/mirror/algorithm/detail boost/mirror/detail boost/mirror/meta_path libs/mirror/test
From: chochlik_at_[hidden]
Date: 2009-04-16 11:25:47
Author: matus.chochlik
Date: 2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
New Revision: 52421
URL: http://svn.boost.org/trac/boost/changeset/52421
Log:
[mirror 0.4.x]
- contains several minor bugfixes 
- update of the testsuite to use c++0x static_asserts where available
Text files modified: 
   sandbox/mirror/boost/mirror/algorithm/detail/iterative.hpp |    34 +++---                                  
   sandbox/mirror/boost/mirror/algorithm/for_each.hpp         |    28 +++---                                  
   sandbox/mirror/boost/mirror/algorithm/reverse_for_each.hpp |    26 ++--                                    
   sandbox/mirror/boost/mirror/detail/traversal.hpp           |   108 +++++++++++-----------                  
   sandbox/mirror/boost/mirror/meta_path/for_each.hpp         |     2                                         
   sandbox/mirror/boost/mirror/traversal.hpp                  |    34 +++---                                  
   sandbox/mirror/libs/mirror/test/classes_ct_01.cpp          |    43 ++++++--                                
   sandbox/mirror/libs/mirror/test/classes_ct_02.cpp          |    17 ++-                                     
   sandbox/mirror/libs/mirror/test/classes_ct_03.cpp          |   169 +++++++++++++-----------------------    
   sandbox/mirror/libs/mirror/test/classes_ct_04.cpp          |     9 +                                       
   sandbox/mirror/libs/mirror/test/classes_ct_05.cpp          |     9 +                                       
   sandbox/mirror/libs/mirror/test/classes_ct_06.cpp          |     8 +                                       
   sandbox/mirror/libs/mirror/test/classes_ct_07.cpp          |    18 ++-                                     
   sandbox/mirror/libs/mirror/test/classes_ct_09.cpp          |   183 +++++++++++++++++++++++++++++---------- 
   sandbox/mirror/libs/mirror/test/classes_ct_10.cpp          |    33 ++++---                                 
   sandbox/mirror/libs/mirror/test/classes_ct_11.cpp          |    31 +++--                                   
   sandbox/mirror/libs/mirror/test/classes_rt_09.cpp          |     1                                         
   sandbox/mirror/libs/mirror/test/classes_rt_10.cpp          |     1                                         
   sandbox/mirror/libs/mirror/test/concepts_ct_01.cpp         |     6 +                                       
   sandbox/mirror/libs/mirror/test/concepts_ct_02.cpp         |     6 +                                       
   sandbox/mirror/libs/mirror/test/concepts_ct_03.cpp         |     6 +                                       
   sandbox/mirror/libs/mirror/test/namespaces_ct_01.cpp       |    28 +++++-                                  
   sandbox/mirror/libs/mirror/test/namespaces_ct_02.cpp       |    34 +++++-                                  
   sandbox/mirror/libs/mirror/test/namespaces_ct_04.cpp       |    95 ++++++++++++--------                    
   sandbox/mirror/libs/mirror/test/namespaces_ct_05.cpp       |   164 ++++++++++++++++++++++++-----------     
   sandbox/mirror/libs/mirror/test/other_ct_01.cpp            |     1                                         
   sandbox/mirror/libs/mirror/test/test.hpp                   |    29 ++++++                                  
   sandbox/mirror/libs/mirror/test/types_ct_01.cpp            |    72 +++++++++++----                         
   sandbox/mirror/libs/mirror/test/types_ct_03.cpp            |    86 ++++++++++-------                       
   29 files changed, 787 insertions(+), 494 deletions(-)
Modified: sandbox/mirror/boost/mirror/algorithm/detail/iterative.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/algorithm/detail/iterative.hpp	(original)
+++ sandbox/mirror/boost/mirror/algorithm/detail/iterative.hpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -46,8 +46,8 @@
         private:
                 template <class MetaObjectOp, class TransformOp, class Iterator>
                 static inline void do_apply_to(
-			reference_wrapper<MetaObjectOp> op_ref, 
-			reference_wrapper<TransformOp> transf_ref, 
+			::boost::reference_wrapper<MetaObjectOp> op_ref, 
+			::boost::reference_wrapper<TransformOp> transf_ref, 
                         Iterator
                 )
                 {
@@ -67,8 +67,8 @@
 
                 template <class MetaObjectOp, class TransformOp, class Iterator>
                 static inline void pre_apply_to(
-			reference_wrapper<MetaObjectOp> op, 
-			reference_wrapper<TransformOp> transf, 
+			::boost::reference_wrapper<MetaObjectOp> op, 
+			::boost::reference_wrapper<TransformOp> transf, 
                         Iterator, 
                         forward
                 )
@@ -78,24 +78,24 @@
 
                 template <class MetaObjectOp, class TransformOp, class Iterator>
                 static inline void pre_apply_to(
-			reference_wrapper<MetaObjectOp> op, 
-			reference_wrapper<TransformOp> transf, 
+			::boost::reference_wrapper<MetaObjectOp> op, 
+			::boost::reference_wrapper<TransformOp> transf, 
                         Iterator, 
                         reverse
                 ){	}
 
                 template <class MetaObjectOp, class TransformOp, class Iterator>
                 static inline void post_apply_to(
-			reference_wrapper<MetaObjectOp> op, 
-			reference_wrapper<TransformOp> transf, 
+			::boost::reference_wrapper<MetaObjectOp> op, 
+			::boost::reference_wrapper<TransformOp> transf, 
                         Iterator, 
                         forward
                 ){	}
 
                 template <class MetaObjectOp, class TransformOp, class Iterator>
                 static inline void post_apply_to(
-			reference_wrapper<MetaObjectOp> op, 
-			reference_wrapper<TransformOp> transf, 
+			::boost::reference_wrapper<MetaObjectOp> op, 
+			::boost::reference_wrapper<TransformOp> transf, 
                         Iterator, 
                         reverse
                 )
@@ -106,16 +106,16 @@
         
                 template <class MetaObjectOp, class TransformOp, class Iterator>
                 static inline void apply_to(
-			reference_wrapper<MetaObjectOp> op, 
-			reference_wrapper<TransformOp> transf, 
+			::boost::reference_wrapper<MetaObjectOp> op, 
+			::boost::reference_wrapper<TransformOp> transf, 
                         Iterator, 
                         mpl::true_
                 ){ }
         
                 template <class MetaObjectOp, class TransformOp, class Iterator>
                 static inline void apply_to(
-			reference_wrapper<MetaObjectOp> op, 
-			reference_wrapper<TransformOp> transf, 
+			::boost::reference_wrapper<MetaObjectOp> op, 
+			::boost::reference_wrapper<TransformOp> transf, 
                         Iterator i, 
                         mpl::false_
                 )
@@ -129,9 +129,9 @@
                 }
         public:
                 template <class MetaObjectOp, class TransformOp>
-		static inline reference_wrapper<MetaObjectOp> perform(
-			reference_wrapper<MetaObjectOp> op, 
-			reference_wrapper<TransformOp> transf
+		static inline ::boost::reference_wrapper<MetaObjectOp> perform(
+			::boost::reference_wrapper<MetaObjectOp> op, 
+			::boost::reference_wrapper<TransformOp> transf
                 )
                 {
                         typename iterator_equal<begin, end>::type done;
Modified: sandbox/mirror/boost/mirror/algorithm/for_each.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/algorithm/for_each.hpp	(original)
+++ sandbox/mirror/boost/mirror/algorithm/for_each.hpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -36,14 +36,14 @@
         class MetaObjectSequence,
         class Functor
 >
-static inline reference_wrapper<Functor> for_each(
-	reference_wrapper<Functor> fn
+static inline ::boost::reference_wrapper<Functor> for_each(
+	::boost::reference_wrapper<Functor> fn
 )
 {
         return detail::for_each_impl<
                 typename mirror::begin<MetaObjectSequence>::type,
                 typename mirror::end<MetaObjectSequence>::type
-	> ::perform(fn, cref(detail::no_op()));
+	> ::perform(fn, ::boost::cref(detail::no_op()));
 }
 
 template <
@@ -55,7 +55,7 @@
         return detail::for_each_impl<
                 typename mirror::begin<MetaObjectSequence>::type,
                 typename mirror::end<MetaObjectSequence>::type
-	> ::perform(ref(fn), cref(detail::no_op()));
+	> ::perform(::boost::ref(fn), ::boost::cref(detail::no_op()));
 }
 
 template <
@@ -63,9 +63,9 @@
         class TransformOp,
         class Functor
 >
-static inline reference_wrapper<Functor> for_each(
-	reference_wrapper<TransformOp> transf, 
-	reference_wrapper<Functor> fn
+static inline ::boost::reference_wrapper<Functor> for_each(
+	::boost::reference_wrapper<TransformOp> transf, 
+	::boost::reference_wrapper<Functor> fn
 )
 {
         return detail::for_each_impl<
@@ -87,21 +87,21 @@
         return detail::for_each_impl<
                 typename mirror::begin<MetaObjectSequence>::type,
                 typename mirror::end<MetaObjectSequence>::type
-	> ::perform(ref(fn), ref(transf));
+	> ::perform(::boost::ref(fn), ::boost::ref(transf));
 }
 template <
         class IteratorBegin,
         class IteratorEnd,
         class Functor
 >
-static inline reference_wrapper<Functor> for_each(
-	reference_wrapper<Functor> fn
+static inline ::boost::reference_wrapper<Functor> for_each(
+	::boost::reference_wrapper<Functor> fn
 )
 {
         return detail::for_each_impl<
                 IteratorBegin,
                 IteratorEnd
-	> ::perform(fn, cref(detail::no_op()));
+	> ::perform(fn, ::boost::cref(detail::no_op()));
 }
 
 template <
@@ -110,9 +110,9 @@
         class TransformOp,
         class Functor
 >
-static inline reference_wrapper<Functor> for_each(
-	reference_wrapper<TransformOp> transf, 
-	reference_wrapper<Functor> fn
+static inline ::boost::reference_wrapper<Functor> for_each(
+	::boost::reference_wrapper<TransformOp> transf, 
+	::boost::reference_wrapper<Functor> fn
 )
 {
         return detail::for_each_impl<
Modified: sandbox/mirror/boost/mirror/algorithm/reverse_for_each.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/algorithm/reverse_for_each.hpp	(original)
+++ sandbox/mirror/boost/mirror/algorithm/reverse_for_each.hpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -36,14 +36,14 @@
         class MetaObjectSequence,
         class Functor
 >
-static reference_wrapper<Functor> reverse_for_each(
-	reference_wrapper<Functor> fn
+static ::boost::reference_wrapper<Functor> reverse_for_each(
+	::boost::reference_wrapper<Functor> fn
 )
 {
         return detail::reverse_for_each_impl<
                 typename mirror::begin<MetaObjectSequence>::type,
                 typename mirror::end<MetaObjectSequence>::type
-	> ::perform(fn, cref(detail::no_op()));
+	> ::perform(fn, ::boost::cref(detail::no_op()));
 }
 
 template <
@@ -55,7 +55,7 @@
         return detail::reverse_for_each_impl<
                 typename mirror::begin<MetaObjectSequence>::type,
                 typename mirror::end<MetaObjectSequence>::type
-	> ::perform(ref(fn), cref(detail::no_op()));
+	> ::perform(::boost::ref(fn), ::boost::cref(detail::no_op()));
 }
 
 template <
@@ -63,9 +63,9 @@
         class TransformOp,
         class Functor
 >
-static reference_wrapper<Functor> reverse_for_each(
-	reference_wrapper<TransformOp> transf, 
-	reference_wrapper<Functor> fn
+static ::boost::reference_wrapper<Functor> reverse_for_each(
+	::boost::reference_wrapper<TransformOp> transf, 
+	::boost::reference_wrapper<Functor> fn
 )
 {
         return detail::reverse_for_each_impl<
@@ -87,7 +87,7 @@
         return detail::reverse_for_each_impl<
                 typename mirror::begin<MetaObjectSequence>::type,
                 typename mirror::end<MetaObjectSequence>::type
-	> ::perform(ref(fn), ref(transf));
+	> ::perform(::boost::ref(fn), ::boost::ref(transf));
 }
 
 template <
@@ -95,14 +95,14 @@
         class IteratorEnd,
         class Functor
 >
-static reference_wrapper<Functor> reverse_for_each(
-	reference_wrapper<Functor> fn
+static ::boost::reference_wrapper<Functor> reverse_for_each(
+	::boost::reference_wrapper<Functor> fn
 )
 {
         return detail::reverse_for_each_impl<
                 IteratorBegin,
                 IteratorEnd
-	> ::perform(fn, cref(detail::no_op()));
+	> ::perform(fn, ::boost::cref(detail::no_op()));
 }
 
 template <
@@ -112,8 +112,8 @@
         class Functor
 >
 static Functor reverse_for_each(
-	reference_wrapper<TransformOp> transf, 
-	reference_wrapper<Functor> fn
+	::boost::reference_wrapper<TransformOp> transf, 
+	::boost::reference_wrapper<Functor> fn
 )
 {
         return detail::reverse_for_each_impl<
Modified: sandbox/mirror/boost/mirror/detail/traversal.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/traversal.hpp	(original)
+++ sandbox/mirror/boost/mirror/detail/traversal.hpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -54,7 +54,7 @@
         {
         public:
                 inline attribute_traversal(
-			reference_wrapper<VisitorType> _visitor,
+			::boost::reference_wrapper<VisitorType> _visitor,
                         InstancePtr _ptr_to_inst
                 )
                 : visitor(_visitor)
@@ -81,7 +81,7 @@
                         process_single(ma, path);
                 }
         private:
-		reference_wrapper<VisitorType> visitor;
+		::boost::reference_wrapper<VisitorType> visitor;
                 InstancePtr ptr_to_inst;
 
                 // process single attribute WITH an instance
@@ -157,7 +157,7 @@
 
                 template < class MetaAttribute, class AttribsNodePath>
                 static inline void lead_into_attribute(
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaAttribute ma,
                         AttribsNodePath path
                 )
@@ -177,7 +177,7 @@
                 template < class MetaAttribute, class AttribsNodePath>
                 static inline void lead_into_attribute_if(
                         mpl::true_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaAttribute ma,
                         AttribsNodePath path
                 )
@@ -194,14 +194,14 @@
                 template <class MetaAttribute, class AttribsNodePath>
                 static inline void lead_into_attribute_if(
                         mpl::false_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaAttribute ma,
                         AttribsNodePath path
                 ){ }
 
                 template < class MetaAttribute, class AttribsNodePath>
                 static inline void lead_out_of_attribute(
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaAttribute ma,
                         AttribsNodePath path
                 )
@@ -221,7 +221,7 @@
                 template <class MetaAttribute, class AttribsNodePath>
                 static inline void lead_out_of_attribute_if(
                         mpl::true_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaAttribute ma,
                         AttribsNodePath path 
                 )
@@ -238,13 +238,13 @@
                 template <class MetaAttribute, class AttribsNodePath>
                 static inline void lead_out_of_attribute_if(
                         mpl::false_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaAttribute ma,
                         AttribsNodePath path
                 ){ }
 
                 static inline void lead_into_attribute_list(
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 )
                 {
                         lead_into_attribute_list_if(
@@ -260,7 +260,7 @@
 
                 static inline void lead_into_attribute_list_if(
                         mpl::true_,
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 )
                 {
                         visitor.get().enter_attributes(
@@ -275,11 +275,11 @@
 
                 static inline void lead_into_attribute_list_if(
                         mpl::false_,
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 ){ }
 
                 static inline void lead_out_of_attribute_list(
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 )
                 {
                         lead_out_of_attribute_list_if(
@@ -295,7 +295,7 @@
 
                 static inline void lead_out_of_attribute_list_if(
                         mpl::true_,
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 )
                 {
                         visitor.get().leave_attributes(
@@ -310,7 +310,7 @@
 
                 static inline void lead_out_of_attribute_list_if(
                         mpl::false_,
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 ){ }
 
         };
@@ -319,7 +319,7 @@
         template <class VisitorType, class InstancePtr>
         static inline attribute_traversal<VisitorType, InstancePtr>
         show_attribs_to(
-		reference_wrapper<VisitorType> visitor,
+		::boost::reference_wrapper<VisitorType> visitor,
                 InstancePtr ptr_to_inst
         )
         {
@@ -335,7 +335,7 @@
         {
         public:
                 inline base_class_traversal(
-			reference_wrapper<VisitorType> _visitor,
+			::boost::reference_wrapper<VisitorType> _visitor,
                         InstancePtr _ptr_to_inst
                 )
                 : visitor(_visitor)
@@ -377,12 +377,12 @@
                         typename MetaClass::base_classes
 		>::type BaseClassesNodePath;
 
-		reference_wrapper<VisitorType> visitor;
+		::boost::reference_wrapper<VisitorType> visitor;
                 InstancePtr ptr_to_inst;
 
                 template <class MetaInheritance>
                 static inline void lead_into_base_class(
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaInheritance mbc,
                         BaseClassesNodePath path 
                 )
@@ -402,7 +402,7 @@
                 template <class MetaInheritance>
                 static inline void lead_into_base_class_if(
                         mpl::true_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaInheritance mbc,
                         BaseClassesNodePath path 
                 )
@@ -419,14 +419,14 @@
                 template <class MetaInheritance>
                 static inline void lead_into_base_class_if(
                         mpl::false_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaInheritance mbc,
                         BaseClassesNodePath path 
                 ){ }
 
                 template <class MetaInheritance>
                 static inline void lead_out_of_base_class(
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaInheritance mbc,
                         BaseClassesNodePath path 
                 )
@@ -446,7 +446,7 @@
                 template <class MetaInheritance>
                 static inline void lead_out_of_base_class_if(
                         mpl::true_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaInheritance mbc,
                         BaseClassesNodePath path 
                 )
@@ -463,13 +463,13 @@
                 template <class MetaInheritance>
                 static inline void lead_out_of_base_class_if(
                         mpl::false_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         MetaInheritance mbc,
                         BaseClassesNodePath path
                 ){ }
 
                 static inline void lead_into_base_class_list(
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 )
                 {
                         lead_into_base_class_list_if(
@@ -488,7 +488,7 @@
 
                 static inline void lead_into_base_class_list_if(
                         mpl::true_,
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 )
                 {
                         visitor.get().enter_base_classes(
@@ -503,11 +503,11 @@
 
                 static inline void lead_into_base_class_list_if(
                         mpl::false_,
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 ){ }
 
                 static inline void lead_out_of_base_class_list(
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 )
                 {
                         lead_out_of_base_class_list_if(
@@ -526,7 +526,7 @@
 
                 static inline void lead_out_of_base_class_list_if(
                         mpl::true_,
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 )
                 {
                         visitor.get().leave_base_classes(
@@ -541,7 +541,7 @@
 
                 static inline void lead_out_of_base_class_list_if(
                         mpl::false_,
-			reference_wrapper<VisitorType> visitor
+			::boost::reference_wrapper<VisitorType> visitor
                 ){ }
 
 
@@ -551,7 +551,7 @@
         template <class VisitorType, class InstancePtr>
         static inline base_class_traversal<VisitorType, InstancePtr>
         show_bases_to(
-		reference_wrapper<VisitorType> visitor,
+		::boost::reference_wrapper<VisitorType> visitor,
                 InstancePtr ptr_to_inst
         )
         {
@@ -566,7 +566,7 @@
                 class InstanceType
 	>
         inline static void lead_to_instance(
-		reference_wrapper<VisitorType> visitor,
+		::boost::reference_wrapper<VisitorType> visitor,
                 MetaClass mc,
                 NodePath path,
                 InstanceType* ptr_to_inst
@@ -587,7 +587,7 @@
 	>
         inline static void lead_to_instance_if(
                 mpl::true_,
-		reference_wrapper<VisitorType> visitor,
+		::boost::reference_wrapper<VisitorType> visitor,
                 MetaClass mc,
                 NodePath path,
                 InstanceType* ptr_to_inst
@@ -609,7 +609,7 @@
 	>
         inline static void lead_to_instance_if(
                 mpl::false_,
-		reference_wrapper<VisitorType> visitor,
+		::boost::reference_wrapper<VisitorType> visitor,
                 MetaClass mc,
                 NodePath path,
                 InstanceType* ptr_to_inst
@@ -617,7 +617,7 @@
 
         template <class VisitorType>
         static inline void lead_into_type(
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaClass mc,
                 NodePath path
         )
@@ -637,7 +637,7 @@
         template < class VisitorType>
         static inline void lead_into_type_if(
                 mpl::true_,
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaClass mc,
                 NodePath path
         )
@@ -654,14 +654,14 @@
         template < class VisitorType>
         static inline void lead_into_type_if(
                 mpl::false_,
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaClass mc,
                 NodePath path
         ){ }
 
         template <class VisitorType>
         static inline void lead_out_of_type(
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaClass mc,
                 NodePath path
         )
@@ -681,7 +681,7 @@
         template < class VisitorType>
         static inline void lead_out_of_type_if(
                 mpl::true_,
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaClass mc,
                 NodePath path
         )
@@ -698,7 +698,7 @@
         template < class VisitorType>
         static inline void lead_out_of_type_if(
                 mpl::false_,
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaClass mc,
                 NodePath path
         ){ }
@@ -722,7 +722,7 @@
         template <class VisitorType, class Members>
         struct namespace_member_traversal
         {
-		reference_wrapper<VisitorType> visitor;
+		::boost::reference_wrapper<VisitorType> visitor;
 
                 typedef typename mpl::push_back<
                         NamespaceNodePath,
@@ -730,7 +730,7 @@
 		>::type MembersNodePath;
                 
                 inline namespace_member_traversal(
-			reference_wrapper<VisitorType> _visitor
+			::boost::reference_wrapper<VisitorType> _visitor
                 ): visitor(_visitor)
                 {
                         lead_into_namespace_member_list(
@@ -759,7 +759,7 @@
                 }
 
                 static inline void lead_into_namespace_member_list(
-	                reference_wrapper<VisitorType> visitor,
+	                ::boost::reference_wrapper<VisitorType> visitor,
                         Members m,
                         NamespaceNodePath path
                 )
@@ -778,7 +778,7 @@
 
                 static inline void lead_into_namespace_member_list_if(
                         mpl::true_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         Members m,
                         NamespaceNodePath path
                 )
@@ -794,13 +794,13 @@
 
                 static inline void lead_into_namespace_member_list_if(
                         mpl::false_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         Members m,
                         NamespaceNodePath path
                 ){ }
 
                 static inline void lead_out_of_namespace_member_list(
-	                reference_wrapper<VisitorType> visitor,
+	                ::boost::reference_wrapper<VisitorType> visitor,
                         Members m,
                         NamespaceNodePath path
                 )
@@ -819,7 +819,7 @@
 
                 static inline void lead_out_of_namespace_member_list_if(
                         mpl::true_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         Members m,
                         NamespaceNodePath path
                 )
@@ -835,7 +835,7 @@
 
                 static inline void lead_out_of_namespace_member_list_if(
                         mpl::false_,
-			reference_wrapper<VisitorType> visitor,
+			::boost::reference_wrapper<VisitorType> visitor,
                         Members m,
                         NamespaceNodePath path
                 ){ }
@@ -843,7 +843,7 @@
 
         template <class Members, class VisitorType>
         static inline namespace_member_traversal<VisitorType, Members>
-	show_namespace_members_to(reference_wrapper<VisitorType> _visitor, Members)
+	show_namespace_members_to(::boost::reference_wrapper<VisitorType> _visitor, Members)
         {
                 return namespace_member_traversal<VisitorType, Members>(_visitor);
         }
@@ -851,7 +851,7 @@
         
         template <class VisitorType>
         static inline void lead_into_namespace(
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaNamespace mn,
                 NodePath path
         )
@@ -871,7 +871,7 @@
         template <class VisitorType>
         static inline void lead_into_namespace_if(
                 mpl::true_,
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaNamespace mn,
                 NodePath path
         )
@@ -888,14 +888,14 @@
         template < class VisitorType>
         static inline void lead_into_namespace_if(
                 mpl::false_,
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaNamespace mn,
                 NodePath path
         ){ }
 
                template <class VisitorType>
         static inline void lead_out_of_namespace(
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaNamespace mn,
                 NodePath path
         )
@@ -915,7 +915,7 @@
         template < class VisitorType>
         static inline void lead_out_of_namespace_if(
                 mpl::true_,
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaNamespace mn,
                 NodePath path
         )
@@ -932,7 +932,7 @@
         template < class VisitorType>
         static inline void lead_out_of_namespace_if(
                 mpl::false_,
-                reference_wrapper<VisitorType> visitor,
+                ::boost::reference_wrapper<VisitorType> visitor,
                 MetaNamespace mn,
                 NodePath path
         ){ }
Modified: sandbox/mirror/boost/mirror/meta_path/for_each.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_path/for_each.hpp	(original)
+++ sandbox/mirror/boost/mirror/meta_path/for_each.hpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -53,7 +53,7 @@
         class NodeSet, 
         class Functor
 >
-void for_each(boost::reference_wrapper<Functor> f_ref)
+void for_each(::boost::reference_wrapper<Functor> f_ref)
 {
         mpl::for_each<
                 typename NodeSet::paths_and_nodes
Modified: sandbox/mirror/boost/mirror/traversal.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/traversal.hpp	(original)
+++ sandbox/mirror/boost/mirror/traversal.hpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -41,12 +41,12 @@
                 InstancePtr ptr_to_inst = 0
         )
         {
-		do_accept(ref<VisitorType>(visitor), ptr_to_inst);
+		do_accept(::boost::ref<VisitorType>(visitor), ptr_to_inst);
         }
 
         template <class VisitorType>
         static inline void accept(
-		reference_wrapper<VisitorType> visitor,
+		::boost::reference_wrapper<VisitorType> visitor,
                 InstancePtr ptr_to_inst = 0
         )
         {
@@ -59,12 +59,12 @@
                 ConstInstancePtr ptr_to_inst
         )
         {
-		do_accept(ref<VisitorType>(visitor), ptr_to_inst);
+		do_accept(::boost::ref<VisitorType>(visitor), ptr_to_inst);
         }
 
         template <class VisitorType>
         static inline void accept(
-		reference_wrapper<VisitorType> visitor,
+		::boost::reference_wrapper<VisitorType> visitor,
                 ConstInstancePtr ptr_to_inst
         )
         {
@@ -73,7 +73,7 @@
 private:
         template <class VisitorType, class InstanceType>
         static inline void do_accept(
-		reference_wrapper<VisitorType> visitor,
+		::boost::reference_wrapper<VisitorType> visitor,
                 InstanceType* ptr_to_inst
         )
         {
@@ -85,11 +85,11 @@
                 lead_to_instance(visitor, mc, path, ptr_to_inst);
                 // go through the base classes
                 for_each<typename MetaClass::base_classes>(
-			cref(show_bases_to(visitor, ptr_to_inst))
+			::boost::cref(show_bases_to(visitor, ptr_to_inst))
                 );
                 // go through the own class' attributes
                 for_each<typename MetaClass::attributes>(
-			cref(show_attribs_to(visitor, ptr_to_inst))
+			::boost::cref(show_attribs_to(visitor, ptr_to_inst))
                 );
                 // leave the type
                 lead_out_of_type(visitor, mc, path);
@@ -121,12 +121,12 @@
                 InstancePtr ptr_to_inst = 0
         )
         {
-		do_accept(ref<VisitorType>(visitor), ptr_to_inst);
+		do_accept(::boost::ref<VisitorType>(visitor), ptr_to_inst);
         }
 
         template <class VisitorType>
         static inline void accept(
-		reference_wrapper<VisitorType> visitor,
+		::boost::reference_wrapper<VisitorType> visitor,
                 InstancePtr ptr_to_inst = 0
         )
         {
@@ -139,12 +139,12 @@
                 ConstInstancePtr ptr_to_inst
         )
         {
-		do_accept(ref<VisitorType>(visitor), ptr_to_inst);
+		do_accept(::boost::ref<VisitorType>(visitor), ptr_to_inst);
         }
 
         template <class VisitorType>
         static inline void accept(
-		reference_wrapper<VisitorType> visitor,
+		::boost::reference_wrapper<VisitorType> visitor,
                 ConstInstancePtr ptr_to_inst
         )
         {
@@ -153,7 +153,7 @@
 private:
         template <class VisitorType, class InstanceType>
         static inline void do_accept(
-		reference_wrapper<VisitorType> visitor, 
+		::boost::reference_wrapper<VisitorType> visitor, 
                 InstanceType* ptr_to_inst
         )
         {
@@ -165,7 +165,7 @@
                 lead_to_instance(visitor, mc, path, ptr_to_inst);
                 // go through all of the class' attributes
                 for_each<typename MetaClass::all_attributes>(
-			cref(show_attribs_to(visitor, ptr_to_inst))
+			::boost::cref(show_attribs_to(visitor, ptr_to_inst))
                 );
                 // leave the type
                 lead_out_of_type(visitor, mc, path);
@@ -205,18 +205,18 @@
         template <class VisitorType>
         static inline void accept(VisitorType visitor)
         {
-		do_accept(ref<VisitorType>(visitor));
+		do_accept(::boost::ref<VisitorType>(visitor));
         }
 
         template <class VisitorType>
-	static void accept(reference_wrapper<VisitorType> visitor)
+	static void accept(::boost::reference_wrapper<VisitorType> visitor)
         {
                 do_accept(visitor);
         }
 private:
 
         template <class VisitorType>
-	static void do_accept(reference_wrapper<VisitorType> visitor)
+	static void do_accept(::boost::reference_wrapper<VisitorType> visitor)
         {
                 MetaNamespace mn;
                 NodePath path;
@@ -227,7 +227,7 @@
                 // show the visitor through all the members of 
                 // the namespace
                 for_each<members>(
-			cref(show_namespace_members_to(
+			::boost::cref(show_namespace_members_to(
                                 visitor, 
                                 members()
                         ))
Modified: sandbox/mirror/libs/mirror/test/classes_ct_01.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_ct_01.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_ct_01.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -66,7 +66,7 @@
 	> some_classes;
 
         // none of the classes is defined in the global scope
-	BOOST_MPL_ASSERT_NOT(( mpl::accumulate<
+	typedef mpl::accumulate<
                 some_classes,
                 mpl::false_,
                 mpl::or_<
@@ -77,11 +77,15 @@
 				>
 			>
 		>
-	>::type ));
+	>::type result_01;
+	BOOST_MIRROR_ASSERT_NOT(
+		result_01,
+		"No class in list should be from the global scope"
+	);
 
         // all off the classes are defined in a namespace defined
         // (directly) under the global scope
-	BOOST_MPL_ASSERT(( mpl::accumulate<
+	typedef mpl::accumulate<
                 some_classes,
                 mpl::true_,
                 mpl::and_<
@@ -92,8 +96,13 @@
 				>
 			>
 		>
-	>::type ));
-	BOOST_MPL_ASSERT(( mpl::accumulate<
+	>::type result_02;
+	BOOST_MIRROR_ASSERT(
+		result_02,
+		"All classes in list should be from a named namespace"
+	);
+
+	typedef mpl::accumulate<
                 some_classes,
                 mpl::true_,
                 mpl::and_<
@@ -104,9 +113,13 @@
 				> >
 			>
 		>
-	>::type ));
+	>::type result_03;
+	BOOST_MIRROR_ASSERT(
+		result_03, 
+		"All classes in list should be from a not-nested namespace"
+	);
 
-	BOOST_MPL_ASSERT(( mpl::accumulate<
+	typedef mpl::accumulate<
                 some_classes,
                 mpl::true_,
                 mpl::and_<
@@ -115,19 +128,27 @@
                                 BOOST_MIRRORED_CLASS(mpl::_2)
 			>
 		>
-	>::type ));
+	>::type result_04;
+	BOOST_MIRROR_ASSERT(
+		result_04,
+		"Meta-classes for classes in list should be recognized"
+	);
 
-	BOOST_MPL_ASSERT(( mpl::accumulate<
+	typedef mpl::accumulate<
                 some_classes,
                 mpl::true_,
                 mpl::and_<
                         mpl::_1,
-			is_same<
+			::boost::is_same<
                                 get_reflected_type<BOOST_MIRRORED_CLASS(mpl::_2)>,
                                 mpl::_2
 			>
 		>
-	>::type ));
+	>::type result_05;
+	BOOST_MIRROR_ASSERT(
+		result_05, 
+		"Base-level type and reflected type must be the same"
+	);
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/classes_ct_02.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_ct_02.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_ct_02.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -46,7 +46,6 @@
 
 void test_main()
 {
-	using namespace ::std;
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
@@ -66,7 +65,7 @@
 	> some_classes;
 
         // check the counts of own attributes
-	BOOST_MPL_ASSERT(( mpl::accumulate<
+	typedef mpl::accumulate<
                 some_classes,
                 mpl::true_,
                 mpl::and_<
@@ -80,10 +79,14 @@
                                 mpl::at<mpl::_2, mpl::int_<1> >
 			>
 		>
-	>::type ));
+	>::type result_01;
+	BOOST_MIRROR_ASSERT(
+		result_01,
+		"The count of attributes must match the hardcoded values"
+	);
 
         // check the counts of all attributes
-	BOOST_MPL_ASSERT(( mpl::accumulate<
+	typedef mpl::accumulate<
                 some_classes,
                 mpl::true_,
                 mpl::and_<
@@ -97,7 +100,11 @@
                                 mpl::at<mpl::_2, mpl::int_<2> >
 			>
 		>
-	>::type ));
+	>::type result_02;
+	BOOST_MIRROR_ASSERT(
+		result_02, 
+		"The count of attributes must match the hardcoded values"
+	);
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/classes_ct_03.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_ct_03.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_ct_03.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -17,6 +17,7 @@
 // MPL_ASSERT
 #include <boost/mpl/assert.hpp>
 #include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/add_pointer.hpp>
 //
 #include <boost/mirror/meta_class.hpp>
 #include <boost/mirror/intrinsic/at.hpp>
@@ -26,9 +27,41 @@
 #include "./test.hpp"
 
 
+#define BOOST_MIRROR_TEST_CLASSES_CT_03_MSG \
+	"Reflected and real attribute type must match"
+
+namespace boost {
+namespace mirror {
+
+template <class MetaAttributes, class Position>
+struct add_pointer_to_type_at
+{
+	typedef typename add_pointer<
+		typename at<
+			MetaAttributes,
+			Position
+		>::type::type::reflected_type
+	>::type type;
+};
+
+} // mirror 
+} // boost
+
+#define BOOST_MIRROR_TEST_CLASSES_CT_03(POSITION, ADDRESS) \
+	typedef is_same< \
+                add_pointer_to_type_at< \
+                        meta_H::all_attributes, \
+			mpl::int_< POSITION > \
+                >::type, \
+                BOOST_TYPEOF(ADDRESS) \
+        >::type result_##POSITION; \
+	BOOST_MIRROR_ASSERT( \
+		result_##POSITION, \
+		BOOST_MIRROR_TEST_CLASSES_CT_03_MSG \
+	);
+
 void test_main()
 {
-	using namespace ::std;
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
@@ -36,114 +69,32 @@
         typedef BOOST_MIRRORED_CLASS(::test::H) meta_H;
         //
         //
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<0> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.a1)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<1> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.a2)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<2> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.a3)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<3> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.b1)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<4> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.b2)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<5> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.c1)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<6> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.c2)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<7> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.d1)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<8> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.d2)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<9> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.e)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<10> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.f1)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<11> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.f2)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<12> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.g1)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<13> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.g2)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<14> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.g3)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<15> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.h1)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<16> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.h2)
-	> ));
-	BOOST_MPL_ASSERT(( is_same< 
-		at<
-			meta_H::all_attributes, mpl::int_<17> 
-		>::type::type::reflected_type *,
-		BOOST_TYPEOF(&h.h3)
-	> ));
+	BOOST_MIRROR_TEST_CLASSES_CT_03( 0, &h.a1)
+	BOOST_MIRROR_TEST_CLASSES_CT_03( 1, &h.a2)
+	BOOST_MIRROR_TEST_CLASSES_CT_03( 2, &h.a3)
+
+	BOOST_MIRROR_TEST_CLASSES_CT_03( 3, &h.b1)
+	BOOST_MIRROR_TEST_CLASSES_CT_03( 4, &h.b2)
+
+	BOOST_MIRROR_TEST_CLASSES_CT_03( 5, &h.c1)
+	BOOST_MIRROR_TEST_CLASSES_CT_03( 6, &h.c2)
+
+	BOOST_MIRROR_TEST_CLASSES_CT_03( 7, &h.d1)
+	BOOST_MIRROR_TEST_CLASSES_CT_03( 8, &h.d2)
+
+	BOOST_MIRROR_TEST_CLASSES_CT_03( 9, &h.e)
+
+	BOOST_MIRROR_TEST_CLASSES_CT_03(10, &h.f1)
+	BOOST_MIRROR_TEST_CLASSES_CT_03(11, &h.f2)
+
+	BOOST_MIRROR_TEST_CLASSES_CT_03(12, &h.g1)
+	BOOST_MIRROR_TEST_CLASSES_CT_03(13, &h.g2)
+	BOOST_MIRROR_TEST_CLASSES_CT_03(14, &h.g3)
+
+	BOOST_MIRROR_TEST_CLASSES_CT_03(15, &h.h1)
+	BOOST_MIRROR_TEST_CLASSES_CT_03(16, &h.h2)
+	BOOST_MIRROR_TEST_CLASSES_CT_03(17, &h.h3)
+
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/classes_ct_04.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_ct_04.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_ct_04.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -90,9 +90,12 @@
 	> attrib_types_3;
         //
         // and compare them
-	BOOST_MPL_ASSERT(( mpl::equal<attrib_types_1, attrib_types_2> ));
-	BOOST_MPL_ASSERT(( mpl::equal<attrib_types_2, attrib_types_3> ));
-	BOOST_MPL_ASSERT(( mpl::equal<attrib_types_1, attrib_types_3> ));
+	typedef mpl::equal<attrib_types_1, attrib_types_2>::type result_01;
+	typedef mpl::equal<attrib_types_2, attrib_types_3>::type result_02;
+	typedef mpl::equal<attrib_types_1, attrib_types_3>::type result_03;
+	BOOST_MIRROR_ASSERT(result_01, "Sequences 1 and 2 must be equal");
+	BOOST_MIRROR_ASSERT(result_02, "Sequences 2 and 3 must be equal");
+	BOOST_MIRROR_ASSERT(result_03, "Sequences 1 and 3 must be equal");
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/classes_ct_05.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_ct_05.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_ct_05.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -77,9 +77,12 @@
 	> attrib_types_3;
         //
         // and compare them
-	BOOST_MPL_ASSERT(( mpl::equal<attrib_types_1, attrib_types_2> ));
-	BOOST_MPL_ASSERT(( mpl::equal<attrib_types_2, attrib_types_3> ));
-	BOOST_MPL_ASSERT(( mpl::equal<attrib_types_1, attrib_types_3> ));
+        typedef mpl::equal<attrib_types_1, attrib_types_2>::type result_01;
+        typedef mpl::equal<attrib_types_2, attrib_types_3>::type result_02;
+        typedef mpl::equal<attrib_types_1, attrib_types_3>::type result_03;
+        BOOST_MIRROR_ASSERT(result_01, "Sequences 1 and 2 must be equal");
+        BOOST_MIRROR_ASSERT(result_02, "Sequences 2 and 3 must be equal");
+        BOOST_MIRROR_ASSERT(result_03, "Sequences 1 and 3 must be equal");
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/classes_ct_06.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_ct_06.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_ct_06.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -60,7 +60,7 @@
 	> some_classes;
 
         // check the counts of base classes
-	BOOST_MPL_ASSERT(( mpl::accumulate<
+	typedef mpl::accumulate<
                 some_classes,
                 mpl::true_,
                 mpl::and_<
@@ -74,7 +74,11 @@
                                 mpl::at<mpl::_2, mpl::int_<1> >
 			>
 		>
-	>::type ));
+	>::type result_01;
+	BOOST_MIRROR_ASSERT(
+		result_01, 
+		"The count of base classes must match the hardcoded values"
+	);
 
 }
 
Modified: sandbox/mirror/libs/mirror/test/classes_ct_07.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_ct_07.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_ct_07.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -311,13 +311,17 @@
         //
         // go through the list and execute 
         // the tests on each tuple <type, attribs, base_classes>
-	BOOST_MPL_ASSERT((
-		mpl::accumulate<
-			classes_attribs_and_base_classes,
-			mpl::true_,
-			test_op
-		>
-	));
+	typedef typename mpl::accumulate<
+		classes_attribs_and_base_classes,
+		mpl::true_,
+		test_op
+	>::type result_01;
+	BOOST_MIRROR_ASSERT(
+		result_01,
+		"The types of attributes and base classes must match "\
+		"the hardcoded values"
+	); 
+	
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/classes_ct_09.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_ct_09.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_ct_09.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -1,5 +1,5 @@
 /**
- * \file test/namespaces_ct_05.cpp
+ * \file test/classes_ct_09.cpp
  *
  * This file is part of the Mirror library testsuite.
  *
@@ -77,107 +77,196 @@
         // if the global lists are not available, then mirror does not
         // reflect namespace members
         //
-	BOOST_MPL_ASSERT( empty< meta_test::members<>::type > );
-	BOOST_MPL_ASSERT_RELATION( size< meta_test::members<>::type >::value, ==, 0);
-        BOOST_MPL_ASSERT((iterator_equal<
+	BOOST_MIRROR_ASSERT(
+		empty< meta_test::members<>::type >,
+		"The list of members of the test namespace should be empty"
+	);
+	BOOST_MIRROR_ASSERT_RELATION(
+		size< meta_test::members<>::type >::value, 
+		==, 
+		0,
+		"The count of members of the test namespace should be 0"
+	);
+	// check whether the imember terators returned by begin and end
+	// for the test namespace should be equal
+	typedef iterator_equal<
                 begin<meta_test::members<>::type>::type,
                 end<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT_NOT((iterator_not_equal<
+        >::type result_01;
+	BOOST_MIRROR_ASSERT(
+		result_01,
+		"Member iterators returned by begin<> and end<> "\
+		"for the test namespace should be equal"
+	);
+	// same as the previous check done in a different way
+        typedef iterator_not_equal<
                 begin<meta_test::members<>::type>::type,
                 end<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT((iterator_equal<
+        >::type result_02;
+	BOOST_MIRROR_ASSERT_NOT(
+		result_02,
+		"Member iterators returned by begin<> and end<> "\
+		"for the test namespace should be equal"
+	);	
+	//
+	// there should be no namespace among the members of test
+        typedef iterator_equal<
                 find_if<
                         meta_test::members<>::type, 
                         mpl::lambda<reflects_namespace<mpl::_1> >::type
 		>::type,
                 end<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT((iterator_equal<
+        >::type result_03;
+	BOOST_MIRROR_ASSERT(
+		result_03,
+		"There should be no namespace among the members of test"
+	);
+	//
+        typedef iterator_equal<
                 find_if<
                         meta_test::members<>::type, 
                         mpl::lambda<reflects_global_scope<mpl::_1> >::type
 		>::type,
                 end<meta_test::members<>::type>::type
-        >));
+        >::type result_04;
+	BOOST_MIRROR_ASSERT(
+		result_04,
+		"There should be no member of test namespace identified "\
+		"as the global scope"
+	);
 #else
-	BOOST_MPL_ASSERT_NOT( empty< meta_test::members<>::type > );
-	BOOST_MPL_ASSERT_RELATION( 
+	BOOST_MIRROR_ASSERT_NOT(
+		empty< meta_test::members<>::type >,
+		"List of members of the test namespace should not be empty"
+	);
+	BOOST_MIRROR_ASSERT_RELATION( 
                 size< meta_test::members<>::type >::value, 
                 ==, 
-		10
+		10,
+		"There should be 10 members in the test namespace"
         );
 
         typedef mpl::lambda<reflects_global_scope<mpl::_1> >::type filter_global_scope;
         typedef mpl::lambda<reflects_namespace<mpl::_1> >::type filter_namespaces;
         typedef mpl::lambda<reflects_type<mpl::_1> >::type filter_types;
         //
-	BOOST_MPL_ASSERT_RELATION( 
+	BOOST_MIRROR_ASSERT_RELATION( 
                 size< meta_test::members< filter_global_scope >::type >::value, 
                 ==, 
-		0
+		0,
+		"There should be 0 members identified as the global scope"
         );
-	BOOST_MPL_ASSERT_RELATION( 
+	BOOST_MIRROR_ASSERT_RELATION( 
                 size< meta_test::members< filter_namespaces >::type >::value, 
                 ==, 
-		4
+		4,
+		"There should be 4 nested namespaces in the test namespace"
         );
-	BOOST_MPL_ASSERT_RELATION( 
+	BOOST_MIRROR_ASSERT_RELATION( 
                 size< meta_test::members< filter_types >::type >::value, 
                 ==, 
-		6
+		6,
+		"There should be 6 types defined in the test namespace"
         );
         //
-        BOOST_MPL_ASSERT((iterator_not_equal<
+	typedef iterator_not_equal<
                 begin<meta_test::members<>::type>::type,
                 end<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT_NOT((iterator_equal<
+        >::type result_01;
+        BOOST_MIRROR_ASSERT(
+		result_01,
+		"The meta-object iterators returned by begin<> and end<> "\
+		"should point to different elements"
+        );
+	
+        typedef iterator_equal<
                 begin<meta_test::members<>::type>::type,
                 end<meta_test::members<>::type>::type
-        >));
+        >::type result_02;
+	BOOST_MIRROR_ASSERT_NOT(
+		result_02,
+		"The meta-object iterators returned by begin<> and end<> "\
+		"should not point to the same element"
+        );
         //
-        BOOST_MPL_ASSERT((iterator_not_equal<
+	typedef iterator_not_equal<
                 begin<meta_test::members<filter_types>::type>::type,
                 end<meta_test::members<filter_types>::type>::type
-        >));
-        BOOST_MPL_ASSERT_NOT((iterator_equal<
+        >::type result_03;
+        BOOST_MIRROR_ASSERT(
+		result_03,
+		"The meta-type iterators returned by begin<> and end<> "\
+		"should point to different elements"
+        );
+
+	typedef iterator_equal<
                 begin<meta_test::members<filter_types>::type>::type,
                 end<meta_test::members<filter_types>::type>::type
-        >));
+        >::type result_04;
+        BOOST_MIRROR_ASSERT_NOT(
+		result_04,
+		"The meta-type iterators returned by begin<> and end<> "\
+                "should not point to the same element"
+        );
         //
-        BOOST_MPL_ASSERT((iterator_not_equal<
+	typedef iterator_not_equal<
                 begin<meta_test::members<filter_namespaces>::type>::type,
                 end<meta_test::members<filter_namespaces>::type>::type
-        >));
-        BOOST_MPL_ASSERT_NOT((iterator_equal<
+        >::type result_05;
+        BOOST_MIRROR_ASSERT(
+		result_05,
+                "The meta-namespace iterators returned by begin<> and end<> "\
+                "should point to different elements"
+        );
+
+	typedef iterator_equal<
                 begin<meta_test::members<filter_namespaces>::type>::type,
                 end<meta_test::members<filter_namespaces>::type>::type
-        >));
+        >::type result_06;
+        BOOST_MIRROR_ASSERT_NOT(
+		result_06,
+                "The meta-namespace iterators returned by begin<> and end<> "\
+                "should not point to the same element"
+        );
         //
-        BOOST_MPL_ASSERT((iterator_equal<
+	typedef iterator_equal<
                 find_if<
-			meta_test::members<>::type, 
-			mpl::lambda<reflects_namespace<mpl::_1> >::type
-		>::type,
+                        meta_test::members<>::type,
+                        mpl::lambda<reflects_namespace<mpl::_1> >::type
+                >::type,
                 begin<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT((iterator_equal<
+        >::type result_07;
+        BOOST_MIRROR_ASSERT(
+		result_07,
+		"The first member of the test namespace should be "\
+		"a nested namespace"
+        );
+	//
+	typedef iterator_equal<
                 find_if<
-			meta_test::members<>::type, 
-			mpl::lambda<reflects_global_scope<mpl::_1> >::type
-		>::type,
+                        meta_test::members<>::type,
+                        mpl::lambda<reflects_global_scope<mpl::_1> >::type
+                >::type,
                 end<meta_test::members<>::type>::type
-        >));
+        >::type result_08;
+        BOOST_MIRROR_ASSERT(
+		result_08,
+		"There should be no member of the test namespace "\
+		"identified as the global scope"
+        );
         //
-        BOOST_MPL_ASSERT((iterator_equal<
+	typedef iterator_equal<
                 find_if<
-			meta_test::members<filter_types>::type, 
-			mpl::lambda<reflects_namespace<mpl::_1> >::type
-		>::type,
+                        meta_test::members<filter_types>::type,
+                        mpl::lambda<reflects_namespace<mpl::_1> >::type
+                >::type,
                 end<meta_test::members<filter_types>::type>::type
-        >));
+        >::type result_09;
+        BOOST_MIRROR_ASSERT(
+		result_09,
+		"There should be no namespace among the type members "\
+		"of the test namespace"
+        );
  
 #endif
 }
Modified: sandbox/mirror/libs/mirror/test/classes_ct_10.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_ct_10.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_ct_10.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -25,26 +25,32 @@
 #include "./simple_classes.hpp"
 #include "./test.hpp"
 
+template <class T1, class T2>
+void test_type_of_attribs(T1*, T2*)
+{
+	typedef typename ::boost::is_same<T1, T2>::type 
+		types_are_same;
+	
+	BOOST_MIRROR_ASSERT(
+		types_are_same,
+		"The attributes should have the same types"
+	);
+}
+
+template <class T>
+void test_type_of_attribs(T*, T*) { }
+
 template <class MetaAttribute1, class MetaAttribute2>
 void test_attribs(void)
 {
-	BOOST_MPL_ASSERT((
-		is_same<
-			MetaAttribute1::type::reflected_type,
-			MetaAttribute2::type::reflected_type
-		>
-	));
-	BOOST_MPL_ASSERT((
-		is_same<
-			MetaAttribute1::scope::type::reflected_type,
-			MetaAttribute2::scope::type::reflected_type
-		>
-	));
+	test_type_of_attribs(
+		(typename MetaAttribute1::type::reflected_type*)0,
+		(typename MetaAttribute2::type::reflected_type*)0
+	);
 }
 
 void test_main()
 {
-	using namespace ::std;
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
@@ -122,7 +128,6 @@
                 by_name<meta_H::all_attributes>::h,
                 at<meta_H::all_attributes, mpl::int_<7> >::type
 	>();
-
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/classes_ct_11.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_ct_11.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_ct_11.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -29,18 +29,23 @@
 template <class MetaAttribute1, class MetaAttribute2>
 void test_attribs(void)
 {
-	BOOST_MPL_ASSERT((
-		is_same<
-			MetaAttribute1::type::reflected_type,
-			MetaAttribute2::type::reflected_type
-		>
-	));
-	BOOST_MPL_ASSERT((
-		is_same<
-			MetaAttribute1::scope::type::reflected_type,
-			MetaAttribute2::scope::type::reflected_type
-		>
-	));
+        typedef typename ::boost::is_same<
+                typename MetaAttribute1::type::reflected_type,
+                typename MetaAttribute2::type::reflected_type
+        >::type result_01;
+        BOOST_MIRROR_ASSERT(
+                result_01,
+                "The attributes should have the same types"
+        );
+        //
+        typedef typename ::boost::is_same<
+                typename MetaAttribute1::scope::reflected_type,
+                typename MetaAttribute2::scope::reflected_type
+        >::type result_02;
+        BOOST_MIRROR_ASSERT(
+                result_02,
+                "The attributes should be declared in the same class"
+        );
 }
 
 void test_main()
@@ -58,7 +63,7 @@
 	>();
         test_attribs<
                 by_name<meta_P::attributes>::second,
-		at<meta_P::attributes, mpl::int_<0> >::type
+		at<meta_P::attributes, mpl::int_<1> >::type
 	>();
         //
         test_attribs<
Modified: sandbox/mirror/libs/mirror/test/classes_rt_09.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_rt_09.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_rt_09.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -77,7 +77,6 @@
 
 void test_main()
 {
-	using namespace ::std;
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
Modified: sandbox/mirror/libs/mirror/test/classes_rt_10.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/classes_rt_10.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/classes_rt_10.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -174,7 +174,6 @@
 
 void test_main()
 {
-	using namespace ::std;
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
Modified: sandbox/mirror/libs/mirror/test/concepts_ct_01.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/concepts_ct_01.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/concepts_ct_01.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -54,7 +54,11 @@
 		>
 	>::type all_passed;
         //
-	BOOST_MPL_ASSERT(( all_passed ));
+        BOOST_MIRROR_ASSERT(
+                all_passed,
+                "All tests must pass the test for compliance "\
+                "with the MetaType concept"
+        );
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/concepts_ct_02.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/concepts_ct_02.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/concepts_ct_02.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -97,7 +97,11 @@
 		>
 	>::type all_passed;
         //
-	BOOST_MPL_ASSERT(( all_passed ));
+        BOOST_MIRROR_ASSERT(
+                all_passed,
+                "All tests must pass the test for compliance "\
+                "with the MetaType concept"
+        );
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/concepts_ct_03.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/concepts_ct_03.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/concepts_ct_03.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -72,7 +72,11 @@
 		>
 	>::type all_passed;
         //
-	BOOST_MPL_ASSERT(( all_passed ));
+	BOOST_MIRROR_ASSERT(
+		all_passed,
+		"All tests must pass the test for compliance "\
+		"with the MetaType concept"
+	);
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/namespaces_ct_01.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/namespaces_ct_01.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/namespaces_ct_01.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -18,6 +18,9 @@
 #include "./namespaces.hpp"
 #include "./test.hpp"
 
+#define BOOST_MIRROR_TEST_NAMESPACES_CT_01_MSG\
+	"The meta-namespace should not reflect the global scope"
+
 void test_main()
 {
         using namespace ::std;
@@ -35,11 +38,26 @@
         typedef BOOST_MIRRORED_NAMESPACE(::test::feature) meta_ns_test_feature;
         typedef BOOST_MIRRORED_NAMESPACE(::test::feature::detail) meta_ns_test_feature_detail;
         //
-	BOOST_MPL_ASSERT_NOT(( reflects_global_scope<meta_ns_test> ));
-	BOOST_MPL_ASSERT_NOT(( reflects_global_scope<meta_ns_test_stuff> ));
-	BOOST_MPL_ASSERT_NOT(( reflects_global_scope<meta_ns_test_stuff_detail> ));
-	BOOST_MPL_ASSERT_NOT(( reflects_global_scope<meta_ns_test_feature> ));
-	BOOST_MPL_ASSERT_NOT(( reflects_global_scope<meta_ns_test_feature_detail> ));
+	BOOST_MIRROR_ASSERT_NOT(
+		reflects_global_scope<meta_ns_test>,
+		BOOST_MIRROR_TEST_NAMESPACES_CT_01_MSG
+	);
+	BOOST_MIRROR_ASSERT_NOT(
+		reflects_global_scope<meta_ns_test_stuff>,
+		BOOST_MIRROR_TEST_NAMESPACES_CT_01_MSG
+	);
+	BOOST_MIRROR_ASSERT_NOT(
+		reflects_global_scope<meta_ns_test_stuff_detail>,
+		BOOST_MIRROR_TEST_NAMESPACES_CT_01_MSG
+	);
+	BOOST_MIRROR_ASSERT_NOT(
+		reflects_global_scope<meta_ns_test_feature>,
+		BOOST_MIRROR_TEST_NAMESPACES_CT_01_MSG
+	);
+	BOOST_MIRROR_ASSERT_NOT(
+		reflects_global_scope<meta_ns_test_feature_detail>,
+		BOOST_MIRROR_TEST_NAMESPACES_CT_01_MSG
+	);
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/namespaces_ct_02.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/namespaces_ct_02.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/namespaces_ct_02.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -10,13 +10,15 @@
  *  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  */
 
-#include <boost/mpl/assert.hpp>
 // namespace registering 
 #include <boost/mirror/traits/reflects_namespace.hpp>
 //
 #include "./namespaces.hpp"
 #include "./test.hpp"
 
+#define BOOST_MIRROR_TEST_NAMESPACE_CT_02_MSG \
+	"The meta-object must reflect a namespace"
+
 void test_main()
 {
         using namespace ::std;
@@ -32,12 +34,30 @@
         typedef BOOST_MIRRORED_NAMESPACE(::test::feature::detail) meta_ns_test_feature_detail;
         //
         //
-	BOOST_MPL_ASSERT(( reflects_namespace<meta_gs> ));
-	BOOST_MPL_ASSERT(( reflects_namespace<meta_ns_test> ));
-	BOOST_MPL_ASSERT(( reflects_namespace<meta_ns_test_stuff> ));
-	BOOST_MPL_ASSERT(( reflects_namespace<meta_ns_test_stuff_detail> ));
-	BOOST_MPL_ASSERT(( reflects_namespace<meta_ns_test_feature> ));
-	BOOST_MPL_ASSERT(( reflects_namespace<meta_ns_test_feature_detail> ));
+	BOOST_MIRROR_ASSERT(
+		reflects_namespace<meta_gs>,
+		BOOST_MIRROR_TEST_NAMESPACE_CT_02_MSG
+	);
+	BOOST_MIRROR_ASSERT(
+		reflects_namespace<meta_ns_test>,
+		BOOST_MIRROR_TEST_NAMESPACE_CT_02_MSG
+	);
+	BOOST_MIRROR_ASSERT(
+		reflects_namespace<meta_ns_test_stuff>,
+		BOOST_MIRROR_TEST_NAMESPACE_CT_02_MSG
+	);
+	BOOST_MIRROR_ASSERT(
+		reflects_namespace<meta_ns_test_stuff_detail>,
+		BOOST_MIRROR_TEST_NAMESPACE_CT_02_MSG
+	);
+	BOOST_MIRROR_ASSERT(
+		reflects_namespace<meta_ns_test_feature>,
+		BOOST_MIRROR_TEST_NAMESPACE_CT_02_MSG
+	);
+	BOOST_MIRROR_ASSERT(
+		reflects_namespace<meta_ns_test_feature_detail>,
+		BOOST_MIRROR_TEST_NAMESPACE_CT_02_MSG
+	);
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/namespaces_ct_04.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/namespaces_ct_04.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/namespaces_ct_04.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -20,51 +20,68 @@
 #include "./namespaces.hpp"
 #include "./test.hpp"
 
+#define BOOST_MIRROR_TEST_NAMESPACES_CT_04_MSG_1(TYPE) \
+	"The " #TYPE " type should be defined on the global scope"
+
+#define BOOST_MIRROR_TEST_NAMESPACES_CT_04_TYPE_GS(TYPE) \
+        BOOST_MIRROR_ASSERT( \
+                reflects_namespace< \
+                        BOOST_MIRRORED_TYPE(TYPE) :: scope \
+                >::type, \
+		BOOST_MIRROR_TEST_NAMESPACES_CT_04_MSG_1(TYPE) \
+         );
+
+#define BOOST_MIRROR_TEST_NAMESPACES_CT_04_MSG_2(MODAL) \
+	"The types " MODAL " be defined in the same scope"
+
 void test_main()
 {
-	using namespace ::std;
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
-	BOOST_STATIC_ASSERT( reflects_namespace<
-		BOOST_MIRRORED_TYPE(bool) :: scope
-	>::value );
-	BOOST_STATIC_ASSERT( reflects_namespace<
-		BOOST_MIRRORED_TYPE(char) :: scope
-	>::value );
-	BOOST_STATIC_ASSERT( reflects_namespace<
-		BOOST_MIRRORED_TYPE(int) :: scope
-	>::value );
-	BOOST_STATIC_ASSERT( reflects_namespace<
-		BOOST_MIRRORED_TYPE(double) :: scope
-	>::value );
-	BOOST_STATIC_ASSERT( reflects_namespace<
-		BOOST_MIRRORED_TYPE(void*) :: scope
-	>::value );
-	BOOST_STATIC_ASSERT( reflects_namespace<
-		BOOST_MIRRORED_TYPE(int const * const *) :: scope
-	>::value );
-	BOOST_STATIC_ASSERT( reflects_namespace<
-		BOOST_MIRRORED_TYPE(char volatile * const &) :: scope
-	>::value );
+	BOOST_MIRROR_TEST_NAMESPACES_CT_04_TYPE_GS(bool)
+	BOOST_MIRROR_TEST_NAMESPACES_CT_04_TYPE_GS(char)
+	BOOST_MIRROR_TEST_NAMESPACES_CT_04_TYPE_GS(int)
+	BOOST_MIRROR_TEST_NAMESPACES_CT_04_TYPE_GS(double)
+	BOOST_MIRROR_TEST_NAMESPACES_CT_04_TYPE_GS(void*)
+	BOOST_MIRROR_TEST_NAMESPACES_CT_04_TYPE_GS(int const * const *)
+	BOOST_MIRROR_TEST_NAMESPACES_CT_04_TYPE_GS(char volatile * const &)
         //
-	BOOST_STATIC_ASSERT(( is_same<
-		BOOST_MIRRORED_TYPE(const char* []) :: scope,
-		BOOST_MIRRORED_TYPE(int volatile &) :: scope
-	>::value ));
-
-	BOOST_MPL_ASSERT(( is_same<
-		BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar) :: scope,
-		BOOST_MIRRORED_TYPEDEF(::boost::cts, bstring) :: scope
-	> ));
-	BOOST_MPL_ASSERT_NOT((is_same<
-		BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar) :: scope,
-		BOOST_MIRRORED_TYPE(char) :: scope
-	> ));
-	BOOST_MPL_ASSERT_NOT(( is_same<
-		BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar) :: scope,
-		BOOST_MIRRORED_TYPE(wchar_t) :: scope
-	> ));
+	typedef is_same<
+                BOOST_MIRRORED_TYPE(const char* []) :: scope,
+                BOOST_MIRRORED_TYPE(int volatile &) :: scope
+        >::type result_01;
+	BOOST_MIRROR_ASSERT(
+		result_01,
+		BOOST_MIRROR_TEST_NAMESPACES_CT_04_MSG_2("should")
+	);
+	
+	typedef is_same<
+                BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar) :: scope,
+                BOOST_MIRRORED_TYPEDEF(::boost::cts, bstring) :: scope
+        >::type result_02;
+	BOOST_MIRROR_ASSERT(
+		result_02,
+		BOOST_MIRROR_TEST_NAMESPACES_CT_04_MSG_2("should")
+	);
+
+	typedef is_same<
+                BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar) :: scope,
+                BOOST_MIRRORED_TYPE(char) :: scope
+        >::type result_03;
+	BOOST_MIRROR_ASSERT_NOT(
+		result_03,
+		BOOST_MIRROR_TEST_NAMESPACES_CT_04_MSG_2("should not")
+	);
+	
+	typedef is_same<
+                BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar) :: scope,
+                BOOST_MIRRORED_TYPE(wchar_t) :: scope
+        >::type result_04;
+	BOOST_MIRROR_ASSERT_NOT(
+		result_04,
+		BOOST_MIRROR_TEST_NAMESPACES_CT_04_MSG_2("should not")
+	);
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/namespaces_ct_05.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/namespaces_ct_05.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/namespaces_ct_05.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -12,7 +12,6 @@
 
 #include <boost/type_traits/is_same.hpp>
 // assert
-#include <boost/mpl/assert.hpp>
 #include <boost/mpl/equal.hpp>
 #include <boost/mpl/accumulate.hpp>
 #include <boost/mpl/vector.hpp>
@@ -78,30 +77,60 @@
         // if the global lists are not available, then mirror does not
         // reflect namespace members
         //
-	BOOST_MPL_ASSERT( empty< meta_test::members<>::type > );
-	BOOST_MPL_ASSERT_RELATION( size< meta_test::members<>::type >::value, ==, 0);
-        BOOST_MPL_ASSERT((iterator_equal<
+	BOOST_MIRROR_ASSERT(
+		empty< meta_test::members<>::type >::type,
+		"The list of members of the ::test namespace should be empty"
+	);
+
+	BOOST_MIRROR_ASSERT_RELATION(
+		size< meta_test::members<>::type >::value, 
+		==, 
+		0,
+		"The count of members of the ::test namespace should be 0"
+	);
+
+	typedef iterator_equal<
                 begin<meta_test::members<>::type>::type,
                 end<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT_NOT((iterator_not_equal<
+        >::type result_01;
+        BOOST_MIRROR_ASSERT(
+		result_01,
+		"The iterators returned by begin<> and end<> should be equal"
+        );
+
+	typedef iterator_not_equal<
                 begin<meta_test::members<>::type>::type,
                 end<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT((iterator_equal<
+        >::type result_02;
+        BOOST_MIRROR_ASSERT_NOT(
+		result_02,
+		"The iterators returned by begin<> and end<> should "\
+		"not be different"
+        );
+
+	typedef iterator_equal<
                 find_if<
-			meta_test::members<>::type, 
-			mpl::lambda<reflects_namespace<mpl::_1> >::type
-		>::type,
-                end<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT((iterator_equal<
+                        meta_test::members<>::type,
+                        mpl::lambda<reflects_namespace<mpl::_1> >::type
+                >::type,
+                end<meta_test::members<>::type>::type
+        >::type result_03;
+        BOOST_MIRROR_ASSERT(
+		result_03,
+		"There should be no namespace members in the ::test namespace"
+        );
+
+	typedef iterator_equal<
                 find_if<
-			meta_test::members<>::type, 
-			mpl::lambda<reflects_global_scope<mpl::_1> >::type
-		>::type,
-                end<meta_test::members<>::type>::type
-        >));
+                        meta_test::members<>::type,
+                        mpl::lambda<reflects_global_scope<mpl::_1> >::type
+                >::type,
+                end<meta_test::members<>::type>::type
+        >::type result_04;
+        BOOST_MIRROR_ASSERT(
+		result_04,
+		"There should be no type members in the ::test namespace"
+        );
 #else
         typedef mpl::vector<
                 mpl::vector2<BOOST_MIRRORED_NAMESPACE(::test::a), mpl::int_<0> >,
@@ -123,51 +152,84 @@
 		>
 	>::type meta_namespaces;
 
-	BOOST_MPL_ASSERT_NOT( empty< meta_test::members<>::type > );
-	BOOST_MPL_ASSERT_RELATION( 
+	BOOST_MIRROR_ASSERT_NOT(
+		empty< meta_test::members<>::type >::type,
+		"The list of members of the ::test namespace should not "\
+		"be empty"
+	);
+	
+	BOOST_MIRROR_ASSERT_RELATION( 
                 size< meta_test::members<>::type >::value, 
                 ==, 
-		8
+		8,
+		"There should be 8 members in the ::test namespace"
         );
-	BOOST_MPL_ASSERT(( 
-		mpl::accumulate<
-			meta_namespaces_and_indices,
-			mpl::true_,
-			mpl::and_<
-				mpl::_1,
-				is_same<
-					at<
-						meta_test::members<>::type, 
-						mpl::back<mpl::_2> 
-					>,
-					mpl::front<mpl::_2>
-				>
+
+	typedef mpl::accumulate<
+		meta_namespaces_and_indices,
+		mpl::true_,
+		mpl::and_<
+			mpl::_1,
+			is_same<
+				at<
+					meta_test::members<>::type,
+					mpl::back<mpl::_2>
+				>,
+				mpl::front<mpl::_2>
 			>
 		>
-	));
+	>::type result_01;
+	BOOST_MIRROR_ASSERT( 
+		result_01,
+		"The position of the members in the ::test namespace "\
+		"should match the hardcoded order"
+	);
         //
-        BOOST_MPL_ASSERT((iterator_not_equal<
+	typedef iterator_not_equal<
                 begin<meta_test::members<>::type>::type,
                 end<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT_NOT((iterator_equal<
+        >::type result_02;
+        BOOST_MIRROR_ASSERT(
+		result_02,
+		"The iterators returned by begin<> and end<> on the list "\
+		"of members of the ::test namespace should be different"
+        );
+	//
+	typedef iterator_equal<
                 begin<meta_test::members<>::type>::type,
                 end<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT((iterator_equal<
+        >::type result_03;
+        BOOST_MIRROR_ASSERT_NOT(
+		result_03,
+		"The iterators returned by begin<> and end<> on the list "\
+		"of members of the ::test namespace should not be equal"
+        );
+	//
+	typedef iterator_equal<
                 find_if<
-			meta_test::members<>::type, 
-			mpl::lambda<reflects_namespace<mpl::_1> >::type
-		>::type,
+                        meta_test::members<>::type,
+                        mpl::lambda<reflects_namespace<mpl::_1> >::type
+                >::type,
                 begin<meta_test::members<>::type>::type
-        >));
-        BOOST_MPL_ASSERT((iterator_equal<
+        >::type result_04;
+        BOOST_MIRROR_ASSERT(
+		result_04,
+		"The first member of the ::test namespace should "\
+		"be a namespace"
+        );
+	//
+	typedef iterator_equal<
                 find_if<
-			meta_test::members<>::type, 
-			mpl::lambda<reflects_global_scope<mpl::_1> >::type
-		>::type,
-                end<meta_test::members<>::type>::type
-        >));
+                        meta_test::members<>::type,
+                        mpl::lambda<reflects_global_scope<mpl::_1> >::type
+                >::type,
+                end<meta_test::members<>::type>::type
+        >::type result_05;
+        BOOST_MIRROR_ASSERT(
+		result_05,
+		"There should not be any member in the ::test namespace "\
+		"identified as the global scope"
+        );
  
 #endif
 }
Modified: sandbox/mirror/libs/mirror/test/other_ct_01.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/other_ct_01.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/other_ct_01.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -65,7 +65,6 @@
 
 int main(void)
 {
-	using namespace ::std;
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
Modified: sandbox/mirror/libs/mirror/test/test.hpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/test.hpp	(original)
+++ sandbox/mirror/libs/mirror/test/test.hpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -12,8 +12,37 @@
 #define BOOST_MIRROR_LIBS_MIRROR_TEST_TEST_HPP
 
 #include <boost/test/unit_test.hpp>
+#include <boost/config.hpp>
+
+#ifdef BOOST_NO_STATIC_ASSERT
+#include <boost/mpl/assert.hpp>
+#endif
 
 using namespace ::boost::unit_test;
 
+#ifdef BOOST_NO_STATIC_ASSERT
+
+#define BOOST_MIRROR_ASSERT(EXPR, ERROR_MSG) \
+	BOOST_MPL_ASSERT(EXPR)
+
+#define BOOST_MIRROR_ASSERT_NOT(EXPR, ERROR_MSG) \
+	BOOST_MPL_ASSERT_NOT(EXPR)
+
+#define BOOST_MIRROR_ASSERT_RELATION(LEFT, REL, RIGHT, ERROR_MSG)\
+	BOOST_MPL_ASSERT_RELATION(LEFT, REL, RIGHT)
+
+#else
+
+#define BOOST_MIRROR_ASSERT(EXPR, ERROR_MSG) \
+	static_assert(EXPR :: value, ERROR_MSG)
+
+#define BOOST_MIRROR_ASSERT_NOT(EXPR, ERROR_MSG) \
+	static_assert(!EXPR :: value, ERROR_MSG)
+
+#define BOOST_MIRROR_ASSERT_RELATION(LEFT, REL, RIGHT, ERROR_MSG)\
+	static_assert(LEFT REL RIGHT, ERROR_MSG)
+
+#endif
+
 #endif // include guard
 
Modified: sandbox/mirror/libs/mirror/test/types_ct_01.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/types_ct_01.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/types_ct_01.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -24,9 +24,11 @@
 #include "./types.hpp"
 #include "./test.hpp"
 
+#define BOOST_MIRROR_TEST_TYPES_CT_01_MSG \
+	"The reflected and the real type must be the same"
+
 void test_main()
 {
-	using namespace ::std;
         using namespace ::boost;
         using namespace ::boost::mirror;
         //
@@ -36,26 +38,56 @@
         typedef BOOST_MIRRORED_TYPE(::test::feature::foo) meta_test_feature_foo;
         typedef BOOST_MIRRORED_TYPE(baz) meta_baz;
         //
-	BOOST_MPL_ASSERT_NOT(( is_same<meta_int, meta_std_string> ));
-	BOOST_MPL_ASSERT(( reflects_global_scope<meta_int::scope> ));
-	BOOST_MPL_ASSERT(( reflects_namespace<meta_std_string::scope > ));
-	BOOST_MPL_ASSERT_NOT(( reflects_global_scope<meta_std_string::scope> ));
-	BOOST_MPL_ASSERT(( reflects_global_scope<meta_std_string::scope::scope> ));
-	//
-	BOOST_MPL_ASSERT(( is_same<meta_int::reflected_type, int> ));
-	BOOST_MPL_ASSERT(( is_same<meta_std_string::reflected_type, ::std::string> ));
-	BOOST_MPL_ASSERT(( is_same<
-		meta_boost_cts_bstring::reflected_type, 
+	typedef is_same<meta_int, meta_std_string>::type result_00;
+	BOOST_MIRROR_ASSERT_NOT(
+		result_00,
+		"Meta types reflecting an int and a ::std::string "\
+		"should no be the same"
+	);
+	BOOST_MIRROR_ASSERT(
+		reflects_global_scope<meta_int::scope>::type,
+		"The int type should be the member of the global scope"
+	);
+	BOOST_MIRROR_ASSERT(
+		reflects_namespace<meta_std_string::scope>,
+		"The scope of ::std::string should be a namespace"
+	);
+	BOOST_MIRROR_ASSERT_NOT(
+		reflects_global_scope<meta_std_string::scope>,
+		"The scope of ::std::string should not be the global scope"
+	);
+	BOOST_MIRROR_ASSERT(
+		reflects_global_scope<meta_std_string::scope::scope>,
+		"::std::string should be defined in a namespace defined "\
+		"directly in the global scope"
+	);
+	//
+	typedef is_same<meta_int::reflected_type, int>::type result_01;
+	BOOST_MIRROR_ASSERT(result_01, BOOST_MIRROR_TEST_TYPES_CT_01_MSG);
+	//
+	typedef is_same<
+		meta_std_string::reflected_type, 
+		::std::string
+	>::type result_02;
+	BOOST_MIRROR_ASSERT(result_02, BOOST_MIRROR_TEST_TYPES_CT_01_MSG);
+	//
+	typedef is_same<
+		meta_boost_cts_bstring::reflected_type,
                 ::boost::cts::bstring
-	> ));
-	BOOST_MPL_ASSERT(( is_same<
-		meta_test_feature_foo::reflected_type, 
-		::test::feature::foo
-	> ));
-	BOOST_MPL_ASSERT(( is_same<
-		meta_baz::reflected_type, 
-		baz
-	> ));
+	>::type result_03;
+	BOOST_MIRROR_ASSERT(result_03, BOOST_MIRROR_TEST_TYPES_CT_01_MSG);
+	//
+	typedef is_same<
+                meta_test_feature_foo::reflected_type,
+                ::test::feature::foo
+        >::type result_04;
+	BOOST_MIRROR_ASSERT(result_04, BOOST_MIRROR_TEST_TYPES_CT_01_MSG);
+	//
+	typedef is_same<
+                meta_baz::reflected_type,
+                baz
+        >::type result_05;
+	BOOST_MIRROR_ASSERT(result_05, BOOST_MIRROR_TEST_TYPES_CT_01_MSG);
 }
 
 test_suite* init_unit_test_suite( int argc, char* argv[] )
Modified: sandbox/mirror/libs/mirror/test/types_ct_03.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/test/types_ct_03.cpp	(original)
+++ sandbox/mirror/libs/mirror/test/types_ct_03.cpp	2009-04-16 11:25:41 EDT (Thu, 16 Apr 2009)
@@ -55,30 +55,39 @@
                 double
 	> some_types;
 
-	BOOST_MPL_ASSERT(( mpl::accumulate<
-		some_types,
-		mpl::true_,
-		mpl::and_<
-			mpl::_1,
-			mirror::reflects_global_scope<
-				get_scope<
-					BOOST_MIRRORED_TYPE(mpl::_2)
-				>
-			>
-		>
-	>::type ));
-
-	BOOST_MPL_ASSERT(( mpl::accumulate<
-		some_types,
-		mpl::true_,
-		mpl::and_<
-			mpl::_1,
-			is_same<
-				get_reflected_type<BOOST_MIRRORED_TYPE(mpl::_2)>,
-				mpl::_2
-			>
-		>
-	>::type ));
+	typedef mpl::accumulate<
+                some_types,
+                mpl::true_,
+                mpl::and_<
+                        mpl::_1,
+                        mirror::reflects_global_scope<
+                                get_scope<
+                                        BOOST_MIRRORED_TYPE(mpl::_2)
+                                >
+                        >
+                >
+        >::type result_01;
+	BOOST_MIRROR_ASSERT(
+		result_01,
+		"All types in list should be declared in the global scope"
+	);
+
+	typedef mpl::accumulate<
+                some_types,
+                mpl::true_,
+                mpl::and_<
+                        mpl::_1,
+                        is_same<
+                                get_reflected_type<BOOST_MIRRORED_TYPE(mpl::_2)>,
+                                mpl::_2
+                        >
+                >
+        >::type result_02;
+	BOOST_MIRROR_ASSERT(
+		result_02,
+		"The reflected type and the real type must match for all "\
+		"types in the list"
+	);
 
         typedef mpl::vector<
                 ::std::string,
@@ -86,18 +95,23 @@
                 BOOST_MIRROR_TYPEDEF(::boost::cts, bstring)
 	> other_types;
 
-	BOOST_MPL_ASSERT_NOT(( mpl::accumulate<
-		other_types,
-		mpl::false_,
-		mpl::or_<
-			mpl::_1,
-			mirror::reflects_global_scope<
-				get_scope<
-					BOOST_MIRRORED_TYPE(mpl::_2)
-				>
-			>
-		>
-	>::type ));
+	typedef mpl::accumulate<
+                other_types,
+                mpl::false_,
+                mpl::or_<
+                        mpl::_1,
+                        mirror::reflects_global_scope<
+                                get_scope<
+                                        BOOST_MIRRORED_TYPE(mpl::_2)
+                                >
+                        >
+                >
+        >::type result_03;
+	BOOST_MIRROR_ASSERT_NOT(
+		result_03,
+		"None of the types in the list should be declared "\
+		"in the global scope"
+	);
 
 }