Доброго дня all!
Пишу небольшой шаблон, но собираться никак не хочет, не могу понять в чем проблема подскажите кому не сложно:template<typename T> 
void removeSubstrs( basic_string<T>& s, 
                    const basic_string<T>& p) {
    basic_string<T>::size_type n;
    n =  p.length( );
//    string::size_type n = p.length( );
    for ( basic_string<T>::size_type i = s.find(p);  i != basic_string<T>::npos;  i = s.find(p)) s.erase(i, n);
};
При сборке получаю ошибки:
In file included from ./2.cpp:2:
./txtlib_.h: In function ‘void removeSubstrs(std::basic_string<_CharT, std::char_traits<_CharT>, std::allocator<_CharT> >&, const std::basic_string<_CharT, std::char_traits<_CharT>, std::allocator<_CharT> >&)’:
./txtlib_.h:65: ошибка: expected `;' before ‘n’
./txtlib_.h:66: ошибка: нет декларации ‘n’ в этой области видимости
./txtlib_.h:68: ошибка: expected `;' before ‘i’
./txtlib_.h:68: ошибка: нет декларации ‘i’ в этой области видимости
PS: Без шаблона функция работает нормально.