Boost logo

Boost :

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 04:47:33


Looks like boost::variant is the problem.

2>In file included from C:\boost_1_68_0\boost/variant.hpp:17:
2>In file included from C:\boost_1_68_0\boost/variant/variant.hpp:51:
2>In file included from
C:\boost_1_68_0\boost/type_traits/is_nothrow_move_assignable.hpp:15:
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'
2>C:\Program Files (x86)\Microsoft Visual
Studio\2017\Enterprise\VC\Tools\MSVC\14.13.26128\include\type_traits(768):
note: 'std::is_assignable' declared here

On Thu, Sep 20, 2018 at 4:35 AM degski <degski_at_[hidden]> wrote:

> On Wed, 19 Sep 2018 at 22:03, Adam Hartshorne via Boost <
> boost_at_[hidden]> wrote:
>
>> 1>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'?
>> 1>C:\boost_1_68_0\boost/type_traits/intrinsics.hpp(233): note: expanded
>> from macro 'BOOST_HAS_TRIVIAL_MOVE_ASSIGN'
>>
>
> You probably need to give information as to which library triggers this
> error, as has_trivial_move_assign.hpp is pulled in by almost all libraries
> and this "detection error" is upstream.
>
> There is (generally, but some libs have been fixed for this) a mismatch
> (deficiency) between the way clang-cl identifies it self (__clang__ **and**
> _MSCVER) and the way Boost libs try to identify the compiler used. So
> libraries that simply check for _MSCVER and then assume it's MSVC will show
> this problem, also checking in the wrong order can generate this problem.
>
> I've signaled this many times before, but this has always fallen on deaf
> ears. Also clang-cl is not in the test matrix, as Boost cannot be built in
> its entirety with clang-cl and only few people seem to think that there is
> any merit in trying to get that to work (even though Clang/LLVM provide for
> better tooling in every respect (also better binaries) and also allows for
> beginners to actually learn proper C++ as the warning messages (and hints)
> are actually discernible even for a beginner, contrary to the stuff that
> comes out of MSVC).
>
> These discussions usually end in a rant over the non-conforming MSVC-PP
> (which by now is conforming, but the one from VS-7.1 will keep on being
> broken and the focus seems to be on supporting that).
>
> degski
> --
> *“If something cannot go on forever, it will stop" - Herbert Stein*
>


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