Я использую архивные итераторы Boost для кодирования и декодирования base64. Я могу без проблем создать пару итераторов, представляющих закодированную строку, и использовать их для создания таких типов, как std::string. Проблема возникает, когда я пытаюсь использовать эти итераторы для создания std::ranges::subrange, компилятор сообщает мне, что итераторы не удовлетворяют ограничениям шаблона класса.
Код: Выделить всё
using namespace boost::archive::iterators;
using encode = base64_from_binary;
std::string s("Hello World!");
encode b(s.begin());
encode e(s.end());
// works no problem, prints base64 encoded text
std::string output_string(b, e);
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78185568/creating-std-subrange-from-boost-archive-iterators[/url]