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@sizmek.com> 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@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


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
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!