With std::byte standardized, when do we use a void* and when a byte*?
问题 C++17 will include std::byte, a type for one atomically-addressable unit of memory, having 8 bits on typical computers. Before this standardization, there is already a bit of dilemma when pointing into "raw" memory - between using char* / unsigned char* on one hand or void * on the other. Now, one of reasons for prefering void * is removed - std::byte does not have the same connotations as a char ; it's about raw memory, not characters. So, my question is: What is a good rule of thumb, for