I'm pretty sure I've seen this asked on here before, but I can't seem to find the post when I tried searching, and I don't recall the answer.
Why is there no emplace or emplace_back for std::string?
I don't think it's related to the use of char, since you can have a vector of chars, and there's no problem with emplace_backing a char in the vector.