Trim
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.
Чёт я туплю ((
Пишу функцию trim, которая удаляет лидирующие и концевые пробелы в строке:
Второй вызов find_if возвращает reverse_iterator, а мне нужен прямой. Как победить?
1) Здесь понадобится typename:
2) Чтобы получить доступ к основному итератору, есть функция-член base:
3) Зачем танцы с basic_string и шаблонами? Почему не просто std::string? Код всё равно прибит гвоздями к isspace.
Спасибо.
А почему здесь необходим typename?
Задумка есть обобщить это как минимум на wchar_t.
Имя зависимо от параметра шаблона, поэтому необходим typename.
http://alenacpp.blogspot.ru/2006/08/typename.html
В VS и без typename будет работать, но это лишь потому, что у них парсер не от мира сего и не умеет в two phase name lookup, поэтому там даже такая хрень компилируется:
Конечно же, до использования. А вот при нормальном разрешении имен в шаблонах, это привело бы к ошибке уже до использования foo.