Maneira mais simples de ler um arquivo CSV mapeado para a memória?

Quando leio de arquivos em C ++ (11), mapeio-os para a memória usando:

boost::interprocess::file_mapping* fm = new file_mapping(path, boost::interprocess::read_only);
boost::interprocess::mapped_region* region = new mapped_region(*fm, boost::interprocess::read_only);
char* bytes = static_cast<char*>(region->get_address());

O que é bom quando desejo ler byte a byte extremamente rápido. No entanto, criei um arquivo csv que gostaria de mapear para a memória, ler cada linha e dividir cada linha na vírgula.

Existe uma maneira de fazer isso com algumas modificações do meu código acima?

(Estou mapeando para a memória porque tenho muita memória e não quero nenhum gargalo com o streaming de disco / E / S).

questionAnswers(2)

yourAnswerToTheQuestion