gpt4 book ai didi

c++ - C++类中添加成员导致编译时错误的技巧

转载 作者:太空狗 更新时间:2023-10-29 21:12:39 26 4
gpt4 key购买 nike

假设您有一些包含多个公共(public)成员的 POD。您还有一些类可以序列化和反序列化来自各种来源的这些对象。除了单元测试之外,是否有任何编码技术可以确保在将成员添加到类时更新需要了解添加字段的任何其他代码。

即在更新所有代码以处理新字段之前,我喜欢一种会导致编译时错误的技术。

最佳答案

C++ 中没有反射。

但是一个解决方案,它也有一个吸引人的特性,即它不会污染你的编译代码,是使用 static_assert(sizeof(YourType) == x, <message>)其中 x是一个硬编码常量,取决于您的编译器。

添加到 YourType 的任何成员会变 sizeof , 并导致编译时失败。

(可能在某些情况下,如果新成员占用了以前作为结构末尾填充的空间,则此方法不起作用。首先使用您的编译器尝试该方法,看看是否可以是可行的。)

关于c++ - C++类中添加成员导致编译时错误的技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46669365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com