Make associative container operators inline friend
Jonathan Wakely
jwakely@redhat.com
Wed Oct 3 10:09:00 GMT 2018
>I consider the Table 83 - Container requirements where it is only
>saying that a == b should be well defined without namespace
>consideration. But I won't argue on Standard details with you, I'll
>revert that part.
The table says what they mean, but the synopses for <map> and <set>
also show declarations for those operators at namespace scope.
>>As far as I can tell, we only every use __x._M_t < __y._M_t and
>>__x._M_t == __y._M_t, so don't need anything else.
>
>For sure we don't use those for associative containers operators. I
>guess they have been added for consistency with Standard containers.
>There are here for a long time, do you want to remove them now ? I can
>add this cleanup in my patch if you want.
Maybe we should deprecate them first. So please make them inline
friends (as for == and <) and add __attribute__((__deprecated__)).
I'll add something to the release notes for gcc-9 saying they're
deprecated. If nobody complains we can remove them for gcc-10 or
gcc-11.
More information about the Libstdc++
mailing list