$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [iostreams] #2406: implementation in header causes link errors
From: eg (egoots_at_[hidden])
Date: 2009-06-03 15:10:28
Vladimir Prus wrote:
> Looking at Trac, I've run into the bug above, which seems both fairly
> severe and easy to fix, so I took the liberty to commit a patch:
>
> https://svn.boost.org/trac/boost/changeset/53427
>
> I've tested it on Linux. Can somebody give it a try on Windows?
> While I've added necessary BOOST_IOSTREAMS_DECL, I might have missed
> something.
>
Has anyone tested this on Windows for you yet?
Before testing your patch, I tried to reproduce #2406 on Windows using
MSVC 7.1 but was unable to do so with Boost_1_39_0.
Perhaps my interpretation of the issue, and hence my test case is
incorrect.
Case #2406 says: "gzip.hpp has some implementation in the header which
will cause link errors if the component is used in more than one place"
My test case consisted of a main.cpp which included gzip.hpp and a
second module which also included gzip.hpp.
In both modules, they did something like:
std::string str("This is my Test file\n");
io::filtering_ostream out;
out.push(io::gzip_compressor());
out.push(io::file_sink("TestFile.gz", std::ios_base::out |
std::ios_base::binary));
out.write(str.c_str(), str.size());
Should I be getting the link error? ... or is there some other way to
trigger this issue?
Once I can reproduce it, I would be happy to try it again on trunk which
has your patch applied... assuming someone has not already confirmed it
for you.