Ne amaçla kullanmalıyım std::get_temporary_buffer
? Standart şunları söylüyor:
N bitişik T nesnesine kadar depolamaya yetecek depolama için bir işaretçi elde eder.
Tamponun yığın üzerinde tahsis edileceğini düşündüm, ancak bu doğru değil. C ++ Standardına göre bu tampon aslında geçici değildir. Bu fonksiyonun ::operator new
, nesneleri oluşturmayan global fonksiyona göre ne gibi avantajları vardır? Aşağıdaki ifadelerin eşdeğer olduğu konusunda haklı mıyım?
int* x;
x = std::get_temporary_buffer<int>( 10 ).first;
x = static_cast<int*>( ::operator new( 10*sizeof(int) ) );
Bu işlev yalnızca sözdizimi şekeri için mi var? Adında neden var temporary
?
Dr. Dobb's Journal, 01 Temmuz 1996'da bir kullanım örneği önerildiAlgoritmaları uygulamak için :
Hiçbir arabellek ayrılamazsa veya istenenden daha küçükse, algoritma hala doğru şekilde çalışır, yalnızca yavaşlar.
std::get_temporary_buffer
C ++ 17'de kullanımdan kaldırılacaktır.