On Mon, Feb 8, 2016 at 7:02 AM, Jonathan Wakely <jwakely....@gmail.com> wrote: > On 8 February 2016 at 13:54, H.J. Lu <hjl.to...@gmail.com> wrote: >> On Sun, Feb 7, 2016 at 12:52 PM, H.J. Lu <hjl.to...@gmail.com> wrote: >> >> The standard-layout POD is well defined: >> >> https://en.wikipedia.org/wiki/C%2B%2B11#Modification_to_the_definition_of_plain_old_data >> >> Here is the updated proposal for Intel386, x86-64 and IA MCU psABIs: >> >> 1. "collection". A collection is a structure, union or C++ class. > > These are all "class types". Why invent a new term?
Because it applies to both C and C++. There is no class in C. >> 2. "empty collection". An empty collection is: >> a. A collection without member. Or > > What about base classes? > > What about bit-fields of length 0? Is a collection with them standard-layout POD type? >> b. A collection with only empty collections. Or > > What does "with" mean? Only members, or bases too? Is "A collection with only members of empty collections" better? >> c. An array of empty collections. >> 3. "empty record". An empty record is Plain Old Data (POD) for the purpose >> of standard-layout and > > "For the purposes of standard-layout" doesn't mean anything. > > A type is a standard-layout type, or it isn't. How about "An empty record is standard-layout Plain Old Data (POD) type and ..."? > Do you mean "An empty record is a standard-layout type and..." > >> a. A collection without member. Or >> b. A collection with only empty collections. > > ? > Is "A collection with only members of empty collections" better? > >> 4. No memory slot nor register should be used to pass or return an object of >> empty record. -- H.J.