This operator+
is used here (a pointer to single char
that is not null-terminated is not really suitable). Yes, most definitely undefined behavior.
lhs
– string, character, or pointer to the first character in a null-terminated array
Just make std::string
the common type to fix it:
((d == '\0') ? std::string("null character") : std::string(1, d))
And don’t form switch
–case
statements like that.
2
solved Why does a C++ pointer to char act as a character string despite the lack of a null terminator?