Both static_cast and reinterpret_cast seem to work fine for casting void* to another pointer type. Is there a good reason to favor one over the other?
I suggest using the weakest possible cast always.
reinterpret_cast may be used to cast a pointer to a float. The more structure-breaking the cast is, the more attention using it requires.
In case of char*, I'd use c-style cast, until we have some reinterpret_pointer_cast, because it's weaker and nothing else is sufficient.