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::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{};
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::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