Biblioteki C/C++
scoped_array
[szablon klasy] Automatycznie zwalnia pamięć zaalokowaną przy pomocy operatora new[]
przy wyjściu ze scope-a.Składnia
#include <boost/scoped_array.hpp>
namespace boost
{
template < class T >
class scoped_array
{
};
}
Opis szczegółowy
Szablon klasy, który automatycznie zwalnia pamięć zaalokowaną przy pomocy operatora
new[]
. Pamięć jest zwalniana przy wychodzeniu z zasięgu zmiennej (przy tzw. wyjściu ze scope-a). Szablon
scoped_array gwarantuje, że pamięć zaalokowana dynamicznie przy pomocy operatora
new[]
zostanie zawsze zwolniona. Pamięć jest zwalniana zarówno przy wywołaniu metody
reset jak również z chwilą wywołania destruktora szablonu klasy
scoped_array.
Szablon
scoped_array jest
noncopyable co oznacza, że nie można kopiować wskaźnika przechowywanego przez niniejszy szablon. Ze względu na prostą budowę szablonu
scoped_array, jego implementacja jest równie szybka jak niskopoziomowa praca ze wskaźnikami oraz zajmuje tyle samo miejsca co zwykły wskaźnik.
Szablon
scoped_array nie może być używany w standardowych kontenerach C++ (wynika to z własności
noncopyable).
Szablon
scoped_array nie potrafi poprawnie przechowywać wskaźnika na dynamicznie zaalokowany element przy pomocy operatora
new
- do tego celu służy szablon
scoped_ptr.
Zagadnienia powiązane
scoped_ptr | Automatycznie zwalnia pamięć zaalokowaną przy pomocy operatora new przy wyjściu ze scope-a. (szablon klasy) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.