|
Boost-Commit : |
From: chochlik_at_[hidden]
Date: 2008-07-15 07:16:29
Author: matus.chochlik
Date: 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
New Revision: 47437
URL: http://svn.boost.org/trac/boost/changeset/47437
Log:
[mirror 0.2.x]
- Moved everything related to char_type_switch to the boost::cts namespace
- Renamed some of the char_type_switch preprocessor symbols and macros
- Updated the documentation
Added:
sandbox/mirror/boost/mirror/meta_namespaces/boost_cts.hpp (contents, props changed)
sandbox/mirror/doc/Jamfile.v2 (contents, props changed)
sandbox/mirror/doc/src/
sandbox/mirror/doc/src/boostbook.css (contents, props changed)
sandbox/mirror/doc/src/docutils.css (contents, props changed)
sandbox/mirror/doc/src/images/
sandbox/mirror/doc/src/images/blank.png (contents, props changed)
sandbox/mirror/doc/src/images/caution.png (contents, props changed)
sandbox/mirror/doc/src/images/draft.png (contents, props changed)
sandbox/mirror/doc/src/images/home.png (contents, props changed)
sandbox/mirror/doc/src/images/important.png (contents, props changed)
sandbox/mirror/doc/src/images/next.png (contents, props changed)
sandbox/mirror/doc/src/images/next_disabled.png (contents, props changed)
sandbox/mirror/doc/src/images/note.png (contents, props changed)
sandbox/mirror/doc/src/images/prev.png (contents, props changed)
sandbox/mirror/doc/src/images/prev_disabled.png (contents, props changed)
sandbox/mirror/doc/src/images/tip.png (contents, props changed)
sandbox/mirror/doc/src/images/toc-blank.png (contents, props changed)
sandbox/mirror/doc/src/images/toc-minus.png (contents, props changed)
sandbox/mirror/doc/src/images/toc-plus.png (contents, props changed)
sandbox/mirror/doc/src/images/up.png (contents, props changed)
sandbox/mirror/doc/src/images/up_disabled.png (contents, props changed)
sandbox/mirror/doc/src/images/warning.png (contents, props changed)
sandbox/mirror/doc/src/mirror.xml (contents, props changed)
sandbox/mirror/doc/src/reference.css (contents, props changed)
Text files modified:
sandbox/mirror/boost/char_type_switch/choice.hpp | 14 ++--
sandbox/mirror/boost/char_type_switch/iostream.hpp | 35 +++++++----
sandbox/mirror/boost/char_type_switch/string.hpp | 31 +++++-----
sandbox/mirror/boost/mirror/detail/argument_type_list.hpp | 12 ++--
sandbox/mirror/boost/mirror/detail/decorated_type_name.hpp | 118 +++++++++++++++++++++++++--------------
sandbox/mirror/boost/mirror/detail/full_name_builder.hpp | 26 ++++----
sandbox/mirror/boost/mirror/detail/function_type_name.hpp | 28 ++++----
sandbox/mirror/boost/mirror/detail/meta_attribs_base.hpp | 4
sandbox/mirror/boost/mirror/detail/meta_type_registering.hpp | 8 +-
sandbox/mirror/boost/mirror/detail/static_int_to_str.hpp | 30 +++++-----
sandbox/mirror/boost/mirror/detail/template_name.hpp | 18 +++---
sandbox/mirror/boost/mirror/function/select_base_name.hpp | 2
sandbox/mirror/boost/mirror/function/select_full_name.hpp | 2
sandbox/mirror/boost/mirror/meta_attributes.hpp | 8 +-
sandbox/mirror/boost/mirror/meta_classes/boost_tuple.hpp | 4
sandbox/mirror/boost/mirror/meta_namespace.hpp | 18 +++---
sandbox/mirror/boost/mirror/meta_types/_free_fn.hpp | 6 +-
sandbox/mirror/boost/mirror/meta_types/boost_bstring.hpp | 5 +
sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp | 22 +++---
sandbox/mirror/boost/mirror/visitors/sample.hpp | 28 ++++----
sandbox/mirror/libs/mirror/doc/introduction.xml | 14 ++--
sandbox/mirror/libs/mirror/doc/mirror.xml | 4 +
sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml | 6 +-
sandbox/mirror/libs/mirror/doc/reference/meta_type.xml | 14 ++--
sandbox/mirror/libs/mirror/doc/samples/typenames_naive.xml | 2
sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml | 8 +-
sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml | 2
sandbox/mirror/libs/mirror/example/algorithms/begin_end.cpp | 2
sandbox/mirror/libs/mirror/example/registering/classes.cpp | 16 +++--
sandbox/mirror/libs/mirror/example/registering/namespaces.cpp | 2
sandbox/mirror/libs/mirror/example/registering/types.cpp | 12 ++-
sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp | 4 +
sandbox/mirror/libs/mirror/example/serialization/cube.cpp | 2
sandbox/mirror/libs/mirror/example/special/boost_tuple.cpp | 10 ++-
sandbox/mirror/libs/mirror/example/special/std_pair.cpp | 2
sandbox/mirror/libs/mirror/example/traversal/sample_meta_path.cpp | 2
sandbox/mirror/libs/mirror/example/traversal/sample_visitor.cpp | 1
37 files changed, 296 insertions(+), 226 deletions(-)
Modified: sandbox/mirror/boost/char_type_switch/choice.hpp
==============================================================================
--- sandbox/mirror/boost/char_type_switch/choice.hpp (original)
+++ sandbox/mirror/boost/char_type_switch/choice.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
/**
- * \file boost/char_width_switch/choice.hpp
+ * \file boost/char_type_switch/choice.hpp
* Definition of pp symbols for choosing of the used character type
*
* Copyright 2008 Matus Chochlik. Distributed under the Boost
@@ -7,20 +7,22 @@
* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
*/
-#ifndef BOOST_CHAR_WIDTH_SWITCH_CHOICE
-#define BOOST_CHAR_WIDTH_SWITCH_CHOICE
+#ifndef BOOST_CHAR_TYPE_SWITCH_CHOICE
+#define BOOST_CHAR_TYPE_SWITCH_CHOICE
+// this is technically not necessary, but ..
namespace boost {
+namespace cts {
-// TODO: there is a lot of work to do here ;)
-#ifndef BOOST_USE_WIDE_CHARS
+#ifndef BOOST_CTS_USE_WIDE_CHARS
# ifdef UNICODE
-# define BOOST_USE_WIDE_CHARS
+# define BOOST_CTS_USE_WIDE_CHARS
# endif
#endif
+} // namespace cts
} // namespace boost
#endif //include guard
Modified: sandbox/mirror/boost/char_type_switch/iostream.hpp
==============================================================================
--- sandbox/mirror/boost/char_type_switch/iostream.hpp (original)
+++ sandbox/mirror/boost/char_type_switch/iostream.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
/**
- * \file boost/char_width_switch/iostream.hpp
+ * \file boost/char_type_switch/iostream.hpp
* Narrow/Wide character type switching for iostreams
*
* Copyright 2008 Matus Chochlik. Distributed under the Boost
@@ -7,35 +7,42 @@
* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
*/
-#ifndef BOOST_CHAR_WIDTH_SWITCH_IOSTREAM
-#define BOOST_CHAR_WIDTH_SWITCH_IOSTREAM
+#ifndef BOOST_CHAR_TYPE_SWITCH_IOSTREAM
+#define BOOST_CHAR_TYPE_SWITCH_IOSTREAM
#include <boost/char_type_switch/choice.hpp>
// Needed for ::std cout, cin, cerr, wcin, wcout, wcerr
#include <iostream>
namespace boost {
+namespace cts {
-#ifdef BOOST_USE_WIDE_CHARS
- // If wide characters were chosen
+#ifdef BOOST_CTS_USE_WIDE_CHARS
+ // If wide characters were picked
+ typedef ::std::wistream bistream;
+ typedef ::std::wostream bostream;
//
// define input stream
- ::std::wistream& bcin = ::std::wcin;
+ inline ::std::wistream& bcin(void){return ::std::wcin;}
// define output stream
- ::std::wostream& bcout = ::std::wcout;
+ inline ::std::wostream& bcout(void){return ::std::wcout;}
// define error stream
- ::std::wostream& bcerr = ::std::wcerr;
-#else // NOT BOOST_USE_WIDE_CHARS
- // if narrow characters were chosen
+ inline ::std::wostream& bcerr(void){return ::std::wcerr;}
+#else // NOT BOOST_CTS_USE_WIDE_CHARS
+ // if narrow characters were picked
+ //
+ typedef ::std::istream bistream;
+ typedef ::std::ostream bostream;
//
// define input stream
- ::std::istream& bcin = ::std::cin;
+ inline ::std::istream& bcin(void){return ::std::cin;}
// define output stream
- ::std::ostream& bcout = ::std::cout;
+ inline ::std::ostream& bcout(void){return ::std::cout;}
// define error stream
- ::std::ostream& bcerr = ::std::cerr;
-#endif // NOT BOOST_USE_WIDE_CHARS
+ inline ::std::ostream& bcerr(void){return ::std::cerr;}
+#endif // NOT BOOST_CTS_USE_WIDE_CHARS
+} // namespace cts
} // namespace boost
#endif //include guard
Modified: sandbox/mirror/boost/char_type_switch/string.hpp
==============================================================================
--- sandbox/mirror/boost/char_type_switch/string.hpp (original)
+++ sandbox/mirror/boost/char_type_switch/string.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
/**
- * \file boost/char_width_switch/string.hpp
+ * \file boost/char_type_switch/string.hpp
* Narrow/Wide character type switching for string.
*
* Copyright 2008 Matus Chochlik. Distributed under the Boost
@@ -7,8 +7,8 @@
* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
*/
-#ifndef BOOST_CHAR_WIDTH_SWITCH_STRING
-#define BOOST_CHAR_WIDTH_SWITCH_STRING
+#ifndef BOOST_CHAR_TYPE_SWITCH_STRING
+#define BOOST_CHAR_TYPE_SWITCH_STRING
#include <boost/char_type_switch/choice.hpp>
@@ -20,23 +20,24 @@
#include <cstring>
namespace boost {
+namespace cts {
-#ifdef BOOST_USE_WIDE_CHARS
+#ifdef BOOST_CTS_USE_WIDE_CHARS
#include <boost/preprocessor/wstringize.hpp>
- // If wide characters were chosen
+ // If wide characters were picked
//
// define character type
typedef wchar_t bchar;
// define string class type
typedef ::std::wstring bstring;
// define macro for string literal type selection
-# define BOOST_STR_LIT(STR) L##STR
+# define BOOST_CTS_LIT(STR) L##STR
// stringization
# define BOOST_CTS_STRINGIZE(TO_TEXT) BOOST_PP_WSTRINGIZE(TO_TEXT)
-#else // NOT BOOST_USE_WIDE_CHARS
+#else // NOT BOOST_CTS_USE_WIDE_CHARS
#include <boost/preprocessor/stringize.hpp>
@@ -47,14 +48,14 @@
// define string class type
typedef ::std::string bstring;
// define macro for string literal type selection
-# define BOOST_STR_LIT(STR) STR
+# define BOOST_CTS_LIT(STR) STR
// stringization
# define BOOST_CTS_STRINGIZE(TO_TEXT) BOOST_PP_STRINGIZE(TO_TEXT)
-#endif // NOT BOOST_USE_WIDE_CHARS
+#endif // NOT BOOST_CTS_USE_WIDE_CHARS
// define macro expanding into a compile time const length
// of the given string literal
-#define BOOST_STR_LIT_LENGTH(STR) ((sizeof(STR)/sizeof(char))-1)
+#define BOOST_CTS_LIT_LENGTH(STR) ((sizeof(STR)/sizeof(::boost::bchar))-1)
/** Wrappers of cstring functions
@@ -74,7 +75,7 @@
inline size_t bstrlen(const bchar* str)
{
-#ifdef BOOST_USE_WIDE_CHARS
+#ifdef BOOST_CTS_USE_WIDE_CHARS
return ::std::wcslen(str);
#else
return ::std::strlen(str);
@@ -85,7 +86,7 @@
inline int bstrcmp(const bchar* a, const bchar* b)
{
-#ifdef BOOST_USE_WIDE_CHARS
+#ifdef BOOST_CTS_USE_WIDE_CHARS
return ::std::wcscmp(a, b);
#else
return ::std::strcmp(a, b);
@@ -96,7 +97,7 @@
*/
inline bchar* bstrcpy(bchar* dst, const bchar* src)
{
-#ifdef BOOST_USE_WIDE_CHARS
+#ifdef BOOST_CTS_USE_WIDE_CHARS
return ::std::wcscpy(dst, src);
#else
return ::std::strcpy(dst, src);
@@ -107,7 +108,7 @@
*/
inline bchar* bstrncpy(bchar* dst, const bchar* src, size_t count)
{
-#ifdef BOOST_USE_WIDE_CHARS
+#ifdef BOOST_CTS_USE_WIDE_CHARS
return ::std::wcsncpy(dst, src, count);
#else
return ::std::strncpy(dst, src, count);
@@ -119,7 +120,7 @@
#pragma warning(pop)
#endif
-
+} // namespace cts
} // namespace boost
#endif //include guard
Modified: sandbox/mirror/boost/mirror/detail/argument_type_list.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/argument_type_list.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/argument_type_list.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -59,22 +59,22 @@
template <typename T>
inline void operator()(::boost::mpl::identity<T>)
{
- static bstring comma(BOOST_STR_LIT(", "));
+ static cts::bstring comma(BOOST_CTS_LIT(", "));
list.append(BOOST_MIRRORED_TYPE(T)::get_name(FullOrBase()));
list.append(comma);
}
- inline append_arg_typename(bstring& _list)
+ inline append_arg_typename(cts::bstring& _list)
: list(_list)
{ }
private:
- bstring& list;
+ cts::bstring& list;
};
template <typename ArgTypeList, class FullOrBase, class Size>
static void do_append_args(
ArgTypeList*,
- bstring& str,
+ cts::bstring& str,
FullOrBase full_or_base,
Size
)
@@ -104,7 +104,7 @@
template <typename ArgTypeList, class FullOrBase>
inline static void do_append_args(
ArgTypeList*,
- bstring& str,
+ cts::bstring& str,
FullOrBase,
mpl::int_<0>
)
@@ -113,7 +113,7 @@
template <typename ArgTypeList, class FullOrBase>
inline static void append_args(
ArgTypeList*,
- bstring& str,
+ cts::bstring& str,
FullOrBase full_or_base
)
{
Modified: sandbox/mirror/boost/mirror/detail/decorated_type_name.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/decorated_type_name.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/decorated_type_name.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -24,12 +24,12 @@
{
public:
template <bool FullName>
- inline static bstring build_name(
+ inline static cts::bstring build_name(
mpl::bool_<FullName> full_or_base,
- bstring& left,
- bstring& right,
- bstring& ex,
- bstring& arg
+ cts::bstring& left,
+ cts::bstring& right,
+ cts::bstring& ex,
+ cts::bstring& arg
)
{
Decorator D(left, right, ex, arg);
@@ -50,13 +50,15 @@
{
protected:
template <bool FullName>
- inline static bstring init_name(mpl::bool_<FullName> full_or_base)
+ inline static cts::bstring init_name(
+ mpl::bool_<FullName> full_or_base
+ )
{
- bstring left;
- bstring right;
- bstring ex;
- bstring arg;
- bstring temp(build_name(full_or_base, left, right, ex, arg));
+ cts::bstring left;
+ cts::bstring right;
+ cts::bstring ex;
+ cts::bstring arg;
+ cts::bstring temp(build_name(full_or_base, left, right, ex, arg));
left.append(temp);
left.append(right);
left.append(ex);
@@ -65,18 +67,18 @@
}
public:
template <bool FullName>
- static const bstring& get_name(mpl::bool_<FullName> full_or_base)
+ static const cts::bstring& get_name(mpl::bool_<FullName> full_or_base)
{
- static bstring s_name(init_name(full_or_base));
+ static cts::bstring s_name(init_name(full_or_base));
return s_name;
}
- inline static const bstring& base_name(void)
+ inline static const cts::bstring& base_name(void)
{
return get_name(mpl::false_());
}
- inline static const bstring& full_name(void)
+ inline static const cts::bstring& full_name(void)
{
return get_name(mpl::true_());
}
@@ -94,7 +96,7 @@
template <typename T>
struct type_name_decorator
{
- inline type_name_decorator(bstring&, bstring&);
+ inline type_name_decorator(cts::bstring&, cts::bstring&);
};
/** Base class for decorators that append something to 'right'
@@ -102,15 +104,17 @@
*/
struct type_name_right_postfix_decorator
{
- inline type_name_right_postfix_decorator(bstring& _r, const bchar* _pfx)
- : right(_r), postfix(_pfx) { }
+ inline type_name_right_postfix_decorator(
+ cts::bstring& _r,
+ const cts::bchar* _pfx
+ ) : right(_r), postfix(_pfx) { }
inline ~type_name_right_postfix_decorator(void)
{
- right.append(bstring(postfix));
+ right.append(cts::bstring(postfix));
}
- bstring& right;
- const bchar* postfix;
+ cts::bstring& right;
+ const cts::bchar* postfix;
};
// pointer decorator
@@ -118,8 +122,12 @@
struct type_name_decorator<T*>
: type_name_right_postfix_decorator
{
- inline type_name_decorator(bstring&, bstring& _right, bstring&, bstring&)
- : type_name_right_postfix_decorator(_right, BOOST_STR_LIT(" *"))
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring& _right,
+ cts::bstring&,
+ cts::bstring&
+ ) : type_name_right_postfix_decorator(_right, BOOST_CTS_LIT(" *"))
{ }
};
@@ -129,8 +137,12 @@
struct type_name_decorator<T&>
: type_name_right_postfix_decorator
{
- inline type_name_decorator(bstring&, bstring& _right, bstring&, bstring&)
- : type_name_right_postfix_decorator(_right, BOOST_STR_LIT(" &"))
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring& _right,
+ cts::bstring&,
+ cts::bstring&
+ ) : type_name_right_postfix_decorator(_right, BOOST_CTS_LIT(" &"))
{ }
};
@@ -139,8 +151,12 @@
struct type_name_decorator<const T>
: type_name_right_postfix_decorator
{
- inline type_name_decorator(bstring&, bstring& _right, bstring&, bstring&)
- : type_name_right_postfix_decorator(_right, BOOST_STR_LIT(" const"))
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring& _right,
+ cts::bstring&,
+ cts::bstring&
+ ): type_name_right_postfix_decorator(_right, BOOST_CTS_LIT(" const"))
{ }
};
@@ -149,8 +165,12 @@
struct type_name_decorator<volatile T>
: type_name_right_postfix_decorator
{
- inline type_name_decorator(bstring&, bstring& _right, bstring&, bstring&)
- : type_name_right_postfix_decorator(_right, BOOST_STR_LIT(" volatile"))
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring& _right,
+ cts::bstring&,
+ cts::bstring&
+ ) : type_name_right_postfix_decorator(_right, BOOST_CTS_LIT(" volatile"))
{ }
};
@@ -159,8 +179,12 @@
struct type_name_decorator<const volatile T>
: type_name_right_postfix_decorator
{
- inline type_name_decorator(bstring&, bstring& _r, bstring&, bstring&)
- : type_name_right_postfix_decorator(_r, BOOST_STR_LIT(" const volatile"))
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring& _r,
+ cts::bstring&,
+ cts::bstring&
+ ) : type_name_right_postfix_decorator(_r, BOOST_CTS_LIT(" const volatile"))
{ }
};
@@ -168,10 +192,15 @@
template <typename T>
struct type_name_decorator< T[] >
{
- inline type_name_decorator(bstring&, bstring&, bstring& _ex, bstring&)
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring&,
+ cts::bstring& _ex,
+ cts::bstring&
+ )
{
- if(_ex.empty()) _ex.append(BOOST_STR_LIT(" "));
- _ex.append(BOOST_STR_LIT("[]"));
+ if(_ex.empty()) _ex.append(BOOST_CTS_LIT(" "));
+ _ex.append(BOOST_CTS_LIT("[]"));
}
};
@@ -181,29 +210,34 @@
struct type_name_decorator< T[ Size ] >
{
private:
- inline static bstring init_postfix(void)
+ inline static cts::bstring init_postfix(void)
{
typedef typename detail::static_int_to_str<Size>
size_string;
// init with '['
- bstring res(BOOST_STR_LIT("["));
+ cts::bstring res(BOOST_CTS_LIT("["));
//
// setup a buffer for the number
const size_t max_size = size_string::length::value+1;
- bchar buffer[max_size];
+ cts::bchar buffer[max_size];
// put it into the buffer
size_string::convert(buffer, max_size);
// append the buffer
- res.append(bstring(buffer));
+ res.append(cts::bstring(buffer));
// append ']'
- res.append(bstring(BOOST_STR_LIT("]")));
+ res.append(cts::bstring(BOOST_CTS_LIT("]")));
return res;
}
public:
- inline type_name_decorator(bstring&, bstring&, bstring& _ex, bstring&)
+ inline type_name_decorator(
+ cts::bstring&,
+ cts::bstring&,
+ cts::bstring& _ex,
+ cts::bstring&
+ )
{
- static bstring s_postfix(init_postfix());
- if(_ex.empty()) _ex.append(BOOST_STR_LIT(" "));
+ static cts::bstring s_postfix(init_postfix());
+ if(_ex.empty()) _ex.append(BOOST_CTS_LIT(" "));
_ex.append(s_postfix);
}
};
Modified: sandbox/mirror/boost/mirror/detail/full_name_builder.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/full_name_builder.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/full_name_builder.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -44,7 +44,7 @@
// don't prepend '::' to types on global scope
template <typename Type>
inline static void append_separator(
- bstring& _str,
+ cts::bstring& _str,
mpl::identity<meta_namespace<namespace_::_> >,
mpl::identity<detail::registered_type_info<Type> >
)
@@ -53,20 +53,20 @@
// append separator to anything else
template <typename AnyScope, class AnyMO>
inline static void append_separator(
- bstring& _str,
+ cts::bstring& _str,
mpl::identity<AnyScope>,
mpl::identity<AnyMO>
)
{
- static const bstring separator(BOOST_STR_LIT("::"));
+ static const cts::bstring separator(BOOST_CTS_LIT("::"));
_str.append(separator);
}
// initializes the full names
- inline static bstring init_name(mpl::true_ _full)
+ inline static cts::bstring init_name(mpl::true_ _full)
{
- bstring res(Scope::get_name(_full));
+ cts::bstring res(Scope::get_name(_full));
append_separator(
res,
mpl::identity<Scope>(),
@@ -77,19 +77,19 @@
}
// initializes the base names
- inline static const bstring& init_name(mpl::false_ _base)
+ inline static const cts::bstring& init_name(mpl::false_ _base)
{
return BaseMetaObject::get_name(_base);
}
public:
// base of full name getter
template <bool FullName>
- inline static const bstring& build_name(
+ inline static const cts::bstring& build_name(
mpl::bool_<FullName> full_or_base,
- bstring& left,
- bstring& right,
- bstring& ex,
- bstring& arg
+ cts::bstring& left,
+ cts::bstring& right,
+ cts::bstring& ex,
+ cts::bstring& arg
)
{
return get_name(full_or_base);
@@ -98,11 +98,11 @@
// base of full name getter
template <bool FullName>
- inline static const bstring& get_name(
+ inline static const cts::bstring& get_name(
mpl::bool_<FullName> full_or_base
)
{
- static bstring s_name(init_name(full_or_base));
+ static cts::bstring s_name(init_name(full_or_base));
return s_name;
}
};
Modified: sandbox/mirror/boost/mirror/detail/function_type_name.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/function_type_name.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/function_type_name.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -36,26 +36,26 @@
{
public:
template <bool FullName>
- inline static bstring build_name(
+ inline static cts::bstring build_name(
mpl::bool_<FullName> full_or_base,
- bstring& left,
- bstring& right,
- bstring& ex,
- bstring& arg
+ cts::bstring& left,
+ cts::bstring& right,
+ cts::bstring& ex,
+ cts::bstring& arg
)
{
- static bstring space(BOOST_STR_LIT(" "));
- static bstring l_par(BOOST_STR_LIT("("));
- static bstring r_par(BOOST_STR_LIT(")"));
+ static cts::bstring space(BOOST_CTS_LIT(" "));
+ static cts::bstring l_par(BOOST_CTS_LIT("("));
+ static cts::bstring r_par(BOOST_CTS_LIT(")"));
//
// the return value type
typedef BOOST_MIRRORED_TYPE(RetValType) meta_RV;
//
- bstring rv_left;
- bstring rv_right;
- bstring rv_ex;
- bstring rv_arg;
- bstring rv_t(meta_RV::build_name(
+ cts::bstring rv_left;
+ cts::bstring rv_right;
+ cts::bstring rv_ex;
+ cts::bstring rv_arg;
+ cts::bstring rv_t(meta_RV::build_name(
full_or_base,
rv_left,
rv_right,
@@ -81,7 +81,7 @@
arg.append(r_par);
// the rest of the ret val type
arg.append(rv_arg);
- return bstring();
+ return cts::bstring();
}
};
Modified: sandbox/mirror/boost/mirror/detail/meta_attribs_base.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/meta_attribs_base.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/meta_attribs_base.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -158,9 +158,9 @@
typedef TYPENAME_KW ::boost::mirror::typedef_::extract_type< \
TYPE_SELECTOR \
>::type type_of_##NAME; \
- static const bchar* base_name( \
+ static const ::boost::cts::bchar* base_name( \
position_of_##NAME \
- ){return BOOST_STR_LIT(#NAME);} \
+ ){return BOOST_CTS_LIT(#NAME);} \
static meta_class_attribute_traits< \
::boost::mirror::attrib_storage_specifiers:: SPECIFIERS##_, \
TYPE_SELECTOR \
Modified: sandbox/mirror/boost/mirror/detail/meta_type_registering.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/meta_type_registering.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/meta_type_registering.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -33,12 +33,12 @@
detail::registered_type_info<Type>
> base_class;
- inline static const bstring& base_name(void)
+ inline static const cts::bstring& base_name(void)
{
return base_class::get_name(mpl::false_());
}
- inline static const bstring& full_name(void)
+ inline static const cts::bstring& full_name(void)
{
return base_class::get_name(mpl::true_());
}
@@ -49,9 +49,9 @@
};
#define BOOST_MIRROR_REG_TYPE_DECLARE_BASE_NAME(TYPE_NAME_STRING) \
- static const bstring& get_name(mpl::false_) \
+ static const cts::bstring& get_name(mpl::false_) \
{ \
- static bstring s_name(BOOST_STR_LIT(TYPE_NAME_STRING)); \
+ static cts::bstring s_name(BOOST_CTS_LIT(TYPE_NAME_STRING)); \
return s_name; \
}
Modified: sandbox/mirror/boost/mirror/detail/static_int_to_str.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/static_int_to_str.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/static_int_to_str.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -37,29 +37,29 @@
//
//
template <int J>
- static inline bchar get_digit(mpl::int_<J> pos)
+ static inline cts::bchar get_digit(mpl::int_<J> pos)
{
- static const bchar zero = BOOST_STR_LIT('0');
+ static const cts::bchar zero = BOOST_CTS_LIT('0');
typedef typename static_pow10<
length::value - mpl::int_<J>::value
>::type K;
return zero + (I / K::value) % 10;
}
//
- static inline void do_copy_to(bchar* _str, mpl::int_<0>){ }
+ static inline void do_copy_to(cts::bchar* _str, mpl::int_<0>){ }
//
template <int J>
- static inline void do_copy_to(bchar* _str, mpl::int_<J> pos)
+ static inline void do_copy_to(cts::bchar* _str, mpl::int_<J> pos)
{
_str[J-1] = get_digit(pos);
do_copy_to(_str, mpl::int_<J - 1>());
}
//
- static bchar* convert(bchar* _str, size_t _max_len)
+ static cts::bchar* convert(cts::bchar* _str, size_t _max_len)
{
assert(_max_len > size_t(length::value));
do_copy_to(_str, length());
- _str[length::value] = BOOST_STR_LIT('\0');
+ _str[length::value] = BOOST_CTS_LIT('\0');
return _str;
}
};
@@ -68,11 +68,11 @@
struct static_int_to_str<0>
{
typedef mpl::int_<1>::type length;
- static bchar* convert(bchar* _str, size_t _max_len)
+ static cts::bchar* convert(cts::bchar* _str, size_t _max_len)
{
assert(_max_len > 1);
- _str[0] = BOOST_STR_LIT('0');
- _str[1] = BOOST_STR_LIT('\0');
+ _str[0] = BOOST_CTS_LIT('0');
+ _str[1] = BOOST_CTS_LIT('\0');
return _str;
}
};
@@ -89,10 +89,10 @@
number_length::value
> length;
//
- static inline void do_apply_prefix_to(bchar* _str, mpl::int_<0>){ }
+ static inline void do_apply_prefix_to(cts::bchar* _str, mpl::int_<0>){ }
//
template <int J>
- static inline void do_apply_prefix_to(bchar* _str, mpl::int_<J> pos)
+ static inline void do_apply_prefix_to(cts::bchar* _str, mpl::int_<J> pos)
{
_str[J-1] = mpl::at<
prefix,
@@ -101,7 +101,7 @@
do_apply_prefix_to(_str, mpl::int_<J - 1>());
}
//
- static bchar* convert(bchar* _str, size_t _max_len)
+ static cts::bchar* convert(cts::bchar* _str, size_t _max_len)
{
// check the length
assert(_max_len > size_t(length::value));
@@ -112,15 +112,15 @@
// append given int as string
static_int_to_str<I>::convert(_str + offs, _max_len - offs);
// finalize the string
- _str[length::value] = BOOST_STR_LIT('\0');
+ _str[length::value] = BOOST_CTS_LIT('\0');
return _str;
}
//
struct holder
{
- static const bchar* get(void)
+ static const cts::bchar* get(void)
{
- static bchar str[length::value+1] = {0};
+ static cts::bchar str[length::value+1] = {0};
if(!str[0]) convert(str, length::value+1);
return str;
}
Modified: sandbox/mirror/boost/mirror/detail/template_name.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/detail/template_name.hpp (original)
+++ sandbox/mirror/boost/mirror/detail/template_name.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -37,20 +37,20 @@
public:
template <bool FullName>
- inline static bstring build_name(
+ inline static cts::bstring build_name(
mpl::bool_<FullName> full_or_base,
- bstring& left,
- bstring& right,
- bstring& ex,
- bstring& arg
+ cts::bstring& left,
+ cts::bstring& right,
+ cts::bstring& ex,
+ cts::bstring& arg
)
{
- static bstring comma(BOOST_STR_LIT(", "));
- static bstring l_angle(BOOST_STR_LIT("< "));
- static bstring r_angle(BOOST_STR_LIT(" >"));
+ static cts::bstring comma(BOOST_CTS_LIT(", "));
+ static cts::bstring l_angle(BOOST_CTS_LIT("< "));
+ static cts::bstring r_angle(BOOST_CTS_LIT(" >"));
//
// get the template name
- bstring res(base_meta_template::get_name(full_or_base));
+ cts::bstring res(base_meta_template::get_name(full_or_base));
// argument list
res.append(l_angle);
append_args(((TplArgTypeList*)0), res, full_or_base);
Modified: sandbox/mirror/boost/mirror/function/select_base_name.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/function/select_base_name.hpp (original)
+++ sandbox/mirror/boost/mirror/function/select_base_name.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -17,7 +17,7 @@
struct select_base_name
{
template <class MetaObject>
- inline const bchar* operator()(MetaObject) const
+ inline const cts::bchar* operator()(MetaObject) const
{
return MetaObject::base_name();
}
Modified: sandbox/mirror/boost/mirror/function/select_full_name.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/function/select_full_name.hpp (original)
+++ sandbox/mirror/boost/mirror/function/select_full_name.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -17,7 +17,7 @@
struct select_full_name
{
template <class MetaObject>
- inline const bchar* operator()(MetaObject) const
+ inline const cts::bchar* operator()(MetaObject) const
{
return MetaObject::full_name();
}
Modified: sandbox/mirror/boost/mirror/meta_attributes.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_attributes.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_attributes.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -310,7 +310,7 @@
* attributes from the base classes.
*/
template <int I>
- static const bchar*
+ static const cts::bchar*
base_name(mpl::int_<I> pos, mpl::bool_<true>)
{
typedef typename inherited_attrib_meta_class_and_pos<I>
@@ -322,7 +322,7 @@
}
template <int I>
- static const bchar*
+ static const cts::bchar*
base_name(mpl::int_<I> pos, mpl::bool_<false>)
{
typedef typename own_attrib_meta_class_and_pos<I>
@@ -505,7 +505,7 @@
* the inherited ones)
*/
template <int I>
- static const bchar*
+ static const cts::bchar*
base_name(mpl::int_<I> pos)
{
return detail::base_name(
@@ -612,7 +612,7 @@
>::type type;
// base name getter
- inline static const bchar* base_name(void)
+ inline static const cts::bchar* base_name(void)
{
return meta_attributes::base_name(position());
}
Modified: sandbox/mirror/boost/mirror/meta_classes/boost_tuple.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_classes/boost_tuple.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_classes/boost_tuple.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -32,10 +32,10 @@
//
// member attribute base name getter
template <int I>
- static const bchar* base_name(mpl::int_<I>)
+ static const cts::bchar* base_name(mpl::int_<I>)
{
typedef typename boost::mirror::detail::static_int_to_str_w_prefix<
- mpl::vector_c<bchar, BOOST_STR_LIT('_') >, I
+ mpl::vector_c<cts::bchar, BOOST_CTS_LIT('_') >, I
>::holder name;
//
return name::get();
Modified: sandbox/mirror/boost/mirror/meta_namespace.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_namespace.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_namespace.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -49,12 +49,12 @@
NamespacePlaceholder
> base_class;
- inline static const bstring& base_name(void)
+ inline static const cts::bstring& base_name(void)
{
return base_class::get_name(mpl::false_());
}
- inline static const bstring& full_name(void)
+ inline static const cts::bstring& full_name(void)
{
return base_class::get_name(mpl::true_());
}
@@ -79,24 +79,24 @@
struct _
{
// the base name of the namespace
- inline static const bstring& get_name(mpl::false_)
+ inline static const cts::bstring& get_name(mpl::false_)
{
- static bstring s_name;
+ static cts::bstring s_name;
return s_name;
}
// the full name of the namespace
- inline static const bstring& get_name(mpl::true_)
+ inline static const cts::bstring& get_name(mpl::true_)
{
return get_name(mpl::false_());
}
- inline static const bstring& base_name(void)
+ inline static const cts::bstring& base_name(void)
{
return get_name(mpl::false_());
}
- inline static const bstring& full_name(void)
+ inline static const cts::bstring& full_name(void)
{
return get_name(mpl::true_());
}
@@ -167,9 +167,9 @@
_, \
BOOST_PP_SEQ_POP_BACK(NAME_SEQUENCE) \
) :: _ parent_placeholder; /* -4- */ \
- static const bstring& get_name(mpl::false_) \
+ static const ::boost::cts::bstring& get_name(mpl::false_) \
{ \
- static bstring s_name(BOOST_CTS_STRINGIZE( \
+ static ::boost::cts::bstring s_name(BOOST_CTS_STRINGIZE( \
BOOST_PP_SEQ_HEAD( \
BOOST_PP_SEQ_REVERSE(NAME_SEQUENCE) \
) \
Added: sandbox/mirror/boost/mirror/meta_namespaces/boost_cts.hpp
==============================================================================
--- (empty file)
+++ sandbox/mirror/boost/mirror/meta_namespaces/boost_cts.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,24 @@
+/**
+ * \file boost/mirror/meta_namespaces/boost_cts.hpp
+ * Meta-namespace for the boost::cts namespace
+ *
+ * Copyright 2008 Matus Chochlik. Distributed under the Boost
+ * Software License, Version 1.0. (See accompanying file
+ * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ */
+
+#ifndef BOOST_MIRROR_META_NAMESPACES_BOOST_CTS_HPP
+#define BOOST_MIRROR_META_NAMESPACES_BOOST_CTS_HPP
+
+#include <boost/mirror/meta_namespace.hpp>
+
+namespace boost {
+namespace mirror {
+
+BOOST_MIRROR_REG_NAMESPACE((boost)(cts))
+
+} // namespace mirror
+} // namespace boost
+
+#endif //include guard
+
Modified: sandbox/mirror/boost/mirror/meta_types/_free_fn.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_types/_free_fn.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_types/_free_fn.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -28,9 +28,9 @@
#define BOOST_MIRROR_DECLARE_CALLING_CONVENTION_HELPER(CC) \
struct __##CC##_ \
{ \
- inline static const bstring& name(void) \
+ inline static const ::boost::cts::bstring& name(void) \
{ \
- static bstring cc_name(BOOST_CTS_STRINGIZE(__##CC)); \
+ static ::boost::cts::bstring cc_name(BOOST_CTS_STRINGIZE(__##CC));\
return cc_name; \
} \
};
@@ -41,7 +41,7 @@
struct __default_
{
- inline static bstring name(void){return bstring();}
+ inline static cts::bstring name(void){return cts::bstring();}
};
// undefine the helper macros
Modified: sandbox/mirror/boost/mirror/meta_types/boost_bstring.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/meta_types/boost_bstring.hpp (original)
+++ sandbox/mirror/boost/mirror/meta_types/boost_bstring.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -14,14 +14,15 @@
// register string types
#include <boost/mirror/meta_types/std_string.hpp>
#include <boost/char_type_switch/string.hpp>
+#include <boost/mirror/meta_namespaces/boost_cts.hpp>
namespace boost {
namespace mirror {
/** Register the bchar and bstring
*/
-BOOST_MIRROR_REG_TYPEDEF(::boost, bchar)
-BOOST_MIRROR_REG_TYPEDEF(::boost, bstring)
+BOOST_MIRROR_REG_TYPEDEF(::boost::cts, bchar)
+BOOST_MIRROR_REG_TYPEDEF(::boost::cts, bstring)
} // namespace mirror
Modified: sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp (original)
+++ sandbox/mirror/boost/mirror/visitors/meta_path_sample.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -51,7 +51,7 @@
void print_indent(void) const
{
- if(!simple) bcout << ::std::endl << "\t\t";
+ if(!simple) cts::bcout() << ::std::endl << "\t\t";
}
template <
@@ -67,7 +67,7 @@
AttribPos
> mca) const
{
- bcout << "|attribute '" << mca.base_name() << "'|";
+ cts::bcout() << "|attribute '" << mca.base_name() << "'|";
print_indent();
}
@@ -80,7 +80,7 @@
VariantTag
> mca) const
{
- bcout << "|attributes|";
+ cts::bcout() << "|attributes|";
print_indent();
}
@@ -93,7 +93,7 @@
VariantTag
> mca) const
{
- bcout << "|all_attributes|";
+ cts::bcout() << "|all_attributes|";
print_indent();
}
@@ -106,7 +106,7 @@
VariantTag
> mca) const
{
- bcout << "|base_classes|";
+ cts::bcout() << "|base_classes|";
print_indent();
}
@@ -129,14 +129,14 @@
AccessSpec,
InheritanceSpec
>::meta_base_class mbc;
- bcout << "|base_class '" << mbc::base_name() << "'|";
+ cts::bcout() << "|base_class '" << mbc::base_name() << "'|";
print_indent();
}
template <class Class>
void operator()(meta_class<Class> mc) const
{
- bcout << "|type '" << mc.base_name() << "'|";
+ cts::bcout() << "|type '" << mc.base_name() << "'|";
print_indent();
}
};
@@ -213,12 +213,12 @@
{
using ::std::endl;
//
- bcout << "\t" << name << ": ";
+ cts::bcout() << "\t" << name << ": ";
meta_path::for_each<
Axis<Context>,
mpl::lambda<mpl::second<mpl::_1> >
>(detail::node_printer());
- bcout << endl;
+ cts::bcout() << endl;
}
template <class MetaObject, class Context>
@@ -227,9 +227,9 @@
using ::std::endl;
//
detail::node_printer p;
- bcout << "node ";
+ cts::bcout() << "node ";
p(mo);
- bcout << ":" << endl;
+ cts::bcout() << ":" << endl;
//
print_node_set<meta_path::self>("self", mo, ctx);
print_node_set<meta_path::parent>("parent", mo, ctx);
Modified: sandbox/mirror/boost/mirror/visitors/sample.hpp
==============================================================================
--- sandbox/mirror/boost/mirror/visitors/sample.hpp (original)
+++ sandbox/mirror/boost/mirror/visitors/sample.hpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -43,16 +43,16 @@
using namespace ::boost;
print_indentation();
++indent;
- bcout <<
+ cts::bcout() <<
"<type name='" <<
MetaClass::base_name();
if(!reflects_global_scope<typename MetaClass::scope>::value)
{
- bcout <<
+ cts::bcout() <<
"' scope='" <<
MetaClass::scope::full_name();
}
- bcout <<
+ cts::bcout() <<
"'>" <<
endl;
}
@@ -65,7 +65,7 @@
using namespace ::boost;
--indent;
print_indentation();
- bcout << "</type>" << endl;
+ cts::bcout() << "</type>" << endl;
}
template <class MetaClass, class BaseClasses, class Context>
@@ -77,7 +77,7 @@
{
print_indentation();
++indent;
- bcout <<
+ cts::bcout() <<
"<base_classes>" <<
endl;
}
@@ -92,7 +92,7 @@
{
--indent;
print_indentation();
- bcout << "</base_classes>" << endl;
+ cts::bcout() << "</base_classes>" << endl;
}
}
@@ -105,7 +105,7 @@
using namespace ::boost;
print_indentation();
++indent;
- bcout <<
+ cts::bcout() <<
"<base_class number='" <<
MetaInheritance::position::value <<
"' is_virtual='"<<
@@ -122,7 +122,7 @@
using namespace ::boost;
--indent;
print_indentation();
- bcout << "</base_class>" << endl;
+ cts::bcout() << "</base_class>" << endl;
}
@@ -138,7 +138,7 @@
{
print_indentation();
++indent;
- bcout <<
+ cts::bcout() <<
"<attributes>" <<
endl;
}
@@ -156,7 +156,7 @@
{
--indent;
print_indentation();
- bcout << "</attributes>" << endl;
+ cts::bcout() << "</attributes>" << endl;
}
}
@@ -167,7 +167,7 @@
using namespace ::boost;
print_indentation();
++indent;
- bcout <<
+ cts::bcout() <<
"<attribute number='" <<
MetaAttribute::position::value <<
"' name='" <<
@@ -187,7 +187,7 @@
using namespace ::boost;
--indent;
print_indentation();
- bcout << "</attribute>" << endl;
+ cts::bcout() << "</attribute>" << endl;
}
template <class MetaClass, class Context, typename InstanceType>
@@ -211,7 +211,7 @@
using namespace ::std;
using namespace ::boost;
print_indentation();
- bcout <<
+ cts::bcout() <<
"<value depth='" <<
mpl::size<Context>::value <<
"'>" <<
@@ -224,7 +224,7 @@
void print_indentation(void)
{
for(int i=0;i!=indent;++i)
- bcout << ' ';
+ cts::bcout() << ' ';
}
};
Added: sandbox/mirror/doc/Jamfile.v2
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/Jamfile.v2 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,24 @@
+# Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
+#
+# Distributed under the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+project mirror/doc ;
+import boostbook : boostbook ;
+
+boostbook doc
+ :
+ src/mirror.xml
+ :
+ <xsl:param>boost.libraries=../../libs/libraries.htm
+
+ <dependency>css
+ <dependency>images
+ ;
+
+install css : [ glob src/*.css ] : <location>html ;
+explicit css ;
+install images : [ glob src/images/*.png ] : <location>html/images ;
+explicit images ;
+
+
Added: sandbox/mirror/doc/src/boostbook.css
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/src/boostbook.css 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,588 @@
+/*=============================================================================
+ Copyright (c) 2004 Joel de Guzman
+ http://spirit.sourceforge.net/
+
+ Distributed under the Boost Software License, Version 1.0. (See accompany-
+ ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+=============================================================================*/
+
+/*=============================================================================
+ Body defaults
+=============================================================================*/
+
+ body
+ {
+ margin: 1em;
+ font-family: sans-serif;
+ }
+
+/*=============================================================================
+ Paragraphs
+=============================================================================*/
+
+ p
+ {
+ text-align: left;
+ font-size: 10pt;
+ line-height: 1.15;
+ }
+
+/*=============================================================================
+ Program listings
+=============================================================================*/
+
+ /* Code on paragraphs */
+ p tt.computeroutput
+ {
+ font-size: 9pt;
+ }
+
+ pre.synopsis
+ {
+ font-size: 90%;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ .programlisting,
+ .screen
+ {
+ font-size: 9pt;
+ display: block;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ /* Program listings in tables don't get borders */
+ td .programlisting,
+ td .screen
+ {
+ margin: 0pc 0pc 0pc 0pc;
+ padding: 0pc 0pc 0pc 0pc;
+ }
+
+/*=============================================================================
+ Headings
+=============================================================================*/
+
+ h1, h2, h3, h4, h5, h6
+ {
+ text-align: left;
+ margin: 1em 0em 0.5em 0em;
+ font-weight: bold;
+ }
+
+ h1 { font: 140% }
+ h2 { font: bold 140% }
+ h3 { font: bold 130% }
+ h4 { font: bold 120% }
+ h5 { font: italic 110% }
+ h6 { font: italic 100% }
+
+ /* Top page titles */
+ title,
+ h1.title,
+ h2.title
+ h3.title,
+ h4.title,
+ h5.title,
+ h6.title,
+ .refentrytitle
+ {
+ font-weight: bold;
+ margin-bottom: 1pc;
+ }
+
+ h1.title { font-size: 140% }
+ h2.title { font-size: 140% }
+ h3.title { font-size: 130% }
+ h4.title { font-size: 120% }
+ h5.title { font-size: 110% }
+ h6.title { font-size: 100% }
+
+ .section h1
+ {
+ margin: 0em 0em 0.5em 0em;
+ font-size: 140%;
+ }
+
+ .section h2 { font-size: 140% }
+ .section h3 { font-size: 130% }
+ .section h4 { font-size: 120% }
+ .section h5 { font-size: 110% }
+ .section h6 { font-size: 100% }
+
+ /* Code on titles */
+ h1 tt.computeroutput { font-size: 140% }
+ h2 tt.computeroutput { font-size: 140% }
+ h3 tt.computeroutput { font-size: 130% }
+ h4 tt.computeroutput { font-size: 120% }
+ h5 tt.computeroutput { font-size: 110% }
+ h6 tt.computeroutput { font-size: 100% }
+
+/*=============================================================================
+ Author
+=============================================================================*/
+
+ h3.author
+ {
+ font-size: 100%
+ }
+
+/*=============================================================================
+ Lists
+=============================================================================*/
+
+ li
+ {
+ font-size: 10pt;
+ line-height: 1.3;
+ }
+
+ /* Unordered lists */
+ ul
+ {
+ text-align: left;
+ }
+
+ /* Ordered lists */
+ ol
+ {
+ text-align: left;
+ }
+
+/*=============================================================================
+ Links
+=============================================================================*/
+
+ a
+ {
+ text-decoration: none; /* no underline */
+ }
+
+ a:hover
+ {
+ text-decoration: underline;
+ }
+
+/*=============================================================================
+ Spirit style navigation
+=============================================================================*/
+
+ .spirit-nav
+ {
+ text-align: right;
+ }
+
+ .spirit-nav a
+ {
+ color: white;
+ padding-left: 0.5em;
+ }
+
+ .spirit-nav img
+ {
+ border-width: 0px;
+ }
+
+/*=============================================================================
+ Copyright footer
+=============================================================================*/
+ .copyright-footer
+ {
+ text-align: right;
+ font-size: 70%;
+ }
+
+ .copyright-footer p
+ {
+ text-align: right;
+ font-size: 80%;
+ }
+
+/*=============================================================================
+ Table of contents
+=============================================================================*/
+
+ .toc
+ {
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.1pc 1pc 0.1pc 1pc;
+ font-size: 80%;
+ line-height: 1.15;
+ }
+
+ .boost-toc
+ {
+ float: right;
+ padding: 0.5pc;
+ }
+
+/*=============================================================================
+ Tables
+=============================================================================*/
+
+ .table-title,
+ div.table p.title
+ {
+ margin-left: 4%;
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+ }
+
+ .informaltable table,
+ .table table
+ {
+ width: 92%;
+ margin-left: 4%;
+ margin-right: 4%;
+ }
+
+ div.informaltable table,
+ div.table table
+ {
+ padding: 4px;
+ }
+
+ /* Table Cells */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ padding: 0.5em;
+ text-align: left;
+ font-size: 9pt;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ padding: 0.5em 0.5em 0.5em 0.5em;
+ border: 1pt solid white;
+ font-size: 80%;
+ }
+
+ table.simplelist
+ {
+ width: auto !important;
+ margin: 0em !important;
+ padding: 0em !important;
+ border: none !important;
+ }
+ table.simplelist td
+ {
+ margin: 0em !important;
+ padding: 0em !important;
+ text-align: left !important;
+ font-size: 9pt !important;
+ border: none !important;
+ }
+
+/*=============================================================================
+ Blurbs
+=============================================================================*/
+
+ div.note,
+ div.tip,
+ div.important,
+ div.caution,
+ div.warning,
+ p.blurb
+ {
+ font-size: 9pt; /* A little bit smaller than the main text */
+ line-height: 1.2;
+ display: block;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ p.blurb img
+ {
+ padding: 1pt;
+ }
+
+/*=============================================================================
+ Variable Lists
+=============================================================================*/
+
+ /* Make the terms in definition lists bold */
+ div.variablelist dl dt,
+ span.term
+ {
+ font-weight: bold;
+ font-size: 10pt;
+ }
+
+ div.variablelist table tbody tr td
+ {
+ text-align: left;
+ vertical-align: top;
+ padding: 0em 2em 0em 0em;
+ font-size: 10pt;
+ margin: 0em 0em 0.5em 0em;
+ line-height: 1;
+ }
+
+ div.variablelist dl dt
+ {
+ margin-bottom: 0.2em;
+ }
+
+ div.variablelist dl dd
+ {
+ margin: 0em 0em 0.5em 2em;
+ font-size: 10pt;
+ }
+
+ div.variablelist table tbody tr td p,
+ div.variablelist dl dd p
+ {
+ margin: 0em 0em 0.5em 0em;
+ line-height: 1;
+ }
+
+/*=============================================================================
+ Misc
+=============================================================================*/
+
+ /* Title of books and articles in bibliographies */
+ span.title
+ {
+ font-style: italic;
+ }
+
+ span.underline
+ {
+ text-decoration: underline;
+ }
+
+ span.strikethrough
+ {
+ text-decoration: line-through;
+ }
+
+ /* Copyright, Legal Notice */
+ div div.legalnotice p
+ {
+ text-align: left
+ }
+
+/*=============================================================================
+ Colors
+=============================================================================*/
+
+ @media screen
+ {
+ body {
+ background-color: #FFFFFF;
+ }
+
+ /* Links */
+ a
+ {
+ color: #005a9c;
+ }
+
+ a:visited
+ {
+ color: #9c5a9c;
+ }
+
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
+ h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
+ h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
+ {
+ text-decoration: none; /* no underline */
+ color: #000000;
+ }
+
+ /* Syntax Highlighting */
+ .keyword { color: #0000AA; }
+ .identifier { color: #000000; }
+ .special { color: #707070; }
+ .preprocessor { color: #402080; }
+ .char { color: teal; }
+ .comment { color: #800000; }
+ .string { color: teal; }
+ .number { color: teal; }
+ .white_bkd { background-color: #FFFFFF; }
+ .dk_grey_bkd { background-color: #999999; }
+
+ /* Copyright, Legal Notice */
+ .copyright
+ {
+ color: #666666;
+ font-size: small;
+ }
+
+ div div.legalnotice p
+ {
+ color: #666666;
+ }
+
+ /* Program listing */
+ pre.synopsis
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ .programlisting,
+ .screen
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ td .programlisting,
+ td .screen
+ {
+ border: 0px solid #DCDCDC;
+ }
+
+ /* Blurbs */
+ div.note,
+ div.tip,
+ div.important,
+ div.caution,
+ div.warning,
+ p.blurb
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ /* Table of contents */
+ .toc
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ /* Tables */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ background-color: #F0F0F0;
+ border: 1px solid #DCDCDC;
+ }
+
+ .copyright-footer
+ {
+ color: #8F8F8F;
+ }
+
+ /* Misc */
+ span.highlight
+ {
+ color: #00A000;
+ }
+ }
+
+ @media print
+ {
+ /* Links */
+ a
+ {
+ color: black;
+ }
+
+ a:visited
+ {
+ color: black;
+ }
+
+ .spirit-nav
+ {
+ display: none;
+ }
+
+ /* Program listing */
+ pre.synopsis
+ {
+ border: 1px solid gray;
+ }
+
+ .programlisting,
+ .screen
+ {
+ border: 1px solid gray;
+ }
+
+ td .programlisting,
+ td .screen
+ {
+ border: 0px solid #DCDCDC;
+ }
+
+ /* Table of contents */
+ .toc
+ {
+ border: 1px solid gray;
+ }
+
+ .informaltable table,
+ .table table
+ {
+ border: 1px solid gray;
+ border-collapse: collapse;
+ }
+
+ /* Tables */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ border: 1px solid gray;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ border: 1px solid gray;
+ }
+
+ table.simplelist tr td
+ {
+ border: none !important;
+ }
+
+ /* Misc */
+ span.highlight
+ {
+ font-weight: bold;
+ }
+ }
+
+/*=============================================================================
+ Images
+=============================================================================*/
+
+ span.inlinemediaobject img
+ {
+ vertical-align: middle;
+ }
+
+/*==============================================================================
+ Super and Subscript: style so that line spacing isn't effected, see
+ http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341
+==============================================================================*/
+
+sup,
+sub {
+ height: 0;
+ line-height: 1;
+ vertical-align: baseline;
+ _vertical-align: bottom;
+ position: relative;
+
+}
+
+sup {
+ bottom: 1ex;
+}
+
+sub {
+ top: .5ex;
+}
+
Added: sandbox/mirror/doc/src/docutils.css
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/src/docutils.css 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,275 @@
+/*
+:Author: David Goodger
+:Contact: goodger_at_[hidden]
+:Date: $Date: 2007-11-25 14:34:32 -0500 (Sun, 25 Nov 2007) $
+:Revision: $Revision: 41371 $
+:Copyright: This stylesheet has been placed in the public domain.
+
+Default cascading style sheet for the HTML output of Docutils.
+
+See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
+customize this style sheet.
+*/
+
+/* used to remove borders from tables and images */
+.borderless, table.borderless td, table.borderless th {
+ border: 0 }
+
+table.borderless td, table.borderless th {
+ /* Override padding for "table.docutils td" with "! important".
+ The right padding separates the table cells. */
+ padding: 0 0.5em 0 0 ! important }
+
+.first {
+ /* Override more specific margin styles with "! important". */
+ margin-top: 0 ! important }
+
+.last, .with-subtitle {
+ margin-bottom: 0 ! important }
+
+.hidden {
+ display: none }
+
+a.toc-backref {
+ text-decoration: none ;
+ color: black }
+
+blockquote.epigraph {
+ margin: 2em 5em ; }
+
+dl.docutils dd {
+ margin-bottom: 0.5em }
+
+/* Uncomment (and remove this text!) to get bold-faced definition list terms
+dl.docutils dt {
+ font-weight: bold }
+*/
+
+div.abstract {
+ margin: 2em 5em }
+
+div.abstract p.topic-title {
+ font-weight: bold ;
+ text-align: center }
+
+div.admonition, div.attention, div.caution, div.danger, div.error,
+div.hint, div.important, div.note, div.tip, div.warning {
+ margin: 2em ;
+ border: medium outset ;
+ padding: 1em }
+
+div.admonition p.admonition-title, div.hint p.admonition-title,
+div.important p.admonition-title, div.note p.admonition-title,
+div.tip p.admonition-title {
+ font-weight: bold ;
+ font-family: sans-serif }
+
+div.attention p.admonition-title, div.caution p.admonition-title,
+div.danger p.admonition-title, div.error p.admonition-title,
+div.warning p.admonition-title {
+ color: red ;
+ font-weight: bold ;
+ font-family: sans-serif }
+
+/* Uncomment (and remove this text!) to get reduced vertical space in
+ compound paragraphs.
+div.compound .compound-first, div.compound .compound-middle {
+ margin-bottom: 0.5em }
+
+div.compound .compound-last, div.compound .compound-middle {
+ margin-top: 0.5em }
+*/
+
+div.dedication {
+ margin: 2em 5em ;
+ text-align: center ;
+ font-style: italic }
+
+div.dedication p.topic-title {
+ font-weight: bold ;
+ font-style: normal }
+
+div.figure {
+ margin-left: 2em ;
+ margin-right: 2em }
+
+div.footer, div.header {
+ clear: both;
+ font-size: smaller }
+
+div.line-block {
+ display: block ;
+ margin-top: 1em ;
+ margin-bottom: 1em }
+
+div.line-block div.line-block {
+ margin-top: 0 ;
+ margin-bottom: 0 ;
+ margin-left: 1.5em }
+
+div.sidebar {
+ margin-left: 1em ;
+ border: medium outset ;
+ padding: 1em ;
+ background-color: #ffffee ;
+ width: 40% ;
+ float: right ;
+ clear: right }
+
+div.sidebar p.rubric {
+ font-family: sans-serif ;
+ font-size: medium }
+
+div.system-messages {
+ margin: 5em }
+
+div.system-messages h1 {
+ color: red }
+
+div.system-message {
+ border: medium outset ;
+ padding: 1em }
+
+div.system-message p.system-message-title {
+ color: red ;
+ font-weight: bold }
+
+div.topic {
+ margin: 2em }
+
+h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
+h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
+ margin-top: 0.4em }
+
+h1.title {
+ text-align: center }
+
+h2.subtitle {
+ text-align: center }
+
+hr.docutils {
+ width: 75% }
+
+img.align-left {
+ clear: left }
+
+img.align-right {
+ clear: right }
+
+ol.simple, ul.simple {
+ margin-bottom: 1em }
+
+ol.arabic {
+ list-style: decimal }
+
+ol.loweralpha {
+ list-style: lower-alpha }
+
+ol.upperalpha {
+ list-style: upper-alpha }
+
+ol.lowerroman {
+ list-style: lower-roman }
+
+ol.upperroman {
+ list-style: upper-roman }
+
+p.attribution {
+ text-align: right ;
+ margin-left: 50% }
+
+p.caption {
+ font-style: italic }
+
+p.credits {
+ font-style: italic ;
+ font-size: smaller }
+
+p.label {
+ white-space: nowrap }
+
+p.rubric {
+ font-weight: bold ;
+ font-size: larger ;
+ color: maroon ;
+ text-align: center }
+
+p.sidebar-title {
+ font-family: sans-serif ;
+ font-weight: bold ;
+ font-size: larger }
+
+p.sidebar-subtitle {
+ font-family: sans-serif ;
+ font-weight: bold }
+
+p.topic-title {
+ font-weight: bold }
+
+pre.address {
+ margin-bottom: 0 ;
+ margin-top: 0 ;
+ font-family: serif ;
+ font-size: 100% }
+
+pre.literal-block, pre.doctest-block {
+ margin-left: 2em ;
+ margin-right: 2em }
+
+span.classifier {
+ font-family: sans-serif ;
+ font-style: oblique }
+
+span.classifier-delimiter {
+ font-family: sans-serif ;
+ font-weight: bold }
+
+span.interpreted {
+ font-family: sans-serif }
+
+span.option {
+ white-space: nowrap }
+
+span.pre {
+ white-space: pre }
+
+span.problematic {
+ color: red }
+
+span.section-subtitle {
+ /* font-size relative to parent (h1..h6 element) */
+ font-size: 80% }
+
+table.citation {
+ border-left: solid 1px gray;
+ margin-left: 1px }
+
+table.docinfo {
+ margin: 2em 4em }
+
+table.docutils {
+ margin-top: 0.5em ;
+ margin-bottom: 0.5em }
+
+table.footnote {
+ border-left: solid 1px black;
+ margin-left: 1px }
+
+table.docutils td, table.docutils th,
+table.docinfo td, table.docinfo th {
+ padding-left: 0.5em ;
+ padding-right: 0.5em ;
+ vertical-align: top }
+
+table.docutils th.field-name, table.docinfo th.docinfo-name {
+ font-weight: bold ;
+ text-align: left ;
+ white-space: nowrap ;
+ padding-left: 0 }
+
+h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
+h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
+ font-size: 100% }
+
+ul.auto-toc {
+ list-style-type: none }
Added: sandbox/mirror/doc/src/images/blank.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/caution.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/draft.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/home.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/important.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/next.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/next_disabled.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/note.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/prev.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/prev_disabled.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/tip.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/toc-blank.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/toc-minus.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/toc-plus.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/up.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/up_disabled.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/images/warning.png
==============================================================================
Binary file. No diff available.
Added: sandbox/mirror/doc/src/mirror.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/src/mirror.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE boostbook PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
+ "http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
+<boostbook xmlns:xi="http://www.w3.org/2001/XInclude"
+ last-revision="$Date: 2008-07-15 10:43:00 +0200 (Tue, 15 Jul 2008) $">
+ <title>The Mirror library documentation</title>
+
+ <preface id="about">
+ <title>About this document</title>
+
+ <para>This is the documentation to the Mirror C++ reflection library that is developed
+ with the intention to be proposed as a Boost C++ library at some point in the future.
+ </para>
+ <note><para>The documentation is far from being complete and does not cover every feature
+ already implemented, yet.
+ </para></note>
+
+ </preface>
+
+ <part id="libraries">
+ <title>The Mirror library</title>
+
+ <xi:include href="../../libs/mirror/doc/mirror.xml"/>
+ </part>
+</boostbook>
Added: sandbox/mirror/doc/src/reference.css
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/src/reference.css 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,11 @@
+/*============================================================================
+ Copyright 2003-2004 Douglas Gregor
+ Distributed under the Boost Software License, Version 1.0. (See accompany-
+ ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+============================================================================*/
+
+PRE.synopsis {
+ background-color: #e0ffff;
+ border: thin solid blue;
+ padding: 1em
+}
\ No newline at end of file
Modified: sandbox/mirror/libs/mirror/doc/introduction.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/introduction.xml (original)
+++ sandbox/mirror/libs/mirror/doc/introduction.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -14,17 +14,17 @@
The aim of the <libraryname>Mirror</libraryname> library is to provide
useful meta-data at both compile-time and run-time about common
C++ constructs like namespaces, types
- (and as a important special case <code>typedef</code>-ined types),
+ (and as an important special case <code>typedef</code>-ined types),
classes and their base classes and member attributes, instances, etc. and to
provide uniform and generic interfaces for their introspection.
</para>
<para>
Because standard C++ provides only a very limited set of meta-information
- the main drawback of this library is that namespace, types, classes, etc.
+ to build upon, the main drawback of this library is, that namespace, types, classes, etc.
need to be registered before they can be reflected.
However <libraryname>Mirror</libraryname> tries to make the process of
registering simple by providing a set of user-friendly registering macros
- and has many of the native and other common types, classes, templates and
+ and has the native and many of the other common types, classes, templates and
namespaces pre-registered.
</para>
<para>
@@ -50,7 +50,7 @@
scope or nested in another namespace).
</listitem>
<listitem>
- Type-name inspection, with the support for <code>typedef</code>-ined
+ Type-name querying, with the support for <code>typedef</code>-ined
typenames and typenames of derived types like pointers, references,
cv-qualified types, arrays, functions and template names. Names
with or without nested-name-specifiers can be queried.
@@ -138,7 +138,7 @@
In this case the typenames in the output need to correspond to C++ typenames.
</para>
<para>
- The obvious choice if one needs to find out what the name of a given type is is to
+ Maybe the first, obvious choice if one needs to find out what the name of a given type is is to
use the <code>typeid</code> operator and call the <code>name()</code> function
on the returned reference to <code>type_info</code>. The implementation of our
<code>get_typename<T>()</code> function from the previous sample code
@@ -154,7 +154,7 @@
Thus the returned name is not guarenteed to be unique nor human readable or
easily understandable, nor is it portable.
Some compilers provide functions that demangle the names returned by
- <code>type_info::name()</code> but again this is not very portable.
+ <code>type_info::name()</code>, but again this is not very portable.
</para>
<para>
One possible solution is the standardisation of the result of <code>typeid(T).name()</code>
@@ -173,7 +173,7 @@
</para>
<para>
This is when <libraryname>Mirror</libraryname> comes in handy. One of the basic
- facilities is the <code><classname>meta_type</classname></code> template.
+ facilities is the <code><classname>::boost::mirror::meta_type</classname></code> template.
Among other things this template has two member functions - <code>base_name</code>
and <code>full_name</code> that return the base type name without the nested
name specifier and the full type name with the nested name specifier respectively.
Modified: sandbox/mirror/libs/mirror/doc/mirror.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/mirror.xml (original)
+++ sandbox/mirror/libs/mirror/doc/mirror.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -35,6 +35,10 @@
<title>Mirror</title>
+ <note><para>The documentation is far from being complete and does not cover every feature
+ already implemented, yet.
+ </para></note>
+
<xi:include href="introduction.xml"/>
<xi:include href="tutorial.xml"/>
<xi:include href="reference.xml"/>
Modified: sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml (original)
+++ sandbox/mirror/libs/mirror/doc/reference/meta_namespace.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -101,7 +101,7 @@
</description>
</typedef>
<method name="base_name">
- <type>const <classname>bstring</classname>&</type>
+ <type>const <classname>cts::bstring</classname>&</type>
<purpose>
<para>This static member function returns the base name of the
namespace reflected by a <code><classname>meta_namespace</classname></code>.
@@ -115,7 +115,7 @@
</purpose>
</method>
<method name="full_name">
- <type>const <classname>bstring</classname>&</type>
+ <type>const <classname>cts::bstring</classname>&</type>
<purpose>
<para>This static member function returns the full name of the
namespace reflected by a <code><classname>meta_namespace</classname></code>
@@ -143,7 +143,7 @@
<type>bool</type>
</template-nontype-parameter>
</template>
- <type>const <classname>bstring</classname>&</type>
+ <type>const <classname>cts::bstring</classname>&</type>
<parameter name="full">
<paramtype>::boost::mpl::bool_<FullName></paramtype>
</parameter>
Modified: sandbox/mirror/libs/mirror/doc/reference/meta_type.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/reference/meta_type.xml (original)
+++ sandbox/mirror/libs/mirror/doc/reference/meta_type.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -11,7 +11,7 @@
<purpose>
<para>The purpose of this class template is to provide meta-data
about the reflected type, especially to allow to get the
- base and full type name, of the reflected type and to
+ base and full type name of the reflected type and to
get information about the scope inside of which this type
has been declared.
</para>
@@ -26,7 +26,7 @@
</purpose>
<description>
<para>The specializations of <code><classname>meta_type</classname></code> can
- be used to get meta-information about the reflected types at both compile-time and run-time.
+ be used to get meta-information about the reflected types, some at compile-time and some at run-time.
The following examples show type reflection and basic
<code><classname>meta_type</classname></code> usage. Mirror works with the native C++ types
and some of the very common types like <code>::std::string</code>, etc. out of the box.
@@ -74,7 +74,7 @@
</description>
</typedef>
<method name="base_name">
- <type>const <classname>bstring</classname>&</type>
+ <type>const <classname>cts::bstring</classname>&</type>
<purpose>
<para>This static member function returns the base name of the
type reflected by <code><classname>meta_type</classname></code>
@@ -100,7 +100,7 @@
</notes>
</method>
<method name="full_name">
- <type>const <classname>bstring</classname>&</type>
+ <type>const <classname>cts::bstring</classname>&</type>
<purpose>
<para>This static member function returns the full name of the
type reflected by <code><classname>meta_type</classname></code>
@@ -131,7 +131,7 @@
<type>bool</type>
</template-nontype-parameter>
</template>
- <type>const <classname>bstring</classname>&</type>
+ <type>const <classname>cts::bstring</classname>&</type>
<parameter name="full">
<paramtype>::boost::mpl::bool_<FullName></paramtype>
</parameter>
@@ -143,12 +143,12 @@
<code><classname>meta_type</classname></code>,
depending on the value of the template argument <code>FullName</code>.
For example:
- <programlisting><macroname>meta_type</macroname>(::std::string) :: get_name(::boost::mpl::false_())</programlisting> or
+ <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: get_name(::boost::mpl::false_())</programlisting> or
<programlisting><classname>meta_type</classname> < ::std::string > :: get_name(::boost::mpl::false_())</programlisting>
is equivalent to calling the
<code><methodname>base_name</methodname></code> member function and
returns simply <code>"string"</code> and
- <programlisting><macroname>meta_type</macroname>(::std::string) :: get_name(::boost::mpl::true_())</programlisting> or
+ <programlisting><macroname>BOOST_MIRRORED_TYPE</macroname>(::std::string) :: get_name(::boost::mpl::true_())</programlisting> or
<programlisting><classname>meta_type</classname> < ::std::string > :: get_name( ::boost::mpl::true_())</programlisting> is equivalent to calling the
<code><methodname>full_name</methodname></code> method which
returns <code>"::std::string"</code>.
Modified: sandbox/mirror/libs/mirror/doc/samples/typenames_naive.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/typenames_naive.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/typenames_naive.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -25,7 +25,7 @@
get_typename<C>() <<
")" <<
endl;
- // process args
+ // do something useful
log <<
"leaving foo(" <<
get_typename<A>() <<
Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_01.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -2,8 +2,7 @@
<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
<programlisting id="mirror.reference.sample.meta_type.usage01">
-
-#include <iostream>
+#include <boost/char_type_switch/iostream.hpp>
#include <boost/mirror/meta_type.hpp>
#include <boost/mirror/meta_types/std_pair.hpp>
@@ -24,7 +23,10 @@
typedef BOOST_MIRRORED_TYPE(T) meta_T;
// print out the full type name
- wcout << "The full type name is: "<< meta_T::full_name() << endl;
+ cts::bcout() <<
+ BOOST_CTS_LIT("The full type name is: ") <<
+ meta_T::full_name() <<
+ endl;
return 0;
}
Modified: sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml
==============================================================================
--- sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml (original)
+++ sandbox/mirror/libs/mirror/doc/samples/usage_meta_type_02.xml 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -42,7 +42,7 @@
print_meta_data< BOOST_MIRRORED_TYPEOF("1" "+" "2") >();
print_meta_data< BOOST_MIRRORED_TYPEOF(string("1")+string("2")) >();
- // another possibility
+ // BOOST_MIRRORED_TYPEOF is actually a shorter form of this:
print_meta_data< BOOST_MIRRORED_TYPE(
BOOST_TYPEOF(L"1" L"+" L"2")
) >();
Modified: sandbox/mirror/libs/mirror/example/algorithms/begin_end.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/algorithms/begin_end.cpp (original)
+++ sandbox/mirror/libs/mirror/example/algorithms/begin_end.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -63,6 +63,8 @@
using namespace ::boost;
using namespace ::boost::mirror;
//
+ cts::bostream& bcout = cts::bcout();
+ //
typedef tuple<bool, unsigned char, char, wchar_t, short, int, long, float, double> T;
//
typedef BOOST_MIRRORED_CLASS(T) meta_T;
Modified: sandbox/mirror/libs/mirror/example/registering/classes.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/registering/classes.cpp (original)
+++ sandbox/mirror/libs/mirror/example/registering/classes.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -86,15 +86,15 @@
// but must be stored by the setter function.
// Anyway, mirror supports this
//
- ::boost::bstring a_string;
- void set_string(const ::boost::bstring& a_str)
+ ::boost::cts::bstring a_string;
+ void set_string(const ::boost::cts::bstring& a_str)
{
a_string = a_str;
- ::boost::bcout << a_string << ::std::endl;
+ ::boost::cts::bcout() << a_string << ::std::endl;
}
//
// attribute with a type based on a typedefined type
- const ::boost::bchar* (*a_function)(int);
+ const ::boost::cts::bchar* (*a_function)(int);
public:
// A little weird getter/setter pair
// Note that the getter is not const
@@ -257,7 +257,7 @@
// to notify mirror that the type was typedefined
// The typedef must be registered with mirror prior doing this
BOOST_MIRROR_REG_CLASS_ATTRIB(
- _, BOOST_MIRROR_TYPEDEF(::boost, bstring), a_string,
+ _, BOOST_MIRROR_TYPEDEF(::boost::cts, bstring), a_string,
{return instance.a_string;},
{dest = DestType(instance.a_string);},
{instance.set_string(value);}
@@ -268,7 +268,7 @@
// type. Such types are again referred to by the BOOST_MIRROR_TYPEDEF
// macro
BOOST_MIRROR_REG_CLASS_ATTRIB(
- static, const BOOST_MIRROR_TYPEDEF(::boost, bchar) * (*)(int), a_function,
+ static, const BOOST_MIRROR_TYPEDEF(::boost::cts, bchar) * (*)(int), a_function,
{return instance.a_function;},
{dest = DestType(instance.a_function);},
{ } // no setter
@@ -467,6 +467,8 @@
using namespace ::boost;
using namespace ::boost::mirror;
//
+ cts::bostream& bcout = cts::bcout();
+ //
using ::test::feature::detail::foo;
using ::test::stuff::detail::bar;
using ::test::stuff::detail::bar_base;
@@ -484,7 +486,7 @@
// an embedded class
bcout << "|04| " << endl << pretty_printer<BOOST_MIRRORED_CLASS(bar::bar_part)>() << endl;
// typedef'd type
- bcout << "|05| " << endl << pretty_printer<BOOST_MIRRORED_TYPEDEF(::boost, bchar)>() << endl;
+ bcout << "|05| " << endl << pretty_printer<BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar)>() << endl;
// type of an expression
bcout << "|06| " << endl << pretty_printer<BOOST_MIRRORED_TYPEOF("foo")>() << endl;
//
Modified: sandbox/mirror/libs/mirror/example/registering/namespaces.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/registering/namespaces.cpp (original)
+++ sandbox/mirror/libs/mirror/example/registering/namespaces.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -54,6 +54,8 @@
using namespace ::boost;
using namespace ::boost::mirror;
//
+ cts::bostream& bcout = cts::bcout();
+ //
// NOTE bcout ~ cout when using narrow chars
// ~ wcout when using wide chars
// it's typedef'd in the boost namespace
Modified: sandbox/mirror/libs/mirror/example/registering/types.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/registering/types.cpp (original)
+++ sandbox/mirror/libs/mirror/example/registering/types.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -83,6 +83,8 @@
using namespace ::boost;
using namespace ::boost::mirror;
//
+ cts::bostream& bcout = cts::bcout();
+ //
using ::test::feature::detail::foo;
using ::test::feature::detail::bar;
using ::test::feature::detail::foobar;
@@ -130,9 +132,9 @@
//
// this reflects bchar as char or wchar_t based
// on compilation configuration
- typedef BOOST_MIRRORED_TYPE(bchar) meta_bchar;
+ typedef BOOST_MIRRORED_TYPE(cts::bchar) meta_bchar;
// this reflects a meta-type that allows to query the typedef'd name
- typedef BOOST_MIRRORED_TYPEDEF(::boost, bchar) meta_bchar_td;
+ typedef BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar) meta_bchar_td;
// this reflects the meta-type for the typedef type foobar
typedef BOOST_MIRRORED_TYPEDEF(::test::feature::detail, foobar) meta_foobar_td;
//
@@ -161,12 +163,12 @@
bcout << "|25| " << "type of \"foo\" defined on global scope" << endl;
//
bcout << "|26| " << BOOST_MIRRORED_TYPE(bool) ::full_name() << endl;
- bcout << "|27| " << BOOST_MIRRORED_TYPE(bchar) ::full_name() << endl;
+ bcout << "|27| " << BOOST_MIRRORED_TYPE(cts::bchar) ::full_name() << endl;
//
// reflection of typedefined types
- bcout << "|28| " << BOOST_MIRRORED_TYPEDEF(::boost, bchar) ::full_name() << endl;
+ bcout << "|28| " << BOOST_MIRRORED_TYPEDEF(::boost::cts, bchar) ::full_name() << endl;
// or another way how to reflect a typedefined type
- bcout << "|29| " << BOOST_MIRRORED_TYPE(BOOST_MIRROR_TYPEDEF(::boost, bstring) const * volatile *) ::full_name() << endl;
+ bcout << "|29| " << BOOST_MIRRORED_TYPE(BOOST_MIRROR_TYPEDEF(::boost::cts, bstring) const * volatile *) ::full_name() << endl;
//
bcout << "|30| " << BOOST_MIRRORED_TYPE(int const * const volatile) ::full_name() << endl;
Modified: sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp (original)
+++ sandbox/mirror/libs/mirror/example/registering/virtual_bases.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -179,6 +179,8 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
+ cts::bostream& bcout = cts::bcout();
+ //
typedef BOOST_MIRRORED_TYPE(typename MetaAttribute::type) mt;
bcout <<
" " <<
@@ -198,6 +200,8 @@
using namespace ::boost;
using namespace ::boost::mirror;
//
+ cts::bostream& bcout = cts::bcout();
+ //
using namespace ::Test;
//
typedef ::Test::H T;
Modified: sandbox/mirror/libs/mirror/example/serialization/cube.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/serialization/cube.cpp (original)
+++ sandbox/mirror/libs/mirror/example/serialization/cube.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -432,7 +432,7 @@
// compare them
assert(c1 == c2);
//
- bcout << "Finished" << endl;
+ cts::bcout() << "Finished" << endl;
//
return 0;
}
Modified: sandbox/mirror/libs/mirror/example/special/boost_tuple.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/special/boost_tuple.cpp (original)
+++ sandbox/mirror/libs/mirror/example/special/boost_tuple.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -41,7 +41,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
- bcout <<
+ cts::bcout() <<
" " <<
ma.base_name() <<
" = " <<
@@ -54,13 +54,13 @@
struct str_printer
{
- void operator()(const ::boost::bchar* str) const
+ void operator()(const ::boost::cts::bchar* str) const
{
- ::boost::bcout << str << ", ";
+ ::boost::cts::bcout() << str << ", ";
}
~str_printer(void)
{
- ::boost::bcout << ::std::endl;
+ ::boost::cts::bcout() << ::std::endl;
}
};
@@ -70,6 +70,8 @@
using namespace ::boost;
using namespace ::boost::mirror;
//
+ cts::bostream& bcout = cts::bcout();
+ //
typedef int (*A)(double);
typedef A (*B)(string);
typedef B (C)(char, wchar_t);
Modified: sandbox/mirror/libs/mirror/example/special/std_pair.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/special/std_pair.cpp (original)
+++ sandbox/mirror/libs/mirror/example/special/std_pair.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -26,6 +26,8 @@
using namespace ::boost;
using namespace ::boost::mirror;
//
+ cts::bostream& bcout = cts::bcout();
+ //
//
typedef pair<const int*, double [654][321]> T1;
typedef pair<float, const ::std::string&> T2;
Modified: sandbox/mirror/libs/mirror/example/traversal/sample_meta_path.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/traversal/sample_meta_path.cpp (original)
+++ sandbox/mirror/libs/mirror/example/traversal/sample_meta_path.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -171,6 +171,8 @@
using namespace ::boost;
using namespace ::boost::mirror;
//
+ cts::bostream& bcout = cts::bcout();
+ //
using namespace ::Test;
//
typedef BOOST_MIRRORED_CLASS(H) meta_H;
Modified: sandbox/mirror/libs/mirror/example/traversal/sample_visitor.cpp
==============================================================================
--- sandbox/mirror/libs/mirror/example/traversal/sample_visitor.cpp (original)
+++ sandbox/mirror/libs/mirror/example/traversal/sample_visitor.cpp 2008-07-15 07:16:25 EDT (Tue, 15 Jul 2008)
@@ -170,6 +170,7 @@
using namespace ::std;
using namespace ::boost;
using namespace ::boost::mirror;
+ cts::bostream &bcout = cts::bcout();
//
using namespace ::Test;
//
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk