Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r67427 - in sandbox/type_traits: boost/type_traits boost/type_traits/detail libs/type_traits/doc libs/type_traits/doc/html libs/type_traits/doc/html/boost_typetraits libs/type_traits/doc/html/boost_typetraits/category libs/type_traits/doc/html/boost_typetraits/reference libs/type_traits/test
From: frederic.bron_at_[hidden]
Date: 2010-12-23 05:18:21


Author: bronf
Date: 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
New Revision: 67427
URL: http://svn.boost.org/trac/boost/changeset/67427

Log:
added operator traits for postfix ++ and --
Added:
   sandbox/type_traits/boost/type_traits/detail/has_postfix_unary_operator.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/detail/has_prefix_unary_operator.hpp
      - copied unchanged from r67147, /sandbox/type_traits/boost/type_traits/detail/has_unary_operator.hpp
   sandbox/type_traits/boost/type_traits/has_operator_postfix_decrement.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_operator_postfix_increment.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_decrement.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_increment.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_decrement.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_increment.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_operator_postfix_decrement_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_operator_postfix_increment_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_postfix_unary_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_prefix_unary_operator_test.hpp
      - copied, changed from r67146, /sandbox/type_traits/libs/type_traits/test/has_unary_operator_test.hpp
Removed:
   sandbox/type_traits/boost/type_traits/detail/has_unary_operator.hpp
   sandbox/type_traits/libs/type_traits/test/has_unary_operator_test.hpp
Text files modified:
   sandbox/type_traits/boost/type_traits/has_operator_logical_not.hpp | 2 +-
   sandbox/type_traits/boost/type_traits/has_operator_prefix_decrement.hpp | 2 +-
   sandbox/type_traits/boost/type_traits/has_operator_prefix_increment.hpp | 2 +-
   sandbox/type_traits/boost/type_traits/has_operator_unary_minus.hpp | 2 +-
   sandbox/type_traits/boost/type_traits/has_operator_unary_plus.hpp | 2 +-
   sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_decrement.qbk | 6 +++---
   sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_increment.qbk | 6 +++---
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/background.html | 22 +++++++++++-----------
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/transform.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intrinsics.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference.html | 4 ++++
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/decay.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html | 4 ++--
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus_equal.html | 6 +++---
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_decrement.html | 10 +++++-----
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_increment.html | 4 ++--
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/member_object.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/promote.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_member_pointer.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html | 2 +-
   sandbox/type_traits/libs/type_traits/doc/html/index.html | 8 ++++++--
   sandbox/type_traits/libs/type_traits/doc/type_traits.qbk | 2 ++
   sandbox/type_traits/libs/type_traits/test/has_operator_logical_not_test.cpp | 3 ++-
   sandbox/type_traits/libs/type_traits/test/has_operator_prefix_decrement_test.cpp | 3 ++-
   sandbox/type_traits/libs/type_traits/test/has_operator_prefix_increment_test.cpp | 3 ++-
   sandbox/type_traits/libs/type_traits/test/has_operator_unary_minus_test.cpp | 3 ++-
   sandbox/type_traits/libs/type_traits/test/has_operator_unary_plus_test.cpp | 3 ++-
   sandbox/type_traits/libs/type_traits/test/has_prefix_unary_operator_test.hpp | 4 ++--
   43 files changed, 80 insertions(+), 65 deletions(-)

Added: sandbox/type_traits/boost/type_traits/detail/has_postfix_unary_operator.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/detail/has_postfix_unary_operator.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -0,0 +1,109 @@
+// Copyright 2010 Robert Stewart, Steven Watanabe, Roman Perepelitsa & Frédéric Bron
+//
+// Use, modification and distribution are subject to 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).
+//
+// See http://www.boost.org/libs/type_traits for most recent version including documentation.
+
+#include <boost/config.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/integral_constant.hpp>
+#include <boost/type_traits/detail/yes_no_type.hpp>
+#include <boost/type_traits/is_void.hpp>
+#include <boost/typeof/typeof.hpp>
+
+// should be the last #include
+#include <boost/type_traits/detail/bool_trait_def.hpp>
+
+namespace boost {
+namespace detail {
+
+// This namespace ensures that ADL does not mess things up.
+namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+
+// a type returned from comparison operator when no such operator is found in the
+// type's own namespace
+struct tag { };
+
+// any soaks up implicit conversions and makes the following
+// comparison operators less-preferred than any other such operators that
+// might be found via ADL.
+struct any { template <class T> any(T const&); };
+
+// when operator BOOST_TT_TRAIT_OP is not available, this one is used
+tag operator BOOST_TT_TRAIT_OP (const any&, int);
+
+namespace {
+ template <typename T>
+ typename ::boost::remove_cv<T>::type &make();
+}
+
+template < typename RHS >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void) {
+ struct returns_void_t {
+ template <typename T> friend int operator,(T const &, returns_void_t);
+ };
+ static ::boost::type_traits::yes_type returns_void(returns_void_t);
+ static ::boost::type_traits::no_type returns_void(int);
+ static bool const value=
+ sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<RHS>() BOOST_TT_TRAIT_OP,returns_void_t())));
+};
+
+template < typename RHS, typename RET, typename RETURNS_VOID >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1);
+
+// BOOST_TT_TRAIT_OP RHS does not return void, checks if it is convertible to RET
+template < typename RHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, ::boost::false_type > {
+ static ::boost::type_traits::yes_type is_convertible_to_RET(RET); // this version is preferred for types convertible to RET
+ static ::boost::type_traits::no_type is_convertible_to_RET(...); // this version is used otherwise
+
+ static const bool value=
+ sizeof(is_convertible_to_RET(make<RHS>() BOOST_TT_TRAIT_OP))==sizeof(::boost::type_traits::yes_type);
+};
+
+// BOOST_TT_TRAIT_OP RHS returns void!=RET
+template < typename RHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, ::boost::true_type > {
+ static const bool value=false;
+};
+
+// checks for return type if 2nd template parameter RET is non void
+template < typename RHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+ static const bool value=
+ BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, typename ::boost::integral_constant< bool, BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void)< RHS >::value > >::value;
+};
+
+// in case we do not want to check for return type
+tag operator,(tag, int);
+
+// do not check for return type if 2nd template parameter RET is void
+template < typename RHS >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< RHS, void > {
+ static ::boost::type_traits::yes_type check(int); // this version is preferred for types convertible to RET
+ static ::boost::type_traits::no_type check(tag); // this version is used otherwise
+
+ static const bool value=
+ sizeof(check(((make<RHS>() BOOST_TT_TRAIT_OP),0)))==sizeof(::boost::type_traits::yes_type);
+};
+
+template < typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RET > {
+ static const bool value=false;
+};
+
+template <>
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void > {
+ static const bool value=false;
+};
+
+} // namespace impl
+} // namespace detail
+
+BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME,RHS,RET=BOOST_TT_DEFAULT_RET,(::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)<RHS,RET>::value))
+
+} // namespace boost
+
+#include <boost/type_traits/detail/bool_trait_undef.hpp>

Deleted: sandbox/type_traits/boost/type_traits/detail/has_unary_operator.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/has_unary_operator.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
+++ (empty file)
@@ -1,109 +0,0 @@
-// Copyright 2010 Robert Stewart, Steven Watanabe, Roman Perepelitsa & Frédéric Bron
-//
-// Use, modification and distribution are subject to 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).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#include <boost/config.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/typeof/typeof.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-namespace detail {
-
-// This namespace ensures that ADL does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
-
-// a type returned from comparison operator when no such operator is found in the
-// type's own namespace
-struct tag { };
-
-// any soaks up implicit conversions and makes the following
-// comparison operators less-preferred than any other such operators that
-// might be found via ADL.
-struct any { template <class T> any(T const&); };
-
-// when operator BOOST_TT_TRAIT_OP is not available, this one is used
-tag operator BOOST_TT_TRAIT_OP (const any&);
-
-namespace {
- template <typename T>
- typename ::boost::remove_cv<T>::type &make();
-}
-
-template < typename RHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void) {
- struct returns_void_t {
- template <typename T> friend int operator,(T const &, returns_void_t);
- };
- static ::boost::type_traits::yes_type returns_void(returns_void_t);
- static ::boost::type_traits::no_type returns_void(int);
- static bool const value=
- sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((BOOST_TT_TRAIT_OP make<RHS>(),returns_void_t())));
-};
-
-template < typename RHS, typename RET, typename RETURNS_VOID >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1);
-
-// BOOST_TT_TRAIT_OP RHS does not return void, checks if it is convertible to RET
-template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, ::boost::false_type > {
- static ::boost::type_traits::yes_type is_convertible_to_RET(RET); // this version is preferred for types convertible to RET
- static ::boost::type_traits::no_type is_convertible_to_RET(...); // this version is used otherwise
-
- static const bool value=
- sizeof(is_convertible_to_RET(BOOST_TT_TRAIT_OP make<RHS>()))==sizeof(::boost::type_traits::yes_type);
-};
-
-// BOOST_TT_TRAIT_OP RHS returns void!=RET
-template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, ::boost::true_type > {
- static const bool value=false;
-};
-
-// checks for return type if 2nd template parameter RET is non void
-template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
- static const bool value=
- BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, typename ::boost::integral_constant< bool, BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void)< RHS >::value > >::value;
-};
-
-// in case we do not want to check for return type
-tag operator,(tag, int);
-
-// do not check for return type if 2nd template parameter RET is void
-template < typename RHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< RHS, void > {
- static ::boost::type_traits::yes_type check(int); // this version is preferred for types convertible to RET
- static ::boost::type_traits::no_type check(tag); // this version is used otherwise
-
- static const bool value=
- sizeof(check(((BOOST_TT_TRAIT_OP make<RHS>()),0)))==sizeof(::boost::type_traits::yes_type);
-};
-
-template < typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RET > {
- static const bool value=false;
-};
-
-template <>
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void > {
- static const bool value=false;
-};
-
-} // namespace impl
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME,RHS,RET=BOOST_TT_DEFAULT_RET,(::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)<RHS,RET>::value))
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_logical_not.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_logical_not.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_logical_not.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -13,7 +13,7 @@
 #define BOOST_TT_TRAIT_OP !
 #define BOOST_TT_DEFAULT_RET void
 
-#include <boost/type_traits/detail/has_unary_operator.hpp>
+#include <boost/type_traits/detail/has_prefix_unary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP

Added: sandbox/type_traits/boost/type_traits/has_operator_postfix_decrement.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_operator_postfix_decrement.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -0,0 +1,28 @@
+// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+//
+// Use, modification and distribution are subject to 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).
+//
+// See http://www.boost.org/libs/type_traits for most recent version including documentation.
+
+#ifndef BOOST_TT_postfix_decrement_HPP_INCLUDED
+#define BOOST_TT_postfix_decrement_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_operator_postfix_decrement
+#define BOOST_TT_TRAIT_OP --
+#define BOOST_TT_DEFAULT_RET void
+
+#include <boost/type_traits/detail/has_postfix_unary_operator.hpp>
+
+namespace boost {
+
+template < typename R > struct BOOST_TT_TRAIT_NAME < bool, R > : ::boost::integral_constant<bool,false> { };
+
+}
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_DEFAULT_RET
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_operator_postfix_increment.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_operator_postfix_increment.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -0,0 +1,22 @@
+// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+//
+// Use, modification and distribution are subject to 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).
+//
+// See http://www.boost.org/libs/type_traits for most recent version including documentation.
+
+#ifndef BOOST_TT_postfix_increment_HPP_INCLUDED
+#define BOOST_TT_postfix_increment_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_operator_postfix_increment
+#define BOOST_TT_TRAIT_OP ++
+#define BOOST_TT_DEFAULT_RET void
+
+#include <boost/type_traits/detail/has_postfix_unary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_DEFAULT_RET
+
+#endif

Modified: sandbox/type_traits/boost/type_traits/has_operator_prefix_decrement.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_prefix_decrement.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_prefix_decrement.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -13,7 +13,7 @@
 #define BOOST_TT_TRAIT_OP --
 #define BOOST_TT_DEFAULT_RET void
 
-#include <boost/type_traits/detail/has_unary_operator.hpp>
+#include <boost/type_traits/detail/has_prefix_unary_operator.hpp>
 
 namespace boost {
 

Modified: sandbox/type_traits/boost/type_traits/has_operator_prefix_increment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_prefix_increment.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_prefix_increment.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -13,7 +13,7 @@
 #define BOOST_TT_TRAIT_OP ++
 #define BOOST_TT_DEFAULT_RET void
 
-#include <boost/type_traits/detail/has_unary_operator.hpp>
+#include <boost/type_traits/detail/has_prefix_unary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP

Modified: sandbox/type_traits/boost/type_traits/has_operator_unary_minus.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_unary_minus.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_unary_minus.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -13,7 +13,7 @@
 #define BOOST_TT_TRAIT_OP -
 #define BOOST_TT_DEFAULT_RET void
 
-#include <boost/type_traits/detail/has_unary_operator.hpp>
+#include <boost/type_traits/detail/has_prefix_unary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP

Modified: sandbox/type_traits/boost/type_traits/has_operator_unary_plus.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_unary_plus.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_unary_plus.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -13,7 +13,7 @@
 #define BOOST_TT_TRAIT_OP +
 #define BOOST_TT_DEFAULT_RET void
 
-#include <boost/type_traits/detail/has_unary_operator.hpp>
+#include <boost/type_traits/detail/has_prefix_unary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP

Added: sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_decrement.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_decrement.qbk 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -0,0 +1,47 @@
+[/
+ Copyright 2010 Frédéric Bron.
+ 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).
+]
+
+[section:has_operator_postfix_decrement has_operator_postfix_decrement]
+ template <class LHS, class RET=void>
+ struct has_operator_postfix_decrement : public __tof {};
+
+__inherit
+If (i) `lhs` of type `LHS` can be used in expression `lhs--`,
+and (ii) `RET=void` or the result of expression `lhs--` is convertible to `RET`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`RET=void`) is to not check for the return value of postfix `operator--`.
+If `RET` is different from the default `void` type, the return value is checked to be convertible to `RET`.
+
+This trait can not detect whether postfix `operator--` is public or not: if `operator--` is defined
+as a private member of `LHS` then instantiating `has_operator_postfix_decrement<LHS>` will produce a compiler error.
+For this reason `has_operator_postfix_decrement` can not be used to determine whether a type has a public `operator--` or not.
+
+__header `#include <boost/type_traits/has_operator_postfix_decrement.hpp>` or `#include <boost/type_traits.hpp>`
+
+__examples
+
+[:`has_operator_postfix_decrement<LHS, RET>::value_type` is the type `bool`.]
+
+[:`has_operator_postfix_decrement<int>` inherits from `__true_type`.]
+
+[:`has_operator_postfix_decrement<int, int>` inherits from `__true_type`.]
+
+[:`has_operator_postfix_decrement<int, long>` inherits from `__true_type`.]
+
+[:`has_operator_postfix_decrement<double, double>` inherits from `__true_type`.]
+
+[:`has_operator_postfix_decrement<double, int>` inherits from `__true_type`.]
+
+[:`has_operator_postfix_decrement<int, std::string>` inherits from `__false_type`.]
+
+[:`has_operator_postfix_decrement<long>::value` is a `bool` integral constant
+expression that evaluates to /true/.]
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_increment.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_increment.qbk 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -0,0 +1,47 @@
+[/
+ Copyright 2010 Frédéric Bron.
+ 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).
+]
+
+[section:has_operator_postfix_increment has_operator_postfix_increment]
+ template <class LHS, class RET=void>
+ struct has_operator_postfix_increment : public __tof {};
+
+__inherit
+If (i) `lhs` of type `LHS` can be used in expression `lhs++`,
+and (ii) `RET=void` or the result of expression `lhs++` is convertible to `RET`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`RET=void`) is to not check for the return value of postfix `operator++`.
+If `RET` is different from the default `void` type, the return value is checked to be convertible to `RET`.
+
+This trait can not detect whether postfix `operator++` is public or not: if `operator++` is defined
+as a private member of `LHS` then instantiating `has_operator_postfix_increment<LHS>` will produce a compiler error.
+For this reason `has_operator_postfix_increment` can not be used to determine whether a type has a public `operator++` or not.
+
+__header `#include <boost/type_traits/has_operator_postfix_increment.hpp>` or `#include <boost/type_traits.hpp>`
+
+__examples
+
+[:`has_operator_postfix_increment<LHS, RET>::value_type` is the type `bool`.]
+
+[:`has_operator_postfix_increment<int>` inherits from `__true_type`.]
+
+[:`has_operator_postfix_increment<int, int>` inherits from `__true_type`.]
+
+[:`has_operator_postfix_increment<int, long>` inherits from `__true_type`.]
+
+[:`has_operator_postfix_increment<double, double>` inherits from `__true_type`.]
+
+[:`has_operator_postfix_increment<double, int>` inherits from `__true_type`.]
+
+[:`has_operator_postfix_increment<int, std::string>` inherits from `__false_type`.]
+
+[:`has_operator_postfix_increment<long>::value` is a `bool` integral constant
+expression that evaluates to /true/.]
+
+[endsect]
+

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_decrement.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_decrement.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_decrement.qbk 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -15,11 +15,11 @@
 then inherits from __true_type,
 otherwise inherits from __false_type.
 
-The default behaviour (`RET=void`) is to not check for the return value of `operator--`.
+The default behaviour (`RET=void`) is to not check for the return value of prefix `operator--`.
 If `RET` is different from the default `void` type, the return value is checked to be convertible to `RET`.
 
-This trait can not detect whether `operator--` is public or not: if `operator--` is defined as a private member of `RHS` then
-instantiating `has_operator_prefix_decrement<RHS>` will produce a compiler error.
+This trait can not detect whether prefix `operator--` is public or not: if `operator--` is defined
+as a private member of `RHS` then instantiating `has_operator_prefix_decrement<RHS>` will produce a compiler error.
 For this reason `has_operator_prefix_decrement` can not be used to determine whether a type has a public `operator--` or not.
 
 __header `#include <boost/type_traits/has_operator_prefix_decrement.hpp>` or `#include <boost/type_traits.hpp>`

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_increment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_increment.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_increment.qbk 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -15,11 +15,11 @@
 then inherits from __true_type,
 otherwise inherits from __false_type.
 
-The default behaviour (`RET=void`) is to not check for the return value of `operator++`.
+The default behaviour (`RET=void`) is to not check for the return value of prefix `operator++`.
 If `RET` is different from the default `void` type, the return value is checked to be convertible to `RET`.
 
-This trait can not detect whether `operator++` is public or not: if `operator++` is defined as a private member of `RHS` then
-instantiating `has_operator_prefix_increment<RHS>` will produce a compiler error.
+This trait can not detect whether prefix `operator++` is public or not: if `operator++` is defined
+as a private member of `RHS` then instantiating `has_operator_prefix_increment<RHS>` will produce a compiler error.
 For this reason `has_operator_prefix_increment` can not be used to determine whether a type has a public `operator++` or not.
 
 __header `#include <boost/type_traits/has_operator_prefix_increment.hpp>` or `#include <boost/type_traits.hpp>`

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/background.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/background.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/background.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -49,7 +49,7 @@
       method available to them.
     </p>
 <a name="boost_typetraits.background.type_traits"></a><h5>
-<a name="id3045157"></a>
+<a name="id2813597"></a>
       <a class="link" href="background.html#boost_typetraits.background.type_traits">Type Traits</a>
     </h5>
 <p>
@@ -77,7 +77,7 @@
       given.
     </p>
 <a name="boost_typetraits.background.implementation"></a><h5>
-<a name="id3044201"></a>
+<a name="id2812640"></a>
       <a class="link" href="background.html#boost_typetraits.background.implementation">Implementation</a>
     </h5>
 <p>
@@ -167,7 +167,7 @@
       in the default template.
     </p>
 <a name="boost_typetraits.background.optimized_copy"></a><h5>
-<a name="id3095686"></a>
+<a name="id2864125"></a>
       <a class="link" href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
     </h5>
 <p>
@@ -240,7 +240,7 @@
       otherwise it will call the "slow but safe version".
     </p>
 <a name="boost_typetraits.background.was_it_worth_it_"></a><h5>
-<a name="id3096148"></a>
+<a name="id2864588"></a>
       <a class="link" href="background.html#boost_typetraits.background.was_it_worth_it_">Was it worth it?</a>
     </h5>
 <p>
@@ -273,7 +273,7 @@
         </li>
 </ul></div>
 <div class="table">
-<a name="id3096217"></a><p class="title"><b>Table&#160;1.1.&#160;Time taken to copy 1000 elements using `copy&lt;const T*, T*&gt;` (times
+<a name="id2864656"></a><p class="title"><b>Table&#160;1.1.&#160;Time taken to copy 1000 elements using `copy&lt;const T*, T*&gt;` (times
       in micro-seconds)</b></p>
 <div class="table-contents"><table class="table" summary="Time taken to copy 1000 elements using `copy&lt;const T*, T*&gt;` (times
       in micro-seconds)">
@@ -372,7 +372,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="boost_typetraits.background.pair_of_references"></a><h5>
-<a name="id3096368"></a>
+<a name="id2864808"></a>
       <a class="link" href="background.html#boost_typetraits.background.pair_of_references">Pair of References</a>
     </h5>
 <p>
@@ -409,7 +409,7 @@
       to hold non-reference types, references, and constant references:
     </p>
 <div class="table">
-<a name="id3096675"></a><p class="title"><b>Table&#160;1.2.&#160;Required Constructor Argument Types</b></p>
+<a name="id2865115"></a><p class="title"><b>Table&#160;1.2.&#160;Required Constructor Argument Types</b></p>
 <div class="table-contents"><table class="table" summary="Required Constructor Argument Types">
 <colgroup>
 <col>
@@ -474,7 +474,7 @@
       adds a reference to its type, unless it is already a reference.
     </p>
 <div class="table">
-<a name="id3096792"></a><p class="title"><b>Table&#160;1.3.&#160;Using add_reference to synthesize the correct constructor type</b></p>
+<a name="id2865231"></a><p class="title"><b>Table&#160;1.3.&#160;Using add_reference to synthesize the correct constructor type</b></p>
 <div class="table-contents"><table class="table" summary="Using add_reference to synthesize the correct constructor type">
 <colgroup>
 <col>
@@ -590,7 +590,7 @@
       easier to maintain and easier to understand.
     </p>
 <a name="boost_typetraits.background.conclusion"></a><h5>
-<a name="id3097324"></a>
+<a name="id2865763"></a>
       <a class="link" href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
     </h5>
 <p>
@@ -603,7 +603,7 @@
       can be optimal as well as generic.
     </p>
 <a name="boost_typetraits.background.acknowledgements"></a><h5>
-<a name="id3097355"></a>
+<a name="id2865794"></a>
       <a class="link" href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
     </h5>
 <p>
@@ -611,7 +611,7 @@
       comments when preparing this article.
     </p>
 <a name="background.references"></a><a name="boost_typetraits.background.references"></a><h5>
-<a name="id3097382"></a>
+<a name="id2865821"></a>
       <a class="link" href="background.html#boost_typetraits.background.references">References</a>
     </h5>
 <div class="orderedlist"><ol class="orderedlist" type="1">

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/transform.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/transform.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/transform.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -90,7 +90,7 @@
 <span class="keyword">struct</span> <a class="link" href="../reference/remove_volatile.html" title="remove_volatile">remove_volatile</a><span class="special">;</span>
 </pre>
 <a name="boost_typetraits.category.transform.broken_compiler_workarounds_"></a><h5>
-<a name="id3100835"></a>
+<a name="id2869275"></a>
         <a class="link" href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
         Compiler Workarounds:</a>
       </h5>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intrinsics.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intrinsics.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intrinsics.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -92,7 +92,7 @@
       of the following macros:
     </p>
 <div class="table">
-<a name="id3102716"></a><p class="title"><b>Table&#160;1.4.&#160;Macros for Compiler Intrinsics</b></p>
+<a name="id2871156"></a><p class="title"><b>Table&#160;1.4.&#160;Macros for Compiler Intrinsics</b></p>
 <div class="table-contents"><table class="table" summary="Macros for Compiler Intrinsics">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -82,6 +82,10 @@
 <dt><span class="section"> has_operator_plus</span></dt>
 <dt><span class="section"><a href="reference/has_operator_plus_equal.html">
       has_operator_plus_equal</a></span></dt>
+<dt><span class="section"><a href="reference/has_operator_postfix_decrement.html">
+ has_operator_postfix_decrement</a></span></dt>
+<dt><span class="section"><a href="reference/has_operator_postfix_increment.html">
+ has_operator_postfix_increment</a></span></dt>
 <dt><span class="section"><a href="reference/has_operator_prefix_decrement.html">
       has_operator_prefix_decrement</a></span></dt>
 <dt><span class="section"><a href="reference/has_operator_prefix_increment.html">

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3107271"></a><p class="title"><b>Table&#160;1.5.&#160;Examples</b></p>
+<a name="id2875711"></a><p class="title"><b>Table&#160;1.5.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -47,7 +47,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3107856"></a><p class="title"><b>Table&#160;1.6.&#160;Examples</b></p>
+<a name="id2876296"></a><p class="title"><b>Table&#160;1.6.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -49,7 +49,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3108508"></a><p class="title"><b>Table&#160;1.7.&#160;Examples</b></p>
+<a name="id2876948"></a><p class="title"><b>Table&#160;1.7.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3109094"></a><p class="title"><b>Table&#160;1.8.&#160;Examples</b></p>
+<a name="id2877533"></a><p class="title"><b>Table&#160;1.8.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3109671"></a><p class="title"><b>Table&#160;1.9.&#160;Examples</b></p>
+<a name="id2878111"></a><p class="title"><b>Table&#160;1.9.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/decay.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/decay.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/decay.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -41,7 +41,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3111169"></a><p class="title"><b>Table&#160;1.10.&#160;Examples</b></p>
+<a name="id2879609"></a><p class="title"><b>Table&#160;1.10.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -42,7 +42,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3112779"></a><p class="title"><b>Table&#160;1.11.&#160;Examples</b></p>
+<a name="id2881219"></a><p class="title"><b>Table&#160;1.11.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -52,7 +52,7 @@
         </p></td></tr>
 </table></div>
 <div class="table">
-<a name="id3113224"></a><p class="title"><b>Table&#160;1.12.&#160;Function Traits Members</b></p>
+<a name="id2881664"></a><p class="title"><b>Table&#160;1.12.&#160;Function Traits Members</b></p>
 <div class="table-contents"><table class="table" summary="Function Traits Members">
 <colgroup>
 <col>
@@ -115,7 +115,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id3113481"></a><p class="title"><b>Table&#160;1.13.&#160;Examples</b></p>
+<a name="id2881921"></a><p class="title"><b>Table&#160;1.13.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus_equal.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -7,13 +7,13 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="has_operator_plus.html" title="has_operator_plus">
-<link rel="next" href="has_operator_prefix_decrement.html" title="has_operator_prefix_decrement">
+<link rel="next" href="has_operator_postfix_decrement.html" title="has_operator_postfix_decrement">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_operator_plus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_prefix_decrement.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_operator_plus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_postfix_decrement.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
@@ -100,7 +100,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_operator_plus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_prefix_decrement.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_operator_plus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_postfix_decrement.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_decrement.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_decrement.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -0,0 +1,102 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_operator_postfix_decrement</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_operator_plus_equal.html" title="has_operator_plus_equal">
+<link rel="next" href="has_operator_postfix_increment.html" title="has_operator_postfix_increment">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_operator_plus_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_postfix_increment.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_operator_postfix_decrement"></a><a class="link" href="has_operator_postfix_decrement.html" title="has_operator_postfix_decrement">
+ has_operator_postfix_decrement</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_operator_postfix_decrement</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">LHS</span></code> can be used in
+ expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">--</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code> or the result of expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">--</span></code> is
+ convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then inherits
+ from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>) is
+ to not check for the return value of postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
+ is different from the default <code class="computeroutput"><span class="keyword">void</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
+ </p>
+<p>
+ This trait can not detect whether postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_operator_postfix_decrement</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_operator_postfix_decrement</span></code>
+ can not be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> or not.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <code class="computeroutput"><span class="preprocessor">#include</span>
+ <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator_postfix_decrement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_decrement</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
+ is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_decrement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_decrement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_decrement</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
+ is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
+ expression that evaluates to <span class="emphasis"><em>true</em></span>.
+ </p></blockquote></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+ Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
+ Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
+ Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven
+ Watanabe<p>
+ 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)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_operator_plus_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_postfix_increment.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_increment.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_increment.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -0,0 +1,102 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_operator_postfix_increment</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_operator_postfix_decrement.html" title="has_operator_postfix_decrement">
+<link rel="next" href="has_operator_prefix_decrement.html" title="has_operator_prefix_decrement">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_operator_postfix_decrement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_prefix_decrement.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_operator_postfix_increment"></a><a class="link" href="has_operator_postfix_increment.html" title="has_operator_postfix_increment">
+ has_operator_postfix_increment</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_operator_postfix_increment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">LHS</span></code> can be used in
+ expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">++</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code> or the result of expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">++</span></code> is
+ convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then inherits
+ from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>) is
+ to not check for the return value of postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
+ is different from the default <code class="computeroutput"><span class="keyword">void</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
+ </p>
+<p>
+ This trait can not detect whether postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_operator_postfix_increment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_operator_postfix_increment</span></code>
+ can not be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> or not.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <code class="computeroutput"><span class="preprocessor">#include</span>
+ <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">/</span><span class="identifier">has_operator_postfix_increment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ or <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_increment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
+ is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_increment</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_increment</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_operator_postfix_increment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
+ is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
+ expression that evaluates to <span class="emphasis"><em>true</em></span>.
+ </p></blockquote></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+ Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
+ Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
+ Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven
+ Watanabe<p>
+ 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)
+ </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_operator_postfix_decrement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_prefix_decrement.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_decrement.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_decrement.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_decrement.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -6,14 +6,14 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="has_operator_plus_equal.html" title="has_operator_plus_equal">
+<link rel="prev" href="has_operator_postfix_increment.html" title="has_operator_postfix_increment">
 <link rel="next" href="has_operator_prefix_increment.html" title="has_operator_prefix_increment">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_operator_plus_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_prefix_increment.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_operator_postfix_increment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_prefix_increment.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
@@ -34,12 +34,12 @@
       </p>
 <p>
         The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>) is
- to not check for the return value of <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
+ to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
         is different from the default <code class="computeroutput"><span class="keyword">void</span></code>
         type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
       </p>
 <p>
- This trait can not detect whether <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_operator_prefix_decrement</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ This trait can not detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_operator_prefix_decrement</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
         reason <code class="computeroutput"><span class="identifier">has_operator_prefix_decrement</span></code>
         can not be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> or not.
       </p>
@@ -96,7 +96,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_operator_plus_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_prefix_increment.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_operator_postfix_increment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_operator_prefix_increment.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_increment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_increment.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_increment.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -34,12 +34,12 @@
       </p>
 <p>
         The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>) is
- to not check for the return value of <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
+ to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
         is different from the default <code class="computeroutput"><span class="keyword">void</span></code>
         type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
       </p>
 <p>
- This trait can not detect whether <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_operator_prefix_increment</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ This trait can not detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_operator_prefix_increment</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
         reason <code class="computeroutput"><span class="identifier">has_operator_prefix_increment</span></code>
         can not be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> or not.
       </p>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -42,7 +42,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3150288"></a><p class="title"><b>Table&#160;1.14.&#160;Examples</b></p>
+<a name="id2920634"></a><p class="title"><b>Table&#160;1.14.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -47,7 +47,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3168206"></a><p class="title"><b>Table&#160;1.15.&#160;Examples</b></p>
+<a name="id2938553"></a><p class="title"><b>Table&#160;1.15.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -47,7 +47,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3168786"></a><p class="title"><b>Table&#160;1.16.&#160;Examples</b></p>
+<a name="id2939133"></a><p class="title"><b>Table&#160;1.16.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/member_object.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/member_object.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/member_object.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -44,7 +44,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3169391"></a><p class="title"><b>Table&#160;1.17.&#160;Examples</b></p>
+<a name="id2939738"></a><p class="title"><b>Table&#160;1.17.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/promote.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/promote.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/promote.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -44,7 +44,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3170150"></a><p class="title"><b>Table&#160;1.18.&#160;Examples</b></p>
+<a name="id2940497"></a><p class="title"><b>Table&#160;1.18.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -47,7 +47,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3171437"></a><p class="title"><b>Table&#160;1.19.&#160;Examples</b></p>
+<a name="id2941784"></a><p class="title"><b>Table&#160;1.19.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3172099"></a><p class="title"><b>Table&#160;1.20.&#160;Examples</b></p>
+<a name="id2942446"></a><p class="title"><b>Table&#160;1.20.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3172744"></a><p class="title"><b>Table&#160;1.21.&#160;Examples</b></p>
+<a name="id2943091"></a><p class="title"><b>Table&#160;1.21.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -47,7 +47,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3173391"></a><p class="title"><b>Table&#160;1.22.&#160;Examples</b></p>
+<a name="id2943737"></a><p class="title"><b>Table&#160;1.22.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_member_pointer.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_member_pointer.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_member_pointer.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -42,7 +42,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3174659"></a><p class="title"><b>Table&#160;1.24.&#160;Examples</b></p>
+<a name="id2945006"></a><p class="title"><b>Table&#160;1.24.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3174066"></a><p class="title"><b>Table&#160;1.23.&#160;Examples</b></p>
+<a name="id2944413"></a><p class="title"><b>Table&#160;1.23.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3175448"></a><p class="title"><b>Table&#160;1.25.&#160;Examples</b></p>
+<a name="id2945795"></a><p class="title"><b>Table&#160;1.25.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id3176004"></a><p class="title"><b>Table&#160;1.26.&#160;Examples</b></p>
+<a name="id2946350"></a><p class="title"><b>Table&#160;1.26.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

Modified: sandbox/type_traits/libs/type_traits/doc/html/index.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/index.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/index.html 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -24,7 +24,7 @@
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven
       Watanabe</p></div>
 <div><div class="legalnotice">
-<a name="id3085574"></a><p>
+<a name="id2854014"></a><p>
         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)
       </p>
@@ -134,6 +134,10 @@
 <dt><span class="section"> has_operator_plus</span></dt>
 <dt><span class="section"><a href="boost_typetraits/reference/has_operator_plus_equal.html">
       has_operator_plus_equal</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference/has_operator_postfix_decrement.html">
+ has_operator_postfix_decrement</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/reference/has_operator_postfix_increment.html">
+ has_operator_postfix_increment</a></span></dt>
 <dt><span class="section"><a href="boost_typetraits/reference/has_operator_prefix_decrement.html">
       has_operator_prefix_decrement</a></span></dt>
 <dt><span class="section"><a href="boost_typetraits/reference/has_operator_prefix_increment.html">
@@ -213,7 +217,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: November 29, 2010 at 16:29:09 +0100</small></p></td>
+<td align="left"><p><small>Last revised: December 10, 2010 at 15:30:19 +0100</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/type_traits/libs/type_traits/doc/type_traits.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/type_traits.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/type_traits.qbk 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -206,6 +206,8 @@
 [include has_operator_not_equal_to.qbk]
 [include has_operator_plus.qbk]
 [include has_operator_plus_equal.qbk]
+[include has_operator_postfix_decrement.qbk]
+[include has_operator_postfix_increment.qbk]
 [include has_operator_prefix_decrement.qbk]
 [include has_operator_prefix_increment.qbk]
 [include has_operator_right_shift.qbk]

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_logical_not_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_logical_not_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_logical_not_test.cpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -14,5 +14,6 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_logical_not
 #define BOOST_TT_TRAIT_OP !
+#define BOOST_TT_TRAIT_BOOL_RESULT true
 
-#include "has_unary_operator_test.hpp"
+#include "has_prefix_unary_operator_test.hpp"

Added: sandbox/type_traits/libs/type_traits/test/has_operator_postfix_decrement_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_postfix_decrement_test.cpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -0,0 +1,19 @@
+// (C) Copyright Frederic Bron 2010.
+// Use, modification and distribution are subject to 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_operator_postfix_decrement.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_operator_postfix_decrement
+#define BOOST_TT_TRAIT_OP --
+#define BOOST_TT_TRAIT_BOOL_RESULT false
+
+#include "has_postfix_unary_operator_test.hpp"

Added: sandbox/type_traits/libs/type_traits/test/has_operator_postfix_increment_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_postfix_increment_test.cpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -0,0 +1,19 @@
+// (C) Copyright Frederic Bron 2010.
+// Use, modification and distribution are subject to 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_operator_postfix_increment.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_operator_postfix_increment
+#define BOOST_TT_TRAIT_OP ++
+#define BOOST_TT_TRAIT_BOOL_RESULT true
+
+#include "has_postfix_unary_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_prefix_decrement_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_prefix_decrement_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_prefix_decrement_test.cpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -14,5 +14,6 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_prefix_decrement
 #define BOOST_TT_TRAIT_OP --
+#define BOOST_TT_TRAIT_BOOL_RESULT false
 
-#include "has_unary_operator_test.hpp"
+#include "has_prefix_unary_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_prefix_increment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_prefix_increment_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_prefix_increment_test.cpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -14,5 +14,6 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_prefix_increment
 #define BOOST_TT_TRAIT_OP ++
+#define BOOST_TT_TRAIT_BOOL_RESULT true
 
-#include "has_unary_operator_test.hpp"
+#include "has_prefix_unary_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_unary_minus_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_unary_minus_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_unary_minus_test.cpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -14,5 +14,6 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_unary_minus
 #define BOOST_TT_TRAIT_OP -
+#define BOOST_TT_TRAIT_BOOL_RESULT true
 
-#include "has_unary_operator_test.hpp"
+#include "has_prefix_unary_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_unary_plus_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_unary_plus_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_unary_plus_test.cpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -14,5 +14,6 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_unary_plus
 #define BOOST_TT_TRAIT_OP +
+#define BOOST_TT_TRAIT_BOOL_RESULT true
 
-#include "has_unary_operator_test.hpp"
+#include "has_prefix_unary_operator_test.hpp"

Added: sandbox/type_traits/libs/type_traits/test/has_postfix_unary_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_unary_operator_test.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -0,0 +1,144 @@
+// (C) Copyright Frederic Bron 2010.
+// Use, modification and distribution are subject to 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)
+
+#include <iostream>
+#include <typeinfo>
+#include <string>
+#include <vector>
+
+// test with one template parameter
+#define TEST_T(TYPE,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE>::value), RESULT)
+// test with one template parameter plus return value
+#define TEST_TR(TYPE,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (int) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, int);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP (int) const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_string { std::string operator BOOST_TT_TRAIT_OP (int); };
+
+//struct convertible_to_bool { operator bool () const; };
+//struct returns_convertible_to_bool { convertible_to_bool operator BOOST_TT_TRAIT_OP (int); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&, int) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&, int) { return true; }
+
+struct tag { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, BOOST_TT_TRAIT_BOOL_RESULT);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+
+// test with three template parameters
+ TEST_TR(bool, bool, BOOST_TT_TRAIT_BOOL_RESULT);
+ TEST_TR(char, bool, true);
+ TEST_TR(signed char, bool, true);
+ TEST_TR(short int, bool, true);
+ TEST_TR(int, bool, true);
+ TEST_TR(long int, bool, true);
+ TEST_TR(unsigned char, bool, true);
+ TEST_TR(unsigned short int, bool, true);
+ TEST_TR(unsigned int, bool, true);
+ TEST_TR(unsigned long int, bool, true);
+ TEST_TR(wchar_t, bool, true);
+ TEST_TR(float, bool, true);
+ TEST_TR(double, bool, true);
+ TEST_TR(long double, bool, true);
+ TEST_TR(bool, tag, false);
+ TEST_TR(char, tag, false);
+ TEST_TR(signed char, tag, false);
+ TEST_TR(short int, tag, false);
+ TEST_TR(int, tag, false);
+ TEST_TR(long int, tag, false);
+ TEST_TR(unsigned char, tag, false);
+ TEST_TR(unsigned short int, tag, false);
+ TEST_TR(unsigned int, tag, false);
+ TEST_TR(unsigned long int, tag, false);
+ TEST_TR(wchar_t, tag, false);
+ TEST_TR(float, tag, false);
+ TEST_TR(double, tag, false);
+ TEST_TR(long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// compile time error
+// TEST_T(internal_private, false);
+ TEST_T(returns_int, true);
+ TEST_T(returns_void, true);
+ TEST_T(returns_void_star, true);
+ TEST_T(returns_double, true);
+ TEST_T(returns_string, true);
+// TEST_T(convertible_to_bool, true);
+ TEST_T(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ TEST_TR(returns_double, double, true);
+ TEST_TR(returns_string, bool, false);
+ TEST_TR(returns_string, std::string, true);
+// TEST_TR(convertible_to_bool, bool, true);
+ TEST_TR(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Copied: sandbox/type_traits/libs/type_traits/test/has_prefix_unary_operator_test.hpp (from r67146, /sandbox/type_traits/libs/type_traits/test/has_unary_operator_test.hpp)
==============================================================================
--- /sandbox/type_traits/libs/type_traits/test/has_unary_operator_test.hpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_unary_operator_test.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
@@ -55,7 +55,7 @@
 
 void run() {
         // test with only one template parameter
- TEST_T(bool, true);
+ TEST_T(bool, BOOST_TT_TRAIT_BOOL_RESULT);
         TEST_T(char, true);
         TEST_T(signed char, true);
         TEST_T(short int, true);
@@ -72,7 +72,7 @@
         TEST_T(void, false);
 
 // test with three template parameters
- TEST_TR(bool, bool, true);
+ TEST_TR(bool, bool, BOOST_TT_TRAIT_BOOL_RESULT);
         TEST_TR(char, bool, true);
         TEST_TR(signed char, bool, true);
         TEST_TR(short int, bool, true);

Deleted: sandbox/type_traits/libs/type_traits/test/has_unary_operator_test.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_unary_operator_test.hpp 2010-12-23 05:18:11 EST (Thu, 23 Dec 2010)
+++ (empty file)
@@ -1,144 +0,0 @@
-// (C) Copyright Frederic Bron 2010.
-// Use, modification and distribution are subject to 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)
-
-#include <iostream>
-#include <typeinfo>
-#include <string>
-#include <vector>
-
-// test with one template parameter
-#define TEST_T(TYPE,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE>::value), RESULT)
-// test with one template parameter plus return value
-#define TEST_TR(TYPE,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
-
-namespace {
-
-struct ret { };
-
-struct without { };
-
-struct internal { ret operator BOOST_TT_TRAIT_OP () const; };
-
-struct external { };
-ret operator BOOST_TT_TRAIT_OP (const external&);
-
-class internal_private { ret operator BOOST_TT_TRAIT_OP () const; };
-
-struct returns_int { int operator BOOST_TT_TRAIT_OP (); };
-
-struct returns_void { void operator BOOST_TT_TRAIT_OP (); };
-
-struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (); };
-
-struct returns_double { double operator BOOST_TT_TRAIT_OP (); };
-
-struct returns_string { std::string operator BOOST_TT_TRAIT_OP (); };
-
-//struct convertible_to_bool { operator bool () const; };
-//struct returns_convertible_to_bool { convertible_to_bool operator BOOST_TT_TRAIT_OP (); };
-
-class Base1 { };
-class Derived1 : public Base1 { };
-
-bool operator BOOST_TT_TRAIT_OP (const Base1&) { return true; }
-
-class Base2 { };
-struct Derived2 : public Base2 {
- Derived2(int); // to check if it works with a class that is not default constructible
-};
-
-bool operator BOOST_TT_TRAIT_OP (const Derived2&) { return true; }
-
-struct tag { };
-
-void run() {
- // test with only one template parameter
- TEST_T(bool, true);
- TEST_T(char, true);
- TEST_T(signed char, true);
- TEST_T(short int, true);
- TEST_T(int, true);
- TEST_T(long int, true);
- TEST_T(unsigned char, true);
- TEST_T(unsigned short int, true);
- TEST_T(unsigned int, true);
- TEST_T(unsigned long int, true);
- TEST_T(wchar_t, true);
- TEST_T(float, true);
- TEST_T(double, true);
- TEST_T(long double, true);
- TEST_T(void, false);
-
-// test with three template parameters
- TEST_TR(bool, bool, true);
- TEST_TR(char, bool, true);
- TEST_TR(signed char, bool, true);
- TEST_TR(short int, bool, true);
- TEST_TR(int, bool, true);
- TEST_TR(long int, bool, true);
- TEST_TR(unsigned char, bool, true);
- TEST_TR(unsigned short int, bool, true);
- TEST_TR(unsigned int, bool, true);
- TEST_TR(unsigned long int, bool, true);
- TEST_TR(wchar_t, bool, true);
- TEST_TR(float, bool, true);
- TEST_TR(double, bool, true);
- TEST_TR(long double, bool, true);
- TEST_TR(bool, tag, false);
- TEST_TR(char, tag, false);
- TEST_TR(signed char, tag, false);
- TEST_TR(short int, tag, false);
- TEST_TR(int, tag, false);
- TEST_TR(long int, tag, false);
- TEST_TR(unsigned char, tag, false);
- TEST_TR(unsigned short int, tag, false);
- TEST_TR(unsigned int, tag, false);
- TEST_TR(unsigned long int, tag, false);
- TEST_TR(wchar_t, tag, false);
- TEST_TR(float, tag, false);
- TEST_TR(double, tag, false);
- TEST_TR(long double, tag, false);
-
- TEST_T(without, false);
- TEST_T(internal, true);
- TEST_T(external, true);
-// compile time error
-// TEST_T(internal_private, false);
- TEST_T(returns_int, true);
- TEST_T(returns_void, true);
- TEST_T(returns_void_star, true);
- TEST_T(returns_double, true);
- TEST_T(returns_string, true);
-// TEST_T(convertible_to_bool, true);
- TEST_T(Base1, true);
- TEST_T(Derived1, true);
- TEST_T(Base2, false);
- TEST_T(Derived2, true);
-
- TEST_TR(without, bool, false);
- TEST_TR(internal, bool, false);
- TEST_TR(internal, ret, true);
- TEST_TR(external, bool, false);
- TEST_TR(external, ret, true);
- TEST_TR(returns_int, bool, true);
- TEST_TR(returns_int, int, true);
- TEST_TR(returns_void, void, true);
- TEST_TR(returns_void, bool, false);
- TEST_TR(returns_void_star, bool, true);
- TEST_TR(returns_double, bool, true);
- TEST_TR(returns_double, double, true);
- TEST_TR(returns_string, bool, false);
- TEST_TR(returns_string, std::string, true);
-// TEST_TR(convertible_to_bool, bool, true);
- TEST_TR(Base1, bool, true);
- TEST_TR(Derived1, bool, true);
- TEST_TR(Base2, bool, false);
- TEST_TR(Derived2, bool, true);
-}
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- run();
-TT_TEST_END


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