I only have gcc 4.7
In Christ,
Steven Watanabe
With 4.8.0 I get this, in case it helps.
Thanks,
Christophe
In file included from any.cpp:8:0:
any.cpp: In instantiation of 'typename boost::type_erasure::rebind_any::type boost::type_erasure::concept_interface, Base,
typename boost::enable_if, typename boost::remove_const<T>::type>::type, Enable>::post(typename
boost::type_erasure::as_param::type ...) const [with R = void; A =
{boost::function&&}; T = const boost::type_erasure::_self; Base =
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interfaceboost::type_erasure::_self,
boost::type_erasure::any_base >,
boost::type_erasure::_self, void>, boost::type_erasure::_self, void>,
boost::type_erasure::_self, void>; Enable = void; typename
boost::enable_if,
typename boost::remove_const<T>::type>::type = boost::type_erasure::_self;
typename boost::type_erasure::rebind_any::type = void]':
any.cpp:37:24: required from here
/data/boost_1_52_0/boost/type_erasure/member.hpp:194:66: error: no matching
function for call to 'call(has_post&&), const
boost::type_erasure::_self>, const
boost::type_erasure::concept_interface&&),
const boost::type_erasure::_self>,
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interfaceboost::type_erasure::_self,
boost::type_erasure::any_base >,
boost::type_erasure::_self, void>, boost::type_erasure::_self, void>,
boost::type_erasure::_self, void>, boost::type_erasure::_self, void>&,
boost::function)'
*this BOOST_TYPE_ERASURE_MEMBER_FORWARD_REBIND(N));
\
^
/data/boost_1_52_0/boost/type_erasure/member.hpp:239:5: note: in expansion
of macro 'BOOST_TYPE_ERASURE_MEMBER_II'
BOOST_TYPE_ERASURE_MEMBER_II(namespace_name, concept_name, member, N)
^
/data/boost_1_52_0/boost/type_erasure/member.hpp:127:5: note: in expansion
of macro 'BOOST_TYPE_ERASURE_MEMBER_I'
BOOST_TYPE_ERASURE_MEMBER_I(
\
^
any.cpp:13:1: note: in expansion of macro 'BOOST_TYPE_ERASURE_MEMBER'
BOOST_TYPE_ERASURE_MEMBER((has_post), post);
^
/data/boost_1_52_0/boost/type_erasure/member.hpp:194:66: note: candidates
are:
*this BOOST_TYPE_ERASURE_MEMBER_FORWARD_REBIND(N));
\
^
/data/boost_1_52_0/boost/type_erasure/member.hpp:239:5: note: in expansion
of macro 'BOOST_TYPE_ERASURE_MEMBER_II'
BOOST_TYPE_ERASURE_MEMBER_II(namespace_name, concept_name, member, N)
^
/data/boost_1_52_0/boost/type_erasure/member.hpp:127:5: note: in expansion
of macro 'BOOST_TYPE_ERASURE_MEMBER_I'
BOOST_TYPE_ERASURE_MEMBER_I(
\
^
any.cpp:13:1: note: in expansion of macro 'BOOST_TYPE_ERASURE_MEMBER'
BOOST_TYPE_ERASURE_MEMBER((has_post), post);
^
In file included from
/data/boost_1_52_0/boost/type_erasure/constructible.hpp:21:0,
from /data/boost_1_52_0/boost/type_erasure/builtin.hpp:17,
from
/data/boost_1_52_0/boost/type_erasure/detail/normalize.hpp:34,
from /data/boost_1_52_0/boost/type_erasure/any.hpp:36,
from any.cpp:3:
/data/boost_1_52_0/boost/type_erasure/call.hpp:403:1: note: template typename
boost::type_erasure::detail::call_result::type
boost::type_erasure::call(const boost::type_erasure::binding<Concept>&,
const Op&, U&& ...)
call(
^
/data/boost_1_52_0/boost/type_erasure/call.hpp:403:1: note: template
argument deduction/substitution failed:
In file included from any.cpp:8:0:
/data/boost_1_52_0/boost/type_erasure/member.hpp:194:66: note:
'has_post&&), const
boost::type_erasure::_self>' is not derived from 'const
boost::type_erasure::binding<Concept>'
*this BOOST_TYPE_ERASURE_MEMBER_FORWARD_REBIND(N));
\
^
/data/boost_1_52_0/boost/type_erasure/member.hpp:239:5: note: in expansion
of macro 'BOOST_TYPE_ERASURE_MEMBER_II'
BOOST_TYPE_ERASURE_MEMBER_II(namespace_name, concept_name, member, N)
^
/data/boost_1_52_0/boost/type_erasure/member.hpp:127:5: note: in expansion
of macro 'BOOST_TYPE_ERASURE_MEMBER_I'
BOOST_TYPE_ERASURE_MEMBER_I(
\
^
any.cpp:13:1: note: in expansion of macro 'BOOST_TYPE_ERASURE_MEMBER'
BOOST_TYPE_ERASURE_MEMBER((has_post), post);
^
In file included from
/data/boost_1_52_0/boost/type_erasure/constructible.hpp:21:0,
from /data/boost_1_52_0/boost/type_erasure/builtin.hpp:17,
from
/data/boost_1_52_0/boost/type_erasure/detail/normalize.hpp:34,
from /data/boost_1_52_0/boost/type_erasure/any.hpp:36,
from any.cpp:3:
/data/boost_1_52_0/boost/type_erasure/call.hpp:436:1: note: template typename boost::type_erasure::detail::call_result::type boost::type_erasure::call(const Op&, U&& ...)
call(
^
/data/boost_1_52_0/boost/type_erasure/call.hpp:436:1: note: template
argument deduction/substitution failed:
/data/boost_1_52_0/boost/type_erasure/call.hpp: In substitution of
'template typename
boost::type_erasure::detail::call_result::type
boost::type_erasure::call(const Op&, U&& ...) [with Op =
has_post&&), const boost::type_erasure::_self>;
U = {const
boost::type_erasure::concept_interface&&),
const boost::type_erasure::_self>,
boost::type_erasure::concept_interfaceboost::type_erasure::_self,
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interfaceboost::type_erasure::_self,
boost::type_erasure::any_base >, boost::type_erasure::_self, void>,
boost::type_erasure::_self, void>, boost::type_erasure::_self, void>,
boost::type_erasure::_self, void>&, boost::function}]':
any.cpp:13:1: required from 'typename
boost::type_erasure::rebind_any::type
boost::type_erasure::concept_interface, Base, typename
boost::enable_if,
typename boost::remove_const<T>::type>::type, Enable>::post(typename
boost::type_erasure::as_param::type ...) const [with R = void; A =
{boost::function&&}; T = const boost::type_erasure::_self; Base =
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interfaceboost::type_erasure::_self,
boost::type_erasure::any_base >,
boost::type_erasure::_self, void>, boost::type_erasure::_self, void>,
boost::type_erasure::_self, void>; Enable = void; typename
boost::enable_if,
typename boost::remove_const<T>::type>::type = boost::type_erasure::_self;
typename boost::type_erasure::rebind_any::type = void]'
any.cpp:37:24: required from here
/data/boost_1_52_0/boost/type_erasure/call.hpp:436:1: error: no type named
'type' in 'struct
boost::type_erasure::detail::call_result&&),
const boost::type_erasure::_self>, void(const
boost::type_erasure::concept_interface&&),
const boost::type_erasure::_self>,
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interfaceboost::type_erasure::_self,
boost::type_erasure::any_base >,
boost::type_erasure::_self, void>, boost::type_erasure::_self, void>,
boost::type_erasure::_self, void>, boost::type_erasure::_self, void>&,
boost::function&&), void>'
In file included from any.cpp:8:0:
any.cpp: In instantiation of 'typename boost::type_erasure::rebind_any::type boost::type_erasure::concept_interface, Base,
typename boost::enable_if, typename boost::remove_const<T>::type>::type, Enable>::post(typename
boost::type_erasure::as_param::type ...) const [with R = void; A =
{boost::function&&}; T = const boost::type_erasure::_self; Base =
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interface,
boost::type_erasure::concept_interfaceboost::type_erasure::_self,
boost::type_erasure::any_base >,
boost::type_erasure::_self, void>, boost::type_erasure::_self, void>,
boost::type_erasure::_self, void>; Enable = void; typename
boost::enable_if,
typename boost::remove_const<T>::type>::type = boost::type_erasure::_self;
typename boost::type_erasure::rebind_any::type = void]':
any.cpp:37:24: required from here
/data/boost_1_52_0/boost/type_erasure/member.hpp:194:66: error:
return-statement with a value, in function returning 'void' [-fpermissive]
*this BOOST_TYPE_ERASURE_MEMBER_FORWARD_REBIND(N));
\
^
/data/boost_1_52_0/boost/type_erasure/member.hpp:239:5: note: in expansion
of macro 'BOOST_TYPE_ERASURE_MEMBER_II'
BOOST_TYPE_ERASURE_MEMBER_II(namespace_name, concept_name, member, N)
^
/data/boost_1_52_0/boost/type_erasure/member.hpp:127:5: note: in expansion
of macro 'BOOST_TYPE_ERASURE_MEMBER_I'
BOOST_TYPE_ERASURE_MEMBER_I(
\
^
any.cpp:13:1: note: in expansion of macro 'BOOST_TYPE_ERASURE_MEMBER'
BOOST_TYPE_ERASURE_MEMBER((has_post), post);
^