#include <iostream>
#include <string>
#include <vector>
#include <array>


template<typename T>
class CListDeleter
{
public:
   static void Delete(T const&) {zzz;}
};

template<typename T>
class CListDeleter<T*>
{
public:
   static void Delete(T* ptr)
   {
      delete ptr;
   }
};

int main()
{
    int* foo;
    CListDeleter<int*>::Delete(foo);
}
