Add constexpr to and for C++17

Programming / Compilers / GCC - redi [138bc75d-0d04-0410-961f-82ee72b054a4] - 23 August 2016 05:13 UTC

- include/bits/c++config (_GLIBCXX17_CONSTEXPR): Define.
- include/bits/range_access.h (begin, end, rbegin, rend, crbegin) (crend): Add _GLIBCXX17_CONSTEXPR as per P0031R0.
- include/bits/stl_iterator.h (reverse_iterator, move_iterator) (__make_reverse_iterator, make_reverse_iterator, make_move_iterator): Likewise.
- include/bits/stl_iterator_base_funcs.h (__distance, __advance): Add _GLIBCXX14_CONSTEXPR. (distance, advance, next, prev): Add _GLIBCXX17_CONSTEXPR.
- include/std/array (array::begin, array::end, array::rbegin) (array::rend, array::cbegin, array:cend, array::crbegin) (array::crend, array::operator[], array::at, array::front) (array::back, array::data): Likewise.
- testsuite/24_iterators/headers/iterator/range_access.cc: Replace with separate tests for C++11, C++14, and C++17.
- testsuite/24_iterators/headers/iterator/range_access_c++11.cc: New.
- testsuite/24_iterators/headers/iterator/range_access_c++14.cc: New.
- testsuite/24_iterators/headers/iterator/range_access_c++17.cc: New.

cbf6456 Add constexpr to and for C++17
libstdc++-v3/ChangeLog | 21 ++++
libstdc++-v3/include/bits/c++config | 8 ++
libstdc++-v3/include/bits/range_access.h | 28 ++---
libstdc++-v3/include/bits/stl_iterator.h | 132 +++++++++++---------
.../include/bits/stl_iterator_base_funcs.h | 21 ++--
libstdc++-v3/include/std/array | 36 +++---
.../24_iterators/headers/iterator/range_access.cc | 37 ------
.../headers/iterator/range_access_c++11.cc | 33 +++++
.../headers/iterator/range_access_c++14.cc | 57 +++++++++
.../headers/iterator/range_access_c++17.cc | 57 +++++++++
.../testsuite/ext/profile/mutex_extensions_neg.cc | 2 +-
11 files changed, 292 insertions(+), 140 deletions(-)

Upstream: gcc.gnu.org


  • Share