[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.
________________________________________
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
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
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
' being compiled That I've also seen, but have no idea what the issue is - the error appears to not have a proper instantiation trace with it, which suggests it's happening when the template is first parsed (I've seen similar bugs/errors with previous MSVC versions). It's also a regression compared to msvc-10/11/12 which should all be using all the same code :(
I guess I'll have to go and install msvc-14 - when I was rather hoping to be able to wait until the final release was out... John.
On 20/06/2015 16:52, John Maddock wrote:
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
' being compiled That I've also seen, but have no idea what the issue is - the error appears to not have a proper instantiation trace with it, which suggests it's happening when the template is first parsed (I've seen similar bugs/errors with previous MSVC versions). It's also a regression compared to msvc-10/11/12 which should all be using all the same code :(
Never mind, appears to be related to noexcept which is turned on for the first time in VC14, have disabled that trait for msvc for now. John.
________________________________________
From: Boost [boost-bounces@lists.boost.org] on behalf of John Maddock [jz.maddock@googlemail.com] Sent: 20 June 2015 16:46 To: boost@lists.boost.org Subject: Re: [boost] [type_traits] Another big update in develop
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. Nod. I've just pushed some fixes.
John.
That fixes my tests on Clang 3.4, 3.5 and 3.6 Thanks John
participants (3)
-
Adam Wulkiewicz
-
Fletcher, John P
-
John Maddock