Subject: Re: [boost] "is-assignable" compile error using Boost 1.68 / LLVM-Clang / Windows
From: Adam Hartshorne (adam.hartshorne_at_[hidden])
Date: 2018-09-20 08:09:20
Thanks, that solved the issue.
On Thu, Sep 20, 2018 at 8:41 AM John Maddock via Boost <
> On 20/09/2018 06:40, Gavin Lambert via Boost wrote:
> > On 20/09/2018 16:47, Adam Hartshorne wrote:
> >> Looks like boost::variant is the problem.
> > No, those are just plain includes. Nothing to see there.
> >> 2>C:\boost_1_68_0\boost/type_traits/has_trivial_move_assign.hpp(49):
> >> error
> >> : no template named 'is_assignable'; did you mean 'std::is_assignable'?
> >> 2>C:\boost_1_68_0\boost/type_traits/intrinsics.hpp(233): note: expanded
> >> from macro 'BOOST_HAS_TRIVIAL_MOVE_ASSIGN'
> > The problem is actually here.
> > As degski suggests, it's probably a compiler detection quirk where the
> > BOOST_HAS_TRIVIAL_MOVE_ASSIGN macro has been defined because
> > __has_feature exists but <boost/type_traits/is_assignable.hpp> was not
> > included because __clang doesn't exist. Or something like that.
> Just to be clear, it's a flat out bug in type_traits and has been fixed
> for the next release (which doesn't help the OP), a workaround would be
> to add:
> #include <boost/type_traits/is_assignable.hpp>
> before any other boost includes in your program.
> Best, John.
> This email has been checked for viruses by Avast antivirus software.
> Unsubscribe & other changes: