[PATCH] Use __and_v<...> instead of __and_<...>::value
Jonathan Wakely
jwakely@redhat.com
Wed Apr 24 16:25:00 GMT 2019
Some minor tweaks to C++17 and C++2a components
* include/std/any (any::any(ValueType&&)): Use __and_v.
* include/std/numeric (midpoint(T, T, T), midpoint(T*, T*, T*)):
Likewise.
Tested powerpc64le-linux, committed to trunk.
-------------- next part --------------
commit b31d88f0da87ad6d07f012deb51756a5ade7883a
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Wed Apr 24 17:06:08 2019 +0100
Use __and_v<...> instead of __and_<...>::value
* include/std/any (any::any(ValueType&&)): Use __and_v.
* include/std/numeric (midpoint(T, T, T), midpoint(T*, T*, T*)):
Likewise.
diff --git a/libstdc++-v3/include/std/any b/libstdc++-v3/include/std/any
index 29fe03e2b82..8cbabdddd9b 100644
--- a/libstdc++-v3/include/std/any
+++ b/libstdc++-v3/include/std/any
@@ -189,9 +189,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
/// Construct with a copy of @p __value as the contained object.
template <typename _ValueType, typename _Tp = _Decay<_ValueType>,
typename _Mgr = _Manager<_Tp>,
- enable_if_t<__and_<is_copy_constructible<_Tp>,
- __not_<is_constructible<_Tp, _ValueType&&>>,
- __not_<__is_in_place_type<_Tp>>>::value,
+ enable_if_t<__and_v<is_copy_constructible<_Tp>,
+ __not_<is_constructible<_Tp, _ValueType&&>>,
+ __not_<__is_in_place_type<_Tp>>>,
bool> = false>
any(_ValueType&& __value)
: _M_manager(&_Mgr::_S_manage)
diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric
index ffd9eae9691..4858ad1aea3 100644
--- a/libstdc++-v3/include/std/numeric
+++ b/libstdc++-v3/include/std/numeric
@@ -162,8 +162,8 @@ namespace __detail
template<typename _Tp>
constexpr
- enable_if_t<__and_<is_arithmetic<_Tp>, is_same<remove_cv_t<_Tp>, _Tp>,
- __not_<is_same<_Tp, bool>>>::value,
+ enable_if_t<__and_v<is_arithmetic<_Tp>, is_same<remove_cv_t<_Tp>, _Tp>,
+ __not_<is_same<_Tp, bool>>>,
_Tp>
midpoint(_Tp __a, _Tp __b) noexcept
{
@@ -192,8 +192,7 @@ template<typename _Tp>
template<typename _Tp>
constexpr
- enable_if_t<__and_<is_object<_Tp>, bool_constant<sizeof(_Tp) != 0>>::value,
- _Tp*>
+ enable_if_t<__and_v<is_object<_Tp>, bool_constant<sizeof(_Tp) != 0>>, _Tp*>
midpoint(_Tp* __a, _Tp* __b) noexcept
{
return __a > __b ? __b + (__a - __b) / 2 : __a + (__b - __a) / 2;
More information about the Libstdc++
mailing list