template <class X> and
template <typename X>

????