namespace std { template<typename t> struct hash<MyClass<t>> { size_t operator() (const MyClass<t>& c) const; } } // You can also do things like template<template<typename t> class type> func_name<type<t>>();