У меня есть класс auto pointer, а в конструкторе я передаю указатель. Я хочу, чтобы иметь возможность отделять новое от new [] в конструкторе, чтобы я мог правильно вызвать delete или delete [] в деструкторе. Можно ли это сделать с помощью специализированной специализации? Я не хочу передавать логическое значение в конструкторе.
template <typename T>
class MyAutoPtr
{
public:
MyAutoPtr(T* aPtr);
};
// in use:
MyAutoPtr<int> ptr(new int);
MyAutoPtr<int> ptr2(new int[10]);