У вас на самом деле две проблемы.
Во-первых, объявить typedef вперёд довольно сложно в C ++, как уже указывал Кирилл.
Во-вторых, ifstream
является typedef для конкретного экземпляра шаблона basic_ifstream
- для того, чтобы компилятор мог расширять шаблон, он должен уже иметь тело шаблона, что означает невозможно переслать объявление экземпляра шаблона.