#pragma once #include namespace AK { template struct Traits { }; template<> struct Traits { static unsigned hash(int i) { return i; } static void dump(int i) { printf("%d", i); } }; template<> struct Traits { static unsigned hash(unsigned u) { return u; } static void dump(unsigned u) { printf("%u", u); } }; template struct Traits { static unsigned hash(const T* p) { return (unsigned)p; } static void dump(const T* p) { printf("%p", p); } }; }