¿Cómo obtener std :: puntero vectorial a los datos sin procesar?

Estoy tratando de usarstd::vector como unchar array.

Mi función toma un puntero vacío:

void process_data(const void *data);

Antes de que simplemente use este código:

char something[] = "my data here";
process_data(something);

Que funcionó como se esperaba.

Pero ahora necesito la dinámica destd::vector, así que probé este código en su lugar:

vector<char> something;
*cut*
process_data(something);

La pregunta es, ¿cómo paso el vector char a mi función para poder acceder a los datos brutos del vector (sin importar el formato que sea: flotantes, etc.)?

Intenté esto:

process_data(&something);

Y esto

process_data(&something.begin());

Pero devolvió un puntero a datos galimatizantes, y este último dio una advertencia:warning C4238: nonstandard extension used : class rvalue used as lvalue.

Respuestas a la pregunta(3)

Su respuesta a la pregunta