I
reported this problem a few months ago – apparently it is a feature that this
only works on input data that is a multiple of 3 bytes
long
Andrew
From:
boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org]
On Behalf Of Terdale, Shantibhushan
Sent: Tuesday, August 26,
2008 12:16 PM
To: boost-users@lists.boost.org
Subject:
[Boost-users] base64_from_binary Q
I am
using this sample to prove myself that base64_from_binary and binary_from_base64
can be used in my app. But I am having little problem and not able to understand
whats missing
Here is
the sample
#include "boost/archive/iterators/base64_from_binary.hpp"
#include "boost/archive/iterators/binary_from_base64.hpp"
#include "boost/archive/iterators/transform_width.hpp"
#include <string>
#include <iostream>
using namespace
std;
using namespace
boost::archive::iterators;
typedef
base64_from_binary<
transform_width<std::string::iterator, 6,
sizeof(char) *
8>
> base64_t;
typedef
transform_width<
binary_from_base64<std::string::iterator>, sizeof(char) * 8,
6
> binary_t;
int main()
{
string str = "Hello, world!";
cout << str <<
endl;
string enc(base64_t(str.begin()),
base64_t(str.end())); //
Problem here. It works when I specify "str.end()-1" instead of "str.end()" but I
loose last character after decoding.
cout << enc <<
endl;
string dec(binary_t(enc.begin()),
binary_t(enc.end()));
cout << dec <<
endl;
return 0;
}
Will
appreciate any help. I tried std::copy as well and have same
problem.