Subject: Re: [boost] "is-assignable" compile error using Boost 1.68 / LLVM-Clang / Windows
From: Gavin Lambert (boost_at_[hidden])
Date: 2018-09-20 05:40:19
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.
This usually doesn't happen when using MSVC or Clang directly, but since
you're using a hybrid the logic is confused.