本文共 515 字,大约阅读时间需要 1 分钟。
std::aligned_storage可以看成一个内存对其的缓冲区,原型如下:
template<std::size_t Len, std::size_t Align >= /default-alignment/>
struct aligned_storage;
Len表示所存储类型的sie,Align表示该类型的内存对齐大小
关于 sizeof 和alignof 可以参考:
例子:
struct A{ //non-POD type int avg; int avg2; double c; A(int a,int b):avg((a+b)/2){ }};using namespace std;int main() { typedef std::aligned_storage::type A_pod; A_pod a,b; new(&a)A(10,20); b=a; // cout< < (b).avg< (b).avg<
输出:15
转载地址:http://cbwmi.baihongyu.com/