The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"shared_ptr custom deleter"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"shared_ptr custom deleter"  +/
Сообщение от handler2006 email(??) on 15-Фев-12, 11:37 
Здравствуйте!
Мы имеем возможность написать:
shared_ptr<int> p(new int, &free);

Но конструкция:
shared_ptr<int> p(VirtualAlloc(...), &VirtualFree(...));
Дает ошибку компиляции.

Вопрос:
Как освободить память во втором случае?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "shared_ptr custom deleter"  +/
Сообщение от anonymous (??) on 16-Фев-12, 12:16 
> Здравствуйте!
> Мы имеем возможность написать:
> shared_ptr<int> p(new int, &free);
> Но конструкция:
> shared_ptr<int> p(VirtualAlloc(...), &VirtualFree(...));
> Дает ошибку компиляции.
> Вопрос:
> Как освободить память во втором случае?

shared_ptr<int> p(VirtualAlloc(...), &VirtualFree); ?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "shared_ptr custom deleter"  +/
Сообщение от handler2006 email(ok) on 16-Фев-12, 12:28 

> shared_ptr<int> p(VirtualAlloc(...), &VirtualFree); ?

В таком случае получаем ошибку приведения типов во втором аргументе.
Второй функции точно нужно передавать параметры.
Есть способ сделать это через:


shared_ptr<int> p(VirtualAlloc(), bind(VirtualFree, p));

Но я пока еще не нашел правильного решения, которое бы удовлетворило компилятор

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру