Re[4]: SRC: реализация atoi
От: orangy Россия
Дата: 29.08.02 08:20
Оценка:
Здравствуйте orangy, Вы писали:

O>Ты не совсем прав. Дело в том, что код годится и для итератора по char (легко изменить и для wchar_t), при этом не факт, что любой компилятор выбросит лишний вызов operator*()


Поправлю сам себя — с итераторами есть проблемка... Не додумал, s++ создаёт лишние временные объекты
для итераторов выглядит так:

template<typename iterator>
int new_atoi(iterator s)
{
    int sign=1, val=0;
    if (s) while ((*s == ' ' || *s == '\t') && *(++s)); else return 0;
    sign*=(*s == '-' && ++s)?-1:((*s == '+' && ++s),1);
    while (*s>='0' && *s<='9') { val*=10; val+=*s - '0'; ++s; }
    return val*sign;
}


Естественно, этот же шаблон годится и для указателей.
"Develop with pleasure!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.