|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r72937 - in sandbox/conversion/boost/conversion: . boost fp std
From: vicente.botet_at_[hidden]
Date: 2011-07-06 18:18:25
Author: viboes
Date: 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
New Revision: 72937
URL: http://svn.boost.org/trac/boost/changeset/72937
Log:
conversion: update comments
Text files modified:
sandbox/conversion/boost/conversion/assign_to.hpp | 6 ++++
sandbox/conversion/boost/conversion/boost/array.hpp | 39 ++++++++++++++++++++++++------------
sandbox/conversion/boost/conversion/boost/chrono_duration_to_posix_time_duration.hpp | 11 +++------
sandbox/conversion/boost/conversion/boost/chrono_time_point_to_posix_time_ptime.hpp | 10 +++-----
sandbox/conversion/boost/conversion/boost/interval.hpp | 32 ++++++++++++++++++++----------
sandbox/conversion/boost/conversion/boost/optional.hpp | 42 ++++++++++++++++++++++++++++-----------
sandbox/conversion/boost/conversion/boost/rational.hpp | 31 ++++++++++++++++++++---------
sandbox/conversion/boost/conversion/boost/tuple.hpp | 37 +++++++++++++++++++++++-----------
sandbox/conversion/boost/conversion/convertible_from.hpp | 20 ++++++++++++------
sandbox/conversion/boost/conversion/convertible_to.hpp | 2
sandbox/conversion/boost/conversion/fp/convert_to.hpp | 8 ++++++
sandbox/conversion/boost/conversion/std/complex.hpp | 5 +++
sandbox/conversion/boost/conversion/std/pair.hpp | 15 +++++++++----
sandbox/conversion/boost/conversion/std/string.hpp | 6 ++++
sandbox/conversion/boost/conversion/std/vector.hpp | 17 ++++++++++++---
15 files changed, 189 insertions(+), 92 deletions(-)
Modified: sandbox/conversion/boost/conversion/assign_to.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/assign_to.hpp (original)
+++ sandbox/conversion/boost/conversion/assign_to.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -77,7 +77,11 @@
template < typename Target, typename Source>
struct assigner<Target, Source
#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
- , requires(CopyAssignable<Target>&&ExtrinsicExplicitConvertible<Source,Target>)
+ , requires(
+ CopyAssignable<Target>
+ && ExtrinsicExplicitConvertible<Source,Target>
+ && ! Assignable<Target,Source>
+ )
#else
, typename enable_if_c<
is_copy_assignable<Target>::value
Modified: sandbox/conversion/boost/conversion/boost/array.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/array.hpp (original)
+++ sandbox/conversion/boost/conversion/boost/array.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -30,6 +30,10 @@
namespace boost {
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_array{};
+#endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
template < class T, std::size_t N>
@@ -47,11 +51,6 @@
#endif
namespace conversion {
-#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED2)
- /** @brief Added here only to favor generation of specializations with doxygen */
- template < class Target, class Source, class Enable=void>
- struct converter_cp{};
-#endif
/**
* Partial specialization of @c converter for @c boost::array of the same size
@@ -81,10 +80,17 @@
*/
template < typename Target, typename Source, std::size_t N>
struct assigner_cp< array<Target,N>, array<Source,N>
- BOOST_CONVERSION_REQUIRES((
- is_extrinsic_assignable<Target,Source>::value
- && ! is_assignable<Target, Source>::value
- ))
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(
+ ExtrinsicAssignable<Target,Source>
+ && ! Assignable<Target, Source>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
+ is_extrinsic_assignable<Target,Source>::value
+ && ! is_assignable<Target, Source>::value
+ >::type
+#endif
> : true_type
{
//! @Effects assign to each one of the target array elements the conversion of the source array element.
@@ -103,10 +109,17 @@
#if defined(BOOST_CONVERSION_ENABLE_CND) || defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
template < typename Target, typename Source, std::size_t N>
struct assigner_cp< array<Target,N>, array<Source,N>
- BOOST_CONVERSION_REQUIRES((
- is_extrinsic_assignable<Target,Source>::value
- && is_assignable<Target, Source>::value
- ))
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requites()
+ ExtrinsicAssignable<Target,Source>
+ && Assignable<Target, Source>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
+ is_extrinsic_assignable<Target,Source>::value
+ && is_assignable<Target, Source>::value
+ >::type
+#endif
> : true_type
{
//! @Effects assign to each one of the target array elements the conversion of the source array element.
Modified: sandbox/conversion/boost/conversion/boost/chrono_duration_to_posix_time_duration.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/chrono_duration_to_posix_time_duration.hpp (original)
+++ sandbox/conversion/boost/conversion/boost/chrono_duration_to_posix_time_duration.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -25,7 +25,10 @@
#include <boost/config.hpp>
namespace boost {
-
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_chrono_duration{};
+#endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
template <> struct is_constructible< posix_time::time_duration > : true_type {};
#endif
@@ -55,12 +58,6 @@
namespace conversion {
-#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED2)
- /** @brief Added here only to favor generation of specializations with doxygen */
- template < class Target, class Source, class Enable=void>
- struct converter_cp{};
-#endif
-
//! @brief @c converter specialization for conversions from @c boost::chrono::duration<> to @c boost::posix_time::time_duration.
//!
template < class Rep, class Period>
Modified: sandbox/conversion/boost/conversion/boost/chrono_time_point_to_posix_time_ptime.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/chrono_time_point_to_posix_time_ptime.hpp (original)
+++ sandbox/conversion/boost/conversion/boost/chrono_time_point_to_posix_time_ptime.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -27,7 +27,10 @@
#include <boost/config.hpp>
namespace boost {
-
+ #if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_chrono_time_point{};
+ #endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
template <> struct is_constructible< boost::posix_time::ptime > : true_type {};
#endif
@@ -56,11 +59,6 @@
#endif
namespace conversion {
-#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED2)
- /** @brief Added here only to favor generation of specializations with doxygen */
- template < class Target, class Source, class Enable=void>
- struct converter_cp{};
-#endif
template < class Clock, class Duration>
struct converter_cp<posix_time::ptime, chrono::time_point<Clock, Duration>
Modified: sandbox/conversion/boost/conversion/boost/interval.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/interval.hpp (original)
+++ sandbox/conversion/boost/conversion/boost/interval.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -22,6 +22,10 @@
#include <boost/conversion/assign_to.hpp>
namespace boost {
+ #if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_numeric_interval{};
+ #endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
template < class T, class P>
@@ -40,20 +44,20 @@
namespace conversion {
-#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED2)
- /** @brief Added here only to favor generation of specializations with doxygen */
- template < class Target, class Source, class Enable=void>
- struct implicit_converter_cp{};
-#endif
-
//! @brief @c converter specialization for source and target been @c boost::numeric::interval.
//!
template < class Target, class PTarget, class Source, class PSource>
struct converter_cp< numeric::interval<Target,PTarget>, numeric::interval<Source,PSource>
- BOOST_CONVERSION_REQUIRES((
- is_extrinsic_convertible<Source,Target>::value
- ))
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(
+ ExtrinsicConvertible<Source,Target>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
+ is_extrinsic_convertible<Source,Target>::value
+ >::type
+#endif
> : true_type
{
//! @Returns the target interval having as extremes the conversion from the source interval extremes.
@@ -64,9 +68,15 @@
};
template < class Target, class PTarget, class Source, class PSource>
struct assigner_cp< numeric::interval<Target,PTarget>, numeric::interval<Source,PSource>
- BOOST_CONVERSION_REQUIRES((
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(
+ ExtrinsicConvertible<Source,Target>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
is_extrinsic_convertible<Source,Target>::value
- ))
+ >::type
+#endif
> : true_type
{
numeric::interval<Target,PTarget>& operator()(numeric::interval<Target,PTarget>& to, const numeric::interval<Source,PSource>& from)
Modified: sandbox/conversion/boost/conversion/boost/optional.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/optional.hpp (original)
+++ sandbox/conversion/boost/conversion/boost/optional.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -29,7 +29,10 @@
namespace boost {
-
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_optional{};
+#endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
template < class T >
struct is_constructible< optional<T> > : true_type {};
@@ -47,20 +50,21 @@
namespace conversion {
-#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED2)
- /** @brief Added here only to favor generation of specializations with doxygen */
- template < class Target, class Source, class Enable>
- struct converter_cp{};
-#endif
/**
* Partial specialization of @c converter for boost::optional
*/
template < class Target, class Source>
struct converter_cp
< optional<Target>, optional<Source>
- BOOST_CONVERSION_REQUIRES((
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(
+ ExtrinsicConvertible<Source,Target>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
is_extrinsic_convertible<Source,Target>::value
- ))
+ >::type
+#endif
> : true_type
{
//! @Returns If the optional source is initialized @c boost::optional<Target> initialized to the conversion of the optional value.
@@ -77,10 +81,17 @@
//! We can see this specialization as a try_convert_to function.
template < class Target, class Source>
struct converter_cp< optional<Target>, Source
- BOOST_CONVERSION_REQUIRES((
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(
+ ExtrinsicConvertible<Source,Target>
+ && ! Optional<Source>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
is_extrinsic_convertible<Source,Target>::value
&& ! detail::is_optional<Source>::value
- ))
+ >::type
+#endif
> : true_type
{
@@ -105,10 +116,17 @@
//! We can see this specialization as a try_convert_to function.
template < class Target, class Source>
struct explicit_converter_cp< optional<Target>, Source
- BOOST_CONVERSION_REQUIRES((
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(
+ ExtrinsicExplicit_convertible<Source,Target>
+ && ! Optional<Source>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
is_extrinsic_explicit_convertible<Source,Target>::value
&& ! detail::is_optional<Source>::value
- ))
+ >::type
+#endif
> : true_type
{
Modified: sandbox/conversion/boost/conversion/boost/rational.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/rational.hpp (original)
+++ sandbox/conversion/boost/conversion/boost/rational.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -27,7 +27,11 @@
namespace boost {
-
+
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_rational{};
+#endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
template < class T>
struct is_constructible< rational<T> > : true_type {};
@@ -44,19 +48,20 @@
#endif
namespace conversion {
-#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED2)
- /** @brief Added here only to favor generation of specializations with doxygen */
- template < class Target, class Source, class Enable=void>
- struct converter_cp{};
-#endif
//! @brief @c converter specialization for source and target been @c boost::rational.
//!
template < class Target, class Source>
struct converter_cp< rational<Target>, rational<Source>
- BOOST_CONVERSION_REQUIRES((
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(
+ ExtrinsicConvertible<Source,Target>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
is_extrinsic_convertible<Source,Target>::value
- ))
+ >::type
+#endif
> : true_type
{
//! @Returns the target rational having as numerator and denominator the conversion from the numerator and denominator of the source rational.
@@ -67,9 +72,15 @@
};
template < class Target, class Source>
struct assigner_cp< rational<Target>, rational<Source>
- BOOST_CONVERSION_REQUIRES((
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(
+ ExtrinsicConvertible<Source,Target>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
is_extrinsic_convertible<Source,Target>::value
- ))
+ >::type
+#endif
> : true_type
{
rational<Target>& operator()(rational<Target>& to, const rational<Source>& from)
Modified: sandbox/conversion/boost/conversion/boost/tuple.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/boost/tuple.hpp (original)
+++ sandbox/conversion/boost/conversion/boost/tuple.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -22,7 +22,10 @@
#include <boost/config.hpp>
namespace boost {
-
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_fusion_tuple{};
+#endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
template < class T1, class T2, class T3 >
struct is_constructible< fusion::tuple<T1,T2,T3> > : true_type {};
@@ -33,18 +36,20 @@
#endif
namespace conversion {
-#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED2)
- /** @brief Added here only to favor generation of specializations with doxygen */
- template < class Target, class Source, class Enable=void>
- struct explicit_converter_cp{};
-#endif
template < class T1, class T2, class S1, class S2>
struct explicit_converter_cp< fusion::tuple<T1,T2>, fusion::tuple<S1,S2>
- BOOST_CONVERSION_REQUIRES((
- is_extrinsic_convertible<S1,T1>::value
- && is_extrinsic_convertible<S2,T2>::value
- ))
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(
+ ExtrinsicConvertible<S1,T1>
+ && ExtrinsicConvertible<S2,T2>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
+ is_extrinsic_convertible<S1,T1>::value
+ && is_extrinsic_convertible<S2,T2>::value
+ >::type
+#endif
> : true_type
{
fusion::tuple<T1,T2> operator()(fusion::tuple<S1,S2> const & from)
@@ -57,11 +62,19 @@
};
template < class T1, class T2, class T3, class S1, class S2, class S3>
struct explicit_converter_cp< fusion::tuple<T1,T2,T3>, fusion::tuple<S1,S2,S3>
- BOOST_CONVERSION_REQUIRES((
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(
+ ExtrinsicConvertible<S1,T1>
+ && ExtrinsicConvertible<S2,T2>
+ && ExtrinsicConvertible<S3,T3>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
is_extrinsic_convertible<S1,T1>::value
&& is_extrinsic_convertible<S2,T2>::value
&& is_extrinsic_convertible<S3,T3>::value
- ))
+ >::type
+#endif
> : true_type
{
fusion::tuple<T1,T2,T3> operator()(fusion::tuple<S1,S2,S3> const & from)
Modified: sandbox/conversion/boost/conversion/convertible_from.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/convertible_from.hpp (original)
+++ sandbox/conversion/boost/conversion/convertible_from.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -18,7 +18,7 @@
#define BOOST_CONVERSION_CONVERTIBLE_FROM_HPP
#include <boost/conversion/config.hpp>
-#if defined(BOOST_CONVERSION_MCF_ENABLED)
+#if defined(BOOST_CONVERSION_MCF_ENABLED) || defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
#include <boost/conversion/implicit_convert_to.hpp>
#include <boost/conversion/assign_to.hpp>
@@ -28,23 +28,28 @@
namespace boost {
namespace conversion {
- //! wrapper providing implicit conversion operation to @c Target.
+ //! wrapper providing implicit conversion operation to any type extrinsicaly implicit convertible from @c Source.
+
+ //! This wrapper is used indirectly through the @mcf function to pass a @c Source parameter to a function waiting a parameter @c Target
+ //! extrinsicaly convertible from it.
+ //!
+ //! Requires @c Source must be CopyConstructible
template <typename Source>
class convertible_from {
Source val_;
public:
- //! @brief constructor from a @c Source
+ //! @brief constructor from a @c Source.
//! @Throws Whatever the @c Source copy constructor could throw.
convertible_from(Source source) : val_(source) {}
- //! @brief Implicit conversion to @c Target.
+ //! @brief Implicit conversion to a @c Target extrinsicaly convertible from @c Source.
//! @Effects Forwards the conversion from the reference using @c conver_to.
//! @Returns the conversion using @c conver_to
//! @Throws Whatever extrinsic conversion from @c Source to @c Target could throw.
//! @Remark On compilers that supports C++0x default arguments for function template parameters,
- //! this constructor doesn't participates on overload resolution if @c Source is not extrinsic convertible to @c Target.
+ //! this conversion operator doesn't participates on overload resolution if @c Source is not extrinsic convertible to @c Target.
template <typename Target
, typename boost::enable_if< boost::is_extrinsic_convertible<Source,Target>, int >::type = 0
>
@@ -54,8 +59,9 @@
}
};
- //! @brief makes a wrapper implicitly convertible from @c Source.
- //! The result provides implicitly conversion to any type which is extrinsic convertible from @c Source.
+ //! @brief makes a wrapper implicitly convertible to types extrinsicly implicit convertibles from @c Source.
+
+ //! The result provides implicitly conversion to any type which is extrinsic implicit convertible from @c Source.
//! @Returns convertible_from<Source>(s).
//! @NoThrow.
template <typename Source>
Modified: sandbox/conversion/boost/conversion/convertible_to.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/convertible_to.hpp (original)
+++ sandbox/conversion/boost/conversion/convertible_to.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -32,7 +32,7 @@
Target val_;
public:
- //! constructor from a extrinsic implicitly convertible to @c Target.
+ //! Constructor from a extrinsic implicitly convertible to @c Target.
//! @Effects Store the extrinsic conversion from @c source to @ Target.
//! @Throws Whatever extrinsic implicit conversion from @c source to @c Target could throw.
//! @Remark This constructor doesn't participates on overload resolution if @c Source is not extrinsic convertible to @c Target.
Modified: sandbox/conversion/boost/conversion/fp/convert_to.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/fp/convert_to.hpp (original)
+++ sandbox/conversion/boost/conversion/fp/convert_to.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -45,7 +45,13 @@
//! The nested type @ type is @c true_type.
template <typename T>
- struct enable_functor<T, typename enable_if<phoenix::is_actor<T> >::type> : true_type {};
+ struct enable_functor<T
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires(PhoenixActor<T>)
+#else
+ , typename enable_if<phoenix::is_actor<T> >::type
+#endif
+ > : true_type {};
namespace detail {
struct convert_to_eval
Modified: sandbox/conversion/boost/conversion/std/complex.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/std/complex.hpp (original)
+++ sandbox/conversion/boost/conversion/std/complex.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -26,7 +26,10 @@
namespace boost {
-
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_complex{};
+#endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
template < class T >
struct is_constructible< std::complex<T> > : true_type {};
Modified: sandbox/conversion/boost/conversion/std/pair.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/std/pair.hpp (original)
+++ sandbox/conversion/boost/conversion/std/pair.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -24,7 +24,12 @@
#include <utility>
+
namespace boost {
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_pair{};
+#endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
//! Specialization for std::pair<T,U> default constructor
template < class T, class U>
@@ -55,10 +60,10 @@
template < class T1, class T2, class S1, class S2>
struct converter_cp< std::pair<T1,T2>, std::pair<S1,S2>
#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
- , typename enable_if_c<
- is_extrinsic_convertible<S1,T1>::value
- && is_extrinsic_convertible<S2,T2>::value
- >::type
+ , requires(
+ ExtrinsicConvertible<S1,T1>
+ && ExtrinsicConvertible<S2,T2>
+ )
#elif defined(BOOST_CONVERSION_ENABLE_CND)
, typename enable_if_c<
is_extrinsic_convertible<S1,T1>::value
@@ -73,7 +78,7 @@
}
};
-#if !defined(BOOST_CONVERSION_ENABLE_CND)
+#if !defined(BOOST_CONVERSION_ENABLE_CND) && !defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
/**
* Partial specialization of @c assigner_cp for @c std::pair of extrinsic convertibles.
*/
Modified: sandbox/conversion/boost/conversion/std/string.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/std/string.hpp (original)
+++ sandbox/conversion/boost/conversion/std/string.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -29,6 +29,10 @@
namespace boost {
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_string{};
+#endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
template<typename CharT, typename Traits, typename Alloc>
struct is_constructible< std::basic_string<CharT,Traits,Alloc> > : true_type {};
@@ -83,7 +87,7 @@
}
};
-#if !defined(BOOST_CONVERSION_ENABLE_CND)
+#if !defined(BOOST_CONVERSION_ENABLE_CND) && !defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
/**
* Partial specialization of @c assigner_cp for convertibles to std::string.
*/
Modified: sandbox/conversion/boost/conversion/std/vector.hpp
==============================================================================
--- sandbox/conversion/boost/conversion/std/vector.hpp (original)
+++ sandbox/conversion/boost/conversion/std/vector.hpp 2011-07-06 18:18:23 EDT (Wed, 06 Jul 2011)
@@ -28,7 +28,10 @@
namespace boost {
-
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ //! trick to generate the doc. Don't take care of it
+ struct trick_vector{};
+#endif
#if defined(BOOST_CONVERSION_NO_IS_DEFAULT_CONSTRUCTIBLE)
template < class T, class A>
struct is_constructible< std::vector<T,A> > : true_type {};
@@ -53,9 +56,15 @@
*/
template < class T1, class A1, class T2, class A2>
struct converter_cp< std::vector<T1,A1>, std::vector<T2,A2>
- BOOST_CONVERSION_REQUIRES((
+#if defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
+ , requires
+ ExtrinsicAssignable<T1,T2>
+ )
+#elif defined(BOOST_CONVERSION_ENABLE_CND)
+ , typename enable_if_c<
is_extrinsic_assignable<T1,T2>::value
- ))
+ >::type
+#endif
> : true_type
{
std::vector<T1,A1> operator()(std::vector<T2,A2> const & from)
@@ -70,7 +79,7 @@
}
};
-#if !defined(BOOST_CONVERSION_ENABLE_CND)
+#if !defined(BOOST_CONVERSION_ENABLE_CND) && !defined(BOOST_CONVERSION_DOXYGEN_INVOKED)
/**
* Partial specialization of @c assigner_cp for @c std::vector of extrinsic convertibles.
*/
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