mirror of git://gcc.gnu.org/git/gcc.git
In C++2a the remove, remove_if and unique members of std::list and std::forward_list have been changed to return the number of elements removed. This is an ABI change for the remove members and the non-template unique members, so an abi-tag is used to give those symbols new mangled names in C++2a mode. For the function templates the return type is part of the mangled name so no abi-tag is needed. * include/bits/forward_list.h (__cpp_lib_list_remove_return_type): Define. (forward_list::__remove_return_type): Define typedef as size_type or void, according to __cplusplus value. (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or empty, according to __cplusplus value. (forward_list::remove, forward_list::unique): Use typedef and macro to change return type and add abi-tag for C++2a. (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use typedef to change return type for C++2a. * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro. (forward_list::remove, forward_list::remove_if<Pred>) (forward_list::unique<BinPred>): Return number of removed elements for C++2a. * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro. (list::remove, list::unique, list::remove_if<Predicate>) (list::unique<BinaryPredicate>): Return number of removed elements for C++2a. * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define. (list::__remove_return_type): Define typedef as size_type or void, according to __cplusplus value. (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or empty, according to __cplusplus value. (list::remove, list::unique): Use typedef and macro to change return type and add abi-tag for C++2a. (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use typedef to change return type for C++2a. * include/std/version (__cpp_lib_list_remove_return_type): Define. * testsuite/23_containers/forward_list/operations/ remove_cxx20_return.cc: New. * testsuite/23_containers/forward_list/operations/ unique_cxx20_return.cc: New. From-SVN: r262423 |
||
|---|---|---|
| .. | ||
| algorithm | ||
| any | ||
| array | ||
| atomic | ||
| bit | ||
| bitset | ||
| charconv | ||
| chrono | ||
| codecvt | ||
| complex | ||
| condition_variable | ||
| deque | ||
| filesystem | ||
| forward_list | ||
| fstream | ||
| functional | ||
| future | ||
| iomanip | ||
| ios | ||
| iosfwd | ||
| iostream | ||
| istream | ||
| iterator | ||
| limits | ||
| list | ||
| locale | ||
| map | ||
| memory | ||
| mutex | ||
| numeric | ||
| optional | ||
| ostream | ||
| queue | ||
| random | ||
| ratio | ||
| regex | ||
| scoped_allocator | ||
| set | ||
| shared_mutex | ||
| sstream | ||
| stack | ||
| stdexcept | ||
| streambuf | ||
| string | ||
| string_view | ||
| system_error | ||
| thread | ||
| tuple | ||
| type_traits | ||
| typeindex | ||
| unordered_map | ||
| unordered_set | ||
| utility | ||
| valarray | ||
| variant | ||
| vector | ||
| version | ||