Neden std ihtiyacım var::get_temporary_buffer?
Kullanmalıyım ne için std::get_temporary_buffer
? Standart şunları söyledi:
Alır depolama n bitişik T nesneleri saklamak için yeterli bir işaretçi.
Tampon yığın üzerinde ayrılmış olacağını düşündüm, ama bu doğru değil. C Standardına göre bu tampon aslında geçici değil. Avantajları bu işlev, küresel işlev nesneleri ya da yapı yok ::operator new
. Aşağıdaki ifadeler eşdeğerdir, öyle değil mi?
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 şeker var mı? Neden adını temporary
var mı?
Bir kullanım örneği algoritmaları uygulamak için: Dr. Dobb's Journal, July 01, 1996 önerildi
Hayır arabellek ayrılmış olabilir, ya da istenirse daha küçük ise, algoritma hala düzgün çalışırsa, sadece yavaşlatır.
CEVAP
Stroustrup diyor"" . C Programlama Dili (§19.4.4SE):
Fikir sistemi-boyutlu sabit bir sayı tamponlar uzay istemek için çok hızlı ayırması için hazır tutabilirnnesneleri daha fazlası için yer verebilirn. Aynı zamanda daha az, ancak verim olabilir,
get_temporary_buffer()
kullanarak bir şekilde iyimser bir şey istemek için ve daha sonra kullanılabilir olması için ne kullanın.
get_temporary_buffer()
düşük düzeyde ve geçici tamponları yönetmek için optimize edilmiş olması muhtemeldir, çünkü [ ... ], bir alternatif olarak kullanılmamalıdıryeniya::ayırıcısı ayırma()uzun süreli depolama elde etmek için.
O da iki işlevi giriş ile başlar:
Algoritmalar genellikle geçici boşluk kabul edilebilir gerçekleştirmek için gerektirir.
... ama bir tanımını sağlamak için görünmüyorgeçiciyadaha uzun vadeliher yerde.
BUNLAR ve neden ihtiyacım var?...
Diyor, Resharper için geçici bir çözüm...
Vs Websockets WebRTC: Eğer WebRTC Vide...
Nedir &; Python iş parçacığı yerel dep...
Neden bir C /* */ ihtiyacım var gibi y...