1 // (C) Copyright Steve Cleary & John Maddock 2000. 2 // Use, modification and distribution are subject to the 3 // Boost Software License, Version 1.0. (See accompanying file 4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 6 // See http://www.boost.org for most recent version including documentation. 7 8 #include <boost/static_assert.hpp> 9 10 // 11 // this tests should fail: 12 // 13 typedef char a1[2]; 14 typedef char a2[3]; 15 16 struct Bob 17 { 18 private: // can be in private, to avoid namespace pollution 19 BOOST_STATIC_ASSERT(sizeof(a1) == sizeof(a2)); // will not compile 20 public: 21 22 // Member function scope: provides access to member variables 23 int x; 24 char c; fBob25 int f() 26 { 27 #ifndef _MSC_VER // broken sizeof in VC6 28 BOOST_STATIC_ASSERT(sizeof(x) == 4); 29 BOOST_STATIC_ASSERT(sizeof(c) == 1); 30 #endif 31 return x; 32 } 33 }; 34 35 36 37 38 39 40