>>330
例えばこういうやり方はできる

/*swap.hpp*/
#ifndef SWAP_HPP
#define SWAP_HPP
template <typename T>
void swap(T& lhs,T& rhs);
#include <swap.inl>
#endif

/*swap.inl*/
template <typename T>
void swap(T& lhs,T& rhs)
{
 T tmp(lhs);
 lhs = rhs;
 rhs = tmp;
}
cppはつまり具体的な型がないとコンパイルできない