Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r83201 - sandbox/type_erasure/boost/type_erasure
From: steven_at_[hidden]
Date: 2013-02-28 11:31:24


Author: steven_watanabe
Date: 2013-02-28 11:31:23 EST (Thu, 28 Feb 2013)
New Revision: 83201
URL: http://svn.boost.org/trac/boost/changeset/83201

Log:
Fix for gcc-4.5 c++0x
Text files modified:
   sandbox/type_erasure/boost/type_erasure/free.hpp | 29 +++++++++++++++++++++++++++--
   1 files changed, 27 insertions(+), 2 deletions(-)

Modified: sandbox/type_erasure/boost/type_erasure/free.hpp
==============================================================================
--- sandbox/type_erasure/boost/type_erasure/free.hpp (original)
+++ sandbox/type_erasure/boost/type_erasure/free.hpp 2013-02-28 11:31:23 EST (Thu, 28 Feb 2013)
@@ -33,6 +33,8 @@
 #include <boost/type_erasure/call.hpp>
 #include <boost/type_erasure/concept_interface.hpp>
 
+#if defined(BOOST_NO_VARIADIC_TEMPLATES) || defined(BOOST_TYPE_ERASURE_DOXYGEN)
+
 namespace boost {
 namespace type_erasure {
 namespace detail {
@@ -60,8 +62,6 @@
 }
 }
 
-#if defined(BOOST_NO_VARIADIC_TEMPLATES) || defined(BOOST_TYPE_ERASURE_DOXYGEN)
-
 /** INTERNAL ONLY */
 #define BOOST_TYPE_ERASURE_FREE_QUALIFIED_ID(seq, N) \
     BOOST_TYPE_ERASURE_QUALIFIED_NAME(seq)<R(BOOST_PP_ENUM_PARAMS(N, T))>
@@ -132,6 +132,31 @@
 struct index_list {};
 
 namespace detail {
+
+template<class... T>
+struct first_placeholder;
+
+template<class T0, class... T>
+struct first_placeholder<T0, T...> {
+ typedef typename ::boost::mpl::eval_if<is_placeholder<T0>,
+ ::boost::mpl::identity<T0>,
+ first_placeholder<T...>
+ >::type type;
+};
+
+template<>
+struct first_placeholder<> {};
+
+template<class... T>
+struct first_placeholder_index;
+
+template<class T0, class... T>
+struct first_placeholder_index<T0, T...> :
+ ::boost::mpl::eval_if<is_placeholder<T0>,
+ ::boost::mpl::int_<0>,
+ ::boost::mpl::next<first_placeholder<T...> >
+ >::type
+{};
 
 template<class Sig>
 struct transform_free_signature;


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