Я пытаюсь найти способ написать пользовательское средство удаления для массива C, управляемого уникальным_ptr в шаблонном классе C ++.Я целенаправленно пытаюсь заставить утечку памяти класса, заставляя средство удаления ничего не делать.В полном классе некоторые конструкторы выделяют память, а некоторые нет - скорее они используют память в необработанном байтовом буфере, поступающем из потока данных.
Вот что я пробовал:
template <class T> class Matrix
{
private:
int _size;
std::unique_ptr<T[]> _array;
public:
Matrix(int size, void* data) : _size(size)
, _array(NULL, [](T[]* p){})
{
_array.reset((T*)data);
}
};
Код не компилируется, сообщение об ошибке:
In file included from /tmp/test/test/test.cpp:9:
/tmp/test/test/Matrix.h:22:55: error: expected ')'
, _array(NULL, [](T[]* p){})
^
/tmp/test/test/Matrix.h:22:51: note: to match this '('
, _array(NULL, [](T[]* p){})
^
1 error generated.