Boost logo

Boost Users :

Subject: Re: [Boost-users] [type traits] Using Boost.Geometry with Clang/LLVM & VC14
From: degski (degski_at_[hidden])
Date: 2016-03-20 09:36:47


Hi Ernest,

The boost build is with plain VC14 (bootstrap, without any hacking
whatsoever), not clang (that's no problem). The RC1 build is fine, the
trouble is later on in the headers, when using Clang. When I try to build
my app (with GGL), the previously reported errors show up, both with 1.61
and 1.60. The problem is not in GGL, but in type_traits (and typeof, but
that seems to be fixed, ready for merging).

Have a good day,

degski

On 20 March 2016 at 11:15, Ernest Zaslavsky <ernest.zaslavsky_at_[hidden]>
wrote:

> Hi,
>
> Did you build it using boost bootstrapping or you have to do some “hacks”?
>
> Does your experience apply to 1.61 RC or 1.60 too?
>
>
>
>
>
> *From:* Boost-users [mailto:boost-users-bounces_at_[hidden]] *On
> Behalf Of *degski
> *Sent:* Sunday, March 20, 2016 10:13 AM
> *To:* boost-users_at_[hidden]
> *Subject:* Re: [Boost-users] [type traits] Using Boost.Geometry with
> Clang/LLVM & VC14
>
>
>
> I've successfully compiled Boost 1.61.0 Beta 1 Release Candidate with VC14
> (no Clang-Cl.exe) in debug and release.
>
> This has exposed the "hacks" I mentioned earlier in this thread. When
> compiling my test program with Clang-Cl (latest) and VC14, the following
> errors are reported. (in my hacks I just added std:: to the boost code in
> the appropriate places, untill Clang stopped complaining.
>
>
> 1>------ Rebuild All started: Project: test, Configuration: Debug x64
> ------
> 1> In file included from test.cpp:16:
> 1> In file included from z:\vc\x64\include\boost/geometry.hpp:17:
> 1> In file included from z:\vc\x64\include\boost/geometry/geometry.hpp:28:
> 1> In file included from
> z:\vc\x64\include\boost/geometry/core/coordinate_type.hpp:23:
> 1> In file included from
> z:\vc\x64\include\boost/geometry/util/promote_floating_point.hpp:19:
> 1> In file included from z:\vc\x64\include\boost/type_traits.hpp:62:
> 1>z:\vc\x64\include\boost/type_traits/has_nothrow_assign.hpp(64,7): error
> : no template named 'is_assignable'; did you mean 'std::is_assignable'?
> 1> BOOST_HAS_NOTHROW_ASSIGN(T)
> 1> ^
> 1> z:\vc\x64\include\boost/type_traits/intrinsics.hpp(199,96) : note:
> expanded from macro 'BOOST_HAS_NOTHROW_ASSIGN'
> 1> # define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) &&
> !is_volatile<T>::value && is_assignable<T&, const T&>::value)
> 1>
> ^
> 1> C:\Program Files (x86)\Microsoft Visual Studio
> 14.0\VC\include\type_traits(577,9) : note: 'std::is_assignable' declared
> here
> 1> struct is_assignable
> 1> ^
> 1> In file included from test.cpp:16:
> 1> In file included from z:\vc\x64\include\boost/geometry.hpp:17:
> 1> In file included from z:\vc\x64\include\boost/geometry/geometry.hpp:28:
> 1> In file included from
> z:\vc\x64\include\boost/geometry/core/coordinate_type.hpp:23:
> 1> In file included from
> z:\vc\x64\include\boost/geometry/util/promote_floating_point.hpp:19:
> 1> In file included from z:\vc\x64\include\boost/type_traits.hpp:63:
> 1>z:\vc\x64\include\boost/type_traits/has_nothrow_constructor.hpp(26,84):
> error : no template named 'is_default_constructible'; did you mean
> 'std::is_default_constructible'?
> 1> template <class T> struct has_nothrow_constructor : public
> integral_constant<bool, BOOST_HAS_NOTHROW_CONSTRUCTOR(T)>{};
> 1>
> ^
> 1> z:\vc\x64\include\boost/type_traits/intrinsics.hpp(193,80) : note:
> expanded from macro 'BOOST_HAS_NOTHROW_CONSTRUCTOR'
> 1> # define BOOST_HAS_NOTHROW_CONSTRUCTOR(T)
> (__has_nothrow_constructor(T) && is_default_constructible<T>::value)
> 1>
> ^
> 1> C:\Program Files (x86)\Microsoft Visual Studio
> 14.0\VC\include\type_traits(539,9) : note: 'std::is_default_constructible'
> declared here
> 1> struct is_default_constructible
> 1> ^
> 1> In file included from test.cpp:16:
> 1> In file included from z:\vc\x64\include\boost/geometry.hpp:17:
> 1> In file included from z:\vc\x64\include\boost/geometry/geometry.hpp:28:
> 1> In file included from
> z:\vc\x64\include\boost/geometry/core/coordinate_type.hpp:23:
> 1> In file included from
> z:\vc\x64\include\boost/geometry/util/promote_floating_point.hpp:19:
> 1> In file included from z:\vc\x64\include\boost/type_traits.hpp:74:
> 1>z:\vc\x64\include\boost/type_traits/has_trivial_assign.hpp(28,7): error
> : no template named 'is_assignable'; did you mean 'std::is_assignable'?
> 1> BOOST_HAS_TRIVIAL_ASSIGN(T)
> 1> ^
> 1> z:\vc\x64\include\boost/type_traits/intrinsics.hpp(187,96) : note:
> expanded from macro 'BOOST_HAS_TRIVIAL_ASSIGN'
> 1> # define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) &&
> !is_volatile<T>::value && is_assignable<T&, const T&>::value)
> 1>
> ^
> 1> C:\Program Files (x86)\Microsoft Visual Studio
> 14.0\VC\include\type_traits(577,9) : note: 'std::is_assignable' declared
> here
> 1> struct is_assignable
> 1> ^
>
> Then there are more errors, but they are either the same as the ones I've
> reported earlier, or the result of the above errors.
>
> Have a good day,
>
> degski
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>

-- 
(\___/)
(+'.'+)
(")_(")
This is Bunny. Copy and paste Bunny into your
signature to help him gain world domination!


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net