Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r73294 - sandbox/conversion/libs/conversion_ext/test
From: vicente.botet_at_[hidden]
Date: 2011-07-21 22:09:55


Author: viboes
Date: 2011-07-21 22:09:54 EDT (Thu, 21 Jul 2011)
New Revision: 73294
URL: http://svn.boost.org/trac/boost/changeset/73294

Log:
conversion: added is_extrinsically_explicit_convertible.cpp
Added:
   sandbox/conversion/libs/conversion_ext/test/is_extrinsically_explicit_convertible.cpp (contents, props changed)
Text files modified:
   sandbox/conversion/libs/conversion_ext/test/Jamfile.v2 | 1 +
   1 files changed, 1 insertions(+), 0 deletions(-)

Modified: sandbox/conversion/libs/conversion_ext/test/Jamfile.v2
==============================================================================
--- sandbox/conversion/libs/conversion_ext/test/Jamfile.v2 (original)
+++ sandbox/conversion/libs/conversion_ext/test/Jamfile.v2 2011-07-21 22:09:54 EDT (Thu, 21 Jul 2011)
@@ -54,6 +54,7 @@
      [ compile is_default_constructible.cpp ]
      [ compile is_explicitly_convertible.cpp ]
      [ compile is_extrinsic_assignable.cpp ]
+ [ compile is_extrinsically_explicit_convertible.cpp ]
      [ compile is_convertible.cpp ]
      [ compile is_extrinsic_convertible.cpp ]
      [ compile is_move_assignable.cpp ]

Added: sandbox/conversion/libs/conversion_ext/test/is_extrinsically_explicit_convertible.cpp
==============================================================================
--- (empty file)
+++ sandbox/conversion/libs/conversion_ext/test/is_extrinsically_explicit_convertible.cpp 2011-07-21 22:09:54 EDT (Thu, 21 Jul 2011)
@@ -0,0 +1,414 @@
+//////////////////////////////////////////////////////////////////////////////
+//
+// (C) Copyright Vicente J. Botet Escriba 2011. 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)
+//
+// See http://www.boost.org/libs/conversion for documentation.
+//
+//////////////////////////////////////////////////////////////////////////////
+
+#include <iostream>
+#include <boost/static_assert.hpp>
+#include <boost/conversion/is_extrinsically_explicit_convertible.hpp>
+
+struct A
+{
+ explicit A(int);
+ A(double);
+ A(int, double);
+ A(A const&);
+};
+
+typedef void Function();
+typedef char Array[1];
+
+class NonCopyable {
+ NonCopyable(NonCopyable&);
+};
+
+#if defined(BOOST_CONVERSION_NO_IS_EXTRINSIC_EXPLICIT_CONVERTIBLE)
+namespace boost
+{
+ namespace conversion {
+
+ template <> struct is_extrinsically_explicit_convertible< int, A > : true_type {};
+ template <> struct is_extrinsically_explicit_convertible< double, A > : true_type {};
+ template <> struct is_constructible< A, int, double > : true_type {};
+ template <> struct is_constructible< A, A const& > : true_type {};
+}
+}
+#endif
+
+int main()
+{
+ {
+ BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<const int, int>::value));
+ BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<int, A>::value));
+ BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<double, A>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void,A>::value));
+ }
+ {
+
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<void, void>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const void, void>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<void, const void>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const void, const void>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, Function>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, Function>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, Function&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, Function&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, Function* const>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, Function*const >::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, const Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, const Array>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, const Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, const Array&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, const char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, const char>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, const char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, const char&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<void, const char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const void, const char*>::value));
+ }
+ {
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, const void>::value));
+
+ //BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, Function>::value));
+
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Function, Function&>::value));
+
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Function, Function*>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Function, Function* const>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, const Array>::value));
+
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_convertible<Function, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::is_explicitly_convertible<Function, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, const Array&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, const char>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, const char&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function, const char*>::value));
+ }
+ {
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, const void>::value));
+
+ //BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, Function>::value));
+
+ BOOST_STATIC_ASSERT(( boost::is_explicitly_convertible<Function&, Function&>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_convertible<Function&, Function&>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Function&, Function&>::value));
+
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Function&, Function*>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Function&, Function* const>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, const Array>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, const Array&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, const char>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, const char&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function&, const char*>::value));
+ }
+ {
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, const void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, const void>::value));
+
+ //BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, Function>::value));
+ //BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, Function>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, Function&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, Function&>::value));
+
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Function*, Function*>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Function*, Function* const>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Function*const, Function*>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Function*const, Function*const >::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, const Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, const Array>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, const Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, const Array&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, const char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, const char>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, const char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, const char&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*, const char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Function*const, const char*>::value));
+ }
+ {
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, const void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, const void>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, Function>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, Function>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, Function&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, Function&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, Function* const>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, Function*const >::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, const Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, const Array>::value));
+
+ //BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, Array&>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Array, const Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, Array&>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const Array, const Array&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, const char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, const char>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array, const char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, const char&>::value));
+
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Array, char*>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Array, const char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array, char*>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const Array, const char*>::value));
+ }
+ {
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, const void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, const void>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, Function>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, Function>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, Function&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, Function&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, Function* const>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, Function*const >::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, const Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, const Array>::value));
+
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Array&, Array&>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Array&, const Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, Array&>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const Array&, const Array&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, const char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, const char>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<Array&, const char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, const char&>::value));
+
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Array&, char*>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<Array&, const char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const Array&, char*>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const Array&, const char*>::value));
+ }
+ {
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, const void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, const void>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, Function>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, Function>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, Function&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, Function&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, Function* const>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, Function*const >::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, const Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, const Array>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, const Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, const Array&>::value));
+
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<char, char>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<char, const char>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const char, char>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const char, const char>::value));
+
+ //BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, char&>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<char, const char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, char&>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const char, const char&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char, const char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char, const char*>::value));
+ }
+ {
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, const void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, const void>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, Function>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, Function>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, Function&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, Function&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, Function* const>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, Function*const >::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, const Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, const Array>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, const Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, const Array&>::value));
+
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<char&, char>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<char&, const char>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const char&, char>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const char&, const char>::value));
+
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<char&, char&>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<char&, const char&>::value));
+ // BUG BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, char&>::value));
+ // BUG BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const char&, const char&>::value));
+
+ // BUG BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, char*>::value));
+ // BUG BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char&, const char*>::value));
+ // BUG BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, char*>::value));
+ // BUG BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char&, const char*>::value));
+ }
+ {
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, const void>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, const void>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, Function>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, Function>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, Function&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, Function&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, Function* const>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, Function*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, Function*const >::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, const Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, Array>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, const Array>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, const Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, Array&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, const Array&>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, const char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, char>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, const char>::value));
+
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<char*, const char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, char&>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, const char&>::value));
+
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<char*, char*>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<char*, const char*>::value));
+ BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const char*, char*>::value));
+ BOOST_STATIC_ASSERT(( boost::conversion::is_extrinsically_explicit_convertible<const char*, const char*>::value));
+ }
+ {
+ // BUG BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<NonCopyable&, NonCopyable&>::value));
+ // BUG BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<NonCopyable&, const NonCopyable&>::value));
+ // BUG BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<NonCopyable&, const volatile NonCopyable&>::value));
+ // BUG BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<NonCopyable&, volatile NonCopyable&>::value));
+ // BUG BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<const NonCopyable&, const NonCopyable&>::value));
+ // BUG BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<const NonCopyable&, const volatile NonCopyable&>::value));
+ // BUG BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<volatile NonCopyable&, const volatile NonCopyable&>::value));
+ // BUG BOOST_STATIC_ASSERT((boost::conversion::is_extrinsically_explicit_convertible<const volatile NonCopyable&, const volatile NonCopyable&>::value));
+ // BUG BOOST_STATIC_ASSERT((!boost::conversion::is_extrinsically_explicit_convertible<const NonCopyable&, NonCopyable&>::value));
+ }
+}


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