TITLE: what is a POD [ DWP means C++ Draft Working Paper, the pending language standard. You can find it online from the "C++ Working Draft" link at http://www.ses.com/~clarke -adc ] PROBLEM: jhenderson@shivasys.com (Jerry Henderson) The (4/28/95) DWP is full of references to "POD" and "non-POD" data types. Finally, on page 121, I found a footnote that explained that "POD" meant "plain ol' data." I presume this is some sort of geek humor, the meaning of which eludes me. Can someone please explain what constitutes "plain ol' data" and what would be the alternative? RESPONSE: Gregory Bond (gnb@bby.com.au) From the DWP, sect 9.0.4: A POD-struct (1) is an aggregate class that has no members of type reference, pointer to member, non-POD- struct or non-POD-union. (plus stuff in 9.2.13ff about "layout-compatible POD-structures"). RESPONSE: thp@cs.ucr.edu (Tom Payne) Conjecture: the distinction between POD and non-POD classes (and structs and unions) is a hack to the standard to accomodate the view that references (and member pointers) aren't objects. RESPONSE: clamage@Eng.Sun.COM (Steve Clamage), 19 Jan 96 Not at all. A POD-struct (or POD-union) is intended to have exactly the same layout guarantees as the corresponding C struct (or union). That means it has no features affecting class layout that are not in C: no virtual functions, no base classes, no access specifiers, and so on. C doesn't have references or pointers to members, so neither does a POD-struct (or union). The reason for bothering to introduce PODs at all is so that a C++ program can access C code containing structs and the programmer is assured that the C declaration compiled as C++ has the same meaning. In addition, C provides a guarantee that different structs with the same definition have the same layout even if they don't have the same name. C++ does not provide such a guarantee, but so that C programs can continue to work, the guarantee is made for PODs.