Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Opracował: Piotr DejaVu Szawdyński
Biblioteki C/C++

scoped_array

[szablon klasy] Automatycznie zwalnia pamięć zaalokowaną przy pomocy operatora
new[]
 przy wyjściu ze scope-a.

Składnia

C/C++
#include <boost/scoped_array.hpp>
namespace boost
{
   
    template < class T >
    class scoped_array // noncopyable
    {
    };
   
}

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 » boostscoped_ptr.

Zagadnienia powiązane

scoped_ptrAutomatycznie zwalnia pamięć zaalokowaną przy pomocy operatora
new
 przy wyjściu ze scope-a. (szablon klasy)

Linki zewnętrzne