$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r83252 - sandbox/type_erasure/boost/type_erasure
From: steven_at_[hidden]
Date: 2013-03-02 14:58:43
Author: steven_watanabe
Date: 2013-03-02 14:58:42 EST (Sat, 02 Mar 2013)
New Revision: 83252
URL: http://svn.boost.org/trac/boost/changeset/83252
Log:
More complete description of relaxed.
Text files modified: 
   sandbox/type_erasure/boost/type_erasure/relaxed.hpp |    27 +++++++++++++++------------             
   1 files changed, 15 insertions(+), 12 deletions(-)
Modified: sandbox/type_erasure/boost/type_erasure/relaxed.hpp
==============================================================================
--- sandbox/type_erasure/boost/type_erasure/relaxed.hpp	(original)
+++ sandbox/type_erasure/boost/type_erasure/relaxed.hpp	2013-03-02 14:58:42 EST (Sat, 02 Mar 2013)
@@ -43,24 +43,27 @@
 }
 
 /**
- * This special concept does not have any behavior by
- * itself.  However it affects the behavior of other
- * concepts.  In the presence of this concept, the
- * requirement that all the arguments to a function
- * must match is relaxed.  Instead, if there is a
- * reasonable default implementation, it will be used,
- * otherwise a @ref bad_function_call exception will
- * be thrown.
+ * This special concept enables various useful default behavior that
+ * makes @ref any act like an ordinary object.  By default @ref any
+ * forwards all operations to the underlying type, and provides only
+ * the operations that are specified in its @c Concept.
  *
- * The following concepts have special behavior with
- * this flag:
- * - @ref assignable "assignable": If the types are not the same,
- *   it will fall back on copy and swap.
+ * In detail, @ref relaxed enables the following:
+ * - A raw value can be assigned to an @ref any.  This will replace
+ *   the value stored by the @ref any.  (But note that if @ref assignable
+ *   is present, it takes priority.)
+ * - copy assignment of @ref any uses the copy constructor if it can't
+ *   use @ref assignable (either because @ref assignable is missing,
+ *   or because the stored types do not match).
+ * - default construction of @ref any is allowed and creates a null any.
  * - @ref equality_comparable "equality_comparable": If the types do not
  *   match, it will return false.
  * - @ref less_than_comparable "less_than_comparable": If the types do not
  *   match, the ordering will be according to
  *   @c std::type_info::before.
+ * - if the arguments to any other function do not match, it will throw
+ *   a @ref bad_function_call exception instead of having undefined
+ *   behavior.
  */
 struct relaxed : ::boost::mpl::vector0<> {};