Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2006-05-27 00:30:20


"Gennadiy Rozental" <gennadiy.rozental_at_[hidden]> writes:

>> An ipp file is not typically a translation unit by itself.
>
> Ignoring technicalliy it is in my case.

I don't know what you mean.

>> It is included by test_tools.hpp
>
> It's not. unit_test_parameters.ipp is only included by ":included"
> components of Boost.Test.

I don't know what that means either.

>> which gets included in many of the
>> serialization tests... or at least, it is indirectly included by
>> libs/serialization/test/test_exported.cpp, and the only test header I
>> can see there is boost/test/test_tools.hpp.

So, if not via test_tools.hpp, then how does it end up in that
translation unit?

> I assume more than one
>> TU are allowed to include test_tools.hpp.
>
> Yes.

Although if your claim is true (that unit_test_parameters.ipp isn't included by
test_tools.hpp) that's irrelevant.

>>>> Among other things, would allow the test library author to handle
>>>> the codegen bug once and for all (e.g. by specifying build
>>>> requirements).
>>>
>>> Among other things you could mention what bug and what building
>>> requirements you are referring to.
>>
>> I don't know how to describe the bug; the test program crashes inside
>> the initialization of a vector inside of
>> retrieve_framework_parameter. The following build command reproduces the
>> problem for me:
>>
>> myjam -sTOOLS="borland" -sSPIRIT_ROOT=c:/src/spirit-1.6 -sBUILD="release
>> <debug-symbols>on" -sBOOST_ARCHIVE_LIST=text_archive.hpp
>> test_exported_text_archive
>
> I couldn't find this target in appropriate Jamfile

That's because you're not a human Jam interpreter. It's in there.

> and I don't have spirit
> to replicate the error.

So download it. It takes about ten seconds over a fast connection.
Or don't, if you don't want to look at this problem.

But my question remains: why is that function in a header when it
could be compiled into the library? Seems pretty inefficient, at
least for Boost, which runs many many tests using your library, to
compile that function body over and over.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk