Fletcher, John P wrote:
________________________________________
From: Boost [boost-bounces@lists.boost.org] on behalf of John Maddock [jz.maddock@googlemail.com] Sent: 18 June 2015 12:57 To: boost@lists.boost.org Subject: [boost] [type_traits] Another big update in develop Just a heads up in case it causes any issues: type_traits has had another big update in develop - added several new traits is_constructible, is_assignable etc which were needed to fix bugs in other traits - and changed most of the has_nothrow and has_trivial traits to make use of these. Also added more test cases to cover the issues where these were defective before. Please do let me know if you spot any unexpected breakages. John. John
There is something which has shown up.
There is a problem with some tests of bimap e.g. test_bimap_extra with Clang 3.0 and all other Clangs.
In file included from ../boost/type_traits/object_traits.hpp:22: ../boost/type_traits/has_nothrow_copy.hpp:32:89: error: too many template arguments for class template 'is_copy_constructible' template <class T> struct has_nothrow_copy_constructor : public integral_constant
{}; ^~~~~~~~~~~~~~~~~~~~~~~~~ ../boost/type_traits/intrinsics.hpp:186:119: note: expanded from: # define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value && is_copy_constructible ::value) ^ ../boost/type_traits/is_copy_constructible.hpp:166:30: note: template is declared here template <class T> struct is_copy_constructible : public integral_constant {}; ~~~~~~~~~~~~~~~~~~ ^ and other similar errors.
This did not happen before and does not seem to happen with gcc 4.6 or 4.8.2.
It is not affected by changing to C++11 or C++14 with Clang 3.6
Note: There are some unrelated Clang warnings for bimap which would be fixed if the patch for ticket #8743 would be applied.
I have tried to dig into the reason but have no conclusion.
There are also errors reported by MSVC14, see e.g.
http://www.boost.org/development/tests/develop/developer/geometry-index.html.
D:\t08\run\boost_root\boost/type_traits/has_nothrow_destructor.hpp(26): error C2301: left of '->~T' must point to class/struct/union
D:\t08\run\boost_root\boost/type_traits/has_nothrow_destructor.hpp(26): note: see reference to class template instantiation 'boost::detail::has_nothrow_destructor_imp