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@lists.boost.org] On Behalf Of degski
Sent: Sunday, March 20, 2016 10:13 AM
To: boost-users@lists.boost.org
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