C++ Logo


Advanced search

Re: [std-proposals] Only reason I don't use std::array

From: Lénárd Szolnoki <cpp_at_[hidden]>
Date: Thu, 17 Aug 2023 21:11:29 +0100
On Thu, 2023-08-17 at 20:38 +0100, Frederick Virchanza Gotham via Std-
Proposals wrote:
> On Thu, Aug 17, 2023 at 7:39 PM Tom Honermann <tom_at_[hidden]>
> wrote:
> >
> > I agree. Optimizers are not written to take advantage of UB. They
> > are
> > written in accordance with what the standard specifies as defined
> > behavior. When code fails to adhere to what the standard specifies,
> > then
> > optimizers might behave in unexpected ways because a property they
> > rely
> > on (such as the existence of an object of a certain type) has been
> > violated.
> There is no invalid bit pattern for an array of int's. Maybe an array
> of float's could have an invalid bit pattern.
> I mean the 'existence of an object' will come down to 0's and 1's at
> the end of it all.

This has nothing to do with the object representation of std::array and
C arrays. You can memcpy between the two (as long as they hold trivial
types), and you will be fine.

The issue is object identity and aliasing.


Received on 2023-08-17 20:11:33