如果编译器能够证明类的(私有)成员变量从未被使用,包括潜在的友元函数,那么标准是否允许编译器从类的内存占用中删除该成员变量?
显然,对于公有或保护成员变量,在编译时无法实现这一点,但是在某些情况下,可以构造出这样的证明来处理私有数据成员。
显然,对于公有或保护成员变量,在编译时无法实现这一点,但是在某些情况下,可以构造出这样的证明来处理私有数据成员。
相关问题:
- 公共、私有和受保护背后的幕后故事(引发了这个问题)
- C++编译器是否允许优化未被引用的本地对象(关于自动对象)
- 静态变量是否总是会占用内存?(关于静态对象)
sizeof(myClass)
这样的操作呢?我真的想不出为什么会这样,但如果成员被优化掉了,那可能会导致错误。 - Adrian Molesizeof(T)
在某个其他编译单元中使用,该编译单元缺乏对某些定义的可见性。由于另一个编译单元将无法执行优化,因此没有编译单元可以执行优化。 - Ben Voigt