Я делаю шаблонный класс Queue на C ++, и во время написания деструктора я столкнулся с этой проблемой: примитивный тип данных, такой как int и char, не может быть аргументом для функции удаления.
Я хочу, чтобы очередь была доступна как для указателей классов, так и для примитивных типов данных, и удаляю ее члены из памяти после разрушения самой очереди.
Большой коммутатор для захвата всех примитивных данных Типы кажутся ... чрезмерными. Есть ли общий способ c, чтобы определить, можно ли отправить имя типа T в функцию удаления? Свободная функция? Другие предложения?
Заранее спасибо!
PS: Для потомков, вот пример кода;
template <typename T>
class Queue {
public:
virtual ~Queue() {
while(length > 0) {
delete top(); //Delete current member from memory //DOES NOT ACCEPT INT
pop(); //Remove current member from Queue
} //Do this until all members are deleted from memory
free(array); //Free Queue's underlying malloc T[] from memory
}
}
РЕДАКТИРОВАТЬ: Пример - http://cpp.sh/2wuna