Cuál es la forma correcta de manejar eventos en C ++?

Tengo una aplicación que necesita responder a ciertos eventos de la siguiente manera:

void someMethodWithinSomeClass() {
    while (true) {
        wait for event;
        if (event == SomeEvent) {
            doSomething();
            continue;
        }
        if (event == SomeOtherEvent) {
            doSomethingElse();
            continue;
        }
    } 
}

Esto se estaría ejecutando es un hilo. En algunos otros hilos, las operaciones crearían y dispararían los Eventos.

¿Cómo consigo que estos eventos lleguen al método / clase anterior? ¿Cuál es la estrategia o arquitectura adecuada para implementar el manejo de eventos en C ++?

Respuestas a la pregunta(8)

Su respuesta a la pregunta