std :: fill параметризован по типу аргумента объекта;он не требует аргумента Iterator :: value_type.Таким образом, как говорит In silico, C ++ 03 не может создать экземпляр шаблона с локальным типом.
Однако в C ++ 0x вы можете использовать локальные типы для создания экземпляров шаблонов, поскольку они получают внешниесвязь.