diff --git a/matrix.cpp b/matrix.cpp index 00ccbed8..0ea559e1 100644 --- a/matrix.cpp +++ b/matrix.cpp @@ -349,3 +349,26 @@ cruft::to_euler (const matrix &m) template cruft::vector<3,float> cruft::to_euler (const matrix<3,3,float>&); template cruft::vector<3,float> cruft::to_euler (const matrix<4,4,float>&); + +/////////////////////////////////////////////////////////////////////////////// +#include "iterator/infix.hpp" +#include "coord/iostream.hpp" + +#include + + +template +std::ostream& +cruft::operator<< (std::ostream &os, matrix const &m) +{ + os << '['; + std::copy ( + std::cbegin (m), + std::cend (m), + iterator::infix_iterator (os, ", ") + ); + return os << ']'; +} + + +template std::ostream& cruft::operator<< (std::ostream&, matrix<4,4,f32> const&); \ No newline at end of file diff --git a/matrix.hpp b/matrix.hpp index d6bf4502..3bee6ce0 100644 --- a/matrix.hpp +++ b/matrix.hpp @@ -544,22 +544,11 @@ namespace cruft { } -#include "iterator/infix.hpp" -#include "coord/iostream.hpp" -#include +#include namespace cruft { /////////////////////////////////////////////////////////////////////////// template std::ostream& - operator<< (std::ostream &os, const matrix &m) - { - os << '['; - std::copy ( - std::cbegin (m), - std::cend (m), - iterator::infix_iterator (os, ", ") - ); - return os << ']'; - } -}; + operator<< (std::ostream &os, matrix const&); +}