You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by vi...@apache.org on 2008/06/24 20:55:31 UTC

svn commit: r671294 - in /stdcxx/branches/4.3.x/include: rw/_meta_arr.h rw/_meta_cat.h rw/_meta_comp.h rw/_meta_cv.h rw/_meta_other.h rw/_meta_prop.h rw/_meta_ptr.h rw/_meta_ref.h rw/_meta_rel.h rw/_meta_sign.h type_traits

Author: vitek
Date: Tue Jun 24 11:55:30 2008
New Revision: 671294

URL: http://svn.apache.org/viewvc?rev=671294&view=rev
Log:
2008-06-24  Travis Vitek  <vi...@roguewave.com>

	STDCXX-916
	* include/type_traits: Remove doxygen comments, leaving C++
	comments where appropriate.
	* include/rw/_meta_arr.h: Ditto.
	* include/rw/_meta_cat.h: Ditto.
	* include/rw/_meta_comp.h: Ditto.
	* include/rw/_meta_cv.h: Ditto.
	* include/rw/_meta_other.h: Ditto.
	* include/rw/_meta_prop.h: Ditto.
	* include/rw/_meta_ptr.h: Ditto.
	* include/rw/_meta_ref.h: Ditto.
	* include/rw/_meta_rel.h: Ditto.
	* include/rw/_meta_sign.h: Ditto.
	(_RWSTD_SHRT_SIZE): Fix spelling error.

Modified:
    stdcxx/branches/4.3.x/include/rw/_meta_arr.h
    stdcxx/branches/4.3.x/include/rw/_meta_cat.h
    stdcxx/branches/4.3.x/include/rw/_meta_comp.h
    stdcxx/branches/4.3.x/include/rw/_meta_cv.h
    stdcxx/branches/4.3.x/include/rw/_meta_other.h
    stdcxx/branches/4.3.x/include/rw/_meta_prop.h
    stdcxx/branches/4.3.x/include/rw/_meta_ptr.h
    stdcxx/branches/4.3.x/include/rw/_meta_ref.h
    stdcxx/branches/4.3.x/include/rw/_meta_rel.h
    stdcxx/branches/4.3.x/include/rw/_meta_sign.h
    stdcxx/branches/4.3.x/include/type_traits

Modified: stdcxx/branches/4.3.x/include/rw/_meta_arr.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_arr.h?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_arr.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_arr.h Tue Jun 24 11:55:30 2008
@@ -34,32 +34,18 @@
 
 _RWSTD_NAMESPACE (__rw) {
 
-/**
- * TransformationTrait strips one dimension from an array type, leaving
- * other types as-is. The primary template is for non-array types.
- */
 template <class _TypeT>
 struct __rw_remove_extent
 {
     typedef _TypeT type;
 };
 
-/**
- * TransformationTrait strips one dimension from an array type, leaving
- * other types as-is. This specialization is for array types of bounded
- * size.
- */
 template <class _TypeT, _RWSTD_SIZE_T _Size>
 struct __rw_remove_extent<_TypeT [_Size]>
 {
     typedef _TypeT type;
 };
 
-/**
- * TransformationTrait strips one dimension from an array type, leaving
- * other types as-is. This specialization is for array types of unbounded
- * size.
- */
 template <class _TypeT>
 struct __rw_remove_extent<_TypeT []>
 {
@@ -68,33 +54,18 @@
 
 #define _RWSTD_REMOVE_EXTENT(T) _RW::__rw_remove_extent<T>::type
 
-/**
- * TransformationTrait strips one dimension from an array type, leaving
- * other types as-is. The primary template is for non-array types. The
- * member typedef type will be the same as _TypeT.
- */
 template <class _TypeT>
 struct __rw_remove_all_extents
 {
     typedef _TypeT type;
 };
 
-/**
- * TransformationTrait strips all dimensions from an array type, leaving
- * other types as-is. This specialization is for array types of bounded
- * size.
- */
 template <class _TypeT, _RWSTD_SIZE_T _Size>
 struct __rw_remove_all_extents<_TypeT [_Size]>
 {
     typedef typename __rw_remove_all_extents<_TypeT>::type type;
 };
 
-/**
- * TransformationTrait strips one dimension from an array type, leaving
- * other types as-is. This specialization is for array types of unbounded
- * size.
- */
 template <class _TypeT>
 struct __rw_remove_all_extents<_TypeT []>
 {

Modified: stdcxx/branches/4.3.x/include/rw/_meta_cat.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_cat.h?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_cat.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_cat.h Tue Jun 24 11:55:30 2008
@@ -66,10 +66,6 @@
     struct Trait<Type const volatile>                                   \
       : __rw_integral_constant<bool, Cond> { }
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a (potentially cv-qualified)
- * void type.
- */
 template <class _TypeT>
 struct __rw_is_void : __rw_false_type
 {
@@ -80,11 +76,6 @@
 #define _RWSTD_IS_VOID(T) _RW::__rw_is_void<T>::value
 
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a (potentially cv-qualified)
- * integral type. Integral types include bool, char, wchar_t and all of
- * the signed and unsigned integer types.
- */
 template <class _TypeT>
 struct __rw_is_integral : __rw_false_type
 {
@@ -118,11 +109,6 @@
 
 #define _RWSTD_IS_INTEGRAL(T) _RW::__rw_is_integral<T>::value
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a (potentially cv-qualified)
- * floating point type. The floating point types include float, double
- * and long double.
- */
 template <class _TypeT>
 struct __rw_is_floating_point : __rw_false_type
 {
@@ -138,9 +124,6 @@
 #define _RWSTD_IS_FLOATING_POINT(T) _RW::__rw_is_floating_point<T>::value
 
 
-/**
- * UnaryTypeTrait to determine if _TypeT is an array type.
- */
 template <class _TypeT>
 struct __rw_is_array : __rw_false_type
 {
@@ -158,10 +141,6 @@
 
 #define _RWSTD_IS_ARRAY(T) _RW::__rw_is_array<T>::value
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a (potentially cv-qualified)
- * pointer type.
- */
 template <class _TypeT>
 struct __rw_is_pointer : __rw_false_type
 {
@@ -169,13 +148,9 @@
 
 _RWSTD_TRAIT_SPEC_1_CV(__rw_is_pointer, _TypeT*, true);
 
-#define _RWSTD_IS_POINTER(T)                                          \
-    _RW::__rw_is_pointer<T>::value
+#define _RWSTD_IS_POINTER(T) _RW::__rw_is_pointer<T>::value
 
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a lval reference type.
- */
 template <class _TypeT>
 struct __rw_is_lvalue_reference : __rw_false_type
 {
@@ -190,9 +165,6 @@
     _RW::__rw_is_lvalue_reference<T>::value
 
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a rval reference type.
- */
 template <class _TypeT>
 struct __rw_is_rvalue_reference : __rw_false_type
 {
@@ -212,21 +184,14 @@
     _RW::__rw_is_rvalue_reference<T>::value
 
 
-/**
- * Class template can be used to determine if _TypeT is an enumeration.
- */
 template <class _TypeT>
 struct __rw_is_enum
     : __rw_integral_constant<bool, _RWSTD_TT_IS_ENUM(_TypeT)>
 {
 };
 
-#define _RWSTD_IS_ENUM(T)                                             \
-    _RW::__rw_is_enum<T>::value
+#define _RWSTD_IS_ENUM(T) _RW::__rw_is_enum<T>::value
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a union type.
- */
 template <class _TypeT>
 struct __rw_is_union
     : __rw_integral_constant<bool, _RWSTD_TT_IS_UNION(_TypeT)>
@@ -236,9 +201,6 @@
 #define _RWSTD_IS_UNION(T) _RW::__rw_is_union<T>::value
 
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a class type.
- */
 template <class _TypeT>
 struct __rw_is_class
     : __rw_integral_constant<bool, _RWSTD_TT_IS_CLASS(_TypeT)>
@@ -248,15 +210,6 @@
 #define _RWSTD_IS_CLASS(T) _RW::__rw_is_class<T>::value
 
 
-/**
- * This template prevents the partial specialization below from
- * being instantiated on types for which it would fail or give
- * invalid results. i.e. it avoids creating references to void or
- * arrays with unknown length and for returning bad results for
- * references to functions.
- *
- * All void, array and reference types are not functions.
- */
 template <class _TypeT, bool =    __rw_is_void<_TypeT>::value
                                || __rw_is_array<_TypeT>::value
                                || __rw_is_lvalue_reference<_TypeT>::value
@@ -266,13 +219,6 @@
     enum { _C_value = 0 };
 };
 
-/**
- * This specialization determines if _TypeT is a function type. This
- * is done by testing that a _TypeT is implicitly convertible to a
- * pointer to _TypeT.
- *
- * This special case is only true for functions.
- */
 template <class _TypeT>
 struct __rw_is_function_impl<_TypeT, false>
 {
@@ -290,9 +236,6 @@
     enum { _C_value = sizeof (_C_yes) == sizeof (_C_is (0, _C_make ())) };
 };
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a function type.
- */
 template <class _TypeT>
 struct __rw_is_function
 #ifdef _RWSTD_TT_IS_FUNCTION
@@ -305,10 +248,6 @@
 
 #define _RWSTD_IS_FUNCTION(T) _RW::__rw_is_function<T>::value
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a pointer to member
- * object type.
- */
 template <class _TypeT>
 struct __rw_is_member_object_pointer : __rw_false_type
 {
@@ -322,10 +261,6 @@
     _RW::__rw_is_member_object_pointer<T>::value
 
 
-/**
- * UnaryTypeTrait to determine if _TypeT is a pointer to member
- * function type.
- */
 template <class _TypeT>
 struct __rw_is_member_function_pointer : __rw_false_type
 {

Modified: stdcxx/branches/4.3.x/include/rw/_meta_comp.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_comp.h?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_comp.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_comp.h Tue Jun 24 11:55:30 2008
@@ -35,10 +35,6 @@
 
 _RWSTD_NAMESPACE (__rw) {
 
-/**
- * UnaryTypeTrait indicates that _TypeT is either a lval or
- * rval reference type.
- */
 template <class _TypeT>
 struct __rw_is_reference
     : __rw_integral_constant<bool,    __rw_is_lvalue_reference<_TypeT>::value
@@ -48,12 +44,6 @@
 
 #define _RWSTD_IS_REFERENCE(T) _RW::__rw_is_reference<T>::value
 
-/**
- * UnaryTypeTrait indicates that _TypeT is an arithmethic type.
- *
- * The arithmetic types include all integral and floating point
- * types.
- */
 template <class _TypeT>
 struct __rw_is_arithmetic
     : __rw_integral_constant<bool,    __rw_is_integral<_TypeT>::value
@@ -63,12 +53,6 @@
 
 #define _RWSTD_IS_ARITHMETIC(T) _RW::__rw_is_arithmetic<T>::value
 
-/**
- * UnaryTypeTrait indicates that _TypeT is an fundamental type.
- *
- * The fundamental types include void and all of the standard
- * arithmetic types.
- */
 template <class _TypeT>
 struct __rw_is_fundamental
     : __rw_integral_constant<bool,    __rw_is_void<_TypeT>::value
@@ -79,12 +63,6 @@
 #define _RWSTD_IS_FUNDAMENTAL(T) _RW::__rw_is_fundamental<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT is an object type.
- *
- * An object is a (possibly cv-qualified) type that is not a
- * function type, not a reference type, and not a void type.
- */
 template <class _TypeT>
 struct __rw_is_object
     : __rw_integral_constant<bool,    !__rw_is_function<_TypeT>::value
@@ -96,13 +74,6 @@
 #define _RWSTD_IS_OBJECT(T) _RW::__rw_is_object<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT is a member pointer type.
- *
- * The member pointer types include pointers to member functions and
- * pointer to member data. Neither pointers to static member functions
- * or pointers to static member data are included.
- */
 template <class _TypeT>
 struct __rw_is_member_pointer
     : __rw_integral_constant<bool,    __rw_is_member_function_pointer<_TypeT>::value
@@ -112,13 +83,6 @@
 
 #define _RWSTD_IS_MEMBER_POINTER(T) _RW::__rw_is_member_pointer<T>::value
 
-/**
- * UnaryTypeTrait indicates that _TypeT is a scalar type.
- *
- * The scalar types include arithmetic types, enumeration types,
- * pointer types, pointer to member types, std::nullptr_t and
- * cv-qualified versions of these types.
- */
 template <class _TypeT>
 struct __rw_is_scalar
     : __rw_integral_constant<bool,    __rw_is_arithmetic<_TypeT>::value
@@ -126,22 +90,14 @@
                                    || __rw_is_pointer<_TypeT>::value
                                    || __rw_is_member_pointer<_TypeT>::value>
 {
-    /**
-     * todo need to handle special case
-     *
-     * __rw_is_same<std::nullptr_t, __rw_remove_cv<_TypeT>::type>::value
-     */
+    // todo need to handle special case
+    //
+    // __rw_is_same<std::nullptr_t, __rw_remove_cv<_TypeT>::type>::value
 };
 
 #define _RWSTD_IS_SCALAR(T) _RW::__rw_is_scalar<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT is a compound type.
- *
- * The compound types include arrays, functions, pointers, references,
- * classes, unions, enumerations, pointer to non-static class members
- */
 template <class _TypeT>
 struct __rw_is_compound
     : __rw_integral_constant<bool,    __rw_is_array<_TypeT>::value

Modified: stdcxx/branches/4.3.x/include/rw/_meta_cv.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_cv.h?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_cv.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_cv.h Tue Jun 24 11:55:30 2008
@@ -36,22 +36,12 @@
 
 _RWSTD_NAMESPACE (__rw) {
 
-/**
- * TransformationTrait strips any top level const-qualifier from _TypeT.
- *
- * The primary template is for non-const types.
- */
 template <class _TypeT>
 struct __rw_remove_const
 {
     typedef _TypeT type;
 };
 
-/**
- * TransformationTrait strips any top level const-qualifier from _TypeT.
- *
- * This specialization is for const types.
- */
 template <class _TypeT>
 struct __rw_remove_const<const _TypeT>
 {
@@ -61,22 +51,12 @@
 #define _RWSTD_REMOVE_CONST(T) _RW::__rw_remove_const<T>::type
 
 
-/**
- * TransformationTrait strips any top level volatile-qualifier from _TypeT.
- *
- * The primary template is for non-volatile types.
- */
 template <class _TypeT>
 struct __rw_remove_volatile
 {
     typedef _TypeT type;
 };
 
-/**
- * TransformationTrait strips any top level volatile-qualifier from _TypeT.
- *
- * This specialization is for volatile types.
- */
 template <class _TypeT>
 struct __rw_remove_volatile<volatile _TypeT>
 {
@@ -85,9 +65,6 @@
 
 #define _RWSTD_REMOVE_VOLATILE(T) _RW::__rw_remove_volatile<T>::type
 
-/**
- * TransformationTrait strips top level cv-qualifiers from _TypeT.
- */
 template <class _TypeT>
 struct __rw_remove_cv
 {
@@ -112,13 +89,6 @@
     typedef const _TypeT _C_type;
 };
 
-/**
- * TransformationTrait adds a top level const qualifier to _TypeT.
- *
- * If _TypeT is a reference, function, or top-level const-qualified
- * type, then type shall name the same type as _TypeT otherwise it
- * shall name const _TypeT.
- */
 template <class _TypeT>
 struct __rw_add_const
 {
@@ -141,13 +111,6 @@
     typedef volatile _TypeT _C_type;
 };
 
-/**
- * TransformationTrait adds a top level volatile qualifier to _TypeT.
- *
- * If _TypeT is a reference, function, or top-level volatile-qualified
- * type, then type shall name the same type as _TypeT otherwise it
- * shall name volatile _TypeT.
- */
 template <class _TypeT>
 struct __rw_add_volatile
 {
@@ -157,9 +120,6 @@
 #define _RWSTD_ADD_VOLATILE(T) _RW::__rw_add_volatile<T>::type
 
 
-/**
- * Trait adds top level cv-qualifiers to _TypeT.
- */
 template <class _TypeT>
 struct __rw_add_cv
 {

Modified: stdcxx/branches/4.3.x/include/rw/_meta_other.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_other.h?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_other.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_other.h Tue Jun 24 11:55:30 2008
@@ -37,24 +37,12 @@
 
 _RWSTD_NAMESPACE (__rw) {
 
-/**
- * Metaprogramming conditional primitive that provides a member typedef
- * _C_type that is _TypeT if _Select is true, otherwise is _TypeU.
- *
- * The primary template is used when _Select is true.
- */
 template <bool _Select, class _TypeT, class _TypeU>
 struct __rw_conditional
 {
     typedef _TypeT type;
 };
 
-/**
- * Metaprogramming conditional primitive that provides a member typedef
- * type is _TypeT if _Select is true, otherwise is _TypeU.
- *
- * This specialization if used when _Select is false.
- */
 template <class _TypeT, class _TypeU>
 struct __rw_conditional<false, _TypeT, _TypeU>
 {
@@ -64,10 +52,8 @@
 #define _RWSTD_CONDITIONAL(C,T,U) _RW::__rw_conditional<C,T,U>::type
 
 
-/**
- * Helper for __rw_aligned_storage. Specializations define a member type
- * that is aligned on power of two boundaries.
- */
+// Helper for __rw_aligned_storage. Specializations define a member type
+// that is aligned on power of two boundaries.
 template <_RWSTD_SIZE_T _Align>
 struct __rw_aligned_storage_impl;
 
@@ -91,15 +77,9 @@
 _RWSTD_ALIGNED_STORAGE_SPEC(4096);
 _RWSTD_ALIGNED_STORAGE_SPEC(8192);
 
-/**
- * Helper for __rw_default_alignment. The member value will evaluate
- * to the nearest power of two that is a valid alignment value that
- * is less than or equal to _Size.
- *
- * @tparam _Size The size of the object to align.
- * @tparam _N    The power of two value being tested.
- * @tparam _Done Termination condition for recursion. Do not use.
- */
+// Helper for __rw_default_alignment. The member value will evaluate
+// to the nearest power of two that is a valid alignment value that
+// is less than or equal to _Size.
 template <_RWSTD_SIZE_T _Size, _RWSTD_SIZE_T _N,
           bool _Done =    (_RWSTD_TT_MAX_ALIGNMENT <= _N * 2)
                        || (_Size < _N * 2)>
@@ -108,29 +88,21 @@
     enum { value = __rw_default_alignment_impl<_Size, _N * 2>::value };
 };
 
-/**
- * Helper for __rw_default_alignment. The member value will evaluate
- * to the nearest power of two that is less than or equal to _Size.
- * This specialization is used to terminate recursion. It is only used
- * when when _Done in the primary template evaluates is true. 
- *
- * @tparam _Size The size of the object to align.
- * @tparam _N    The power of two value being tested.
- */
+// Helper for __rw_default_alignment. The member value will evaluate
+// to the nearest power of two that is less than or equal to _Size.
+// This specialization is used to terminate recursion. It is only used
+// when when _Done in the primary template evaluates is true.
 template <_RWSTD_SIZE_T _Size, _RWSTD_SIZE_T _N>
 struct __rw_default_alignment_impl<_Size, _N, true>
 {
     enum { value = _N };
 };
 
-/**
- * Helper for __rw_aligned_storage. The value member shall be the most
- * most stringent alignment requirement for any C++ object whose size
- * is no greater than _Size. This implementation will set value to be
- * the nearest power of two value that is less than or equal to _Size.
- *
- * @tparam _Size Size of the object to calculate the alignment for.
- */
+
+// Helper for __rw_aligned_storage. The value member shall be the most
+// most stringent alignment requirement for any C++ object whose size
+// is no greater than _Size. This implementation will set value to be
+// the nearest power of two value that is less than or equal to _Size.
 template <_RWSTD_SIZE_T _Size>
 struct __rw_default_alignment
 {
@@ -138,9 +110,6 @@
 };
 
 
-/**
- *
- */
 template <_RWSTD_SIZE_T _Size,
           _RWSTD_SIZE_T _Align = __rw_default_alignment<_Size>::value>
 struct __rw_aligned_storage
@@ -165,10 +134,8 @@
 
 #ifndef _RWSTD_NO_VARIADIC_TEMPLATES
 
-/**
- * Helper for __rw_aligned_union. Provides a typedef type that
- * is the largest type in the sequence of provided types.
- */
+// Helper for __rw_aligned_union. Provides a typedef type that
+// is the largest type in the sequence of provided types.
 template <class... _Types>
 struct __rw_biggest;
 
@@ -180,7 +147,7 @@
 
     typedef typename
     __rw_conditional<sizeof (_TypeT) < sizeof (_TypeU),
-	                 _TypeU, _TypeT>::type type;
+                     _TypeU, _TypeT>::type type;
 };
 
 template <class _TypeT>
@@ -189,11 +156,9 @@
     typedef _TypeT type;
 };
 
-/**
- * Helper for __rw_aligned_union. Provides a typedef type that
- * is the type with the strictest alignment requirement in the
- * sequence of provided types.
- */
+// Helper for __rw_aligned_union. Provides a typedef type that
+// is the type with the strictest alignment requirement in the
+// sequence of provided types.
 template <class... _Types>
 struct __rw_strictest;
 
@@ -250,16 +215,14 @@
 __rw_aligned_union<_Len, _Types...>::_C_size_value;
 
 #  endif // _RWSTD_NO_STATIC_CONST_MEMBER_DEFINITION
-#endif
+#endif // 0
 
 #else // _RWSTD_NO_VARIADIC_TEMPLATES
 
 struct __rw_empty { };
 
-/**
- * Helper for __rw_aligned_union. Provides a typedef type that
- * is the largest type in the sequence of provided types.
- */
+// Helper for __rw_aligned_union. Provides a typedef type that
+// is the largest type in the sequence of provided types.
 template <class _Type1             , class _Type2 = __rw_empty,
           class _Type3 = __rw_empty, class _Type4 = __rw_empty,
           class _Type5 = __rw_empty, class _Type6 = __rw_empty,
@@ -295,11 +258,9 @@
                      _Type5678, _Type1234>::type type;
 };
 
-/**
- * Helper for __rw_aligned_union. Provides a typedef type that
- * is the type with the strictest alignment requirement in the
- * sequence of provided types.
- */
+// Helper for __rw_aligned_union. Provides a typedef type that
+// is the type with the strictest alignment requirement in the
+// sequence of provided types.
 template <class _Type1             , class _Type2 = __rw_empty,
           class _Type3 = __rw_empty, class _Type4 = __rw_empty,
           class _Type5 = __rw_empty, class _Type6 = __rw_empty,
@@ -392,26 +353,12 @@
 
 
 
-/**
- * Conditional primitive that provides a member typedef type that is
- * _TypeT if _Enable is true, otherwise there will be no such typedef.
- *
- * The primary template provides an implementation for the case that
- * _Enable is true.
- */
 template <bool _Enable, class _TypeT = void>
 struct __rw_enable_if
 {
     typedef _TypeT type;
 };
 
-/**
- * Conditional primitive that provides a member typedef type that is
- * _TypeT if _Enable is true, otherwise there will be no such typedef.
- *
- * The specialization provides an implementation for the case that _Enable
- * is false.
- */
 template <class _TypeT>
 struct __rw_enable_if<false, _TypeT>
 {
@@ -420,26 +367,12 @@
 #define _RWSTD_ENABLE_IF(C,T) _RW::__rw_enable_if<C,T>::type
 
 
-/**
- * Conditional primitive that provides a member typedef type that is
- * _TypeT if _Enable is false, otherwise there will be no such typedef.
- *
- * The primary template provides an implementation for the case that
- * _Enable is false.
- */
 template <bool _Enable, class _TypeT = void>
 struct __rw_disable_if
 {
     typedef _TypeT type;
 };
 
-/**
- * Conditional primitive that provides a member typedef type that is
- * _TypeT if _Enable is false, otherwise there will be no such typedef.
- *
- * The specialization provides an implementation for the case that _Enable
- * is false.
- */
 template <class _TypeT>
 struct __rw_disable_if<true, _TypeT>
 {
@@ -448,17 +381,6 @@
 #define _RWSTD_DISABLE_IF(C,T) _RW::__rw_disable_if<C,T>::type
 
 
-/**
- * TransformationTrait that implements compile time array-to-pointer
- * conversions and function-to-pointer conversions for the given type
- * _TypeT.
- *
- * Let _TypeU be __rw_remove_ref<_TypeT>::type. If _TypeT is an
- * array type, the member typedef type shall equal to the type of
- * __rw_remove_extent<_TypeU>::type*. If _TypeT is a function type,
- * the member typedef type shall be __rw_add_ptr<_TypeU>::type.
- * Otherwise type will be __rw_remove_cv<_TypeU>::type.
- */
 template <class _TypeT>
 struct __rw_decay
 {

Modified: stdcxx/branches/4.3.x/include/rw/_meta_prop.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_prop.h?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_prop.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_prop.h Tue Jun 24 11:55:30 2008
@@ -44,9 +44,6 @@
   template <> struct Trait<Type volatile> : __rw_true_type { };      \
   template <> struct Trait<Type const volatile> : __rw_true_type { }
 
-/**
- * UnaryTypeTrait indicates that _TypeT is const-qualified.
- */
 template <class _TypeT>
 struct __rw_is_const : __rw_false_type
 {
@@ -60,9 +57,6 @@
 #define _RWSTD_IS_CONST(T) _RW::__rw_is_const<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT is volatile-qualified.
- */
 template <class _TypeT>
 struct __rw_is_volatile : __rw_false_type
 {
@@ -120,12 +114,6 @@
 
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT is a standard layout type.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified)
- */
 template <class _TypeT>
 struct __rw_is_standard_layout
     : __rw_integral_constant<bool, _RWSTD_TT_IS_STDANDARD_LAYOUT(_TypeT)>
@@ -138,12 +126,6 @@
 #define _RWSTD_IS_STANDARD_LAYOUT(T) _RW::__rw_is_standard_layout<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT is a pod type.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified)
- */
 template <class _TypeT>
 struct __rw_is_pod
     : __rw_integral_constant<bool, _RWSTD_TT_IS_POD(_TypeT)>
@@ -156,12 +138,6 @@
 #define _RWSTD_IS_POD(T) _RW::__rw_is_pod<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT is an empty type.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_is_empty
     : __rw_integral_constant<bool, _RWSTD_TT_IS_EMPTY(_TypeT)>
@@ -174,12 +150,6 @@
 #define _RWSTD_IS_EMPTY(T) _RW::__rw_is_empty<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT is a polymorphic type.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_is_polymorphic
     : __rw_integral_constant<bool, _RWSTD_TT_IS_POLYMORPHIC(_TypeT)>
@@ -192,12 +162,6 @@
 #define _RWSTD_IS_POLYMORPHIC(T) _RW::__rw_is_polymorphic<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT is an abstract type.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_is_abstract
     : __rw_integral_constant<bool, _RWSTD_TT_IS_ABSTRACT(_TypeT)>
@@ -210,12 +174,6 @@
 #define _RWSTD_IS_ABSTRACT(T) _RW::__rw_is_abstract<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT has a trivial default constructor.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_has_trivial_ctor
     : __rw_integral_constant<bool, _RWSTD_TT_HAS_TRIVIAL_CTOR(_TypeT)>
@@ -228,12 +186,6 @@
 #define _RWSTD_HAS_TRIVIAL_CTOR(T) _RW::__rw_has_trivial_ctor<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT has a trivial copy constructor.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_has_trivial_copy
     : __rw_integral_constant<bool, _RWSTD_TT_HAS_TRIVIAL_COPY(_TypeT)>
@@ -246,12 +198,6 @@
 #define _RWSTD_HAS_TRIVIAL_COPY(T) _RW::__rw_has_trivial_copy<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT has a trivial assignment operator.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_has_trivial_assign
     : __rw_integral_constant<bool, _RWSTD_TT_HAS_TRIVIAL_ASSIGN(_TypeT)>
@@ -264,12 +210,6 @@
 #define _RWSTD_HAS_TRIVIAL_ASSIGN(T) _RW::__rw_has_trivial_assign<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT has a trivial destructor.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_has_trivial_dtor
     : __rw_integral_constant<bool, _RWSTD_TT_HAS_TRIVIAL_DTOR(_TypeT)>
@@ -282,10 +222,6 @@
 #define _RWSTD_HAS_TRIVIAL_DTOR(T) _RW::__rw_has_trivial_dtor<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT is a trivial type or
- * an array of trivial type.
- */
 template <class _TypeT>
 struct __rw_is_trivial_impl
 {
@@ -300,16 +236,6 @@
                       && (__rw_is_class<_TypeV>::value || __rw_is_union<_TypeV>::value) };
 };
 
-/**
- * UnaryTypeTrait indicates that _TypeT is a trivial type or an array of
- * trivial type.
- *
- * Trivial types include scalar types, and trivial class types. A trivial
- * class type has a trivial default ctor, copy ctor, operator= and dtor.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_is_trivial
     : __rw_integral_constant<bool, __rw_is_trivial_impl<_TypeT>::_C_value>
@@ -321,12 +247,6 @@
 
 #define _RWSTD_IS_TRIVIAL(T) _RW::__rw_is_trivial<T>::value
 
-/**
- * UnaryTypeTrait to determine if _TypeT has a nothrow default constructor.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_has_nothrow_ctor
     : __rw_integral_constant<bool, _RWSTD_TT_HAS_NOTHROW_CTOR(_TypeT)>
@@ -339,12 +259,6 @@
 #define _RWSTD_HAS_NOTHROW_CTOR(T) _RW::__rw_has_nothrow_ctor<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT has a nothrow copy constructor.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_has_nothrow_copy
     : __rw_integral_constant<bool, _RWSTD_TT_HAS_NOTHROW_COPY(_TypeT)>
@@ -357,12 +271,6 @@
 #define _RWSTD_HAS_NOTHROW_COPY(T) _RW::__rw_has_nothrow_copy<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT has a nothrow assignment operator.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_has_nothrow_assign
     : __rw_integral_constant<bool, _RWSTD_TT_HAS_NOTHROW_ASSIGN(_TypeT)>
@@ -375,12 +283,6 @@
 #define _RWSTD_HAS_NOTHROW_ASSIGN(T) _RW::__rw_has_nothrow_assign<T>::value
 
 
-/**
- * UnaryTypeTrait indicates that _TypeT has a virtual destructor.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT>
 struct __rw_has_virtual_dtor
     : __rw_integral_constant<bool, _RWSTD_TT_HAS_VIRTUAL_DTOR(_TypeT)>
@@ -393,17 +295,11 @@
 #define _RWSTD_HAS_VIRTUAL_DTOR(T) _RW::__rw_has_virtual_dtor<T>::value
 
 
-/**
- * UnaryTypeTrait that indicates that _TypeT is an unsigned type.
- */
 template <class _TypeT>
 struct __rw_is_unsigned : __rw_false_type
 {
 };
 
-/**
- * UnaryTypeTrait that indicates that _TypeT is a signed type.
- */
 template <class _TypeT>
 struct __rw_is_signed : __rw_false_type
 {
@@ -451,9 +347,6 @@
 #define _RWSTD_IS_UNSIGNED(T) _RW::__rw_is_unsigned<T>::value
 
 
-/**
- * UnaryTypeTrait that gets the alignment of _TypeT.
- */
 template <class _TypeT>
 struct __rw_alignment_of
     : __rw_integral_constant<_RWSTD_SIZE_T, _RWSTD_TT_ALIGN_OF(_TypeT)>
@@ -465,33 +358,18 @@
 
 #define _RWSTD_ALIGNMENT_OF(T) _RW::__rw_alignment_of<T>::value
 
-/**
- * UnaryTypeTrait gives the number of dimensions of the type _TypeT, if
- * _TypeT is an array, otherwise 0. The primary template is for non-array
- * types.
- */
 template <class _TypeT>
 struct __rw_rank
     : __rw_integral_constant<_RWSTD_SIZE_T, 0>
 {
 };
 
-/**
- * UnaryTypeTrait gives the number of dimensions of the type _TypeT, if
- * _TypeT is an array, otherwise 0. The primary template is for bounded
- * -array types.
- */
 template <class _TypeT, _RWSTD_SIZE_T _Size>
 struct __rw_rank<_TypeT [_Size]>
     : __rw_integral_constant<_RWSTD_SIZE_T, 1 + __rw_rank<_TypeT>::value>
 {
 };
 
-/**
- * UnaryTypeTrait gives the number of dimensions of the type _TypeT, if
- * _TypeT is an array, otherwise 0. The primary template is for unbounded
- * -array types.
- */
 template <class _TypeT>
 struct __rw_rank<_TypeT []>
     : __rw_integral_constant<_RWSTD_SIZE_T, 1 + __rw_rank<_TypeT>::value>
@@ -501,9 +379,6 @@
 #define _RWSTD_RANK(T) _RW::__rw_rank<T>::value
 
 
-/**
- * UnaryTypeTrait gives the size of the _Depth dimension of _TypeT.
- */
 template <class _TypeT, _RWSTD_SIZE_T _Depth>
 struct __rw_extent
     : __rw_integral_constant<_RWSTD_SIZE_T, 0>

Modified: stdcxx/branches/4.3.x/include/rw/_meta_ptr.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_ptr.h?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_ptr.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_ptr.h Tue Jun 24 11:55:30 2008
@@ -35,20 +35,12 @@
 
 _RWSTD_NAMESPACE (__rw) {
 
-/**
- * TransformationTrait strips a single level of pointer indirection from
- * _TypeT. The primary template is for non-pointer types.
- */
 template <class _TypeT>
 struct __rw_remove_pointer
 {
     typedef _TypeT type;
 };
 
-/**
- * TransformationTrait adds a single level of pointer indirection to
- * _TypeT. This specialization is for pointer types.
- */
 template <class _TypeT>
 struct __rw_remove_pointer<_TypeT*>
 {
@@ -57,10 +49,6 @@
 
 #define _RWSTD_REMOVE_POINTER(T) _RW::__rw_remove_pointer<T>::type
 
-/**
- * TransformationTrait adds a single level of pointer indirection to
- * _TypeT.
- */
 template <class _TypeT>
 struct __rw_add_pointer
 {

Modified: stdcxx/branches/4.3.x/include/rw/_meta_ref.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_ref.h?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_ref.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_ref.h Tue Jun 24 11:55:30 2008
@@ -36,24 +36,12 @@
 
 _RWSTD_NAMESPACE (__rw) {
 
-/**
- * TransformationTrait strips any top level reference specifier
- * from _TypeT.
- *
- * The primary template is for non-reference types.
- */
 template <class _TypeT>
 struct __rw_remove_reference
 {
     typedef _TypeT type;
 };
 
-/**
- * TransformationTrait strips any top level reference specifier
- * from _TypeT.
- *
- * This specialization is for lvalue reference types.
- */
 template <class _TypeT>
 struct __rw_remove_reference<_TypeT&>
 {
@@ -62,12 +50,6 @@
 
 #ifndef _RWSTD_NO_RVALUE_REFERENCES
 
-/**
- * TransformationTrait strips any top level reference specifier
- * from _TypeT.
- *
- * This specialization is for rval reference types.
- */
 template <class _TypeT>
 struct __rw_remove_reference<_TypeT&&>
 {
@@ -104,9 +86,6 @@
     typedef _TYPENAME __rw_remove_reference<_TypeT>::type& _C_type;
 };
 
-/**
- * TransformationTrait adds a lvalue reference to the input type _TypeT.
- */
 template <class _TypeT>
 struct __rw_add_lvalue_reference
 {

Modified: stdcxx/branches/4.3.x/include/rw/_meta_rel.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_rel.h?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_rel.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_rel.h Tue Jun 24 11:55:30 2008
@@ -40,25 +40,11 @@
 
 _RWSTD_NAMESPACE (__rw) {
 
-/**
- * UnaryTypeTrait indicates that the given types _TypeT and _TypeU are
- * the same type, including cv-qualifiers.
- *
- * The primary template is for the case that _TypeT and _TypeU are indeed
- * different types.
- */
 template <class _TypeT, class _TypeU>
 struct __rw_is_same : __rw_false_type
 {
 };
 
-/**
- * UnaryTypeTrait indicates that the given types _TypeT and _TypeU are
- * the same type, including cv-qualifiers.
- *
- * This specialization is for the case that _TypeT and _TypeU are exactly
- * the same types.
- */
 template <class _TypeT>
 struct __rw_is_same<_TypeT, _TypeT> : __rw_true_type
 {
@@ -66,14 +52,6 @@
 
 #define _RWSTD_IS_SAME(T,U) _RW::__rw_is_same<T,U>::value
 
-/**
- * BinaryTypeTrait indicates that _TypeT is a base class of _TypeU
- * or _TypeT and _TypeU are not unions and name the same class type,
- * without regard to cv-qualifiers.
- *
- * If _TypeT and _TypeU are class types and are different types, without
- * regard to cv-qualifiers, then _TypeT shall be a complete type.
- */
 template <class _TypeT, class _TypeU>
 struct __rw_is_base_of
     : __rw_integral_constant<bool, _RWSTD_TT_IS_BASE_OF(_TypeT,_TypeU)>
@@ -87,9 +65,6 @@
 #define _RWSTD_IS_BASE_OF(T,U) _RW::__rw_is_base_of<T,U>::value
 
 
-/**
- * Primitive type trait tells us if we can create a _TypeU from a _TypeT.
- */
 template <class _TypeT, class _TypeU>
 struct __rw_is_convertible_impl
 {
@@ -177,13 +152,6 @@
     enum { _C_value = 1 };
 };
 
-/**
- * BinaryTypeTrait indicates that _TypeT is convertible to _TypeU
- * using only implicit conversions.
- *
- * _TypeT shall be a complete type, an array of unknown bound, or void
- * (possibly cv-qualified).
- */
 template <class _TypeT, class _TypeU>
 struct __rw_is_convertible
 #ifdef _RWSTD_TT_IS_CONVERTIBLE

Modified: stdcxx/branches/4.3.x/include/rw/_meta_sign.h
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_sign.h?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/rw/_meta_sign.h (original)
+++ stdcxx/branches/4.3.x/include/rw/_meta_sign.h Tue Jun 24 11:55:30 2008
@@ -38,10 +38,8 @@
 
 _RWSTD_NAMESPACE (__rw) {
 
-/**
- * Provides typedefs mapping non-boolean integral types to signed
- * and unsigned integral types of the same base type.
- */
+// Provides typedefs mapping non-boolean integral types to signed
+// and unsigned integral types of the same base type.
 template <class _TypeT>
 struct __rw_sign_helper
 {
@@ -71,7 +69,7 @@
 
 #  if (_RWSTD_WCHAR_SIZE == _RWSTD_CHAR_SIZE)
     typedef unsigned char _C_Uint;
-#  elif (_RWSTD_WCHAR_SIZE == _RWSTD_SHORT_SIZE)
+#  elif (_RWSTD_WCHAR_SIZE == _RWSTD_SHRT_SIZE)
     typedef unsigned short _C_Uint;
 #  elif (_RWSTD_WCHAR_SIZE == _RWSTD_INT_SIZE)
     typedef unsigned int _C_Uint;
@@ -85,7 +83,7 @@
 
 #  if (_RWSTD_WCHAR_SIZE == _RWSTD_CHAR_SIZE)
     typedef signed char _C_Sint;
-#  elif (_RWSTD_WCHAR_SIZE == _RWSTD_SHORT_SIZE)
+#  elif (_RWSTD_WCHAR_SIZE == _RWSTD_SHRT_SIZE)
     typedef signed short _C_Sint;
 #  elif (_RWSTD_WCHAR_SIZE == _RWSTD_INT_SIZE)
     typedef signed int _C_Sint;
@@ -177,10 +175,8 @@
 #endif // !_RWSTD_NO_LONG_LONG
 
 
-/**
- * Class template provides typedefs mapping enumeration types to integral
- * types of the same size.
- */
+// Class template provides typedefs mapping enumeration types
+// to integral types of the same size.
 template <_RWSTD_SIZE_T _Size>
 struct __rw_enum_helper
 {
@@ -233,18 +229,6 @@
 #  endif // _RWSTD_LONG_SIZE != _RWSTD_LLONG_SIZE
 #endif // !_RWSTD_NO_LONG_LONG
 
-/**
- * If _TypeT names a (possibly cv-qualified) signed integral type then the
- * member typedef type shall name the type _TypeT. Otherwise, if _TypeT
- * names a (possibly cv-qualified) unsigned integral type, then type shall
- * name the corresponding signed integral type with the same cv-qualifiers
- * as _TypeT. Otherwise, _TypeT shall name the signed integral type with
- * the smallest rank for which sizeof(_TypeT) == sizeof(_C_type), with the
- * same cv-qualifiers as _TypeT.
- *
- * note requires _TypeT shall be a (possibly cv-qualified) integral or
- * enum type, but not a bool type.
- */
 template <class _TypeT>
 struct __rw_make_signed
 {
@@ -278,18 +262,6 @@
 
 #define _RWSTD_MAKE_SIGNED(T) _RW::__rw_make_signed<T>::type
 
-/**
- * If _TypeT names a (possibly cv-qualified) unsigned integral type then the
- * member typedef type shall name the type _TypeT. Otherwise, if _TypeT
- * names a (possibly cv-qualified) ununsigned integral type, then type shall
- * name the corresponding unsigned integral type with the same cv-qualifiers
- * as _TypeT. Otherwise, _TypeT shall name the unsigned integral type with
- * the smallest rank for which sizeof(_TypeT) == sizeof(_C_type), with the
- * same cv-qualifiers as _TypeT.
- *
- * note requires _TypeT shall be a (possibly cv-qualified) integral or
- * enum type, but not a bool type.
- */
 template <class _TypeT>
 struct __rw_make_unsigned
 {

Modified: stdcxx/branches/4.3.x/include/type_traits
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/type_traits?rev=671294&r1=671293&r2=671294&view=diff
==============================================================================
--- stdcxx/branches/4.3.x/include/type_traits (original)
+++ stdcxx/branches/4.3.x/include/type_traits Tue Jun 24 11:55:30 2008
@@ -50,171 +50,11 @@
 
 _RWSTD_NAMESPACE (std) {
 
-/**
- * @defgroup meta_help Helper classes [meta.help]
- */
-
-/**
- * @defgroup meta_unary Unary Type Traits [meta.unary]
- *
- * A UnaryTypeTrait describes a property of a type. It shall be a
- * class template that takes one template type argument and, optionally,
- * additional arguments that help define the property being described.
- * It shall be DefaultConstructible, CopyConstructible, and publicly
- * derived, directly or indirectly, from a specialization of the template
- * integral_constant, with the arguments to the template integral_constant
- * determined by the requirements for the particular property being
- * described.
- *
- * This sub-clause contains templates that may be used to query the
- * properties of a type at compile time.
- * 
- * Each of these templates shall be a UnaryTypeTrait, publicly derived
- * directly or indirectly from true_type if the corresponding condition
- * is true, otherwise from false_type.
- */
-
-/**
- * @defgroup meta_unary_cat Primary Type Categories [meta.unary.cat]
- * @ingroup meta_unary
- *
- * These type categories correspond to the descriptions given in section
- * [basic.types] of the C++ standard.
- *
- * For any given type T, the result of applying one of these templates
- * to T and to cv-qualified T shall yield the same result.
- *
- * @note For any given type T, exactly one of the primary type
- * categories has a \c value member that evaluates to true.
- */
-
-/**
- * @defgroup meta_unary_comp Composite Type Categories [meta.unary.comp]
- * @ingroup meta_unary
- *
- * These templates provide convenient compositions of the primary type
- * categories.
- *
- * For any given type T, the result of applying one of these templates
- * to T, and to cv-qualified T shall yield the same result.
- */
-
-/**
- * @defgroup meta_unary_prop Type Properties [meta.unary.prop]
- * @ingroup meta_unary
- *
- * These templates provide access to some of the more important properties
- * of types.
- *
- * It is unspecified whether the library defines any full or partial
- * specialisations of any of these templates. A program may specialise
- * any of these templates on a user-defined type, provided the semantics
- * of the specialisation match those given for the template in its
- * description.
- *
- * For all of the class templates X declared in this clause, instantiating
- * that template with a template-argument that is a class template
- * specialization may result in the implicit instantiation of the template
- * argument if and only if the semantics of X require that the argument
- * must be a complete type.
- */
-
-/**
- * @defgroup meta_rel Relationships between types [meta.rel]
- *
- * This sub-clause contains templates that may be used to query
- * relationships between types at compile time.
- * 
- * Each of these templates shall be a BinaryTypeTrait, publicly
- * derived directly or indirectly from true_type if the
- * corresponding condition is true, otherwise from false_type.
- */
-
-/**
- * @defgroup meta_trans Transformations between types [meta.trans]
- *
- * A TransformationTrait modifies a property of a type. It shall
- * be a class template that takes one template type argument and,
- * optionally, additional arguments that help define the modification.
- * It shall define a nested type named type, which shall be a synonym
- * for the modified type.
- *
- * This sub-clause contains templates that may be used to transform
- * one type to another following some predefined rule.
- *
- * Each of the templates in this subclause shall be a
- * TransformationTrait.
- */
- 
-/**
- * @defgroup meta_trans_cv Const-volatile modifications [meta.trans.cv]
- * @ingroup meta_trans
- *
- * This sub-clause contains templates used to add and remove const
- * and volatile qualifiers from types.
- */
-
-/**
- * @defgroup meta_trans_ref Reference modification [meta.trans.ref]
- * @ingroup meta_trans
- *
- * This sub-clause contains templates used to add and remove reference
- * semantics from types.
- */
-
-/**
- * @defgroup meta_trans_sign Sign modifications [meta.trans.sign]
- * @ingroup meta_trans
- *
- * This sub-clause contains templates used to transform from signed
- * to unsigned representation or vice-versa.
- */
-
-/**
- * @defgroup meta_trans_arr Array modifications [meta.trans.arr]
- * @ingroup meta_trans
- *
- * This sub-clause contains templates used to manage array types.
- */
-
-/**
- * @defgroup meta_trans_pointer Pointer modifications [meta.trans.ptr]
- * @ingroup meta_trans
- *
- * This sub-clause contains templates used to manage pointer types.
- */
-
-/**
- * @defgroup meta_trans_other Other transformations [meta.trans.other]
- * @ingroup meta_trans
- */
-
-/**
- * @ingroup meta_help
- *
- * The class template integral_constant and its associated typedefs
- * true_type and false_type are used as base classes to define the
- * interface for various type traits.
- *
- * @tparam _TypeT The type of the integral constant value.
- * @tparam _Value The value of the integral constant.
- */
 template <class _TypeT, _TypeT _Value>
 struct integral_constant
 {
-    /**
-     * Describes the type of this integral_constant.
-     */
     typedef integral_constant<_TypeT,_Value> type;
-
-    /**
-     * Describes the type of the value defined by this integral_constant.
-     */
     typedef _TypeT value_type;
-
-    /**
-     * The actual integral constant value.
-     */
     static const _TypeT value = _Value;
 };
 
@@ -225,983 +65,363 @@
 
 #endif    // _RWSTD_NO_STATIC_CONST_MEMBER_DEFINITION
 
-/**
- * @ingroup meta_help
- *
- * Convenience typedef that are intended to be used as a base class
- * for boolean type traits that are true.
- */
 typedef integral_constant<bool, true>  true_type;
-
-/**
- * @ingroup meta_help
- *
- * Convenience typedef that are intended to be used as a base class
- * for boolean type traits that are false.
- */
 typedef integral_constant<bool, false> false_type;
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is void or a cv-qualified 
- * void.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_void 
     : integral_constant<bool, _RW::__rw_is_void<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is an integral type.
- * Types \c bool, \c char, \c wchar_t, and the signed and unsigned
- * integer types are collectively called integral types. The signed
- * and unsigned integer types include signed and unsigned versions
- * of \c char, \c short, \c int, \c long and \c long \c long.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_integral
     : integral_constant<bool, _RW::__rw_is_integral<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * * \e UnaryTypeTrait to determine if _TypeT is a floating point type.
- *
- * Types \c float, \c double, \c long \c double, and cv-qualified versions
- * of those types make up the set of floating point types.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_floating_point
     : integral_constant<bool, _RW::__rw_is_floating_point<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is an array type. Array types
- * include both arrays of bounded and unbounded length.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_array
     : integral_constant<bool, _RW::__rw_is_array<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is a pointer type.
- * Includes function pointers, but not pointers to non-static member
- * functions.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_pointer
     : integral_constant<bool, _RW::__rw_is_pointer<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is an lvalue reference type.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_lvalue_reference
     : integral_constant<bool, _RW::__rw_is_lvalue_reference<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is an rvalue reference type.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_rvalue_reference
     : integral_constant<bool, _RW::__rw_is_rvalue_reference<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is a reference type.
- *
- * @note References to functions are still references, not functions.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_reference
     : integral_constant<bool, _RW::__rw_is_reference<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is a pointer to non-static
- * member.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_member_object_pointer
     : integral_constant<bool, _RW::__rw_is_member_object_pointer<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is a pointer to non-static
- * member function.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_member_function_pointer
     : integral_constant<bool, _RW::__rw_is_member_function_pointer<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is an enumeration type.
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_enum
     : integral_constant<bool, _RW::__rw_is_enum<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is a union type
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- */
 template <class _TypeT>
 struct is_union
     : integral_constant<bool, _RW::__rw_is_union<_TypeT>::value >
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is a class type but not
- * a union type.
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- * @note a C++ struct is of class type.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_class
    : integral_constant<bool, _RW::__rw_is_class<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_cat
- *
- * \e UnaryTypeTrait to determine if _TypeT is a function type.
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_function
     : integral_constant<bool, _RW::__rw_is_function<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_comp
- *
- * \e UnaryTypeTrait to determine if _TypeT is an arithmetic type.
- * Arithmetic types include both integral and floating point types.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_arithmetic
     : integral_constant<bool, _RW::__rw_is_arithmetic<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_comp
- *
- * \e UnaryTypeTrait to determine if _TypeT is a fundamental type.
- * Fundamental types are all the types provided natively. These types
- * include all arithmetic types and all void types.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_fundamental
     : integral_constant<bool, _RW::__rw_is_fundamental<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_comp
- *
- * \e UnaryTypeTrait to determine if _TypeT is an object type.
- * An object type is a (possibly cv-qualified) type that is not
- * a function type, not a reference type, and not a void type.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_object
     : integral_constant<bool, _RW::__rw_is_object<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_comp
- *
- * \e UnaryTypeTrait to determine if _TypeT is a scalar type.
- * Arithmetic types, enumeration types, pointer types, pointer
- * to member types, and cv-qualified versions of these types are
- * collectively called scalar types.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_scalar
     : integral_constant<bool, _RW::__rw_is_scalar<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_comp
- *
- * \e UnaryTypeTrait to determine if _TypeT is a compound type.
- * Compound types are arrays, functions, pointers, references,
- * classes, unions, enumerations and pointers to non-static class
- * members.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_compound
     : integral_constant<bool, _RW::__rw_is_compound<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_comp
- *
- * \e UnaryTypeTrait to determine if _TypeT is a pointer to a member
- * object or pointer to member function type.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_member_pointer
     : integral_constant<bool, _RW::__rw_is_member_pointer<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is const-qualified.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_const
     : integral_constant<bool, _RW::__rw_is_const<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is volatile-qualified.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_volatile
     : integral_constant<bool, _RW::__rw_is_volatile<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is a trivial type. Scalar
- * types, trivial class types, arrays of such types and cv-qualified
- * versions of these types are collectively called trival types. Trivial
- * class types have a trivial default constructor, a trivial destructor
- * a trivial copy constructor and a trivial copy assignment operator.
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct is_trivial
     : integral_constant<bool, _RW::__rw_is_trivial<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is a type with standard
- * layout. Scalar types, standard-layout class types, arrays of such
- * types and cv-qualified versions of these types are collectively
- * called standard layout types. Standard layout class types have no
- * non-static data members of non-standard-layout class or reference.
- * They have no virtual functions and no virtual base classes, use the
- * same access control for all non-static data members, have no base
- * classes of non-standard-layout type, no non-static data members in
- * the most-derived class and at most one base class with non-static
- * data members or has no base classes with non-static data members.
- * Finally, a standard-layout class has no base classes of the same
- * type as the first non-static data member.
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct is_standard_layout
     : integral_constant<bool, _RW::__rw_is_standard_layout<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is a plain-old-data type.
- * Scalar types, pod classes, arrays of such types and cv-qualified
- * versions of these types are collectively called pod types. The pod
- * class types meet the requirements of both trivial and standard layout
- * types and have no non-static data members of non-pod type.
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct is_pod
     : integral_constant<bool, _RW::__rw_is_pod<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is an empty class.
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct is_empty
     : integral_constant<bool, _RW::__rw_is_empty<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is a polymorphic class.
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct is_polymorphic
     : integral_constant<bool, _RW::__rw_is_polymorphic<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is an abstract class.
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct is_abstract
     : integral_constant<bool, _RW::__rw_is_abstract<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is a trivial type or a
- * class type with a trivial default constructor, or an array of
- * such a class type.
- *
- * @note This may not be accurate for class types if the necessary
- * compiler support is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct has_trivial_default_constructor
     : integral_constant<bool, _RW::__rw_has_trivial_ctor<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is a trivial type, a
- * reference type, or a class type with a trivial copy constructor.
- *
- * @note This may not be accurate for class types if the necessary
- * compiler support is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct has_trivial_copy_constructor
     : integral_constant<bool, _RW::__rw_has_trivial_copy<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is neither const nor a
- * reference type and is a trivial type or a class type with a trivial
- * assignment operator.
- *
- * @note This may not be accurate for class types if the necessary
- * compiler support is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct has_trivial_assign
     : integral_constant<bool, _RW::__rw_has_trivial_assign<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is a trivial type, a reference
- * type, or a class type with a trivial destructor, or an array of such a
- * class type.
- *
- * @note This may not be accurate for class types if the necessary
- * compiler support is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct has_trivial_destructor
     : integral_constant<bool, _RW::__rw_has_trivial_dtor<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if the default constructor for _TypeT
- * has an empty exception specification or can otherwise be deduced to
- * never throw an exception.
- *
- * @note This may not be accurate for class types if the necessary
- * compiler support is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct has_nothrow_default_constructor
     : integral_constant<bool, _RW::__rw_has_nothrow_ctor<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if the copy constructor for _TypeT has
- * an empty exception specification or can otherwise be deduced to never
- * throw an exception.
- *
- * @note This may not be accurate for class types if the necessary
- * compiler support is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct has_nothrow_copy_constructor
     : integral_constant<bool, _RW::__rw_has_nothrow_copy<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if the assignment operator has an empty
- * exception specification or can otherwise be deduced never to throw an
- * exception.
- *
- * @note This may not be accurate for class types if the necessary
- * compiler support is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct has_nothrow_assign
     : integral_constant<bool, _RW::__rw_has_nothrow_assign<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT has a virtual destructor.
- *
- * @note This may not be accurate for class types if the necessary
- * compiler support is not available.
- *
- * @tparam _TypeT The type to evaluate. Shall be a complete type,
- * an array of unknown bound, or possibly cv-qualified void.
- */
 template <class _TypeT>
 struct has_virtual_destructor
     : integral_constant<bool, _RW::__rw_has_virtual_dtor<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is a signed arithmetic
- * type.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_signed
     : integral_constant<bool, _RW::__rw_is_signed<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if _TypeT is an unsigned arithmetic
- * type.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct is_unsigned
     : integral_constant<bool, _RW::__rw_is_unsigned<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine the alignment of objects of type
- * _TypeT.
- *
- * @note This may not be accurate if the necessary compiler support
- * is not available.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct alignment_of
     : integral_constant<_RWSTD_SIZE_T, _RW::__rw_alignment_of<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine the rank of objects of type _TypeT.
- * If _TypeT names an array type, the rank is an integer value that
- * represents the number of dimensions of _TypeT, otherwise the value
- * is 0.
- *
- * @tparam _TypeT The type to evaluate.
- */
 template <class _TypeT>
 struct rank
     : integral_constant<_RWSTD_SIZE_T, _RW::__rw_rank<_TypeT>::value>
 {
 };
 
-/**
- * @ingroup meta_unary_prop
- *
- * \e UnaryTypeTrait to determine if the extent of one dimension of
- * objects of type _TypeT. If _TypeT is an array type with rank greater
- * than _Bound, the value will be the size of the given dimension of
- * that array, otherwise the value is 0.
- *
- * @tparam _TypeT The type to evaluate.
- * @tparam _Bound The dimension of the array to get the extent of.
- */
 template <class _TypeT, unsigned _Bound = 0>
 struct extent
     : integral_constant<_RWSTD_SIZE_T, _RW::__rw_extent<_TypeT, _Bound>::value>
 {
 };
 
-/**
- * @ingroup meta_rel
- *
- * \e UnaryTypeTrait to determine if _TypeT and _TypeU are exactly the
- * same type.
- *
- * @tparam _TypeT The first type to compare.
- * @tparam _TypeT The second type to compare.
- */
 template <class _TypeT, class _TypeU>
 struct is_same
     : integral_constant<bool, _RW::__rw_is_same<_TypeT, _TypeU>::value>
 {
 };
 
-/**
- * @ingroup meta_rel
- *
- * \e BinaryyTypeTrait to determine if _TypeT is a base class of _TypeU
- * or _TypeT and _TypeU name the same non-union class type without regard
- * to cv-qualifiers.
- *
- * @note Base classes that are private, protected or ambiguous are,
- * nonetheless, base classes.
- *
- * @note This may not be accurate for class types if the necessary
- * compiler support is not available.
- *
- * @tparam _TypeT The base type.
- * @tparam _TypeU The derived type.
- */
 template <class _TypeT, class _TypeU>
 struct is_base_of
     : integral_constant<bool, _RW::__rw_is_base_of<_TypeT, _TypeU>::value>
 {
 };
 
-/**
- * @ingroup meta_rel
- *
- * \e BinaryTypeTrait to determine if lvalue of type _TypeT is implicitly
- * convertible to _TypeU ([conv]).
- *
- * @note This may not be accurate for class types if the necessary
- * compiler support is not available.
- *
- * @tparam _TypeT The type to test conversion from.
- * @tparam _TypeT The type to test conversion to.
- */
 template <class _TypeT, class _TypeU>
 struct is_convertible
     : integral_constant<bool, _RW::__rw_is_convertible<_TypeT, _TypeU>::value>
 {
 };
 
-/**
- * @ingroup meta_trans_cv
- *
- * \e TransformationTrait to remove any top-level const-qualifier.
- * The member typedef \c type shall be the same as _TypeT except that
- * any top level const-qualifier has been removed.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct remove_const
 {
     typedef _TYPENAME _RW::__rw_remove_const<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_cv
- *
- * \e TransformationTrait to remove any top-level volatile-qualifier.
- * The member typedef \c type shall be the same as _TypeT except that
- * any top level volatile-qualifier has been removed.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct remove_volatile
 {
     typedef _TYPENAME _RW::__rw_remove_volatile<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_cv
- *
- * \e TransformationTrait to remove any top-level cv-qualifiers. The
- * member typedef \c type shall be the same as _TypeT except that any
- * top level cv-qualifier has been removed.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct remove_cv
 {
     typedef _TYPENAME _RW::__rw_remove_cv<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_cv
- *
- * \e TransformationTrait to add a top-level const-qualifier. If
- * _TypeT is a reference, function, or other type level const-
- * qualified type then \c type shall be the same as _TypeT,
- * otherwise _TypeT const.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct add_const
 {
     typedef _TYPENAME _RW::__rw_add_const<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_cv
- *
- * \e TransformationTrait to add a top-level volatile-qualifier.
- * If _TypeT is a reference, function, or other type level volatile-
- * qualified type then \c type shall be the same as _TypeT,
- * otherwise _TypeT volatile.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct add_volatile
 {
     typedef _TYPENAME _RW::__rw_add_volatile<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_cv
- *
- * \e TransformationTrait to add a top-level const and volatile-qualifier.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct add_cv
 {
     typedef _TYPENAME _RW::__rw_add_cv<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_ref
- *
- * \e TransformationTrait to remove a reference from _TypeT.
- *
- * The member typedef \c type shall be the same as _TypeT, except
- * any reference qualifier has been removed.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct remove_reference
 {
     typedef _TYPENAME _RW::__rw_remove_reference<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_ref
- * 
- * \e TransformationTrait to add a reference to _TypeT.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct add_lvalue_reference
 {
     typedef _TYPENAME _RW::__rw_add_lvalue_reference<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_ref
- *
- * \e TransformationTrait to add an rvalue-reference to _TypeT.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct add_rvalue_reference
 {
     typedef _TYPENAME _RW::__rw_add_rvalue_reference<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_sign
- *
- * \e TransformationTrait to get a signed type from an enum or non-
- * boolean integral type.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct make_signed
 {
     typedef _TYPENAME _RW::__rw_make_signed<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_sign
- *
- * \e TransformationTrait to get an unsigned type from an enum or non-
- * boolean integral type.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct make_unsigned
 {
     typedef _TYPENAME _RW::__rw_make_unsigned<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_arr
- *
- * \e TransformationTrait to remove a dimension from the type _TypeT.
- * If _TypeT is 'array of _TypeU', the member typedef \c type shall
- * be _TypeU, otherwise _TypeT.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct remove_extent
 {
     typedef _TYPENAME _RW::__rw_remove_extent<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_arr
- *
- * \e TransformationTrait to remove all dimensions from the type
- * _TypeT. If _TypeT is 'multi-dimensional array of _TypeU', the
- * member typedef \c type shall be _TypeU otherwise _TypeT.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct remove_all_extents
 {
     typedef _TYPENAME _RW::__rw_remove_all_extents<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_pointer
- *
- * \e TransformationTrait to remove a pointer from the type _TypeT.
- * The member typedef \c type shall be the same as _TypeT, except
- * any top level indirection has been removed.
- *
- * @note pointers to members are left unchanged.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct remove_pointer
 {
     typedef _TYPENAME _RW::__rw_remove_pointer<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_pointer
- *
- * \e TransformationTrait to add a pointer to the type _TypeT.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct add_pointer
 {
     typedef _TYPENAME _RW::__rw_add_pointer<_TypeT>::type type;
 };
 
-/**
- * @ingroup meta_trans_other
- *
- * Special trait the defines a nested pod type that is suitable for
- * use as uninitialized storage for any object whose size is at most
- * _Len and alignment is a divisor of align.
- *
- * @tparam _Len The minimum size of the aligned storage. Shall not be 0.
- * @tparam _Align The alignment of the aligned storage. Shall be equal
- * to alignment_of<T> for some type T or not provided. The implementation
- * requires that the alignment value be a non-zero power of two that is
- * less than the maximum supported extended alignment.
- */
 template <_RWSTD_SIZE_T _Len,
           _RWSTD_SIZE_T _Align = _RW::__rw_default_alignment<_Len>::value>
 struct aligned_storage
@@ -1211,16 +431,6 @@
 
 #ifndef _RWSTD_NO_VARIADIC_TEMPLATES
 
-/**
- * @ingroup meta_trans_other
- *
- * Special trait the defines a nested pod type that is suitable for
- * use as uninitialized storage for any object whose type is listed
- * in _Types and whose size is at most _Len.
- *
- * @tparam _Len The minimum size of the aligned storage.
- * @tparam _Types List of types which might be stored.
- */
 template <_RWSTD_SIZE_T _Len, class _TypeT, class... _Types>
 struct aligned_union
     : _RW::__rw_aligned_union<_Len, _TypeT, _Types...>
@@ -1229,23 +439,6 @@
 
 #else
 
-/**
- * @ingroup meta_trans_other
- *
- * Special trait the defines a nested pod type that is suitable for
- * use as uninitialized storage for any object whose type is listed
- * in _Types and whose size is at most _Len.
- *
- * @tparam _Len The minimum size of the aligned storage.
- * @tparam _Type1 Type which might be stored.
- * @tparam _Type2 Type which might be stored.
- * @tparam _Type3 Type which might be stored.
- * @tparam _Type4 Type which might be stored.
- * @tparam _Type5 Type which might be stored.
- * @tparam _Type6 Type which might be stored.
- * @tparam _Type7 Type which might be stored.
- * @tparam _Type8 Type which might be stored.
- */
 template <_RWSTD_SIZE_T _Len,
           class _Type1                  , class _Type2 = _RW::__rw_empty,
           class _Type3 = _RW::__rw_empty, class _Type4 = _RW::__rw_empty,
@@ -1260,35 +453,12 @@
 
 #endif
 
-/**
- * @ingroup meta_trans_other
- *
- * \e TransformationTrait to do array-to-pointer and function-to-pointer
- * type conversions.
- *
- * Let \c U be \c remove_reference<T>::type. If \c is_array<U>::value is
- * true, the member typedef type shall equal remove_extent<U>::type*. If
- * \c is_function<U>::value is true, the member typedef shall equal
- * \c add_pointer<U>::type. Otherwise the member typedef type equals \c U.
- *
- * @tparam _TypeT The type to transform.
- */
 template <class _TypeT>
 struct decay
 {
     typedef _TYPENAME _RW::__rw_decay<_TypeT>::type type;
 };
-    
-/**
- * @ingroup meta_trans_other
- *
- * If _Enable is true, the member typedef \c type shall equal _TypeT;
- * otherwise, there shall be no member typedef \c type.
- *
- * @tparam _Enable Flag used to select the primary template or the
- * specialization.
- * @tparam _TypeT The type of the member typedef if _Enable is true.
- */
+
 template <bool _Enable, class _TypeT = void>
 struct enable_if
 {
@@ -1299,18 +469,7 @@
 struct enable_if<false, _TypeT>
 {
 };
-    
-/**
- * @ingroup meta_trans_other
- *
- * If _Select is true, the member typedef \c type shall equal _TypeT
- * otherwise \c type shall equal _TypeU.
- *
- * @tparam _Select Flag used to select the primary template or the
- * specialization.
- * @tparam _TypeT The type of the member typedef if _Select is true.
- * @tparam _TypeU The type of the member typedef if _Select is false.
- */
+
 template <bool _Select, class _TypeT, class _TypeU>
 struct conditional
 {



Re: svn commit: r671294 - in /stdcxx/branches/4.3.x/include: rw/_meta_arr.h rw/_meta_cat.h rw/_meta_comp.h rw/_meta_cv.h rw/_meta_other.h rw/_meta_prop.h rw/_meta_ptr.h rw/_meta_ref.h rw/_meta_rel.h rw/_meta_sign.h type_traits

Posted by Martin Sebor <se...@roguewave.com>.
vitek@apache.org wrote:
> Author: vitek
> Date: Tue Jun 24 11:55:30 2008
> New Revision: 671294
> 
> URL: http://svn.apache.org/viewvc?rev=671294&view=rev
> Log:
> 2008-06-24  Travis Vitek  <vi...@roguewave.com>
> 
> 	STDCXX-916
> 	* include/type_traits: Remove doxygen comments, leaving C++
> 	comments where appropriate.
[...]
> Modified: stdcxx/branches/4.3.x/include/rw/_meta_arr.h
> URL: http://svn.apache.org/viewvc/stdcxx/branches/4.3.x/include/rw/_meta_arr.h?rev=671294&r1=671293&r2=671294&view=diff
> ==============================================================================
> --- stdcxx/branches/4.3.x/include/rw/_meta_arr.h (original)
> +++ stdcxx/branches/4.3.x/include/rw/_meta_arr.h Tue Jun 24 11:55:30 2008
> @@ -34,32 +34,18 @@
>  
>  _RWSTD_NAMESPACE (__rw) {
>  
> -/**
> - * TransformationTrait strips one dimension from an array type, leaving
> - * other types as-is. The primary template is for non-array types.
> - */

Many of these seem like useful comments. Are you sure you meant
to delete them?

>  template <class _TypeT>
>  struct __rw_remove_extent
>  {
>      typedef _TypeT type;
>  };
>  
[...]
> -/**
> - * This template prevents the partial specialization below from
> - * being instantiated on types for which it would fail or give
> - * invalid results. i.e. it avoids creating references to void or
> - * arrays with unknown length and for returning bad results for
> - * references to functions.
> - *
> - * All void, array and reference types are not functions.
> - */

This one especially, for example, but others below as well.

>  template <class _TypeT, bool =    __rw_is_void<_TypeT>::value
>                                 || __rw_is_array<_TypeT>::value
>                                 || __rw_is_lvalue_reference<_TypeT>::value
> @@ -266,13 +219,6 @@
>      enum { _C_value = 0 };
>  };
>  

Martin