Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #2755
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Newsgroups | comp.compilers |
| Subject | Re: Union C++ standard |
| Date | 2021-11-27 16:59 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <21-11-008@comp.compilers> (permalink) |
| References | <21-11-004@comp.compilers> |
On 25/11/2021 11:11, Hans-Peter Diettrich wrote: > Can somebody explain why the access to members of a union is "undefined" > except for the most recently written member? > > What can be undefined in a union of data types of the same typesize end > alignment? Any member written will result in a unique bit/byte pattern > in memory, whose reading may not make sense in a different type but > undoubtedly is well defined. > > DoDi > [I think it's undefined in a standards sense. In any individual > implementation the result is predictable, but it's not portable. -John] > In C++, objects of a class typically have some kind of invariant which is established by the constructor, and kept consistent when accessed via its public methods. Messing with the underlying data representation directly is going to risk losing that - it means you are accessing data without going through the proper defined interface (the public or protected methods and members). In C, type-punning via unions is allowed (i.e., fully defined behaviour in the standards), but not in C++ where the language is expected to enforce higher-level aspects of the data.
Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar
Union C++ standard Hans-Peter Diettrich <DrDiettrich1@netscape.net> - 2021-11-25 11:11 +0100
Re: Union C++ standard Kaz Kylheku <480-992-1380@kylheku.com> - 2021-11-26 18:06 +0000
Re: Union C++ standard gah4 <gah4@u.washington.edu> - 2021-11-26 12:16 -0800
Re: Union C++ standard David Brown <david.brown@hesbynett.no> - 2021-11-27 16:59 +0100
Re: Union C++ standard Derek Jones <derek@NOSPAM-knosof.co.uk> - 2021-11-28 12:51 +0000
Re: Union C++ standard David Brown <david.brown@hesbynett.no> - 2021-11-28 19:00 +0100
Re: Union C++ standard Derek Jones <derek@NOSPAM-knosof.co.uk> - 2021-11-29 00:09 +0000
Re: Union C++ standard David Brown <david.brown@hesbynett.no> - 2021-11-29 21:00 +0100
Re: Union C++ standard Derek Jones <derek@NOSPAM-knosof.co.uk> - 2021-11-30 00:46 +0000
Re: Union C++ standard George Neuner <gneuner2@comcast.net> - 2021-11-30 17:18 -0500
Re: Union C++ standard terminology Derek Jones <derek@knosof.co.uk> - 2021-12-01 13:35 +0000
Re: Union C++ standard David Brown <david.brown@hesbynett.no> - 2021-11-30 23:24 +0100
Re: Union C++ standard Kaz Kylheku <480-992-1380@kylheku.com> - 2021-11-29 16:39 +0000
Re: Union C++ standard Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-11-29 14:32 -0800
csiph-web