Boost logo

Boost :

Subject: Re: [boost] [move] Build failures in develop
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2014-09-30 14:32:12


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.


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