Criando um fluxo de entrada a partir da memória constante

Eu tenho alguns dados em um buffer apontado por umconst char* ponteiro. Os dados são apenas uma string ASCII. Eu sei seu tamanho. Gostaria de poder lê-lo da mesma forma que os dados são lidos a partir de fluxos. Eu estou procurando uma solução que me permita escrever 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;

Condição importante:os dados não devem ser copiados ou alterados de qualquer forma (caso contrário, eu usaria apenas um fluxo de seqüência de caracteres. Para o meu melhor conhecimento, não é possível criar um fluxo de seqüência de caracteres de um ponteiro const char sem copiar os dados.)

questionAnswers(2)

yourAnswerToTheQuestion