Templated constructor of String should be deleted
The following discussions from !10 (merged) should be addressed:
This should be a free function, not a constructor (note that there is already
convertToStringwhich is overloaded for
bool). At the very least the constructor should be explicit.
The recursion should be avoided by deleting the templated constructor and using the free function
convertToStringexplicitly instead. It can be renamed to
toStringor something like that to make it shorter, c.f. std::to_string.