Ok, i've done that, as below and put it in a header.

Code:
template <int m_iDimensions>
class CMatrix
{
public:
	//Class functions
	CMatrix Inverse(void);
}

template<>
CMatrix<2> CMatrix<2>::Inverse(void)
{
	//Nice code
}

template<>
CMatrix<3> CMatrix<3>::Inverse(void)
{
	//More, different nice code
}
Trouble is now i get linker errors saying those functions (with parameters filled in) have already been defined. I'm guessing it's because i've put them in a header, but i didn't think you could seperate class declaration and implementation for template classes.

Any help would be greatly appreciated.