Boost logo

Boost :

Subject: Re: [boost] hex/unhex()?
From: michi7x7 (michi_at_[hidden])
Date: 2011-11-02 16:32:14


>>> As Marshal pointed out, Spirit supports that easily
> Actually, please disregard what I wrote, it is complete nonsense. I misread
> your initial mail.
> Note to self: drink coffee before responding to email!
> Regards Hartmut

Actually, it's not really difficult.
hex() is done, unhex() is up to someone else, cause I've got to go:

#include <iostream>
#include <string>

#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/karma.hpp>

namespace hex_cast
    template<class T>
    std::string hex(T const& input)
        typedef typename T::const_iterator iterator_t;

        std::string temp;
        temp.reserve(input.size() * sizeof(typename T::value_type) * 2);

        iterator_t it(input.begin()), end(input.end());

        using boost::spirit::karma::generate;
        using boost::spirit::karma::hex;

        for(; it != end; ++it)
            generate(std::back_inserter(temp), hex, *it);

        return temp;

int main()
    std::string s("abode");
    std::cout << hex_cast::hex(s) << std::endl;

    return 0;



Boost list run by bdawes at, gregod at, cpdaniel at, john at