C++包装类的大小
C++ sizeof wrapper class
假设我有一个类 A,它不继承任何东西,没有虚方法,并且只有一个 T 类型的变量。C++能保证sizeof(A) == sizeof(T)
吗?
编辑:
另外,如果T是复合类型,它会有所不同吗?
不,由于填充,它可能超过 sizeof(T)
。
我不认为它明确保证了这一点,但我认为它永远不会有所不同。
我认为C++应该保证sizeof(A) == sizeof(T)。
考虑波纹管的情况,C++应该让它像在 C 中一样工作:
A a[10];
T t[10];
A * ap = (A *) t;
T * tp = (T *) a;
memcpy(ap, tp, sizeof(*ap));
相关文章:
- 简化在 Pybind11 中为 C++ 模板类生成包装类:模板声明不能出现在块范围内
- C++-用与被包装数据相同的语法构造包装类
- C++-用和结构相同的语法围绕结构构造包装类
- C++泛型包装类,它为某些函数添加了额外的处理
- 如何减少大量包装类的实现代码?
- 在 C++ 中为 C 样式对象创建一个透明包装类
- 如何将包装类的对象用作包装函数中的参数
- 这->...在模板包装类中必需
- 无法理解包装类的构造函数的声明
- 标准向量之上的 C++11 包装类
- 编写安全包装类以管理用户定义对象的指针
- 重构现有包装类,以使用与包装器本身相同的构造函数参数包装 T
- 包装类设计和依赖注入
- 提升 Python 导入失败,未定义包装类的符号
- 简单包装类与智能指针
- 将 C 结构工厂函数与其相应的 C++ 包装类构造函数合并
- 为什么这个C++包装类没有内联掉
- std::variant、包装类和'conversion from ... to non-scalar type ... requested'
- C# 使用包装类中的字符串参数调用 C++ 方法
- 编写值包装类的最佳方式