Si utilizas C++11, tienes la clase std::thread, con un funcionamiento muy sencillo:
std::thread th(&funcion,parametro1,parametro2 /* ... */);
th.detach();
Le pasas como primer parámetro, la dirección de la función, y luego los parámetros que ha de pasarle a esa función. Desde que creas el objeto, el nuevo hilo empieza a funcionar con la función.
Tienes varias funciones, como
th.join(), que deja el hilo que la llama en pausa hasta que "th" termina la función.