Hi,
BOOST_STATIC_ASSERT has different behavior on different
platforms
Boost 1.34
-------- File foo01. cpp --------
#include <boost/static_assert.hpp>
struct Foo
{
int m_value;
Foo();
};
Foo::Foo()
{
BOOST_STATIC_ASSERT(sizeof(this->m_value) == 4);
}
int main()
{
Foo f;
return 0;
}
---------------------------------
No compilation errors on UNIX compilers
HP: aCC: HP C/aC++ B3910B A.06.25.01 [May 16 2010]
Sun: C++ 5.9 SunOS_sparc Patch 124863-01 2007/07/25
AIX: IBM XL C/C++
Linux: Intel(R) C++ Intel(R) 64 Compiler, Version 11.0
There are compilation errors on Windows compiler
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762
for 80x86
foo01.cpp
foo01.cpp(11) : error C2355: 'this' : can only be referenced
inside non-static member functions
foo01.cpp(11) : error C2227: left of '->m_value' must
point to class/struct/union/generic type
foo01.cpp(11) : error C2027: use of undefined type 'boost::STATIC_ASSERTION_FAILURE'
C:\ADJUST\3rdParties\boost_1_34_0\boost/static_assert.hpp(34)
: see declaration of 'boost::STATIC_ASSERTION_FAILURE'
Regards,