#include <utility> // std::pair
#include <iostream> // std::cout
#include <string>
int main () {
// Cast a dynamically allocated string to 'void*'.
void *vp = static_cast<void*>(new std::string("it's easy to break stuff like this!"));
// Then, in the function that's using the UserEvent:
// Cast it back to a string pointer.
std::string *sp = static_cast<std::string*>(vp);
// You could use 'sp' directly, or this, which does a copy.
std::string s = *sp;
// Don't forget to destroy the memory that you've allocated.
delete sp;
}
std::string s1 = "hello";
void *sp = &s1;
std::string ss1 = *static_cast<std::string*>(sp);
参见:https://codeday.me/bug/20181012/289220.html