Форвардная декларация позволяет отложить определение фактического типа до файла реализации. Это разрешено в заголовке для указателей или ссылок на объявленный вперед тип.
Мне сказали, что:
Возврат по значению не требует определения типа. Достаточное объявление достаточно
Может ли кто-нибудь подтвердить или опровергнуть это с помощью фактической цитаты из стандарта? У меня сложилось впечатление, что это не является законным.