Como implementar o tempo limite para a função em c ++

Eu tenho a função f; Eu quero lançar a exceção 1s após o início f. Não consigo modificar f (). É possível fazê-lo em c ++?

try {
   f();
}
catch (TimeoutException& e) {
//timeout
}