From: fdumont Date: Sun, 6 Oct 2019 15:10:40 +0000 (+0000) Subject: Add C++11 __iterator_category_t template alias. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8f3cf77c427634af74c52048438203e2106931f;p=thirdparty%2Fgcc.git Add C++11 __iterator_category_t template alias. * include/bits/stl_iterator_base_types.h (__iterator_category_t): Define for C++11. (_RequireInputIte): Likewise and use __enable_if_t. * include/std/numeric (__is_random_access_iter): Use __iterator_category_t. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@276637 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 5cb2e2924eef..40d9081a3c80 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,11 @@ 2019-10-06 François Dumont + * include/bits/stl_iterator_base_types.h (__iterator_category_t): Define + for C++11. + (_RequireInputIte): Likewise and use __enable_if_t. + * include/std/numeric + (__is_random_access_iter): Use __iterator_category_t. + * include/bits/stl_algo.h (copy_n): Add __glibcxx_requires_can_increment debug checks. * testsuite/25_algorithms/copy_n/debug/1_neg.cc: New. diff --git a/libstdc++-v3/include/bits/stl_iterator_base_types.h b/libstdc++-v3/include/bits/stl_iterator_base_types.h index af69dbb017a9..951e704e468b 100644 --- a/libstdc++-v3/include/bits/stl_iterator_base_types.h +++ b/libstdc++-v3/include/bits/stl_iterator_base_types.h @@ -208,11 +208,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION //@} #if __cplusplus >= 201103L + template + using __iterator_category_t + = typename iterator_traits<_Iter>::iterator_category; + template - using _RequireInputIter = typename - enable_if::iterator_category, - input_iterator_tag>::value>::type; + using _RequireInputIter = + __enable_if_t, + input_iterator_tag>::value>; #endif _GLIBCXX_END_NAMESPACE_VERSION diff --git a/libstdc++-v3/include/std/numeric b/libstdc++-v3/include/std/numeric index 239276946b5e..a164a9e6430f 100644 --- a/libstdc++-v3/include/std/numeric +++ b/libstdc++-v3/include/std/numeric @@ -230,8 +230,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// @{ /// @cond undocumented - template, - typename _Cat = typename _Traits::iterator_category> + template> using __is_random_access_iter = is_base_of; /// @endcond