我有存储 POD 结构的数据结构(每个实例化仅存储单个类型,因为它基本上是特定 POD 结构的数组)。有时另一个开发人员。将修改这些结构之一,添加或修改数据类型。如果添加非 POD 元素,例如std::string,数据结构在运行时崩溃,因为内存模型发生了变化。有没有办法使用编译器定义或运行时调用来检测类或结构是否符合 POD(以避免这种维护问题)?我正在使用 g++ (GCC) 4.2.4。
在运行时可能不会,但在编译时,您可以使用is_pod
来自 C++0x 标准库的特征或Boost.TypeTraits http://www.boost.org/doc/libs/release/libs/type_traits/index.html.
static_assert(std::is_pod<YourStruct>::value);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)