Boost logo

Boost :

Subject: Re: [boost] "is-assignable" compile error using Boost 1.68 / LLVM-Clang / Windows
From: John Maddock (jz.maddock_at_[hidden])
Date: 2018-09-20 07:41:36

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
> 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.

Boost list run by bdawes at, gregod at, cpdaniel at, john at