Creando un flujo de entrada desde la memoria constante

Tengo algunos datos en un búfer apuntado por unconst char* puntero. Los datos son solo una cadena ASCII. Sé que su tamaño. Me gustaría poder leerlo de la misma manera en que se leen los datos de las secuencias. Estoy buscando una solución que me permita escribir código como este:

// for example, data points to a string "42 3.14 blah"
MemoryStreamWrapper in(data, data_size);
int x;
float y;
std::string w;
in >> x >> y >> w;

Condición importante:Los datos no deben ser copiados o alterados de ninguna manera. (De lo contrario, solo usaría una secuencia de cadenas. Que yo sepa, no es posible crear una secuencia de cadenas desde un puntero de carácter constante sin copiar los datos).

Respuestas a la pregunta(2)

Su respuesta a la pregunta