Boost logo

Boost :

Subject: Re: [boost] Updated boost::base_from_member for C++2011
From: Daryle Walker (darylew_at_[hidden])
Date: 2012-02-14 11:08:10


> Date: Sun, 12 Feb 2012 17:15:37 +0100
> From: vicente.botet_at_[hidden]
>
> there are some problems with clang-3.0 c++0x
>
> clang-darwin.compile.c++
> ../../../bin.v2/libs/test/build/clang-darwin-3.0x/debug/link-static/threading-multi/unit_test_parameters.o
> In file included from ../../../libs/test/src/unit_test_parameters.cpp:16:
> In file included from ../../../boost/test/impl/unit_test_parameters.ipp:32:
> In file included from
> ../../../boost/test/utils/runtime/cla/dual_name_parameter.hpp:21:
> In file included from
> ../../../boost/test/utils/runtime/cla/named_parameter.hpp:21:
> In file included from
> ../../../boost/test/utils/runtime/cla/basic_parameter.hpp:27:
> ../../../boost/utility/base_from_member.hpp:75:66: error: no matching
> constructor for initialization of 'boost::runtime::cla::string_name_policy'
> BOOST_NOEXCEPT_IF( BOOST_NOEXCEPT_EXPR(::new ((void*) 0)
> MemberType(
> ^
> ../../../boost/config/suffix.hpp:648:53: note: expanded from:
> # define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
> ^
> ../../../boost/config/suffix.hpp:647:50: note: expanded from:
> # define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
> ^
> ../../../boost/utility/base_from_member.hpp:74:30: note: in
> instantiation of function template specialization
> 'boost::base_from_member<boost::runtime::cla::string_name_policy,
> 0>::base_from_member<const
> boost::base_from_member<boost::runtime::cla::string_name_policy, 0> &>'
> requested here
> explicit BOOST_CONSTEXPR base_from_member( T&& ...x )
> ^
> ../../../boost/test/utils/runtime/cla/named_parameter.hpp:34:7: note:
> candidate constructor (the implicit copy constructor) not viable: no
> known conversion from 'const
> boost::base_from_member<boost::runtime::cla::string_name_policy, 0>' to
> 'const boost::runtime::cla::string_name_policy' for 1st argument;
> class string_name_policy : public basic_naming_policy {
> ^
> ../../../boost/test/utils/runtime/cla/named_parameter.hpp:37:5: note:
> candidate constructor not viable: requires 0 arguments, but 1 was provided
> string_name_policy();
> ^
>

Any ideas for a fix?  Does there need to be explicitly declared copy (and move) constructors?
Daryle W.
                                               


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk