Здравствуйте!
Мы имеем возможность написать:
shared_ptr<int> p(new int, &free);Но конструкция:
shared_ptr<int> p(VirtualAlloc(...), &VirtualFree(...));
Дает ошибку компиляции.Вопрос:
Как освободить память во втором случае?
> Здравствуйте!
> Мы имеем возможность написать:
> shared_ptr<int> p(new int, &free);
> Но конструкция:
> shared_ptr<int> p(VirtualAlloc(...), &VirtualFree(...));
> Дает ошибку компиляции.
> Вопрос:
> Как освободить память во втором случае?shared_ptr<int> p(VirtualAlloc(...), &VirtualFree); ?
> shared_ptr<int> p(VirtualAlloc(...), &VirtualFree); ?В таком случае получаем ошибку приведения типов во втором аргументе.
Второй функции точно нужно передавать параметры.
Есть способ сделать это через:
shared_ptr<int> p(VirtualAlloc(), bind(VirtualFree, p));Но я пока еще не нашел правильного решения, которое бы удовлетворило компилятор