I am going to unpublish the C++ version then. I might look into templates and write a new version sometime.
Thanks for prompt answer!
I don't mean to be lecturing you, but the canonical way in C++ to tackle this kind of stuff IS templating... (IMHO any other sol is code smell, and forbidding templates is irrelevant). Some achieved template use in codewars!
You will have to modify the C++ kata before I vote +++ :-)
Also, be careful about the MSVC preprocessor for this kata. MSVC preprocessor has been non-conformant for years. They recently (2018) released a conformant one, but the old one is still the default; you have to activate the correct one with a compiler switch (/Zc:preprocessor).
When you submit your solution on Codewars for C/C++, your module is linked with the the tests module. But what's happening in this kata is that your solution module is also directly included by the test suite (with #include "solution.txt"). Thus, you cannot define functions or templates because it violates the one-definition rule. You have to find another way to implement stringify.
As a side note, I dont know much about C++ and templates, I wrote the C++ version to test a behavior. It is entirely possible that the kata does not make a lot of sense in C++, because templates would be a way better solution :-(
To answer your second question, a, b and c are to be taken literally; they are not strings ;-)
Nice kata !
Drafted a solution that works fine on my MSVC, using templates and specialization but...
Seems to have a problem of duplicated definition of 'template separator' and 'template stringify(...)' with an include 'solution.txt' ???
Question: for the triplet: 'a,b,c' in output string is not clear: do you mean le letters 'a','b',and 'c' or the std::stringified values ?
C translation (author left codewars)
Dart translation added.
it should be fixed
Language version is invalid for C, maybe try forking this in the latest language version