Deprecating arithmetic on std::atomic<void*>
Marc Glisse
marc.glisse@inria.fr
Thu Apr 20 09:31:00 GMT 2017
On Thu, 20 Apr 2017, Florian Weimer wrote:
> On 04/19/2017 07:07 PM, Jonathan Wakely wrote:
>> I know it's a bit late, but I'd like to propose deprecating the
>> libstdc++ extension that allows arithmetic on std::atomic<void*>.
>> Currently we make it behave like arithmetic on void*, which is also a
>> GNU extension (https://gcc.gnu.org/onlinedocs/gcc/Pointer-Arith.html).
>> We also allow arithmetic on types such as std::atomic<void(*)()> which
>> is probably not useful (PR 69769).
>
> Why is it acceptable to have the extension for built-in types, but not for
> library types wrapping them? Why be inconsistent about this?
I thought the extension was there for legacy code, to avoid breaking old
programs, and we could deprecate it eventually. At least the manual is
missing an example of where this extension is actually useful. For atomic,
I don't see why we should encourage people to write new code that violates
the standard...
--
Marc Glisse
More information about the Libstdc++
mailing list