Информация об изменениях

Сообщение Re[4]: std::back_insert_iterator::value_type от 23.07.2023 10:15

Изменено 23.07.2023 10:31 пффф

Re[4]: std::back_insert_iterator::value_type
Здравствуйте, sergii.p, Вы писали:

SP>ошибку конвертации можно убрать исправив лямбду


SP>
SP>[n=std::uint8_t{0}]() mutable { return static_cast<char>(++n); })
SP>


SP>наверное это более правильно, потому как библиотечный код не должен делать неявные преобразования.


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

SP>ошибку конвертации можно убрать исправив лямбду


SP>
SP>[n=std::uint8_t{0}]() mutable { return static_cast<char>(++n); })
SP>


SP>наверное это более правильно, потому как библиотечный код не должен делать неявные преобразования.


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

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