RFC: [PATCH] Remove using-declarations that add std names to __gnu_cxx

Jonathan Wakely jwakely@redhat.com
Fri May 31 13:59:00 GMT 2019


On 31/05/19 11:36 +0100, Jonathan Wakely wrote:
>On 29/05/19 21:00 +0100, Jonathan Wakely wrote:
>>These using-declarations appear to have been added for simplicity when
>>moving the non-standard extensions from namespace std to namespace
>>__gnu_cxx. Dumping all these names into namespace __gnu_cxx allows
>>uses like __gnu_cxx::size_t and __gnu_cxx::pair, which serve no useful
>>purpose, but allows creating unnecessarily unportable code.
>>
>>This patch removes most of the using-declarations from namespace scope,
>>then either qualifies names as needed or adds using-declarations at
>>block scope or typedefs at class scope.
>>
>>	* include/backward/hashtable.h (size_t, ptrdiff_t)
>>	(forward_iterator_tag, input_iterator_tag, _Construct, _Destroy)
>>	(distance, vector, pair, __iterator_category): Remove
>>	using-declarations that add these names to namespace __gnu_cxx.
>>	* include/ext/bitmap_allocator.h (size_t, ptrdiff_t): Likewise.
>>	* include/ext/debug_allocator.h (size_t): Likewise.
>>	* include/ext/functional (size_t, unary_function, binary_function)
>>	(mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t, const_mem_fun1_ref_t):
>>	Likewise.
>>	* include/ext/malloc_allocator.h (size_t, ptrdiff_t): Likewise.
>>	* include/ext/memory (ptrdiff_t, pair, __iterator_category): Likewise.
>>	* include/ext/mt_allocator.h (size_t, ptrdiff_t): Likewise.
>>	* include/ext/new_allocator.h (size_t, ptrdiff_t): Likewise.
>>	* include/ext/numeric (iota): Fix outdated comment.
>>	* include/ext/pool_allocator.h (size_t, ptrdiff_t): Likewise.
>>	* include/ext/rb_tree (_Rb_tree, allocator): Likewise.
>>	* include/ext/rope (size_t, ptrdiff_t, allocator, _Destroy): Likewise.
>>	* include/ext/ropeimpl.h (size_t, printf, basic_ostream)
>>	(__throw_length_error, _Destroy, std::__uninitialized_fill_n_a):
>>	Likewise.
>>	* include/ext/slist (size_t, ptrdiff_t, _Construct, _Destroy)
>>	(allocator, __true_type, __false_type): Likewise.
>>
>>Does anybody think we should keep __gnu_cxx::size_t,
>>__gnu_cxx::input_iterator_tag, __gnu_cxx::vector, __gnu_cxx::pair etc.
>>or should I go ahead and commit this?
>
>Committed to trunk.

And this fix is needed to fix an AIX bootstrap failure.

Committed to trunk.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.txt
Type: text/x-patch
Size: 804 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20190531/db9b605a/attachment.bin>


More information about the Libstdc++ mailing list