我应该使用什么目的std::get_temporary_buffer
?标准规定如下:
获得一个指向存储空间的指针,该存储空间足以存储最多 n 个相邻的 T 个对象。
我认为缓冲区将分配在堆栈上,但事实并非如此。根据 C++ 标准,这个缓冲区实际上不是临时的。::operator new
这个函数比不构造对象的全局函数有什么优势。我对以下陈述是等价的吗?
int* x;
x = std::get_temporary_buffer<int>( 10 ).first;
x = static_cast<int*>( ::operator new( 10*sizeof(int) ) );
这个函数只存在于语法糖吗?为什么会有temporary
它的名字?
1996 年 7 月 1 日的 Dobb 博士期刊中提出了一个用于实现算法的用例:
如果没有缓冲区可以分配,或者如果它小于请求,算法仍然可以正常工作,它只是减慢了速度。