вот например, incomplete type - тоже типа форвард декларейшна
Но вообще лучше их прям сверху писать, под инклюдами, чтоб не дублировать в каждом параметре
Это да, почему-то в примерах анрила часто так делают, по-моему вообще не очень хорошо читаемый код получается.