template < typename T >
void Write( MySerializer& ser, T data)
{
//do something
}
// int specialization :
template <>
void Write<int>( MySerializer& ser, int data)
{
//write the int
}
// syntax error
template < >
void Write< Array<T> >( MySerializer& ser, Array<T> data)
{
//for each member of data call Write( ser, data )
}