我有存储POD结构的数据结构(每个实例仅存储一个类型,因为它基本上是一个特定POD结构的数组).有时候另一个开发 将修改其中一个结构,添加或修改数据类型.如果添加了非POD元素,例如std :: string,则数据结构在运行时会爆炸,因为内存模型会发生变化.有没有办法在运行时使用编译器定义或调用来检测类或结构是否符合POD(以避免此维护问题)?我正在使用g ++(GCC)4.2.4.
Cat*_*lus 25
在运行时可能没有,但在编译时,您可以使用is_pod来自C++ 0x标准库或Boost.TypeTraits的特征.
static_assert(std::is_pod<YourStruct>::value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2240 次 |
| 最近记录: |