So I have this class
template<typename T, std::size_t Columns, std::size_t Rows>
class mat_base;
And I have this specialization
template<typename T, std::size_t ColumnsRows>
class mat_base<T, ColumnsRows, ColumnsRows>;
and whenever I try to use this partial specialization for a return type or variable I get an error that I haven't supplied enough template parameters :(
Heres an example of my usage that fails saying not enough arguments:
template<typename T, std::size_t ColumnsRows>
mat_base<T, ColumnsRows> transpose(const mat_base<T, ColumnsRows> &lhs, const mat_base<T, ColumnsRows> &rhs);
Where as if I replace every instance of mat_base<T, ColumnsRows>
with mat_base<T, ColumnsRows, ColumnsRows>
it works fine.
What exactly is my issue in this? What am I not understanding correctly here?