Fix formatting under std::setw
The current implementation of operator<<
in io.hh gives the wrong output if used in combination with std::setw
: Only the type_name_prefix
is formatted in the way the whole string should be formatted in.
Comparison of tg::dvec2
vs. std::complex
(std::setfill
for visibility):
setwbug.cpp
This prints with the current implementation
**************dvec2(1, 2)
**********(3,4)
d**************vec2(1, 2)
(3,4)**********
A correct output would be
****dvec2(1, 2)
**********(3,4)
dvec2(1, 2)****
(3,4)**********
This PR fixes that by implementing operator<<
similar to the operator<<
-implementation for std::complex
of libc++: see here, ll. 1440-1450