On 03/12/14 12:00 +0000, Jonathan Wakely wrote:
While working on PR57272 for unordered containers I was getting a headache reading all the return types with nested-name-qualifiers split over three or four lines.
More of the same. Tested powerpc64-linux, committed to trunk.
commit f99108f25854efc6858f465361be57816bdd1ebc Author: Jonathan Wakely <jwak...@redhat.com> Date: Fri Dec 5 10:20:15 2014 +0000 * include/bits/hashtable_policy.h (_Map_base::operator[], _Map_base::at): Simplify definitions with trailing return types. diff --git a/libstdc++-v3/include/bits/hashtable_policy.h b/libstdc++-v3/include/bits/hashtable_policy.h index 74d1bd0..cab25ef 100644 --- a/libstdc++-v3/include/bits/hashtable_policy.h +++ b/libstdc++-v3/include/bits/hashtable_policy.h @@ -584,12 +584,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Key, typename _Pair, typename _Alloc, typename _Equal, typename _H1, typename _H2, typename _Hash, typename _RehashPolicy, typename _Traits> - typename _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, - _H1, _H2, _Hash, _RehashPolicy, _Traits, true> - ::mapped_type& + auto _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>:: operator[](const key_type& __k) + -> mapped_type& { __hashtable* __h = static_cast<__hashtable*>(this); __hash_code __code = __h->_M_hash_code(__k); @@ -610,12 +609,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Key, typename _Pair, typename _Alloc, typename _Equal, typename _H1, typename _H2, typename _Hash, typename _RehashPolicy, typename _Traits> - typename _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, - _H1, _H2, _Hash, _RehashPolicy, _Traits, true> - ::mapped_type& + auto _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>:: operator[](key_type&& __k) + -> mapped_type& { __hashtable* __h = static_cast<__hashtable*>(this); __hash_code __code = __h->_M_hash_code(__k); @@ -636,12 +634,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Key, typename _Pair, typename _Alloc, typename _Equal, typename _H1, typename _H2, typename _Hash, typename _RehashPolicy, typename _Traits> - typename _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, - _H1, _H2, _Hash, _RehashPolicy, _Traits, true> - ::mapped_type& + auto _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>:: at(const key_type& __k) + -> mapped_type& { __hashtable* __h = static_cast<__hashtable*>(this); __hash_code __code = __h->_M_hash_code(__k); @@ -656,12 +653,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template<typename _Key, typename _Pair, typename _Alloc, typename _Equal, typename _H1, typename _H2, typename _Hash, typename _RehashPolicy, typename _Traits> - const typename _Map_base<_Key, _Pair, _Alloc, _Select1st, - _Equal, _H1, _H2, _Hash, _RehashPolicy, - _Traits, true>::mapped_type& + auto _Map_base<_Key, _Pair, _Alloc, _Select1st, _Equal, _H1, _H2, _Hash, _RehashPolicy, _Traits, true>:: at(const key_type& __k) const + -> const mapped_type& { const __hashtable* __h = static_cast<const __hashtable*>(this); __hash_code __code = __h->_M_hash_code(__k);