Favicon
Gravatar

BOOST_MPL_ASSERT_MSG producing linking problems in MSVC++ 8.0

Hello,

I found the following problem when using BOOST_MPL_ASSERT_MSG
under Visual Studio 2005 Express Edition:

* Create a basic console project
* Include files foo1.cpp and foo2.cpp (files attached)
* Build; the following error shows up at linking time:

>Linking...
>foo2.obj : error LNK2005: "public: static struct boost::mpl::failed
 * * * * * * * * * * * * (__thiscall `bool __cdecl f<int>(void)'::`2'
::ALWAYS_TRUE::** * * * * * * * * * * __cdecl `bool __cdecl f<int>
(void)'::`2'::ALWAYS_TRUE0::assert_arg(void))(int)"
(?assert_arg <at> ALWAYS_TRUE0@?1???$f <at> H@@YA_NXZ <at> SAPAPAPAPAPAPAPAPAPAPAPAP8<mailto:?assert_arg <at> ALWAYS_TRUE0@?1???$f <at> H@@YA_NXZ <at> SAPAPAPAPAPAPAPAPAPAPAPAP8>
ALWAYS_TRUE@?1???$f <at> H@@YA_NXZ <at> AEPAPAPAPAPAPAPAPAPAPAPAPAUfailed <at> mpl <at> boost@@H <at> ZXZ<mailto:ALWAYS_TRUE@?1???$f <at> H@@YA_NXZ <at> AEPAPAPAPAPAPAPAPAPAPAPAPAUfailed <at> mpl <at> boost@@H <at> ZXZ>)
already defined in foo1.obj
This duplication problem happens only when BOOST_MPL_ASSERT_MSG
is used at function or member function level. At class level everything
works OK.

Has anyone seen this before? I've created a ticket for this issue:
http://svn.boost.org/trac/boost/ticket/2262

Thank you,

Joaquín M López Muñoz
Telefónica, Investigación y Desarollo
(Continue reading)


Gmane