在各种性能优化的场景,特别是关于自定义数据结构的设计和实现,我们会遇到关于PODs类型的讨论。
那么 ,什么是POD Type呢?它有哪些好处,以及使用场景是什么?今天,这个话题我们来讨论讨论。
定义[wikipedia]
Passive data structures are appropriate when there is a part of a system where it should be clearly indicated that the detailed logic for data manipulation and integrity are elsewhere. PDSs are often found at the boundaries of a system, where information is being moved to and from other systems or persistent storage and the problem domain logic that is found in other parts of the system is irrelevant. For example, PDS would be convenient for representing the field values of objects that are being constructed from external data, in a part of the system where the semantic checks and interpretations needed for valid objects are not applied yet.
A PDS type in C++, or Plain Old C++ Object, is defined as either a scalar type or a PDS class.[2] A PDS class has no user-defined copy assignment operator, no user-defined destructor, and no non-static data members that are not themselves PDS. Moreover, a PDS class must be an aggregate, meaning it has no user-declared constructors, no private nor protected non-static data, no virtual base classes[a] and no virtual functions.[4] The standard includes statements about how PDS must behave in C++. The type_traits library in the C+