Re[5]: std::back_insert_iterator::value_type
От: Sm0ke Россия ksi
Дата: 23.07.23 21:25
Оценка:
Здравствуйте, пффф, Вы писали:

П>Можно, но у меня нет лямбды, есть функция, которая получает два итератора на байты, и OutputIterator. Этот OutputIterator я создаю для std::string, но ничто не должно мне помешать сделать тоже самое для вектора из uint8_t. Поэтому я хотел скастить к OutputIterator::value_type, но у back_insert_iterator это всегда void. Сейчас ковыряюсь через iterator_traits, но там тоже какое-то г полезло


П>UPD Переделал пример, как это у меня с шаблоном, и как я пытаюсь с кастом к value_type — https://gcc.godbolt.org/z/5n89nv6jY


Получить value_type можно через container_type итератора.

using IterType = OutputIterator;
using IterCharType = typename IterType :: container_type :: value_type;
for(size_t i = 0; i < num; ++i, ++iter)
{
  *iter = static_cast<IterCharType>( func() );
}


Вот так должно работать. https://gcc.godbolt.org/z/Knfa41Tbc
Отредактировано 23.07.2023 21:25 Sm0ke . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.