Boost logo

Boost Users :

Subject: Re: [Boost-users] [type traits] Using Boost.Geometry with Clang/LLVM & VC14
From: Ernest Zaslavsky (ernest.zaslavsky_at_[hidden])
Date: 2016-03-20 05:15:57


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