#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) ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YXJyYXk+CgoKdGVtcGxhdGU8dHlwZW5hbWUgVD4KY2xhc3MgQ0xpc3REZWxldGVyCnsKcHVibGljOgogICBzdGF0aWMgdm9pZCBEZWxldGUoVCBjb25zdCYpIHt6eno7fQp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4KY2xhc3MgQ0xpc3REZWxldGVyPFQqPgp7CnB1YmxpYzoKICAgc3RhdGljIHZvaWQgRGVsZXRlKFQqIHB0cikKICAgewogICAgICBkZWxldGUgcHRyOwogICB9Cn07CgppbnQgbWFpbigpCnsKICAgIGludCogZm9vOwogICAgQ0xpc3REZWxldGVyPGludCo+OjpEZWxldGUoZm9vKTsKfQo=