|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r51865 - in sandbox/mirror: boost/mirror boost/mirror/detail boost/mirror/meta_path boost/mirror/visitors doc/html doc/html/boost/cts doc/html/boost/mirror doc/html/char_type_switch doc/html/mirror libs/mirror/doc
From: chochlik_at_[hidden]
Date: 2009-03-20 07:20:12
Author: matus.chochlik
Date: 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
New Revision: 51865
URL: http://svn.boost.org/trac/boost/changeset/51865
Log:
[mirror 0.3.x]
- major rewrite of the traversals
- the presence of the visitor's member function is detected
automatically
- minor documentation update
Added:
sandbox/mirror/boost/mirror/detail/visitor_traits.hpp (contents, props changed)
Text files modified:
sandbox/mirror/boost/mirror/detail/traversal.hpp | 800 ++++++++++++++++++++++++++++++++++-----
sandbox/mirror/boost/mirror/meta_path/node_context.hpp | 5
sandbox/mirror/boost/mirror/traversal.hpp | 48 --
sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp | 24 -
sandbox/mirror/doc/html/BOOST_CTS_LIT.html | 8
sandbox/mirror/doc/html/BOOST_CTS_LIT_LENGTH.html | 8
sandbox/mirror/doc/html/BOOST_CTS_STRINGIZE.html | 8
sandbox/mirror/doc/html/BOOST_CTS_USE_WIDE_CHARS.html | 2
sandbox/mirror/doc/html/BOOST_MIRRORED_CLASS.html | 2
sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html | 2
sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html | 6
sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE.html | 2
sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF.html | 2
sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF_GLOBAL_SCOPE.html | 2
sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF_GS.html | 2
sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEOF.html | 2
sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE_NS.html | 2
sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html | 6
sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE.html | 2
sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF.html | 2
sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF_GLOBAL_SCOPE.html | 2
sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF_GS.html | 2
sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_EMB.html | 2
sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_EMBEDDED.html | 2
sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_GLOBAL_SCOPE.html | 2
sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_GS.html | 2
sandbox/mirror/doc/html/boost/cts/bchar.html | 2
sandbox/mirror/doc/html/boost/cts/bchar_traits.html | 2
sandbox/mirror/doc/html/boost/cts/biostream.html | 8
sandbox/mirror/doc/html/boost/cts/bistream.html | 8
sandbox/mirror/doc/html/boost/cts/bostream.html | 8
sandbox/mirror/doc/html/boost/cts/bstring.html | 2
sandbox/mirror/doc/html/boost/mirror/meta_class.html | 8
sandbox/mirror/doc/html/boost/mirror/meta_class_all_attributes.html | 8
sandbox/mirror/doc/html/boost/mirror/meta_class_attribute.html | 56 +-
sandbox/mirror/doc/html/boost/mirror/meta_class_attributes.html | 8
sandbox/mirror/doc/html/boost/mirror/meta_inheritance.html | 8
sandbox/mirror/doc/html/boost/mirror/meta_namespace.html | 40 +-
sandbox/mirror/doc/html/boost/mirror/meta_type.html | 40 +-
sandbox/mirror/doc/html/boost/mirror/reflects_class.html | 2
sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html | 2
sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html | 2
sandbox/mirror/doc/html/boost/mirror/reflects_type.html | 2
sandbox/mirror/doc/html/char_type_switch.html | 8
sandbox/mirror/doc/html/char_type_switch/reference.html | 84 ++--
sandbox/mirror/doc/html/mirror.html | 29 +
sandbox/mirror/doc/html/mirror/examples.html | 20
sandbox/mirror/doc/html/mirror/reference.html | 19
sandbox/mirror/libs/mirror/doc/introduction.xml | 21 +
sandbox/mirror/libs/mirror/doc/reference.xml | 5
50 files changed, 953 insertions(+), 386 deletions(-)
Modified: sandbox/mirror/boost/mirror/detail/traversal.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/traversal.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/traversal.hpp 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -13,6 +13,7 @@
#include <boost/mirror/meta_class.hpp>
#include <boost/mirror/algorithm/for_each.hpp>
#include <boost/mirror/meta_path/node_context.hpp>
+#include <boost/mirror/detail/visitor_traits.hpp>
//
#include <boost/ref.hpp>
#include <boost/type_traits/remove_reference.hpp>
@@ -63,26 +64,12 @@
: visitor(_visitor)
, ptr_to_inst(_ptr_to_inst)
{
- visitor.enter_attributes(
- MetaClass(),
- MetaAttributes(),
- meta_path::make_node_context(
- ClassNodePath(),
- MetaAttributes()
- )
- );
+ lead_into_attribute_list(visitor);
}
inline ~attribute_traversal(void)
{
- visitor.leave_attributes(
- MetaClass(),
- MetaAttributes(),
- meta_path::make_node_context(
- ClassNodePath(),
- MetaAttributes()
- )
- );
+ lead_out_of_attribute_list(visitor);
}
template <class MetaAttribute>
@@ -95,33 +82,49 @@
>::type path;
//
// process a single attribute
- process_single(
- ma,
- path,
- typename VisitorType::works_on_instances()
- );
+ process_single(ma, path);
}
private:
- VisitorType& visitor;
+ reference_wrapper<VisitorType> visitor;
InstancePtr ptr_to_inst;
// process single attribute WITH an instance
template <class MetaAttribute, class AttribsNodePath>
void inline process_single(
MetaAttribute ma,
- AttribsNodePath path,
- mpl::bool_<true>
+ AttribsNodePath path
) const
{
// enter the attribute
- visitor.enter_attribute(
- ma,
- meta_path::make_node_context(
- path,
- ma
- )
- );
+ lead_into_attribute(visitor, ma, path);
//
+ traverse_attribute(ma, path);
+ // leave the attribute
+ lead_out_of_attribute(visitor, ma, path);
+ }
+
+ template <class MetaAttribute, class AttribsNodePath>
+ inline void traverse_attribute(
+ MetaAttribute ma,
+ AttribsNodePath path
+ ) const
+ {
+ typedef BOOST_TYPEOF(ma.get(*ptr_to_inst)) instance_type;
+
+ traverse_attribute_if(
+ typename VisitorType::works_on_instances(),
+ ma,
+ path
+ );
+ }
+
+ template <class MetaAttribute, class AttribsNodePath>
+ inline void traverse_attribute_if(
+ mpl::bool_<true>,
+ MetaAttribute ma,
+ AttribsNodePath path
+ ) const
+ {
// the poiner has to be valid
assert(ptr_to_inst != 0);
//
@@ -137,35 +140,16 @@
MetaAttribute
>::type
>::accept(visitor, &instance);
- //
- // leave the attribute
- visitor.leave_attribute(
- ma,
- meta_path::make_node_context(
- path,
- ma
- )
- );
}
- // process single attribute W/O an instance
template <class MetaAttribute, class AttribsNodePath>
- void inline process_single(
+ inline void traverse_attribute_if(
+ mpl::bool_<false>,
MetaAttribute ma,
- AttribsNodePath path,
- mpl::bool_<false>
+ AttribsNodePath path
) const
{
- // enter the attribute
- visitor.enter_attribute(
- ma,
- meta_path::make_node_context(
- path,
- ma
- )
- );
- //
- // traverse the attributes
+ // traverse the attribute
TraversalType<
typename MetaAttribute::type,
typename mpl::push_back<
@@ -173,16 +157,178 @@
MetaAttribute
>::type
>::accept(visitor, 0);
- //
- // leave the attributes
- visitor.leave_attribute(
- ma,
+ }
+
+ template < class MetaAttribute, class AttribsNodePath>
+ static inline void lead_into_attribute(
+ reference_wrapper<VisitorType> visitor,
+ MetaAttribute ma,
+ AttribsNodePath path
+ )
+ {
+ lead_into_attribute_if(
+ typename visitor_can_enter_attribute<
+ VisitorType,
+ MetaAttribute,
+ meta_path::node_context<
+ AttribsNodePath,
+ MetaAttribute
+ >
+ >::type(),
+ visitor,
+ ma,
+ path
+ );
+ }
+
+ template < class MetaAttribute, class AttribsNodePath>
+ static inline void lead_into_attribute_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
+ MetaAttribute ma,
+ AttribsNodePath path
+ )
+ {
+ visitor.get().enter_attribute(
+ ma,
meta_path::make_node_context(
path,
ma
)
);
}
+
+ template <class MetaAttribute, class AttribsNodePath>
+ static inline void lead_into_attribute_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ MetaAttribute ma,
+ AttribsNodePath path
+ ){ }
+
+ template < class MetaAttribute, class AttribsNodePath>
+ static inline void lead_out_of_attribute(
+ reference_wrapper<VisitorType> visitor,
+ MetaAttribute ma,
+ AttribsNodePath path
+ )
+ {
+ lead_out_of_attribute_if(
+ typename visitor_can_leave_attribute<
+ VisitorType,
+ MetaAttribute,
+ meta_path::node_context<
+ AttribsNodePath,
+ MetaAttribute
+ >
+ >::type(),
+ visitor,
+ ma,
+ path
+ );
+ }
+
+ template <class MetaAttribute, class AttribsNodePath>
+ static inline void lead_out_of_attribute_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
+ MetaAttribute ma,
+ AttribsNodePath path
+ )
+ {
+ visitor.get().leave_attribute(
+ ma,
+ meta_path::make_node_context(
+ path,
+ ma
+ )
+ );
+ }
+
+ template <class MetaAttribute, class AttribsNodePath>
+ static inline void lead_out_of_attribute_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ MetaAttribute ma,
+ AttribsNodePath path
+ ){ }
+
+ static inline void lead_into_attribute_list(
+ reference_wrapper<VisitorType> visitor
+ )
+ {
+ lead_into_attribute_list_if(
+ typename visitor_can_enter_attributes<
+ VisitorType,
+ MetaClass,
+ MetaAttributes,
+ meta_path::node_context<
+ ClassNodePath,
+ MetaAttributes
+ >
+ >::type(),
+ visitor
+ );
+ }
+
+ static inline void lead_into_attribute_list_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor
+ )
+ {
+ visitor.get().enter_attributes(
+ MetaClass(),
+ MetaAttributes(),
+ meta_path::make_node_context(
+ ClassNodePath(),
+ MetaAttributes()
+ )
+ );
+ }
+
+ static inline void lead_into_attribute_list_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor
+ ){ }
+
+ static inline void lead_out_of_attribute_list(
+ reference_wrapper<VisitorType> visitor
+ )
+ {
+ lead_out_of_attribute_list_if(
+ typename visitor_can_leave_attributes<
+ VisitorType,
+ MetaClass,
+ MetaAttributes,
+ meta_path::node_context<
+ ClassNodePath,
+ MetaAttributes
+ >
+ >::type(),
+ visitor
+ );
+ }
+
+ static inline void lead_out_of_attribute_list_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor
+ )
+ {
+ visitor.get().leave_attributes(
+ MetaClass(),
+ MetaAttributes(),
+ meta_path::make_node_context(
+ ClassNodePath(),
+ MetaAttributes()
+ )
+ );
+ }
+
+ static inline void lead_out_of_attribute_list_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor
+ ){ }
+
};
// attribute_traversal factory function
@@ -208,45 +354,21 @@
: visitor(_visitor)
, ptr_to_inst(_ptr_to_inst)
{
- visitor.enter_base_classes(
- MetaClass(),
- typename MetaClass::base_classes(),
- meta_path::make_node_context(
- ClassNodePath(),
- typename MetaClass::base_classes()
- )
- );
+ lead_into_base_class_list(visitor);
}
inline ~base_class_traversal(void)
{
- visitor.leave_base_classes(
- MetaClass(),
- typename MetaClass::base_classes(),
- meta_path::make_node_context(
- ClassNodePath(),
- typename MetaClass::base_classes()
- )
- );
+ lead_out_of_base_class_list(visitor);
}
template <class MetaInheritance>
inline void operator ()(MetaInheritance mbc) const
{
- typedef typename mpl::push_back<
- ClassNodePath,
- typename MetaClass::base_classes
- >::type BaseClassesNodePath;
BaseClassesNodePath path;
//
// enter the base cass
- visitor.enter_base_class(
- mbc,
- meta_path::make_node_context(
- path,
- mbc
- )
- );
+ lead_into_base_class(visitor, mbc, path);
//
// get the meta-class of the base class
typedef typename MetaInheritance::base_class
@@ -260,7 +382,48 @@
>::type
>::accept(visitor, ptr_to_inst);
// leave the base class
- visitor.leave_base_class(
+ lead_out_of_base_class(visitor, mbc, path);
+ }
+ private:
+ typedef typename mpl::push_back<
+ ClassNodePath,
+ typename MetaClass::base_classes
+ >::type BaseClassesNodePath;
+
+ reference_wrapper<VisitorType> visitor;
+ InstancePtr ptr_to_inst;
+
+ template <class MetaInheritance>
+ static inline void lead_into_base_class(
+ reference_wrapper<VisitorType> visitor,
+ MetaInheritance mbc,
+ BaseClassesNodePath path
+ )
+ {
+ lead_into_base_class_if(
+ typename visitor_can_enter_base_class<
+ VisitorType,
+ MetaInheritance,
+ meta_path::node_context<
+ BaseClassesNodePath,
+ MetaInheritance
+ >
+ >::type(),
+ visitor,
+ mbc,
+ path
+ );
+ }
+
+ template <class MetaInheritance>
+ static inline void lead_into_base_class_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
+ MetaInheritance mbc,
+ BaseClassesNodePath path
+ )
+ {
+ visitor.get().enter_base_class(
mbc,
meta_path::make_node_context(
path,
@@ -268,9 +431,139 @@
)
);
}
- private:
- VisitorType& visitor;
- InstancePtr ptr_to_inst;
+
+ template <class MetaInheritance>
+ static inline void lead_into_base_class_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ MetaInheritance mbc,
+ BaseClassesNodePath path
+ ){ }
+
+ template <class MetaInheritance>
+ static inline void lead_out_of_base_class(
+ reference_wrapper<VisitorType> visitor,
+ MetaInheritance mbc,
+ BaseClassesNodePath path
+ )
+ {
+ lead_out_of_base_class_if(
+ typename visitor_can_leave_base_class<
+ VisitorType,
+ MetaInheritance,
+ meta_path::node_context<
+ BaseClassesNodePath,
+ MetaInheritance
+ >
+ >::type(),
+ visitor,
+ mbc,
+ path
+ );
+ }
+
+ template <class MetaInheritance>
+ static inline void lead_out_of_base_class_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
+ MetaInheritance mbc,
+ BaseClassesNodePath path
+ )
+ {
+ visitor.get().leave_base_class(
+ mbc,
+ meta_path::make_node_context(
+ path,
+ mbc
+ )
+ );
+ }
+
+ template <class MetaInheritance>
+ static inline void lead_out_of_base_class_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ MetaInheritance mbc,
+ BaseClassesNodePath path
+ ){ }
+
+ static inline void lead_into_base_class_list(
+ reference_wrapper<VisitorType> visitor
+ )
+ {
+ lead_into_base_class_list_if(
+ typename visitor_can_enter_base_classes<
+ VisitorType,
+ MetaClass,
+ typename MetaClass::base_classes,
+ meta_path::node_context<
+ ClassNodePath,
+ typename MetaClass::base_classes
+ >
+ >::type(),
+ visitor
+ );
+ }
+
+ static inline void lead_into_base_class_list_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor
+ )
+ {
+ visitor.get().enter_base_classes(
+ MetaClass(),
+ typename MetaClass::base_classes(),
+ meta_path::make_node_context(
+ ClassNodePath(),
+ typename MetaClass::base_classes()
+ )
+ );
+ }
+
+ static inline void lead_into_base_class_list_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor
+ ){ }
+
+ static inline void lead_out_of_base_class_list(
+ reference_wrapper<VisitorType> visitor
+ )
+ {
+ lead_out_of_base_class_list_if(
+ typename visitor_can_leave_base_classes<
+ VisitorType,
+ MetaClass,
+ typename MetaClass::base_classes,
+ meta_path::node_context<
+ ClassNodePath,
+ typename MetaClass::base_classes
+ >
+ >::type(),
+ visitor
+ );
+ }
+
+ static inline void lead_out_of_base_class_list_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor
+ )
+ {
+ visitor.get().leave_base_classes(
+ MetaClass(),
+ typename MetaClass::base_classes(),
+ meta_path::make_node_context(
+ ClassNodePath(),
+ typename MetaClass::base_classes()
+ )
+ );
+ }
+
+ static inline void lead_out_of_base_class_list_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor
+ ){ }
+
+
};
// base class traversal factory function
@@ -295,38 +588,25 @@
InstanceType* ptr_to_inst
)
{
- do_lead_to_instance(
+ lead_to_instance_if(
+ typename VisitorType::works_on_instances(),
visitor,
mc,
path,
- ptr_to_inst,
- typename VisitorType::works_on_instances()
+ ptr_to_inst
);
}
-private:
template <
class VisitorType,
class InstanceType
>
- inline static void do_lead_to_instance(
- reference_wrapper<VisitorType> visitor,
- MetaClass,
- NodePath,
- InstanceType* ptr_to_inst,
- mpl::bool_<false>
- ){ }
-
- template <
- class VisitorType,
- class InstanceType
- >
- inline static void do_lead_to_instance(
- reference_wrapper<VisitorType> visitor,
+ inline static void lead_to_instance_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
MetaClass mc,
NodePath path,
- InstanceType* ptr_to_inst,
- mpl::bool_<true>
+ InstanceType* ptr_to_inst
)
{
visitor.get().visit_instance(
@@ -339,6 +619,112 @@
);
}
+ template <
+ class VisitorType,
+ class InstanceType
+ >
+ inline static void lead_to_instance_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ MetaClass mc,
+ NodePath path,
+ InstanceType* ptr_to_inst
+ ) { }
+
+ template <class VisitorType>
+ static inline void lead_into_type(
+ reference_wrapper<VisitorType> visitor,
+ MetaClass mc,
+ NodePath path
+ )
+ {
+ lead_into_type_if(
+ typename visitor_can_enter_type<
+ VisitorType,
+ MetaClass,
+ meta_path::node_context<
+ NodePath,
+ MetaClass
+ >
+ >::type(),
+ visitor,
+ mc,
+ path
+ );
+ }
+
+ template < class VisitorType>
+ static inline void lead_into_type_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
+ MetaClass mc,
+ NodePath path
+ )
+ {
+ visitor.get().enter_type(
+ mc,
+ meta_path::make_node_context(
+ path,
+ mc
+ )
+ );
+ }
+
+ template < class VisitorType>
+ static inline void lead_into_type_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ MetaClass mc,
+ NodePath path
+ ){ }
+
+ template <class VisitorType>
+ static inline void lead_out_of_type(
+ reference_wrapper<VisitorType> visitor,
+ MetaClass mc,
+ NodePath path
+ )
+ {
+ lead_out_of_type_if(
+ typename visitor_can_leave_type<
+ VisitorType,
+ MetaClass,
+ meta_path::node_context<
+ NodePath,
+ MetaClass
+ >
+ >::type(),
+ visitor,
+ mc,
+ path
+ );
+ }
+
+ template < class VisitorType>
+ static inline void lead_out_of_type_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
+ MetaClass mc,
+ NodePath path
+ )
+ {
+ visitor.get().leave_type(
+ mc,
+ meta_path::make_node_context(
+ path,
+ mc
+ )
+ );
+ }
+
+ template < class VisitorType>
+ static inline void lead_out_of_type_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ MetaClass mc,
+ NodePath path
+ ){ }
+
};
/** Base implementation of namespace traversal
@@ -369,12 +755,10 @@
reference_wrapper<VisitorType> _visitor
): visitor(_visitor)
{
- visitor.get().enter_namespace_members(
+ lead_into_namespace_member_list(
+ visitor,
Members(),
- meta_path::make_node_context(
- NamespaceNodePath(),
- Members()
- )
+ NamespaceNodePath()
);
}
@@ -389,14 +773,100 @@
inline ~namespace_member_traversal(void)
{
- visitor.get().leave_namespace_members(
+ lead_out_of_namespace_member_list(
+ visitor,
Members(),
+ NamespaceNodePath()
+ );
+ }
+
+ static inline void lead_into_namespace_member_list(
+ reference_wrapper<VisitorType> visitor,
+ Members m,
+ NamespaceNodePath path
+ )
+ {
+ lead_into_namespace_member_list_if(
+ typename visitor_can_enter_namespace_members<
+ VisitorType,
+ Members,
+ meta_path::node_context<
+ NamespaceNodePath,
+ Members
+ >
+ >::type(),
+ visitor,
+ m,
+ path
+ );
+ }
+
+ static inline void lead_into_namespace_member_list_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
+ Members m,
+ NamespaceNodePath path
+ )
+ {
+ visitor.get().enter_namespace_members(
+ m,
meta_path::make_node_context(
- NamespaceNodePath(),
- Members()
+ path,
+ m
)
);
}
+
+ static inline void lead_into_namespace_member_list_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ Members m,
+ NamespaceNodePath path
+ ){ }
+
+ static inline void lead_out_of_namespace_member_list(
+ reference_wrapper<VisitorType> visitor,
+ Members m,
+ NamespaceNodePath path
+ )
+ {
+ lead_out_of_namespace_member_list_if(
+ typename visitor_can_leave_namespace_members<
+ VisitorType,
+ Members,
+ meta_path::node_context<
+ NamespaceNodePath,
+ Members
+ >
+ >::type(),
+ visitor,
+ m,
+ path
+ );
+ }
+
+ static inline void lead_out_of_namespace_member_list_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
+ Members m,
+ NamespaceNodePath path
+ )
+ {
+ visitor.get().leave_namespace_members(
+ m,
+ meta_path::make_node_context(
+ path,
+ m
+ )
+ );
+ }
+
+ static inline void lead_out_of_namespace_member_list_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ Members m,
+ NamespaceNodePath path
+ ){ }
};
template <class Members, class VisitorType>
@@ -405,6 +875,102 @@
{
return namespace_member_traversal<VisitorType, Members>(_visitor);
}
+
+
+ template <class VisitorType>
+ static inline void lead_into_namespace(
+ reference_wrapper<VisitorType> visitor,
+ MetaNamespace mn,
+ NodePath path
+ )
+ {
+ lead_into_namespace_if(
+ typename visitor_can_enter_namespace<
+ VisitorType,
+ MetaNamespace,
+ meta_path::node_context<
+ NodePath,
+ MetaNamespace
+ >
+ >::type(),
+ visitor,
+ mn,
+ path
+ );
+ }
+
+ template <class VisitorType>
+ static inline void lead_into_namespace_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
+ MetaNamespace mn,
+ NodePath path
+ )
+ {
+ visitor.get().enter_namespace(
+ mn,
+ meta_path::make_node_context(
+ path,
+ mn
+ )
+ );
+ }
+
+ template < class VisitorType>
+ static inline void lead_into_namespace_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ MetaNamespace mn,
+ NodePath path
+ ){ }
+
+ template <class VisitorType>
+ static inline void lead_out_of_namespace(
+ reference_wrapper<VisitorType> visitor,
+ MetaNamespace mn,
+ NodePath path
+ )
+ {
+ lead_out_of_namespace_if(
+ typename visitor_can_leave_namespace<
+ VisitorType,
+ MetaNamespace,
+ meta_path::node_context<
+ NodePath,
+ MetaNamespace
+ >
+ >::type(),
+ visitor,
+ mn,
+ path
+ );
+ }
+
+ template < class VisitorType>
+ static inline void lead_out_of_namespace_if(
+ mpl::bool_<true>,
+ reference_wrapper<VisitorType> visitor,
+ MetaNamespace mn,
+ NodePath path
+ )
+ {
+ visitor.get().leave_namespace(
+ mn,
+ meta_path::make_node_context(
+ path,
+ mn
+ )
+ );
+ }
+
+ template < class VisitorType>
+ static inline void lead_out_of_namespace_if(
+ mpl::bool_<false>,
+ reference_wrapper<VisitorType> visitor,
+ MetaNamespace mn,
+ NodePath path
+ ){ }
+
};
} // namespace detail
Added: sandbox/mirror/boost/mirror/detail/visitor_traits.hpp
==============================================================================
--- (empty file)
+++ sandbox/mirror/boost/mirror/detail/visitor_traits.hpp 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -0,0 +1,80 @@
+/**
+ * \file boost/mirror/detail/visitor_traits.hpp
+ * Auto-detection of visitor's member function availability
+ *
+ * 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_DETAIL_VISITOR_TRAITS_HPP
+#define BOOST_MIRROR_DETAIL_VISITOR_TRAITS_HPP
+
+#include <boost/mpl/bool.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+
+namespace boost {
+namespace mirror {
+namespace detail {
+
+template <typename MemFnPtr, MemFnPtr mem_fn_ptr>
+struct member_fn_ptr_wrapper { };
+
+#define BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY( \
+ MEM_FN_NAME, \
+ PARAM_COUNT \
+) \
+template <class Visitor, BOOST_PP_ENUM_PARAMS(PARAM_COUNT, typename P)> \
+char visitor_has_##MEM_FN_NAME( \
+ member_fn_ptr_wrapper< \
+ void (Visitor::*)(BOOST_PP_ENUM_PARAMS(PARAM_COUNT, P)), \
+ &Visitor::template MEM_FN_NAME<BOOST_PP_ENUM_PARAMS(PARAM_COUNT, P)> \
+ >* \
+); \
+ \
+template <class Visitor, BOOST_PP_ENUM_PARAMS(PARAM_COUNT, typename P)> \
+double visitor_has_##MEM_FN_NAME(...); \
+ \
+template <class Visitor, BOOST_PP_ENUM_PARAMS(PARAM_COUNT, typename P)> \
+struct visitor_can_##MEM_FN_NAME\
+{ \
+ enum {value = \
+ sizeof(char) == \
+ sizeof(visitor_has_##MEM_FN_NAME< \
+ Visitor, \
+ BOOST_PP_ENUM_PARAMS(PARAM_COUNT, P) \
+ >(0)) \
+ }; \
+ typedef mpl::bool_<value> type; \
+};
+
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(enter_namespace, 2)
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(leave_namespace, 2)
+
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(enter_namespace_members, 2)
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(leave_namespace_members, 2)
+
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(enter_type, 2)
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(leave_type, 2)
+
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(enter_attribute, 2)
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(leave_attribute, 2)
+
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(enter_attributes, 3)
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(leave_attributes, 3)
+
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(enter_base_class, 2)
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(leave_base_class, 2)
+
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(enter_base_classes, 3)
+BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY(leave_base_classes, 3)
+
+
+#undef BOOST_MIRROR_DETAIL_IMPLEMENT_VISITOR_MEM_FN_QUERY
+
+} // namespace detail
+} // namespace mirror
+} // namespace boost
+
+#endif //include guard
+
Modified: sandbox/mirror/boost/mirror/meta_path/node_context.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_path/node_context.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_path/node_context.hpp 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -54,6 +54,11 @@
>::type nodes;
};
+struct empty_context
+{
+ typedef mpl::vector0<> paths_and_nodes;
+};
+
} // namespace meta_path
} // namespace mirror
} // namespace boost
Modified: sandbox/mirror/boost/mirror/traversal.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/traversal.hpp (original)
+++ sandbox/mirror/boost/mirror/traversal.hpp 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -60,13 +60,7 @@
MetaClass mc;
NodePath path;
// enter the type
- visitor.get().enter_type(
- mc,
- meta_path::make_node_context(
- path,
- mc
- )
- );
+ lead_into_type(visitor, mc, path);
// visit the instance
lead_to_instance(visitor, mc, path, ptr_to_inst);
// go through the base classes
@@ -78,13 +72,7 @@
cref(show_attribs_to(visitor, ptr_to_inst))
);
// leave the type
- visitor.get().leave_type(
- mc,
- meta_path::make_node_context(
- path,
- mc
- )
- );
+ lead_out_of_type(visitor, mc, path);
}
};
@@ -132,13 +120,7 @@
MetaClass mc;
NodePath path;
// enter the type
- visitor.get().enter_type(
- mc,
- meta_path::make_node_context(
- path,
- mc
- )
- );
+ lead_into_type(visitor, mc, path);
// visit the instance
lead_to_instance(visitor, mc, path, ptr_to_inst);
// go through all of the class' attributes
@@ -146,13 +128,7 @@
cref(show_attribs_to(visitor, ptr_to_inst))
);
// leave the type
- visitor.get().leave_type(
- mc,
- meta_path::make_node_context(
- path,
- mc
- )
- );
+ lead_out_of_type(visitor, mc, path);
}
};
@@ -205,13 +181,7 @@
MetaNamespace mn;
NodePath path;
// let the visitor enter the namespace
- visitor.get().enter_namespace(
- mn,
- meta_path::make_node_context(
- path,
- mn
- )
- );
+ lead_into_namespace(visitor, mn, path);
typedef typename MetaNamespace::template members<>::type
members;
// show the visitor through all the members of
@@ -223,13 +193,7 @@
))
);
// the visitor leaves the namespace
- visitor.get().leave_namespace(
- mn,
- meta_path::make_node_context(
- path,
- mn
- )
- );
+ lead_out_of_namespace(visitor, mn, path);
}
};
Modified: sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp (original)
+++ sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -176,10 +176,6 @@
print_node(MetaClass(), Context());
}
- // leave the class/type
- template <class MetaClass, class Context>
- void leave_type(MetaClass, Context) const { }
-
template <class MetaClass, class BaseClasses, class Context>
inline void enter_base_classes(MetaClass, BaseClasses, Context)
{
@@ -187,10 +183,6 @@
print_node(BaseClasses(), Context());
}
- template <class MetaClass, class BaseClasses, class Context>
- inline void leave_base_classes(MetaClass, BaseClasses, Context){ }
-
-
// enter a base class
template <class MetaInheritance, class Context>
void enter_base_class(MetaInheritance, Context)
@@ -198,11 +190,6 @@
print_node(MetaInheritance(), Context());
}
- // leave base class
- template <class MetaInheritance, class Context>
- void leave_base_class(MetaInheritance, Context){ }
-
-
template <class MetaClass, class MetaAttributes, class Context>
void enter_attributes(MetaClass, MetaAttributes, Context)
{
@@ -210,23 +197,12 @@
print_node(MetaAttributes(), Context());
}
- template <class MetaClass, class MetaAttributes, class Context>
- void leave_attributes(MetaClass, MetaAttributes, Context){ }
-
template <class MetaAttribute, class Context>
inline void enter_attribute(MetaAttribute, Context)
{
print_node(MetaAttribute(), Context());
}
- template <class MetaAttribute, class Context>
- void leave_attribute(MetaAttribute, Context){ }
-
- template <class MetaClass, class Context, typename InstanceType>
- void visit_instance(MetaClass, Context ctx, InstanceType* ptr_to_inst)
- {
- }
-
private:
template <template <class> class Axis, class MetaObject, class Context>
Modified: sandbox/mirror/doc/html/BOOST_CTS_LIT.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_CTS_LIT.html (original)
+++ sandbox/mirror/doc/html/BOOST_CTS_LIT.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_CTS_LIT(STRING_LITERAL)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2617201"></a><h2>Description</h2>
+<a name="id2617402"></a><h2>Description</h2>
<p>This macro is defined as follows:
</p>
<pre class="programlisting">
@@ -77,9 +77,9 @@
int main(void)
{
#ifdef <a class="link" href="BOOST_CTS_USE_WIDE_CHARS.html" title="Macro BOOST_CTS_USE_WIDE_CHARS">BOOST_CTS_USE_WIDE_CHARS</a>
- assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a>(<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo"), L"foo") == 0);
+ assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a>(<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo"), L"foo") == 0);
#else
- assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a>(<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo"), "foo") == 0);
+ assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a>(<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo"), "foo") == 0);
#endif
return 0;
}
@@ -90,7 +90,7 @@
int main(void)
{
- assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a>(<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo"), <a class="link" href="BOOST_CTS_STRINGIZE.html" title="Macro BOOST_CTS_STRINGIZE">BOOST_CTS_STRINGIZE</a>(foo)) == 0);
+ assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a>(<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo"), <a class="link" href="BOOST_CTS_STRINGIZE.html" title="Macro BOOST_CTS_STRINGIZE">BOOST_CTS_STRINGIZE</a>(foo)) == 0);
return 0;
}
</pre>
Modified: sandbox/mirror/doc/html/BOOST_CTS_LIT_LENGTH.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_CTS_LIT_LENGTH.html (original)
+++ sandbox/mirror/doc/html/BOOST_CTS_LIT_LENGTH.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -33,7 +33,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_CTS_LIT_LENGTH(STRING_LITERAL)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2617393"></a><h2>Description</h2>
+<a name="id2617593"></a><h2>Description</h2>
<p>This macro is defined as follows:
</p>
<pre class="programlisting">
@@ -63,7 +63,7 @@
{
assert(
<a class="link" href="BOOST_CTS_LIT_LENGTH.html" title="Macro BOOST_CTS_LIT_LENGTH">BOOST_CTS_LIT_LENGTH</a>("foo") ==
- ::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrlen_id2437435">bstrlen</a>(<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo"))
+ ::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrlen_id2543632">bstrlen</a>(<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo"))
);
return 0;
}
@@ -76,8 +76,8 @@
{
using namespace ::boost::cts;
<a class="link" href="boost/cts/bchar.html" title="Type definition bchar">bchar</a> foo[<a class="link" href="BOOST_CTS_LIT_LENGTH.html" title="Macro BOOST_CTS_LIT_LENGTH">BOOST_CTS_LIT_LENGTH</a>("foo")+1];
- <a class="link" href="char_type_switch/reference.html#boost.cts.bstrcpy_id2431675">bstrcpy</a>(foo, <a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo"));
- assert(<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a>(foo, <a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo")) == 0);
+ <a class="link" href="char_type_switch/reference.html#boost.cts.bstrcpy_id2527396">bstrcpy</a>(foo, <a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo"));
+ assert(<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a>(foo, <a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo")) == 0);
return 0;
}
</pre>
Modified: sandbox/mirror/doc/html/BOOST_CTS_STRINGIZE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_CTS_STRINGIZE.html (original)
+++ sandbox/mirror/doc/html/BOOST_CTS_STRINGIZE.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_CTS_STRINGIZE(ARG)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2617589"></a><h2>Description</h2>
+<a name="id2617789"></a><h2>Description</h2>
<p>This macro is defined as follows:
</p>
<pre class="programlisting">
@@ -77,9 +77,9 @@
int main(void)
{
#ifdef <a class="link" href="BOOST_CTS_USE_WIDE_CHARS.html" title="Macro BOOST_CTS_USE_WIDE_CHARS">BOOST_CTS_USE_WIDE_CHARS</a>
- assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a>(<a class="link" href="BOOST_CTS_STRINGIZE.html" title="Macro BOOST_CTS_STRINGIZE">BOOST_CTS_STRINGIZE</a>(foo), L"foo") == 0);
+ assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a>(<a class="link" href="BOOST_CTS_STRINGIZE.html" title="Macro BOOST_CTS_STRINGIZE">BOOST_CTS_STRINGIZE</a>(foo), L"foo") == 0);
#else
- assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a>(<a class="link" href="BOOST_CTS_STRINGIZE.html" title="Macro BOOST_CTS_STRINGIZE">BOOST_CTS_STRINGIZE</a>(foo), "foo") == 0);
+ assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a>(<a class="link" href="BOOST_CTS_STRINGIZE.html" title="Macro BOOST_CTS_STRINGIZE">BOOST_CTS_STRINGIZE</a>(foo), "foo") == 0);
#endif
return 0;
}
@@ -90,7 +90,7 @@
int main(void)
{
- assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a>(<a class="link" href="BOOST_CTS_STRINGIZE.html" title="Macro BOOST_CTS_STRINGIZE">BOOST_CTS_STRINGIZE</a>(foo), <a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo")) == 0);
+ assert(::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a>(<a class="link" href="BOOST_CTS_STRINGIZE.html" title="Macro BOOST_CTS_STRINGIZE">BOOST_CTS_STRINGIZE</a>(foo), <a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("foo")) == 0);
return 0;
}
</pre>
Modified: sandbox/mirror/doc/html/BOOST_CTS_USE_WIDE_CHARS.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_CTS_USE_WIDE_CHARS.html (original)
+++ sandbox/mirror/doc/html/BOOST_CTS_USE_WIDE_CHARS.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -33,7 +33,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_CTS_USE_WIDE_CHARS</pre></div>
<div class="refsect1" lang="en">
-<a name="id2616888"></a><h2>Description</h2>
+<a name="id2617088"></a><h2>Description</h2>
<p>If the <code class="computeroutput"><a class="link" href="BOOST_CTS_USE_WIDE_CHARS.html" title="Macro BOOST_CTS_USE_WIDE_CHARS">BOOST_CTS_USE_WIDE_CHARS</a></code> symbol is defined
then the type <code class="computeroutput"><a class="link" href="boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> is defined as <code class="computeroutput">wchar_t</code>,
otherwise it's defined as <code class="computeroutput">char</code>:
Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_CLASS.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_CLASS.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_CLASS.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_CLASS(CLASS)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2609787"></a><h2>Description</h2>
+<a name="id2609840"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_CLASS.html" title="Macro BOOST_MIRRORED_CLASS">BOOST_MIRRORED_CLASS</a></code> macro reflects a class
previously registered with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library.
The argument of this macro is a class name.
Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_GLOBAL_SCOPE.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -35,7 +35,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_GLOBAL_SCOPE()</pre></div>
<div class="refsect1" lang="en">
-<a name="id2604137"></a><h2>Description</h2>
+<a name="id2604190"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>()</code> macro can be used to get
the meta-data about the global scope, which is registered with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library by default.
</p>
Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_NAMESPACE.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -35,7 +35,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_NAMESPACE(FULL_NAMESPACE_NAME)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2603700"></a><h2>Description</h2>
+<a name="id2603753"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a></code> macro reflects a namespace
previously registered with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library by the means of
the <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a></code>.
@@ -98,7 +98,7 @@
{
using namespace ::std;
using namespace ::boost;
- cts::<a class="link" href="boost/cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ cts::<a class="link" href="boost/cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
bcout <<
<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("This is the global scope") <<
endl <<
@@ -113,7 +113,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
- cts::bostream& bcout = cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ cts::bostream& bcout = cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
bcout <<
<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("Namespace '") <<
Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -38,7 +38,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_TYPE(TYPE)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2608144"></a><h2>Description</h2>
+<a name="id2608197"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code> macro reflects a type
previously registered with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library or a type derived
from a registered type. The argument of this macro is a type.
Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -38,7 +38,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_TYPEDEF(FULL_NAMESPACE_NAME, TYPEDEF)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2608498"></a><h2>Description</h2>
+<a name="id2608551"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPEDEF.html" title="Macro BOOST_MIRRORED_TYPEDEF">BOOST_MIRRORED_TYPEDEF</a></code> macro reflects a type
that is registered with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library as a <code class="computeroutput">typedef</code>-ined
type.
Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF_GLOBAL_SCOPE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF_GLOBAL_SCOPE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF_GLOBAL_SCOPE.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -39,7 +39,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_TYPEDEF_GLOBAL_SCOPE(TYPEDEF)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2609120"></a><h2>Description</h2>
+<a name="id2609174"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPEDEF_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_TYPEDEF_GLOBAL_SCOPE">BOOST_MIRRORED_TYPEDEF_GLOBAL_SCOPE</a></code> macro reflects a type
that is registered with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library as a global-scope <code class="computeroutput">typedef</code>-ined
type.
Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF_GS.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF_GS.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEDEF_GS.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -39,7 +39,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_TYPEDEF_GS(TYPEDEF)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2608922"></a><h2>Description</h2>
+<a name="id2608976"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPEDEF_GS.html" title="Macro BOOST_MIRRORED_TYPEDEF_GS">BOOST_MIRRORED_TYPEDEF_GS</a></code> macro reflects a type
that is registered with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library as a global-scope <code class="computeroutput">typedef</code>-ined
type.
Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEOF.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEOF.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_TYPEOF.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -32,7 +32,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_TYPEOF(EXPRESSION)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2609205"></a><h2>Description</h2>
+<a name="id2609259"></a><h2>Description</h2>
This macro is basically just a shorter form of
<pre class="programlisting">
<a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(BOOST_TYPEOF(EXPRESSION))
Modified: sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE_NS.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE_NS.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRRORED_TYPE_NS.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -35,7 +35,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRRORED_TYPE_NS(FULL_NAMESPACE_NAME, TYPE)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2608302"></a><h2>Description</h2>
+<a name="id2608355"></a><h2>Description</h2>
<p><code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPE_NS.html" title="Macro BOOST_MIRRORED_TYPE_NS">BOOST_MIRRORED_TYPE_NS</a>(NAMESPACE, TYPE)</code>
is equivalent to <code class="computeroutput"><a class="link" href="BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(NAMESPACE :: TYPE)</code>.
</p>
Modified: sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_NAMESPACE.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRROR_REG_NAMESPACE(PP_SEQ)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2603098"></a><h2>Description</h2>
+<a name="id2603150"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_NAMESPACE.html" title="Macro BOOST_MIRROR_REG_NAMESPACE">BOOST_MIRROR_REG_NAMESPACE</a></code> macro registers a namespace with
the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library.
</p>
@@ -165,7 +165,7 @@
{
using namespace ::std;
using namespace ::boost;
- cts::<a class="link" href="boost/cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ cts::<a class="link" href="boost/cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
bcout <<
<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("This is the global scope") <<
endl <<
@@ -180,7 +180,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
- cts::bostream& bcout = cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ cts::bostream& bcout = cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
bcout <<
<a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("Namespace '") <<
Modified: sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -33,7 +33,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRROR_REG_TYPE(NAMESPACE, TYPE)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2605984"></a><h2>Description</h2>
+<a name="id2606037"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_TYPE.html" title="Macro BOOST_MIRROR_REG_TYPE">BOOST_MIRROR_REG_TYPE</a></code> macro registers a type with
the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library.
</p>
Modified: sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -33,7 +33,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRROR_REG_TYPEDEF(NAMESPACE, TYPEDEF)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2606727"></a><h2>Description</h2>
+<a name="id2606780"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_TYPEDEF.html" title="Macro BOOST_MIRROR_REG_TYPEDEF">BOOST_MIRROR_REG_TYPEDEF</a></code> macro registers a <code class="computeroutput">typedef</code>
defined in a namespace with the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library.
</p>
Modified: sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF_GLOBAL_SCOPE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF_GLOBAL_SCOPE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF_GLOBAL_SCOPE.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRROR_REG_TYPEDEF_GLOBAL_SCOPE(TYPEDEF)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2607584"></a><h2>Description</h2>
+<a name="id2607637"></a><h2>Description</h2>
<p>See the documentation for the <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_TYPEDEF_GS.html" title="Macro BOOST_MIRROR_REG_TYPEDEF_GS">BOOST_MIRROR_REG_TYPEDEF_GS</a></code>
macro for more details.
</p>
Modified: sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF_GS.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF_GS.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPEDEF_GS.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -35,7 +35,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRROR_REG_TYPEDEF_GS(TYPEDEF)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2607277"></a><h2>Description</h2>
+<a name="id2607329"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_TYPEDEF_GS.html" title="Macro BOOST_MIRROR_REG_TYPEDEF_GS">BOOST_MIRROR_REG_TYPEDEF_GS</a></code> macro registers a global scope <code class="computeroutput">typedef</code> with
the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library.
</p>
Modified: sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_EMB.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_EMB.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_EMB.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRROR_REG_TYPE_EMB(WRAPPER, TYPE)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2607642"></a><h2>Description</h2>
+<a name="id2607695"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_TYPE_EMB.html" title="Macro BOOST_MIRROR_REG_TYPE_EMB">BOOST_MIRROR_REG_TYPE_EMB</a></code> macro registers a type nested inside of a class with
the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library.
</p>
Modified: sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_EMBEDDED.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_EMBEDDED.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_EMBEDDED.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRROR_REG_TYPE_EMBEDDED(WRAPPER, TYPE)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2608047"></a><h2>Description</h2>
+<a name="id2608099"></a><h2>Description</h2>
<p>This macro is equivalent to the <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_TYPE_EMB.html" title="Macro BOOST_MIRROR_REG_TYPE_EMB">BOOST_MIRROR_REG_TYPE_EMB</a></code> macro.
See the documentation of <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_TYPE_EMB.html" title="Macro BOOST_MIRROR_REG_TYPE_EMB">BOOST_MIRROR_REG_TYPE_EMB</a></code> for more details.
</p>
Modified: sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_GLOBAL_SCOPE.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_GLOBAL_SCOPE.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_GLOBAL_SCOPE.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRROR_REG_TYPE_GLOBAL_SCOPE(TYPE)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2606661"></a><h2>Description</h2>
+<a name="id2606713"></a><h2>Description</h2>
<p>See the documentation for the <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_TYPE_GS.html" title="Macro BOOST_MIRROR_REG_TYPE_GS">BOOST_MIRROR_REG_TYPE_GS</a></code>
macro for more details.
</p>
Modified: sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_GS.html
==============================================================================
--- sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_GS.html (original)
+++ sandbox/mirror/doc/html/BOOST_MIRROR_REG_TYPE_GS.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">BOOST_MIRROR_REG_TYPE_GS(TYPE)</pre></div>
<div class="refsect1" lang="en">
-<a name="id2606329"></a><h2>Description</h2>
+<a name="id2606382"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="BOOST_MIRROR_REG_TYPE_GS.html" title="Macro BOOST_MIRROR_REG_TYPE_GS">BOOST_MIRROR_REG_TYPE_GS</a></code> macro registers a global scope type with
the <a class="link" href="mirror.html" title="Chapter 1. Mirror">Mirror</a> library.
</p>
Modified: sandbox/mirror/doc/html/boost/cts/bchar.html
==============================================================================
--- sandbox/mirror/doc/html/boost/cts/bchar.html (original)
+++ sandbox/mirror/doc/html/boost/cts/bchar.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -35,7 +35,7 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
<span class="bold"><strong>typedef</strong></span> <span class="bold"><strong>char</strong></span>-or-<span class="bold"><strong>wchar_t</strong></span> bchar;</pre></div>
<div class="refsect1" lang="en">
-<a name="id2617115"></a><h2>Description</h2>
+<a name="id2617315"></a><h2>Description</h2>
<p>The <code class="computeroutput">bchar</code> type is defined as follows:
</p>
<pre class="programlisting">
Modified: sandbox/mirror/doc/html/boost/cts/bchar_traits.html
==============================================================================
--- sandbox/mirror/doc/html/boost/cts/bchar_traits.html (original)
+++ sandbox/mirror/doc/html/boost/cts/bchar_traits.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
<span class="bold"><strong>typedef</strong></span> ::std::char_traits<<a class="link" href="bchar.html" title="Type definition bchar">bchar</a>> bchar_traits;</pre></div>
<div class="refsect1" lang="en">
-<a name="id2617918"></a><h2>Description</h2>
+<a name="id2618119"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="bchar_traits.html" title="Type definition bchar_traits">bchar_traits</a></code> type is defined as abbreviation for
<code class="computeroutput">::std::char_traits<<a class="link" href="bchar.html" title="Type definition bchar">bchar</a>></code>.
</p>
Modified: sandbox/mirror/doc/html/boost/cts/biostream.html
==============================================================================
--- sandbox/mirror/doc/html/boost/cts/biostream.html (original)
+++ sandbox/mirror/doc/html/boost/cts/biostream.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -33,13 +33,13 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
<span class="bold"><strong>typedef</strong></span> ::std::basic_iostream<<a class="link" href="bchar.html" title="Type definition bchar">bchar</a>, <a class="link" href="bchar_traits.html" title="Type definition bchar_traits">bchar_traits</a>> biostream;</pre></div>
<div class="refsect1" lang="en">
-<a name="id2619018"></a><h2>Description</h2>
+<a name="id2619219"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="biostream.html" title="Type definition biostream">biostream</a></code> type is defined as an abbreviation for
<code class="computeroutput">::std::basic_iostream<<a class="link" href="bchar.html" title="Type definition bchar">bchar</a>, <a class="link" href="bchar_traits.html" title="Type definition bchar_traits">bchar_traits</a>></code>.
</p>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="id2619059"></a>Examples</h6></div></div></div>
+<a name="id2619259"></a>Examples</h6></div></div></div>
<pre class="programlisting">
#include <assert.h>
#include <boost/char_type_switch/string.hpp>
@@ -49,8 +49,8 @@
{
using namespace ::std;
using namespace ::boost::cts;
- <a class="link" href="bistream.html" title="Type definition bistream">bistream</a>& in = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcin_id2479796">bcin</a>();
- <a class="link" href="bostream.html" title="Type definition bostream">bostream</a>& out = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ <a class="link" href="bistream.html" title="Type definition bistream">bistream</a>& in = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcin_id2452185">bcin</a>();
+ <a class="link" href="bostream.html" title="Type definition bostream">bostream</a>& out = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
bstring str;
out << <a class="link" href="../../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("Enter a string: ") << flush;
Modified: sandbox/mirror/doc/html/boost/cts/bistream.html
==============================================================================
--- sandbox/mirror/doc/html/boost/cts/bistream.html (original)
+++ sandbox/mirror/doc/html/boost/cts/bistream.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,13 +34,13 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
<span class="bold"><strong>typedef</strong></span> ::std::basic_istream<<a class="link" href="bchar.html" title="Type definition bchar">bchar</a>, <a class="link" href="bchar_traits.html" title="Type definition bchar_traits">bchar_traits</a>> bistream;</pre></div>
<div class="refsect1" lang="en">
-<a name="id2618602"></a><h2>Description</h2>
+<a name="id2618802"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="bistream.html" title="Type definition bistream">bistream</a></code> type is defined as an abbreviation for
<code class="computeroutput">::std::basic_istream<<a class="link" href="bchar.html" title="Type definition bchar">bchar</a>, <a class="link" href="bchar_traits.html" title="Type definition bchar_traits">bchar_traits</a>></code>.
</p>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="id2618642"></a>Examples</h6></div></div></div>
+<a name="id2618842"></a>Examples</h6></div></div></div>
<pre class="programlisting">
#include <assert.h>
#include <boost/char_type_switch/string.hpp>
@@ -50,8 +50,8 @@
{
using namespace ::std;
using namespace ::boost::cts;
- <a class="link" href="bistream.html" title="Type definition bistream">bistream</a>& in = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcin_id2479796">bcin</a>();
- <a class="link" href="bostream.html" title="Type definition bostream">bostream</a>& out = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ <a class="link" href="bistream.html" title="Type definition bistream">bistream</a>& in = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcin_id2452185">bcin</a>();
+ <a class="link" href="bostream.html" title="Type definition bostream">bostream</a>& out = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
bstring str;
out << <a class="link" href="../../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("Enter a string: ") << flush;
Modified: sandbox/mirror/doc/html/boost/cts/bostream.html
==============================================================================
--- sandbox/mirror/doc/html/boost/cts/bostream.html (original)
+++ sandbox/mirror/doc/html/boost/cts/bostream.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,13 +34,13 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
<span class="bold"><strong>typedef</strong></span> ::std::basic_ostream<<a class="link" href="bchar.html" title="Type definition bchar">bchar</a>, <a class="link" href="bchar_traits.html" title="Type definition bchar_traits">bchar_traits</a>> bostream;</pre></div>
<div class="refsect1" lang="en">
-<a name="id2618810"></a><h2>Description</h2>
+<a name="id2619010"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="bostream.html" title="Type definition bostream">bostream</a></code> type is defined as an abbreviation for
<code class="computeroutput">::std::basic_ostream<<a class="link" href="bchar.html" title="Type definition bchar">bchar</a>, <a class="link" href="bchar_traits.html" title="Type definition bchar_traits">bchar_traits</a>></code>.
</p>
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
-<a name="id2618850"></a>Examples</h6></div></div></div>
+<a name="id2619050"></a>Examples</h6></div></div></div>
<pre class="programlisting">
#include <assert.h>
#include <boost/char_type_switch/string.hpp>
@@ -50,8 +50,8 @@
{
using namespace ::std;
using namespace ::boost::cts;
- <a class="link" href="bistream.html" title="Type definition bistream">bistream</a>& in = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcin_id2479796">bcin</a>();
- <a class="link" href="bostream.html" title="Type definition bostream">bostream</a>& out = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ <a class="link" href="bistream.html" title="Type definition bistream">bistream</a>& in = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcin_id2452185">bcin</a>();
+ <a class="link" href="bostream.html" title="Type definition bostream">bostream</a>& out = <a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
bstring str;
out << <a class="link" href="../../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("Enter a string: ") << flush;
Modified: sandbox/mirror/doc/html/boost/cts/bstring.html
==============================================================================
--- sandbox/mirror/doc/html/boost/cts/bstring.html (original)
+++ sandbox/mirror/doc/html/boost/cts/bstring.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
<span class="bold"><strong>typedef</strong></span> ::std::basic_string<<a class="link" href="bchar.html" title="Type definition bchar">bchar</a>> bstring;</pre></div>
<div class="refsect1" lang="en">
-<a name="id2618051"></a><h2>Description</h2>
+<a name="id2618251"></a><h2>Description</h2>
<p>The <code class="computeroutput"><a class="link" href="bstring.html" title="Type definition bstring">bstring</a></code> type is defined as an abbreviation for
<code class="computeroutput">::std::basic_string<<a class="link" href="bchar.html" title="Type definition bchar">bchar</a>></code>.
</p>
Modified: sandbox/mirror/doc/html/boost/mirror/meta_class.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/meta_class.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/meta_class.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -42,16 +42,16 @@
<span class="bold"><strong>class</strong></span> <a class="link" href="meta_class.html" title="Class template meta_class">meta_class</a> : <span class="bold"><strong>public</strong></span> <a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a><Class>
{
<span class="bold"><strong>public</strong></span>:
- <span class="emphasis"><em>// <a class="link" href="meta_class.html#id2520122-bbtypes">types</a></em></span>
+ <span class="emphasis"><em>// <a class="link" href="meta_class.html#id2468585-bbtypes">types</a></em></span>
<span class="bold"><strong>typedef</strong></span> meta_base_classes<<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_class.html#boost.mirror.meta_class.base_classes">base_classes</a>;
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_class_attributes.html" title="Class template meta_class_attributes">meta_class_attributes</a><<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_class.html#boost.mirror.meta_class.attributes">attributes</a>;
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_class_all_attributes.html" title="Class template meta_class_all_attributes">meta_class_all_attributes</a><<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_class.html#boost.mirror.meta_class.all_attributes">all_attributes</a>;
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2609578"></a><h2>Description</h2>
+<a name="id2609632"></a><h2>Description</h2>
<div class="refsect2" lang="en">
-<a name="id2609582"></a><h3>
-<a name="id2520122-bbtypes"></a><code class="computeroutput">meta_class</code> public types</h3>
+<a name="id2609635"></a><h3>
+<a name="id2468585-bbtypes"></a><code class="computeroutput">meta_class</code> public types</h3>
<div class="orderedlist"><ol type="1">
<li>
<p>
Modified: sandbox/mirror/doc/html/boost/mirror/meta_class_all_attributes.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/meta_class_all_attributes.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/meta_class_all_attributes.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -44,11 +44,11 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> unspecified>
<span class="bold"><strong>class</strong></span> <a class="link" href="meta_class_all_attributes.html" title="Class template meta_class_all_attributes">meta_class_all_attributes</a> {
<span class="bold"><strong>public</strong></span>:
- <span class="emphasis"><em>// <a class="link" href="meta_class_all_attributes.html#id2384444-bbtypes">types</a></em></span>
+ <span class="emphasis"><em>// <a class="link" href="meta_class_all_attributes.html#id2398256-bbtypes">types</a></em></span>
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_class.html" title="Class template meta_class">meta_class</a><<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_class_all_attributes.html#boost.mirror.meta_class_all_attributes.scope">scope</a>;
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2612016"></a><h2>Description</h2>
+<a name="id2612073"></a><h2>Description</h2>
<p>
</p>
<div class="section" lang="en">
@@ -61,8 +61,8 @@
</div>
</div>
<div class="refsect2" lang="en">
-<a name="id2612047"></a><h3>
-<a name="id2384444-bbtypes"></a><code class="computeroutput">meta_class_all_attributes</code> public types</h3>
+<a name="id2612104"></a><h3>
+<a name="id2398256-bbtypes"></a><code class="computeroutput">meta_class_all_attributes</code> public types</h3>
<div class="orderedlist"><ol type="1"><li>
<p>
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_class.html" title="Class template meta_class">meta_class</a><<span class="emphasis"><em>unspecified</em></span>> <a name="boost.mirror.meta_class_all_attributes.scope"></a>scope;</p>
Modified: sandbox/mirror/doc/html/boost/mirror/meta_class_attribute.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/meta_class_attribute.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/meta_class_attribute.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -37,7 +37,7 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> unspecified>
<span class="bold"><strong>class</strong></span> <a class="link" href="meta_class_attribute.html" title="Class template meta_class_attribute">meta_class_attribute</a> {
<span class="bold"><strong>public</strong></span>:
- <span class="emphasis"><em>// <a class="link" href="meta_class_attribute.html#id2522189-bbtypes">types</a></em></span>
+ <span class="emphasis"><em>// <a class="link" href="meta_class_attribute.html#id2563755-bbtypes">types</a></em></span>
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_class.html" title="Class template meta_class">meta_class</a><<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_class_attribute.html#boost.mirror.meta_class_attribute.scope">scope</a>;
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_class_attributes.html" title="Class template meta_class_attributes">meta_class_attributes</a><<span class="emphasis"><em>unspecified</em></span>>-or-<a class="link" href="meta_class_all_attributes.html" title="Class template meta_class_all_attributes">meta_class_all_attributes</a><<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_class_attribute.html#boost.mirror.meta_class_attribute.container">container</a>;
<span class="bold"><strong>typedef</strong></span> container <a class="link" href="meta_class_attribute.html#boost.mirror.meta_class_attribute.meta_attributes">meta_attributes</a>;
@@ -45,18 +45,18 @@
<span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a class="link" href="meta_class_attribute.html#boost.mirror.meta_class_attribute.type">type</a>;
<span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a class="link" href="meta_class_attribute.html#boost.mirror.meta_class_attribute.typedef_or_type">typedef_or_type</a>;
<span class="bold"><strong>typedef</strong></span> meta_attribute_traits<<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_class_attribute.html#boost.mirror.meta_class_attribute.traits">traits</a>;
- <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_class_attribute.html#id2562696-bb">base_name</a>();
- <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_class_attribute.html#id2559037-bb">full_name</a>();
+ <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_class_attribute.html#id2396065-bb">base_name</a>();
+ <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_class_attribute.html#id2515183-bb">full_name</a>();
<span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT>
<span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span>
- <a class="link" href="meta_class_attribute.html#id2458013-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
- <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a class="link" href="meta_class_attribute.html#id2540705-bb">get</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type&);
+ <a class="link" href="meta_class_attribute.html#id2489536-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
+ <span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a class="link" href="meta_class_attribute.html#id2565819-bb">get</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type&);
<span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> DestType>
- <span class="type">DestType&</span> <a class="link" href="meta_class_attribute.html#id2393453-bb">query</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type&, DestType&);
- <span class="type"><span class="bold"><strong>void</strong></span></span> <a class="link" href="meta_class_attribute.html#id2524989-bb">set</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type&, type);
+ <span class="type">DestType&</span> <a class="link" href="meta_class_attribute.html#id2386504-bb">query</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type&, DestType&);
+ <span class="type"><span class="bold"><strong>void</strong></span></span> <a class="link" href="meta_class_attribute.html#id2449646-bb">set</a>(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type&, type);
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2610430"></a><h2>Description</h2>
+<a name="id2610484"></a><h2>Description</h2>
<p>This template allows to get both compile-time and run-time meta-data about
the member attribute of a class. At compile time the scope, position, type and several other traits of the attribute
can be inspected. At run-time one can get the base and full name of the attribute and to generically get and set its value.
@@ -71,8 +71,8 @@
</div>
</div>
<div class="refsect2" lang="en">
-<a name="id2610467"></a><h3>
-<a name="id2522189-bbtypes"></a><code class="computeroutput">meta_class_attribute</code> public types</h3>
+<a name="id2610521"></a><h3>
+<a name="id2563755-bbtypes"></a><code class="computeroutput">meta_class_attribute</code> public types</h3>
<div class="orderedlist"><ol type="1">
<li>
<p>
@@ -129,15 +129,15 @@
</li>
</ol></div>
</div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2562696-bb"></a>base_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2396065-bb"></a>base_name();</pre>
<p>This static member function returns the base name of the
attribute reflected by the <code class="computeroutput"><a class="link" href="meta_class_attribute.html" title="Class template meta_class_attribute">meta_class_attribute</a></code>.
When a full attribute name
<span class="bold"><strong>including</strong></span> the class name, that the
reflected member attribute belongs to,
- is needed use the <code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2559037-bb">full_name</a></code> member function
+ is needed use the <code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2515183-bb">full_name</a></code> member function
instead.</p>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2559037-bb"></a>full_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2515183-bb"></a>full_name();</pre>
<p>This static member function returns the full name of the
attribute reflected by the <code class="computeroutput"><a class="link" href="meta_class_attribute.html" title="Class template meta_class_attribute">meta_class_attribute</a></code>
including the full name of the class that the attribute belongs to. For example:
@@ -156,7 +156,7 @@
<p>
returns <code class="computeroutput">"::std::pair< int, double >::first"</code>. When the base attribute name
<span class="bold"><strong>without</strong></span> the full class name
- is needed use the <code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2562696-bb">base_name</a></code> member function
+ is needed use the <code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2396065-bb">base_name</a></code> member function
instead.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -173,7 +173,7 @@
</table></div>
<pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT>
<span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span>
- <a name="id2458013-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
+ <a name="id2489536-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
<p>This static member template function returns either the base name
or the full name of the attribute reflected by this
<code class="computeroutput"><a class="link" href="meta_class_attribute.html" title="Class template meta_class_attribute">meta_class_attribute</a></code>,
@@ -182,7 +182,7 @@
<code class="computeroutput">::std::string</code> or <code class="computeroutput">::std::wstring</code> based
on the type of the second argument.
</p>
-<pre class="literallayout"><span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a name="id2540705-bb"></a>get(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type& instance);</pre>
+<pre class="literallayout"><span class="type"><span class="emphasis"><em>unspecified</em></span></span> <a name="id2565819-bb"></a>get(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type& instance);</pre>
<p>This static member function returns the value of the attribute reflected
by this <code class="computeroutput"><a class="link" href="meta_class_attribute.html" title="Class template meta_class_attribute">meta_class_attribute</a></code> when given
an <code class="computeroutput">instance</code> of the class that the attribute belongs to:
@@ -199,13 +199,13 @@
//
// create an instance of the pair
pair p(10, 20.0);
-assert(meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(p) == p.first);
-assert(meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(p) == p.second);
+assert(meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(p) == p.first);
+assert(meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(p) == p.second);
</pre>
<p>
</p>
<pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> DestType>
- <span class="type">DestType&</span> <a name="id2393453-bb"></a>query(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type& instance,
+ <span class="type">DestType&</span> <a name="id2386504-bb"></a>query(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type& instance,
DestType& destination);</pre>
<p>This static member function assigns the value of the attribute reflected
by this <code class="computeroutput"><a class="link" href="meta_class_attribute.html" title="Class template meta_class_attribute">meta_class_attribute</a></code> (when given
@@ -229,15 +229,15 @@
long first = 30;
float second = 40.0f;
// query the values and check them
-assert(meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2393453-bb">query</a></code>(p, first) == 10);
-assert(meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2393453-bb">query</a></code>(p, second) == 20.0f);
+assert(meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2386504-bb">query</a></code>(p, first) == 10);
+assert(meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2386504-bb">query</a></code>(p, second) == 20.0f);
// and double check the variables
assert(first == p.first);
assert(second == p.second);
</pre>
<p>
</p>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id2524989-bb"></a>set(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type& instance, type value);</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id2449646-bb"></a>set(<span class="bold"><strong>const</strong></span> <span class="bold"><strong>typename</strong></span> scope::reflected_type& instance, type value);</pre>
<p>This static member function assigns the given value to the attribute reflected
by this <code class="computeroutput"><a class="link" href="meta_class_attribute.html" title="Class template meta_class_attribute">meta_class_attribute</a></code> when given
an <code class="computeroutput">instance</code> of the class that the attribute belongs to:
@@ -256,14 +256,14 @@
pair p(10, 20.0f);
pair r(30, 40.0f);
//
-assert(meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(p) != meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(r));
-assert(meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(p) != meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(r));
+assert(meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(p) != meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(r));
+assert(meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(p) != meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(r));
// set new values
-meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2524989-bb">set</a></code>(p, meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(r));
-meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2524989-bb">set</a></code>(p, meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(r));
+meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2449646-bb">set</a></code>(p, meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(r));
+meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2449646-bb">set</a></code>(p, meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(r));
// and check the values
-assert(meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(p) == meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(r));
-assert(meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(p) == meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2540705-bb">get</a></code>(r));
+assert(meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(p) == meta_pair_first::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(r));
+assert(meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(p) == meta_pair_second::<code class="computeroutput"><a class="link" href="meta_class_attribute.html#id2565819-bb">get</a></code>(r));
// and double check them
assert(p.first == r.first);
assert(p.second == r.second);
Modified: sandbox/mirror/doc/html/boost/mirror/meta_class_attributes.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/meta_class_attributes.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/meta_class_attributes.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -44,11 +44,11 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> unspecified>
<span class="bold"><strong>class</strong></span> <a class="link" href="meta_class_attributes.html" title="Class template meta_class_attributes">meta_class_attributes</a> {
<span class="bold"><strong>public</strong></span>:
- <span class="emphasis"><em>// <a class="link" href="meta_class_attributes.html#id2478342-bbtypes">types</a></em></span>
+ <span class="emphasis"><em>// <a class="link" href="meta_class_attributes.html#id2497265-bbtypes">types</a></em></span>
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_class.html" title="Class template meta_class">meta_class</a><<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_class_attributes.html#boost.mirror.meta_class_attributes.scope">scope</a>;
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2611752"></a><h2>Description</h2>
+<a name="id2611808"></a><h2>Description</h2>
<p>
</p>
<div class="section" lang="en">
@@ -61,8 +61,8 @@
</div>
</div>
<div class="refsect2" lang="en">
-<a name="id2611784"></a><h3>
-<a name="id2478342-bbtypes"></a><code class="computeroutput">meta_class_attributes</code> public types</h3>
+<a name="id2611840"></a><h3>
+<a name="id2497265-bbtypes"></a><code class="computeroutput">meta_class_attributes</code> public types</h3>
<div class="orderedlist"><ol type="1"><li>
<p>
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_class.html" title="Class template meta_class">meta_class</a><<span class="emphasis"><em>unspecified</em></span>> <a name="boost.mirror.meta_class_attributes.scope"></a>scope;</p>
Modified: sandbox/mirror/doc/html/boost/mirror/meta_inheritance.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/meta_inheritance.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/meta_inheritance.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -36,19 +36,19 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> unspecified>
<span class="bold"><strong>class</strong></span> <a class="link" href="meta_inheritance.html" title="Class template meta_inheritance">meta_inheritance</a> {
<span class="bold"><strong>public</strong></span>:
- <span class="emphasis"><em>// <a class="link" href="meta_inheritance.html#id2545949-bbtypes">types</a></em></span>
+ <span class="emphasis"><em>// <a class="link" href="meta_inheritance.html#id2556880-bbtypes">types</a></em></span>
<span class="bold"><strong>typedef</strong></span> mpl::int_<<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_inheritance.html#boost.mirror.meta_inheritance.position">position</a>;
<span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a class="link" href="meta_inheritance.html#boost.mirror.meta_inheritance.base_class">base_class</a>;
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_class.html" title="Class template meta_class">meta_class</a>< base_class > <a class="link" href="meta_inheritance.html#boost.mirror.meta_inheritance.meta_base_class">meta_base_class</a>;
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2612306"></a><h2>Description</h2>
+<a name="id2612363"></a><h2>Description</h2>
<p>This template allows to get compile-time meta-data about
the inheritance of a base class of a class.
</p>
<div class="refsect2" lang="en">
-<a name="id2612317"></a><h3>
-<a name="id2545949-bbtypes"></a><code class="computeroutput">meta_inheritance</code> public types</h3>
+<a name="id2612374"></a><h3>
+<a name="id2556880-bbtypes"></a><code class="computeroutput">meta_inheritance</code> public types</h3>
<div class="orderedlist"><ol type="1">
<li>
<p>
Modified: sandbox/mirror/doc/html/boost/mirror/meta_namespace.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/meta_namespace.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/meta_namespace.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -45,17 +45,17 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> NamespacePlaceholder>
<span class="bold"><strong>class</strong></span> <a class="link" href="meta_namespace.html" title="Class template meta_namespace">meta_namespace</a> {
<span class="bold"><strong>public</strong></span>:
- <span class="emphasis"><em>// <a class="link" href="meta_namespace.html#id2425041-bbtypes">types</a></em></span>
+ <span class="emphasis"><em>// <a class="link" href="meta_namespace.html#id2513092-bbtypes">types</a></em></span>
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_namespace.html" title="Class template meta_namespace">meta_namespace</a><<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_namespace.html#boost.mirror.meta_namespace.scope">scope</a>;
<span class="bold"><strong>typedef</strong></span> <span class="emphasis"><em>unspecified</em></span> <a class="link" href="meta_namespace.html#boost.mirror.meta_namespace.ancestors">ancestors</a>;
- <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_namespace.html#id2400420-bb">base_name</a>();
- <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_namespace.html#id2564436-bb">full_name</a>();
+ <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_namespace.html#id2558738-bb">base_name</a>();
+ <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_namespace.html#id2496660-bb">full_name</a>();
<span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT>
<span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span>
- <a class="link" href="meta_namespace.html#id2531095-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
+ <a class="link" href="meta_namespace.html#id2520204-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2601866"></a><h2>Description</h2>
+<a name="id2601918"></a><h2>Description</h2>
<p>The specializations of <code class="computeroutput"><a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a></code> can
be used to get meta-information about the reflected types, some at compile-time and some at run-time.
The following examples show type reflection and basic
@@ -81,7 +81,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
- cts::bostream& bcout = cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ cts::bostream& bcout = cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
// several namespaces are pre-registered
bcout << <a class="link" href="../../BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a>() ::base_name() << endl;
@@ -121,7 +121,7 @@
{
using namespace ::std;
using namespace ::boost;
- cts::<a class="link" href="../cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ cts::<a class="link" href="../cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
bcout <<
<a class="link" href="../../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("ancestor ") <<
ctr++ <<
@@ -141,7 +141,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
- cts::<a class="link" href="../cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ cts::<a class="link" href="../cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
//
typedef <a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a>(::boost::mirror) meta_boost_mirror;
//
@@ -165,9 +165,9 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
<a name="mirror.meta_namespace.reference.sample03"></a>Example - Generic namespace name getter</h6></div></div></div>
-<p>The <code class="computeroutput"><a class="link" href="meta_namespace.html#id2400420-bb">base_name</a></code> and the
- <code class="computeroutput"><a class="link" href="meta_namespace.html#id2564436-bb">full_name</a></code> methods
- are convenient but not very generic. The <code class="computeroutput"><a class="link" href="meta_namespace.html#id2531095-bb">get_name</a></code>
+<p>The <code class="computeroutput"><a class="link" href="meta_namespace.html#id2558738-bb">base_name</a></code> and the
+ <code class="computeroutput"><a class="link" href="meta_namespace.html#id2496660-bb">full_name</a></code> methods
+ are convenient but not very generic. The <code class="computeroutput"><a class="link" href="meta_namespace.html#id2520204-bb">get_name</a></code>
member function allows to specify the character type of the returned string and
to specify whether a full or just the base namespace name should be returned, based
on compile time arguments.
@@ -213,8 +213,8 @@
</div>
</div>
<div class="refsect2" lang="en">
-<a name="id2602359"></a><h3>
-<a name="id2425041-bbtypes"></a><code class="computeroutput">meta_namespace</code> public types</h3>
+<a name="id2602411"></a><h3>
+<a name="id2513092-bbtypes"></a><code class="computeroutput">meta_namespace</code> public types</h3>
<div class="orderedlist"><ol type="1">
<li>
<p>
@@ -288,7 +288,7 @@
</li>
</ol></div>
</div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2400420-bb"></a>base_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2558738-bb"></a>base_name();</pre>
<p>This static member function returns the base name of the
namespace reflected by a <code class="computeroutput"><a class="link" href="meta_namespace.html" title="Class template meta_namespace">meta_namespace</a></code>.
For example the base namespace name "returned" by the invocation of
@@ -298,9 +298,9 @@
<p>
is <code class="computeroutput">"mirror"</code>. When a full namespace name
<span class="bold"><strong>with</strong></span> the nested name specifier
- is needed use the <code class="computeroutput"><a class="link" href="meta_namespace.html#id2564436-bb">full_name</a></code> member function
+ is needed use the <code class="computeroutput"><a class="link" href="meta_namespace.html#id2496660-bb">full_name</a></code> member function
instead.</p>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2564436-bb"></a>full_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2496660-bb"></a>full_name();</pre>
<p>This static member function returns the full name of the
namespace reflected by a <code class="computeroutput"><a class="link" href="meta_namespace.html" title="Class template meta_namespace">meta_namespace</a></code>
with the nested name specifier. For example:
@@ -310,7 +310,7 @@
<p>
returns <code class="computeroutput">"::boost::mirror"</code>. When the base namespace name
<span class="bold"><strong>without</strong></span> the nested name specifier
- is needed use the <code class="computeroutput"><a class="link" href="meta_namespace.html#id2400420-bb">base_name</a></code> member function
+ is needed use the <code class="computeroutput"><a class="link" href="meta_namespace.html#id2558738-bb">base_name</a></code> member function
instead.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -327,7 +327,7 @@
</table></div>
<pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT>
<span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span>
- <a name="id2531095-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
+ <a name="id2520204-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
<p>This static member template function returns either the base name
<span class="bold"><strong>without</strong></span> the nested name specifier
or the full name <span class="bold"><strong>with</strong></span> the
@@ -342,14 +342,14 @@
<pre class="programlisting"><code class="computeroutput"><a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a></code>(::boost::mirror) :: get_name(::boost::mpl::false_(), ::std::char_traits<char>())
</pre>
<p> is equivalent to calling the
- <code class="computeroutput"><a class="link" href="meta_namespace.html#id2400420-bb">base_name</a></code> member function with the
+ <code class="computeroutput"><a class="link" href="meta_namespace.html#id2558738-bb">base_name</a></code> member function with the
<code class="computeroutput"><a class="link" href="../../BOOST_CTS_USE_WIDE_CHARS.html" title="Macro BOOST_CTS_USE_WIDE_CHARS">BOOST_CTS_USE_WIDE_CHARS</a></code> symbol undefined,
which returns a <code class="computeroutput">::std::string</code> holding the string <code class="computeroutput">"mirror"</code> and calling
</p>
<pre class="programlisting"><code class="computeroutput"><a class="link" href="../../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a></code>(::boost::mirror) :: get_name(::boost::mpl::true_(), ::std::char_traits<wchar_t>())
</pre>
<p> is equivalent to calling the
- <code class="computeroutput"><a class="link" href="meta_namespace.html#id2564436-bb">full_name</a></code> method with the
+ <code class="computeroutput"><a class="link" href="meta_namespace.html#id2496660-bb">full_name</a></code> method with the
<code class="computeroutput"><a class="link" href="../../BOOST_CTS_USE_WIDE_CHARS.html" title="Macro BOOST_CTS_USE_WIDE_CHARS">BOOST_CTS_USE_WIDE_CHARS</a></code> symbol defined,
which returns a <code class="computeroutput">::std::wstring</code> holding this string <code class="computeroutput">L"::boost::mirror"</code>.
</p>
Modified: sandbox/mirror/doc/html/boost/mirror/meta_type.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/meta_type.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/meta_type.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -44,17 +44,17 @@
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>typename</strong></span> Type>
<span class="bold"><strong>class</strong></span> <a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a> {
<span class="bold"><strong>public</strong></span>:
- <span class="emphasis"><em>// <a class="link" href="meta_type.html#id2490670-bbtypes">types</a></em></span>
+ <span class="emphasis"><em>// <a class="link" href="meta_type.html#id2484468-bbtypes">types</a></em></span>
<span class="bold"><strong>typedef</strong></span> Type <a class="link" href="meta_type.html#boost.mirror.meta_type.reflected_type">reflected_type</a>;
<span class="bold"><strong>typedef</strong></span> <a class="link" href="meta_namespace.html" title="Class template meta_namespace">meta_namespace</a><<span class="emphasis"><em>unspecified</em></span>>-or-<a class="link" href="meta_class.html" title="Class template meta_class">meta_class</a><<span class="emphasis"><em>unspecified</em></span>> <a class="link" href="meta_type.html#boost.mirror.meta_type.scope">scope</a>;
- <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_type.html#id2491967-bb">base_name</a>();
- <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_type.html#id2545492-bb">full_name</a>();
+ <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_type.html#id2508229-bb">base_name</a>();
+ <span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a class="link" href="meta_type.html#id2525221-bb">full_name</a>();
<span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT>
<span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span>
- <a class="link" href="meta_type.html#id2476498-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
+ <a class="link" href="meta_type.html#id2507724-bb">get_name</a>(::boost::mpl::bool_<FullName>, ::std::char_traits<CharT>);
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2604704"></a><h2>Description</h2>
+<a name="id2604757"></a><h2>Description</h2>
<p>The specializations of <code class="computeroutput"><a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a></code> can
be used to get meta-information about the reflected types, some at compile-time and some at run-time.
The following examples show type reflection and basic
@@ -95,7 +95,7 @@
typedef <a class="link" href="../../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a>(T) meta_T;
// print out the full type name
- cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>() <<
+ cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>() <<
<a class="link" href="../../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("The full type name is: ") <<
meta_T::full_name() <<
endl;
@@ -124,7 +124,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
- cts::<a class="link" href="../cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ cts::<a class="link" href="../cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
// print out the base type name
bcout <<
<a class="link" href="../../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("The type name is: ") <<
@@ -197,7 +197,7 @@
{
using namespace ::std;
using namespace ::boost;
- cts::<a class="link" href="../cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ cts::<a class="link" href="../cts/bostream.html" title="Type definition bostream">bostream</a>& bcout = cts::<a class="link" href="../../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a>();
bcout << <a class="link" href="../../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("type: '");
bcout << MetaType::base_name();
bcout << <a class="link" href="../../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>("' defined in: '");
@@ -231,9 +231,9 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h6 class="title">
<a name="mirror.meta_type.reference.sample04"></a>Example - Generic typename getter</h6></div></div></div>
-<p>The <code class="computeroutput"><a class="link" href="meta_type.html#id2491967-bb">base_name</a></code> and the
- <code class="computeroutput"><a class="link" href="meta_type.html#id2545492-bb">full_name</a></code> member functions
- are convenient but not very generic. The <code class="computeroutput"><a class="link" href="meta_type.html#id2476498-bb">get_name</a></code>
+<p>The <code class="computeroutput"><a class="link" href="meta_type.html#id2508229-bb">base_name</a></code> and the
+ <code class="computeroutput"><a class="link" href="meta_type.html#id2525221-bb">full_name</a></code> member functions
+ are convenient but not very generic. The <code class="computeroutput"><a class="link" href="meta_type.html#id2507724-bb">get_name</a></code>
method allows to specify the character type of the returned string and
to specify whether a full or just the base name should be returned, based
on compile time arguments.
@@ -279,8 +279,8 @@
</div>
</div>
<div class="refsect2" lang="en">
-<a name="id2605343"></a><h3>
-<a name="id2490670-bbtypes"></a><code class="computeroutput">meta_type</code> public types</h3>
+<a name="id2605395"></a><h3>
+<a name="id2484468-bbtypes"></a><code class="computeroutput">meta_type</code> public types</h3>
<div class="orderedlist"><ol type="1">
<li>
<p>
@@ -299,7 +299,7 @@
</li>
</ol></div>
</div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2491967-bb"></a>base_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2508229-bb"></a>base_name();</pre>
<p>This static member function returns the base name of the
type reflected by <code class="computeroutput"><a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a></code>
without the nested name specifier. For example:
@@ -313,7 +313,7 @@
<p>
returns simply <code class="computeroutput">"string"</code>. When a full type name
<span class="bold"><strong>with</strong></span> the nested name specifier
- is needed use the <code class="computeroutput"><a class="link" href="meta_type.html#id2545492-bb">full_name</a></code> member function
+ is needed use the <code class="computeroutput"><a class="link" href="meta_type.html#id2525221-bb">full_name</a></code> member function
instead.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -329,7 +329,7 @@
</p></td>
</tr></tbody>
</table></div>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2545492-bb"></a>full_name();</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>const</strong></span> cts::<a class="link" href="../cts/bstring.html" title="Type definition bstring">bstring</a>&</span> <a name="id2525221-bb"></a>full_name();</pre>
<p>This static member function returns the full name of the
type reflected by <code class="computeroutput"><a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a></code>
with the nested name specifier. For example:
@@ -343,7 +343,7 @@
<p>
returns <code class="computeroutput">"::std::string"</code>. When the base type name
<span class="bold"><strong>without</strong></span> the nested name specifier
- is needed use the <code class="computeroutput"><a class="link" href="meta_type.html#id2491967-bb">base_name</a></code> member function
+ is needed use the <code class="computeroutput"><a class="link" href="meta_type.html#id2508229-bb">base_name</a></code> member function
instead.</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -361,7 +361,7 @@
</table></div>
<pre class="literallayout"><span class="bold"><strong>template</strong></span><<span class="bold"><strong>bool</strong></span> FullName, <span class="bold"><strong>typename</strong></span> CharT>
<span class="type"><span class="bold"><strong>const</strong></span> ::std::basic_string<CharT>&</span>
- <a name="id2476498-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
+ <a name="id2507724-bb"></a>get_name(::boost::mpl::bool_<FullName> full, ::std::char_traits<CharT> cht);</pre>
<p>This static member template function returns either the base name
<span class="bold"><strong>without</strong></span> the nested name specifier
or the full name <span class="bold"><strong>with</strong></span> the
@@ -379,7 +379,7 @@
<pre class="programlisting"><code class="computeroutput"><a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a></code> < ::std::string > :: get_name(::boost::mpl::false_(), ::std::char_traits<char>())</pre>
<p>
is equivalent to calling the
- <code class="computeroutput"><a class="link" href="meta_type.html#id2491967-bb">base_name</a></code> member function with the
+ <code class="computeroutput"><a class="link" href="meta_type.html#id2508229-bb">base_name</a></code> member function with the
<code class="computeroutput"><a class="link" href="../../BOOST_CTS_USE_WIDE_CHARS.html" title="Macro BOOST_CTS_USE_WIDE_CHARS">BOOST_CTS_USE_WIDE_CHARS</a></code> symbol undefined,
which returns a <code class="computeroutput">::std::string</code> containing <code class="computeroutput">"string"</code> and calling
</p>
@@ -388,7 +388,7 @@
</p>
<pre class="programlisting"><code class="computeroutput"><a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a></code> < ::std::string > :: get_name( ::boost::mpl::true_(), ::std::char_traits<wchar_t>())</pre>
<p> is equivalent to calling the
- <code class="computeroutput"><a class="link" href="meta_type.html#id2545492-bb">full_name</a></code> method with the
+ <code class="computeroutput"><a class="link" href="meta_type.html#id2525221-bb">full_name</a></code> method with the
<code class="computeroutput"><a class="link" href="../../BOOST_CTS_USE_WIDE_CHARS.html" title="Macro BOOST_CTS_USE_WIDE_CHARS">BOOST_CTS_USE_WIDE_CHARS</a></code> symbol defined,
which returns a <code class="computeroutput">::std::wstring</code> containing <code class="computeroutput">L"::std::string"</code>.
</p>
Modified: sandbox/mirror/doc/html/boost/mirror/reflects_class.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/reflects_class.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_class.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -37,7 +37,7 @@
<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_class.html" title="Class template reflects_class">reflects_class</a> : <span class="bold"><strong>public</strong></span> <span class="type">false_type-or-true_type</span> {
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2613754"></a><h2>Description</h2>
+<a name="id2613811"></a><h2>Description</h2>
<p>This template can be used to distinguish whether the opaque <code class="computeroutput">MetaObject</code> type reflects a class
and thus is an instantiation of <code class="computeroutput"><a class="link" href="meta_class.html" title="Class template meta_class">meta_class</a></code>.
</p>
Modified: sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_global_scope.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -38,7 +38,7 @@
<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_global_scope.html" title="Class template reflects_global_scope">reflects_global_scope</a> : <span class="bold"><strong>public</strong></span> <span class="type">false_type-or-true_type</span> {
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2613042"></a><h2>Description</h2>
+<a name="id2613099"></a><h2>Description</h2>
<p>This template can be used to distinguish whether the opaque <code class="computeroutput">MetaObject</code> type reflects the global scope
and thus is an instantiation of <code class="computeroutput"><a class="link" href="meta_namespace.html" title="Class template meta_namespace">meta_namespace</a></code> for the global scope.
</p>
Modified: sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_namespace.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -37,7 +37,7 @@
<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_namespace.html" title="Class template reflects_namespace">reflects_namespace</a> : <span class="bold"><strong>public</strong></span> <span class="type">false_type-or-true_type</span> {
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2612612"></a><h2>Description</h2>
+<a name="id2612669"></a><h2>Description</h2>
<p>This template can be used to distinguish whether the opaque <code class="computeroutput">MetaObject</code> type reflects a namespace
and thus is an instantiation of <code class="computeroutput"><a class="link" href="meta_namespace.html" title="Class template meta_namespace">meta_namespace</a></code>.
</p>
Modified: sandbox/mirror/doc/html/boost/mirror/reflects_type.html
==============================================================================
--- sandbox/mirror/doc/html/boost/mirror/reflects_type.html (original)
+++ sandbox/mirror/doc/html/boost/mirror/reflects_type.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -37,7 +37,7 @@
<span class="bold"><strong>class</strong></span> <a class="link" href="reflects_type.html" title="Class template reflects_type">reflects_type</a> : <span class="bold"><strong>public</strong></span> <span class="type">false_type-or-true_type</span> {
};</pre></div>
<div class="refsect1" lang="en">
-<a name="id2613502"></a><h2>Description</h2>
+<a name="id2613559"></a><h2>Description</h2>
<p>This template can be used to distinguish whether the opaque <code class="computeroutput">MetaObject</code> type reflects a type or a class
and thus is an instantiation of <code class="computeroutput"><a class="link" href="meta_type.html" title="Class template meta_type">meta_type</a></code>.
</p>
Modified: sandbox/mirror/doc/html/char_type_switch.html
==============================================================================
--- sandbox/mirror/doc/html/char_type_switch.html (original)
+++ sandbox/mirror/doc/html/char_type_switch.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -34,7 +34,7 @@
</div></div>
<div><p class="copyright">Copyright © 2008 Matúš Chochlík</p></div>
<div><div class="legalnotice">
-<a name="id2616449"></a><p>Use, modification and distribution is subject to the Boost
+<a name="id2616642"></a><p>Use, modification and distribution is subject to the Boost
Software License, Version 1.0. (See accompanying file
<code class="filename">LICENSE_1_0.txt</code> or copy at http://www.boost.org/LICENSE_1_0.txt)
</p>
@@ -49,7 +49,7 @@
<dt><span class="section">Motivation</span></dt>
</dl></dd>
<dt><span class="section">Char Type Switch Reference</span></dt>
-<dd><dl><dt><span class="section">Header files</span></dt></dl></dd>
+<dd><dl><dt><span class="section">Header files</span></dt></dl></dd>
</dl>
</div>
<div class="section" lang="en">
@@ -78,8 +78,8 @@
<code class="computeroutput">::boost::cts::<a class="link" href="boost/cts/bistream.html" title="Type definition bistream">bistream</a></code>,
<code class="computeroutput">::boost::cts::<a class="link" href="boost/cts/bostream.html" title="Type definition bostream">bostream</a></code>, etc.,
functions like
- <code class="computeroutput">::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrlen_id2437435">bstrlen</a></code>,
- <code class="computeroutput">::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcpy_id2431675">bstrcpy</a></code>, etc.
+ <code class="computeroutput">::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrlen_id2543632">bstrlen</a></code>,
+ <code class="computeroutput">::boost::cts::<a class="link" href="char_type_switch/reference.html#boost.cts.bstrcpy_id2527396">bstrcpy</a></code>, etc.
and macros like
<code class="computeroutput"><a class="link" href="BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a>(STRING_LITERAL)</code> OR
<code class="computeroutput"><a class="link" href="BOOST_CTS_LIT_LENGTH.html" title="Macro BOOST_CTS_LIT_LENGTH">BOOST_CTS_LIT_LENGTH</a>(STRING_LITERAL)</code>
Modified: sandbox/mirror/doc/html/char_type_switch/reference.html
==============================================================================
--- sandbox/mirror/doc/html/char_type_switch/reference.html (original)
+++ sandbox/mirror/doc/html/char_type_switch/reference.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -25,12 +25,12 @@
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="char_type_switch.reference"></a>Char Type Switch Reference</h2></div></div></div>
-<div class="toc"><dl><dt><span class="section">Header files</span></dt></dl></div>
+<div class="toc"><dl><dt><span class="section">Header files</span></dt></dl></div>
<p>
</p>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2616819"></a>Header files</h3></div></div></div>
+<a name="id2617020"></a>Header files</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section">Header <boost/char_type_switch/choice.hpp></span></dt>
<dt><span class="section">Header <boost/char_type_switch/char.hpp></span></dt>
@@ -78,31 +78,31 @@
<span class="bold"><strong>typedef</strong></span> ::std::basic_ostream<<a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>, <a class="link" href="../boost/cts/bchar_traits.html" title="Type definition bchar_traits">bchar_traits</a>> <a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a>;
<span class="bold"><strong>typedef</strong></span> ::std::basic_iostream<<a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>, <a class="link" href="../boost/cts/bchar_traits.html" title="Type definition bchar_traits">bchar_traits</a>> <a class="link" href="../boost/cts/biostream.html" title="Type definition biostream">biostream</a>;
- <span class="emphasis"><em>// <a class="link" href="reference.html#id2410501-bb">free-functions</a></em></span>
- <span class="type"><a class="link" href="../boost/cts/bistream.html" title="Type definition bistream">bistream</a>&</span> <a class="link" href="reference.html#boost.cts.bcin_id2479796">bcin</a>();
- <span class="type"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a>&</span> <a class="link" href="reference.html#boost.cts.bcout_id2506581">bcout</a>();
+ <span class="emphasis"><em>// <a class="link" href="reference.html#id2452830-bb">free-functions</a></em></span>
+ <span class="type"><a class="link" href="../boost/cts/bistream.html" title="Type definition bistream">bistream</a>&</span> <a class="link" href="reference.html#boost.cts.bcin_id2452185">bcin</a>();
+ <span class="type"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a>&</span> <a class="link" href="reference.html#boost.cts.bcout_id2418316">bcout</a>();
}
}</pre>
<div class="refsect2" lang="en">
-<a name="id2618323"></a><h3>
-<a name="id2410501-bb"></a><code class="computeroutput"></code> free-functions</h3>
+<a name="id2618524"></a><h3>
+<a name="id2452830-bb"></a><code class="computeroutput"></code> free-functions</h3>
<div class="orderedlist"><ol type="1">
<li>
-<pre class="literallayout"><span class="type"><a class="link" href="../boost/cts/bistream.html" title="Type definition bistream">bistream</a>&</span> <a name="boost.cts.bcin_id2479796"></a>bcin();</pre>
+<pre class="literallayout"><span class="type"><a class="link" href="../boost/cts/bistream.html" title="Type definition bistream">bistream</a>&</span> <a name="boost.cts.bcin_id2452185"></a>bcin();</pre>
<p>Returns a reference to the standard input stream.
</p>
<p>If <code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> is defined as <code class="computeroutput">char</code> then this function returns a reference
to <code class="computeroutput">::std::cin</code>, otherwise if <code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> is defined as <code class="computeroutput">wchar_t</code>,
- then <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bcin_id2479796">bcin</a></code> returns a reference to <code class="computeroutput">::std::wcin</code>.
+ then <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bcin_id2452185">bcin</a></code> returns a reference to <code class="computeroutput">::std::wcin</code>.
</p>
</li>
<li>
-<pre class="literallayout"><span class="type"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a>&</span> <a name="boost.cts.bcout_id2506581"></a>bcout();</pre>
+<pre class="literallayout"><span class="type"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a>&</span> <a name="boost.cts.bcout_id2418316"></a>bcout();</pre>
<p>Returns a reference to the standard output stream.
</p>
<p>If <code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> is defined as <code class="computeroutput">char</code> then this function returns a reference
to <code class="computeroutput">::std::cout</code>, otherwise if <code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> is defined as <code class="computeroutput">wchar_t</code>,
- then <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bcout_id2506581">bcout</a></code> returns a reference to <code class="computeroutput">::std::wcout</code>.
+ then <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bcout_id2418316">bcout</a></code> returns a reference to <code class="computeroutput">::std::wcout</code>.
</p>
</li>
</ol></div>
@@ -114,19 +114,19 @@
<pre class="synopsis"><span class="bold"><strong>namespace</strong></span> boost {
<span class="bold"><strong>namespace</strong></span> cts {
- <span class="emphasis"><em>// <a class="link" href="reference.html#id2543391-bb">free-functions</a></em></span>
- <span class="type">size_t</span> <a class="link" href="reference.html#boost.cts.bstrlen_id2437435">bstrlen</a>(<span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*);
- <span class="type"><span class="bold"><strong>int</strong></span></span> <a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a>(<span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*);
- <span class="type"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*</span> <a class="link" href="reference.html#boost.cts.bstrcpy_id2431675">bstrcpy</a>(<a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*);
- <span class="type"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*</span> <a class="link" href="reference.html#boost.cts.bstrncpy_id2481852">bstrncpy</a>(<a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*, size_t);
+ <span class="emphasis"><em>// <a class="link" href="reference.html#id2505805-bb">free-functions</a></em></span>
+ <span class="type">size_t</span> <a class="link" href="reference.html#boost.cts.bstrlen_id2543632">bstrlen</a>(<span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*);
+ <span class="type"><span class="bold"><strong>int</strong></span></span> <a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a>(<span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*);
+ <span class="type"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*</span> <a class="link" href="reference.html#boost.cts.bstrcpy_id2527396">bstrcpy</a>(<a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*);
+ <span class="type"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*</span> <a class="link" href="reference.html#boost.cts.bstrncpy_id2484309">bstrncpy</a>(<a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*, size_t);
}
}</pre>
<div class="refsect2" lang="en">
-<a name="id2619320"></a><h3>
-<a name="id2543391-bb"></a><code class="computeroutput"></code> free-functions</h3>
+<a name="id2619520"></a><h3>
+<a name="id2505805-bb"></a><code class="computeroutput"></code> free-functions</h3>
<div class="orderedlist"><ol type="1">
<li>
-<pre class="literallayout"><span class="type">size_t</span> <a name="boost.cts.bstrlen_id2437435"></a>bstrlen(<span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* str);</pre>
+<pre class="literallayout"><span class="type">size_t</span> <a name="boost.cts.bstrlen_id2543632"></a>bstrlen(<span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* str);</pre>
<p>Returns the length (the count of characters) of the given string without the terminating null character.
</p>
<p>Calling this function is equivalent to calling <code class="computeroutput">strlen</code> if
@@ -143,18 +143,18 @@
int main(void)
{
using namespace ::boost::cts;
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrlen_id2437435">bstrlen</a></code>(<code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foo")) == 3);
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrlen_id2437435">bstrlen</a></code>(<code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foo")) == <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT_LENGTH.html" title="Macro BOOST_CTS_LIT_LENGTH">BOOST_CTS_LIT_LENGTH</a></code>("foo"));
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrlen_id2543632">bstrlen</a></code>(<code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foo")) == 3);
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrlen_id2543632">bstrlen</a></code>(<code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foo")) == <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT_LENGTH.html" title="Macro BOOST_CTS_LIT_LENGTH">BOOST_CTS_LIT_LENGTH</a></code>("foo"));
//
const <code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> bar[] = <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("bar");
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrlen_id2437435">bstrlen</a></code>(bar) == 3);
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrlen_id2543632">bstrlen</a></code>(bar) == 3);
return 0;
}
</pre>
</div>
</li>
<li>
-<pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="boost.cts.bstrcmp_id2519272"></a>bstrcmp(<span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* str1, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* str2);</pre>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>int</strong></span></span> <a name="boost.cts.bstrcmp_id2522416"></a>bstrcmp(<span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* str1, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* str2);</pre>
<p>This function compares the given two strings and returns an integral value that indicates the relationship between them.
</p>
<p>Calling this function is equivalent to calling <code class="computeroutput">strcmp</code> if
@@ -177,19 +177,19 @@
const <code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> foo[] = <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foo");
const <code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> bar[] = <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("bar");
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a></code>(foo, bar) > 0);
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a></code>(foo, foo) == 0);
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a></code>(bar, foo) < 0);
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a></code>(foo, bar) > 0);
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a></code>(foo, foo) == 0);
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a></code>(bar, foo) < 0);
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a></code>(foo, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("baz")) > 0);
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a></code>(foo, <code class="computeroutput"><a class="link" href="../BOOST_CTS_STRINGIZE.html" title="Macro BOOST_CTS_STRINGIZE">BOOST_CTS_STRINGIZE</a></code>(foobar)) <= 0);
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a></code>(foo, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("baz")) > 0);
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a></code>(foo, <code class="computeroutput"><a class="link" href="../BOOST_CTS_STRINGIZE.html" title="Macro BOOST_CTS_STRINGIZE">BOOST_CTS_STRINGIZE</a></code>(foobar)) <= 0);
return 0;
}
</pre>
</div>
</li>
<li>
-<pre class="literallayout"><span class="type"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*</span> <a name="boost.cts.bstrcpy_id2431675"></a>bstrcpy(<a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* dst, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* src);</pre>
+<pre class="literallayout"><span class="type"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*</span> <a name="boost.cts.bstrcpy_id2527396"></a>bstrcpy(<a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* dst, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* src);</pre>
<p>This function copies <code class="computeroutput">src</code> into <code class="computeroutput">dst</code> including the terminating null character and returns <code class="computeroutput">dst</code>.
<code class="computeroutput">dst</code> should not overlap <code class="computeroutput">src</code> in memory.
</p>
@@ -210,19 +210,19 @@
<code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> aaa[4];
<code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> bbb[4];
- <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcpy_id2431675">bstrcpy</a></code>(aaa, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foo"));
- <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcpy_id2431675">bstrcpy</a></code>(bbb, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("bar"));
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a></code>(aaa, bbb) != 0);
+ <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcpy_id2527396">bstrcpy</a></code>(aaa, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foo"));
+ <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcpy_id2527396">bstrcpy</a></code>(bbb, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("bar"));
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a></code>(aaa, bbb) != 0);
- <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcpy_id2431675">bstrcpy</a></code>(bbb, aaa);
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a></code>(aaa, bbb) == 0);
+ <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcpy_id2527396">bstrcpy</a></code>(bbb, aaa);
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a></code>(aaa, bbb) == 0);
return 0;
}
</pre>
</div>
</li>
<li>
-<pre class="literallayout"><span class="type"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*</span> <a name="boost.cts.bstrncpy_id2481852"></a>bstrncpy(<a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* dst, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* src, size_t num);</pre>
+<pre class="literallayout"><span class="type"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>*</span> <a name="boost.cts.bstrncpy_id2484309"></a>bstrncpy(<a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* dst, <span class="bold"><strong>const</strong></span> <a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a>* src, size_t num);</pre>
<p>This function copies the first <code class="computeroutput">num</code> characters from <code class="computeroutput">src</code> into <code class="computeroutput">dst</code> and returns <code class="computeroutput">dst</code>.
If the end of <code class="computeroutput">src</code> is found before <code class="computeroutput">num</code> characters are copied, <code class="computeroutput">dst</code> is padded with null characters
until the count of modified characters reaches <code class="computeroutput">num</code>. If <code class="computeroutput">num</code> is less or equal to the length of <code class="computeroutput">src</code>,
@@ -246,16 +246,16 @@
<code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> aaa[size];
<code class="computeroutput"><a class="link" href="../boost/cts/bchar.html" title="Type definition bchar">bchar</a></code> bbb[size];
- <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrncpy_id2481852">bstrncpy</a></code>(aaa, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foo"), size);
- <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrncpy_id2481852">bstrncpy</a></code>(bbb, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("bar"), size);
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a></code>(aaa, bbb) != 0);
+ <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrncpy_id2484309">bstrncpy</a></code>(aaa, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foo"), size);
+ <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrncpy_id2484309">bstrncpy</a></code>(bbb, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("bar"), size);
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a></code>(aaa, bbb) != 0);
- <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrncpy_id2481852">bstrncpy</a></code>(bbb, aaa, size);
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a></code>(aaa, bbb) == 0);
+ <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrncpy_id2484309">bstrncpy</a></code>(bbb, aaa, size);
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a></code>(aaa, bbb) == 0);
- <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrncpy_id2481852">bstrncpy</a></code>(bbb, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foobar"), size);
+ <code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrncpy_id2484309">bstrncpy</a></code>(bbb, <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("foobar"), size);
bbb[size-1] = <code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>('\0');
- assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2519272">bstrcmp</a></code>(aaa, bbb) == 0); return 0;
+ assert(<code class="computeroutput"><a class="link" href="reference.html#boost.cts.bstrcmp_id2522416">bstrcmp</a></code>(aaa, bbb) == 0); return 0;
}
</pre>
</div>
Modified: sandbox/mirror/doc/html/mirror.html
==============================================================================
--- sandbox/mirror/doc/html/mirror.html (original)
+++ sandbox/mirror/doc/html/mirror.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -62,8 +62,9 @@
<dt><span class="section">Traits</span></dt>
<dt><span class="section">Intrinsic Metafunctions</span></dt>
<dt><span class="section">Algorithms</span></dt>
+<dt><span class="section">Iterators</span></dt>
<dt><span class="section">Traversals</span></dt>
-<dt><span class="section">Header files</span></dt>
+<dt><span class="section">Header files</span></dt>
</dl></dd>
<dt><span class="section">Examples</span></dt>
<dd><dl>
@@ -359,8 +360,30 @@
works out of the box.
</p>
</div>
-<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
-<a name="mirror.motivation.problem.uniformmemattaccess"></a>Problem - Uniform access to member attributes of a class' instance</h4></div></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="mirror.motivation.problem.uniformmemattaccess"></a>Problem - Uniform access to member attributes of a class' instance</h4></div></div></div>
+<p>
+ In some situations it is useful to have the ability to traverse or iterate through
+ the member variables (or attributes) of a class' instance. Operations
+ like serialization, parameter marshalling, automated construction
+ of GUIs for object inspection, are only some examples of this.
+ In many of such applications it is also useful to have some additional
+ meta-data about the class members, like information about their name,
+ type, specifiers, etc.
+ </p>
+<p>
+ Using the <a class="link" href="mirror/reference.html#mirror.reference.iterators" title="Iterators">iterators</a> or
+ <a class="link" href="mirror/reference.html#mirror.reference.traversals" title="Traversals">traversals</a> combined
+ with custom visitors and other facilities provided by Mirror, it is possible
+ to implement such operations in a very generic manner.
+ More importantly it is possible to separate these operations from the
+ types on which they are going to be executed.
+ </p>
+<p>
+
+ </p>
+</div>
<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
<a name="mirror.motivation.problem.factory"></a>Problem - Generating class factories</h4></div></div></div></div>
<div class="section" lang="en"><div class="titlepage"><div><div><h4 class="title">
Modified: sandbox/mirror/doc/html/mirror/examples.html
==============================================================================
--- sandbox/mirror/doc/html/mirror/examples.html (original)
+++ sandbox/mirror/doc/html/mirror/examples.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -43,7 +43,7 @@
<p>
</p>
<div class="table">
-<a name="id2614330"></a><p class="title"><b>Table 1.5. Registering examples</b></p>
+<a name="id2552839"></a><p class="title"><b>Table 1.5. Registering examples</b></p>
<div class="table-contents"><table class="table" summary="Registering examples">
<colgroup>
<col>
@@ -67,7 +67,7 @@
<p>The following table contains a list of examples showing the use of the <a class="link" href="reference.html#mirror.reference.reflecting" title="Reflecting">reflection macros</a>.
</p>
<div class="table">
-<a name="id2614413"></a><p class="title"><b>Table 1.6. Reflection examples</b></p>
+<a name="id2552922"></a><p class="title"><b>Table 1.6. Reflection examples</b></p>
<div class="table-contents"><table class="table" summary="Reflection examples">
<colgroup>
<col>
@@ -105,7 +105,7 @@
<p>Examples listed in the following table are related to the usage of the templates modelling the <a class="link" href="concepts.html#mirror.concepts.meta_object" title="MetaObject">MetaObject</a> concept.
</p>
<div class="table">
-<a name="id2614577"></a><p class="title"><b>Table 1.7. Reflection examples</b></p>
+<a name="id2614771"></a><p class="title"><b>Table 1.7. Reflection examples</b></p>
<div class="table-contents"><table class="table" summary="Reflection examples">
<colgroup>
<col>
@@ -206,7 +206,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
- cts::bostream& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a></code>();
+ cts::bostream& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a></code>();
// several namespaces are pre-registered
bcout << <code class="computeroutput"><a class="link" href="../BOOST_MIRRORED_GLOBAL_SCOPE.html" title="Macro BOOST_MIRRORED_GLOBAL_SCOPE">BOOST_MIRRORED_GLOBAL_SCOPE</a></code>() ::base_name() << endl;
@@ -249,7 +249,7 @@
{
using namespace ::std;
using namespace ::boost;
- cts::<code class="computeroutput"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a></code>& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a></code>();
+ cts::<code class="computeroutput"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a></code>& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a></code>();
bcout <<
<code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("ancestor ") <<
ctr++ <<
@@ -269,7 +269,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
- cts::<code class="computeroutput"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a></code>& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a></code>();
+ cts::<code class="computeroutput"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a></code>& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a></code>();
//
typedef <code class="computeroutput"><a class="link" href="../BOOST_MIRRORED_NAMESPACE.html" title="Macro BOOST_MIRRORED_NAMESPACE">BOOST_MIRRORED_NAMESPACE</a></code>(::boost::mirror) meta_boost_mirror;
//
@@ -417,7 +417,7 @@
{
using namespace ::std;
using namespace ::boost;
- cts::<code class="computeroutput"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a></code>& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a></code>();
+ cts::<code class="computeroutput"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a></code>& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a></code>();
bcout <<
<code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("This is the global scope") <<
endl <<
@@ -432,7 +432,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
- cts::bostream& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a></code>();
+ cts::bostream& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a></code>();
bcout <<
<code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("Namespace '") <<
@@ -531,7 +531,7 @@
typedef <code class="computeroutput"><a class="link" href="../BOOST_MIRRORED_TYPE.html" title="Macro BOOST_MIRRORED_TYPE">BOOST_MIRRORED_TYPE</a></code>(T) meta_T;
// print out the full type name
- cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a></code>() <<
+ cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a></code>() <<
<code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("The full type name is: ") <<
meta_T::full_name() <<
endl;
@@ -565,7 +565,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
- cts::<code class="computeroutput"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a></code>& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2506581">bcout</a></code>();
+ cts::<code class="computeroutput"><a class="link" href="../boost/cts/bostream.html" title="Type definition bostream">bostream</a></code>& bcout = cts::<code class="computeroutput"><a class="link" href="../char_type_switch/reference.html#boost.cts.bcout_id2418316">bcout</a></code>();
// print out the base type name
bcout <<
<code class="computeroutput"><a class="link" href="../BOOST_CTS_LIT.html" title="Macro BOOST_CTS_LIT">BOOST_CTS_LIT</a></code>("The type name is: ") <<
Modified: sandbox/mirror/doc/html/mirror/reference.html
==============================================================================
--- sandbox/mirror/doc/html/mirror/reference.html (original)
+++ sandbox/mirror/doc/html/mirror/reference.html 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -32,8 +32,9 @@
<dt><span class="section">Traits</span></dt>
<dt><span class="section">Intrinsic Metafunctions</span></dt>
<dt><span class="section">Algorithms</span></dt>
+<dt><span class="section">Iterators</span></dt>
<dt><span class="section">Traversals</span></dt>
-<dt><span class="section">Header files</span></dt>
+<dt><span class="section">Header files</span></dt>
</dl></div>
<p>
</p>
@@ -58,7 +59,7 @@
As a general rule of the thumb these macros should be used in the <code class="computeroutput">boost::mirror</code> namespace.
</p>
<div class="table">
-<a name="id2553534"></a><p class="title"><b>Table 1.1. Registering macros</b></p>
+<a name="id2600251"></a><p class="title"><b>Table 1.1. Registering macros</b></p>
<div class="table-contents"><table class="table" summary="Registering macros">
<colgroup>
<col>
@@ -130,7 +131,7 @@
the individual macros.
</p>
<div class="table">
-<a name="id2600551"></a><p class="title"><b>Table 1.2. Reflection macros</b></p>
+<a name="id2600590"></a><p class="title"><b>Table 1.2. Reflection macros</b></p>
<div class="table-contents"><table class="table" summary="Reflection macros">
<colgroup>
<col>
@@ -202,7 +203,7 @@
template instantiations are commonly referred to as MetaObjects. Some other MetaObjects can be accessed by applying the intrinsic meta-functions on other MetaObjects.
</p>
<div class="table">
-<a name="id2600960"></a><p class="title"><b>Table 1.3. Meta objects</b></p>
+<a name="id2600999"></a><p class="title"><b>Table 1.3. Meta objects</b></p>
<div class="table-contents"><table class="table" summary="Meta objects">
<colgroup>
<col>
@@ -263,7 +264,7 @@
indicate whether the inspected MetaObject has or has not the trait.
</p>
<div class="table">
-<a name="id2601232"></a><p class="title"><b>Table 1.4. Traits</b></p>
+<a name="id2601271"></a><p class="title"><b>Table 1.4. Traits</b></p>
<div class="table-contents"><table class="table" summary="Traits">
<colgroup>
<col>
@@ -321,13 +322,19 @@
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
+<a name="mirror.reference.iterators"></a>Iterators</h3></div></div></div>
+<p>
+ </p>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
<a name="mirror.reference.traversals"></a>Traversals</h3></div></div></div>
<p>
</p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
-<a name="id2601530"></a>Header files</h3></div></div></div>
+<a name="id2601582"></a>Header files</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section">Header <boost/mirror/meta_namespace.hpp></span></dt>
<dt><span class="section">Header <boost/mirror/meta_type.hpp></span></dt>
Modified: sandbox/mirror/libs/mirror/doc/introduction.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/introduction.xml (original)
+++ sandbox/mirror/libs/mirror/doc/introduction.xml 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -204,6 +204,27 @@
<section id="mirror.motivation.problem.uniformmemattaccess">
<title>Problem - Uniform access to member attributes of a class' instance</title>
+ <para>
+ In some situations it is useful to have the ability to traverse or iterate through
+ the member variables (or attributes) of a class' instance. Operations
+ like serialization, parameter marshalling, automated construction
+ of GUIs for object inspection, are only some examples of this.
+ In many of such applications it is also useful to have some additional
+ meta-data about the class members, like information about their name,
+ type, specifiers, etc.
+ </para>
+ <para>
+ Using the <link linkend="mirror.reference.iterators">iterators</link> or
+ <link linkend="mirror.reference.traversals">traversals</link> combined
+ with custom visitors and other facilities provided by Mirror, it is possible
+ to implement such operations in a very generic manner.
+ More importantly it is possible to separate these operations from the
+ types on which they are going to be executed.
+ </para>
+ <para>
+
+ </para>
+
</section>
<section id="mirror.motivation.problem.factory">
Modified: sandbox/mirror/libs/mirror/doc/reference.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/reference.xml (original)
+++ sandbox/mirror/libs/mirror/doc/reference.xml 2009-03-20 07:20:02 EDT (Fri, 20 Mar 2009)
@@ -252,6 +252,11 @@
<para>
</para>
</section>
+ <section id="mirror.reference.iterators">
+ <title>Iterators</title>
+ <para>
+ </para>
+ </section>
<section id="mirror.reference.traversals">
<title>Traversals</title>
<para>
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