Re: [Boost-users] [iostreams] array_sink

From: Jeff Flinn [mailto:TriumphSprint2000@hotmail.com]
My reading of the docs states that array_sink models the concept sink, meaning that the following should compile:
[snip]
io::array_sink lSink(x,4);
const char* y = "abc";
io::write( lSink, y, 4 );
[snip]
I must be doing something obviously wrong, on VC7.1 I get:
c:\boost\boost_1_33_1\boost\iostreams\write.hpp(118) : error C2039: 'write' : is not a member of 'boost::iostreams::basic_array_sink<Ch>'
[snip] Hi Jeff, I think this is related to the fact that array_sink is a "direct" sink. At the bottom of this page: http://www.boost.org/libs/iostreams/doc/?path=4.1.1.7 there is mention that "io::write()" is subject the the precondition that the sink is *not* convertible to "direct_tag". BTW, in the "details" of the iostreams library, there is a "direct_adapter" which seems to allow one to expose a "direct" Device as an "indirect" one. HTH, Éric Malenfant

Eric, EMalenfant@interstarinc.com wrote:
From: Jeff Flinn [mailto:TriumphSprint2000@hotmail.com]
My reading of the docs states that array_sink models the concept sink, meaning that the following should compile:
[snip]
io::array_sink lSink(x,4);
const char* y = "abc";
io::write( lSink, y, 4 );
[snip]
I think this is related to the fact that array_sink is a "direct" sink. At the bottom of this page: http://www.boost.org/libs/iostreams/doc/?path=4.1.1.7 there is mention that "io::write()" is subject the the precondition that the sink is *not* convertible to "direct_tag".
Aarrgh, just when I thought I understood "concepts"...
BTW, in the "details" of the iostreams library, there is a "direct_adapter" which seems to allow one to expose a "direct" Device as an "indirect" one.
Thanks for the info, I'll check it out. I assume that this is more efficient than using an io::stream_buffer? Thanks, Jeff
participants (2)
-
EMalenfant@interstarinc.com
-
Jeff Flinn