It's a narrowing conversion. Unfortunately, GCC doesn't warn about that (though Visual C++ does).
Thanks for the responses, I guess it makes sense if int32_t is being converted to char and char assignment to std::string is allowed. I wish gcc would at least warn about that conversion as Elysia reports Visual C++ does. Who knew MS would be more user friendly?