» Главная
eXcode.ru » Статьи » С / С++
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 6





Примитивы управления памятью (Memory Handling Primitives) библиотеки STL




     Чтобы получать типичный указатель на неинициализированный буфер памяти данного размера, определена следующая функция:

template <class T> 
inline T* allocate(ptrdiff_t n, Т*); // n >= 0

     Размер (в байтах) распределённого буфера - не меньше n*sizeof(T).

     Для каждой модели памяти имеется соответствующий шаблон функции allocate, определённый с типом первого параметра, являющимся типом расстояния указателей в модели памяти.

     Например, если система трансляции поддерживает _huge указатели с типом расстояния long long, обеспечивается следующая шаблонная функция:

template <class T>
inline T _huge* allocate(long long n, T _huge *);

     Также обеспечиваются следующие функции:

template <class T>
inline void deallocate(T* buffer);

template <class T1, class T2>
inline void construct(T1* p, const T2& value) { new (p) T1(value);}

template <class T>
inline void destroy(T* pointer) { pointer->~T();}

     deallocate освобождает буфер, выделенный allocate. Для каждой модели памяти имеются соответствующие шаблоны функций deallocate, construct и destroy, определённые с типом первого параметра, являющимся типом указателя в модели памяти.

template <class T>
 pair<T*, ptrdiff_t> get_temporary_buffer(ptrdiff_t n, T*);

template <class T>
void return_temporary_buffer(T* p);

     get_temporary_buffer ищет наибольший буфер, не больше чем n*sizeof(T), и возвращает пару, состоящую из адреса и размера (в единицах sizeof(T)) буфера. return_temporary_buffer возвращает буфер, выделенный get_temporary_buffer.

К началу статьи





Добавил: LedWormДата публикации: 2006-03-14 10:15:23
Рейтинг статьи:2.90 [Голосов 10]Кол-во просмотров: 10274

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Как вы относитесь к интернет-магазинам?
Не доверяю
18% (16)
Ни разу не пользовался и не буду
16% (15)
Пользовался единожды
12% (11)
Пользуюсь регулярно
26% (24)
Пользовался бы, но нет денег
18% (16)
А что такие бывают?
2% (2)
Обычные магазины лучше!
8% (7)

Проголосовало: 91
Что говорят мыши:
Мышь квакера: «Слушай, кореш, давай ещё разок колесо, я кайф недоловила»
Мышь фотошопера: “Так, вот в эту точку? Сейчас, блин, с тобой косоглазой станешь, да, вижу, вижу, что опять не то выделила? Да иди ты на хр@н, это у тебя руки дрожат!”
Мышь програмиста: “Я, это, посплю децл, ок?”
Мышь любителя DOSа: “It’s no fate”
Рейтинг: 8/10 (3)
Посмотреть все анекдоты