Boost logo

Boost Users :

From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2008-08-15 02:59:53


cowwoc <cowwoc_at_[hidden]> writes:

> When I compile my code against Boost 1.36 I get:
>
> 3>C:\Program Files\boost_1_36_0\boost/config/abi_prefix.hpp(19) : warning
> C4103: 'c:\program files\boost_1_36_0\boost\config\abi_prefix.hpp' :
> alignment changed after including header, may be due to missing #pragma
> pack(pop)

[snipped similar warnings]

> I don't recall seeing this in 1.35 and I compiled against it two days ago. I
> am compiling under Visual Studio 2008, in x64 mode. How do I fix these
> warnings?

Disable the warning in the Visual Studio project settings.

These warnings are because the thread library now saves and restores
the alignment settings using the boost abi_prefix.hpp and
abi_suffix.hpp headers (whereas it didn't in 1.35). Because the
necessary pragmas are in separate headers (push in abi_prefix, pop in
abi_suffix) the compiler is warning about it.

This is necessary because otherwise code compiled with non-standard
alignment may have subtle bugs due to the alignment changing (and thus
structure layout changing) between the compiled thread library and the
included headers.

Anthony

-- 
Anthony Williams            | Just Software Solutions Ltd
Custom Software Development | http://www.justsoftwaresolutions.co.uk
Registered in England, Company Number 5478976.
Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net