|
Boost : |
Subject: Re: [boost] [move] Build failures in develop
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2014-09-30 18:02:01
Le 30/09/14 20:32, Andrey Semashev a écrit :
> On Tuesday 30 September 2014 20:10:41 Ion Gaztañaga wrote:
>> El 30/09/2014 9:33, Andrey Semashev escribió:
>>> Hi,
>>>
>>> I'm seeing lots of build errors that originate from Boost.Move, such as:
>>>
>>> In file included from ../libs/log/src/text_file_backend.cpp:41:
>>> In file included from ../boost/filesystem/path.hpp:28:
>>> In file included from ../boost/iterator/iterator_facade.hpp:12:
>>> In file included from ../boost/iterator/interoperable.hpp:11:
>>> In file included from ../boost/mpl/or.hpp:23:
>>> ../boost/mpl/aux_/nested_type_wknd.hpp:27:10: error: no type named
>>> 'type' in
>>> 'boost::move_detail::is_rv<boost::rv<boost::log::v2_mt_posix::aux::light_
>>> function<void ()> > >'
>>>
>>> : T::type
>> move_detail::is_rv is an implementation detail, and it previously
>> inherited from integral_constant (inheriting with a "type" member) to
>> just holding static const bool = xxx to minimize dependencies.
> Ah, right. Since it's an implementation detail I've added a workaround on my
> side.
>
> Are other (public) traits changed this way? If so, that can cause breakage
> similar to is_rv<>.
>
>> I will add a workaround, but if you really need that trait, let's move
>> it to the top namespace so that everyone knows it's an interface trait.
> I think I needed it to implement some special constructor logic, which I could
> not achieve with conventional Boost.Move interface. I can't remember the exact
> use case I had in mind when I wrote that code.
>
> I use that trait to disable templated constructor overloads from being
> instantiated on rv<> wrappers. Perhaps that would be generally useful.
>
>
>
Hrr, Boost.Thread uses it also.
Vicente
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk