Re: How to read a 8-bit grayscale JPEG image using C++?
On Jul 19, 11:54 pm, Kai-Uwe Bux <jkherci...@gmx.net> wrote:
BobR wrote:
[snip]
Kai-Uwe Bux: Your example does not compile for me.
It slices off the '.at()' and '.size()' of the std::vector (and who kno=
ws
what else)! Seems to store the iterators, not 'char's.
std::vector<char> Image(
std::istreambuf_iterator<char>( PicIn ),
std::istreambuf_iterator<char>() ); // the ( ...() ) fails here
Are you sure, you copied the code correctly? I am pretty sure
that I put the second iterator argument within yet another
pair of parentheses:
buffer the_buf ( std::istreambuf_iterator<char>( infile ),
(std::istreambuf_iterator<char>() ) );
^^^ ^^^
What you wrote is parsed as a function declaration.
There is (or was for the longest time---I haven't verified with
the most recent versions) a bug in g++, in that it "committed"
to the function declaration as soon as it saw that the first
argument could be interpreted as a declaration. So:
buffer the_buf ( (std::istreambuf_iterator<char>( infile )),
(std::istreambuf_iterator<char>() ) );
worked, but putting the parentheses only around the second
argument didn't.
I've gotten into the habit of putting it around all of them, so
I won't have noticed if they've fixed this. (Probably have. I
ran into it some time ago, and they tend to fix bugs pretty
quickly.)
--
James Kanze (GABI Software) email:james.kanze@gmail.com
Conseils en informatique orient=E9e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S=E9mard, 78210 St.-Cyr-l'=C9cole, France, +33 (0)1 30 23 00 34