I've answered this question by giving my view on how the problem in the code could have been found by stripping the code bit by bit while keeping the code compilable, eventually getting to a MWE where the problem is obvious template<typename T> Obj::Obj(T);
is making operator<<
work with practically anything).
I posted the answer, because it took some of my time to copy the code, paste it in my editor, and start removing pieces by trial and error.
However, as it turns out, the problem has nothing to do with what the title and the wannabe-MWE-but-not-quite refer to, i.e. type-erasure.
Therefore, I initially thought the question was to be changed in its title and content, but then realized it would become a totally different, likely already asked-and-answered question.
And that's what it is, after all. Which was not clear at the beginning because it was unvoluntarily masked in a more complex question.
What action, if any, should be taken on the specific question I linked to?