Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_34_1/libs/static_assert/static_assert_test_fail_6.cpp @ 33

Last change on this file since 33 was 29, checked in by landauf, 16 years ago

updated boost from 1_33_1 to 1_34_1

File size: 1.1 KB
Line 
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// all these tests should fail:
12//
13
14// Template class scope
15template <class Int, class Char>
16struct Bill
17{
18  private:  // can be in private, to avoid namespace pollution
19    BOOST_STATIC_ASSERT(sizeof(Int) == 4);
20    //BOOST_STATIC_ASSERT(sizeof(Int) == sizeof(Char)); // should not compile when instantiated
21  public:
22
23  // Template member function scope: provides access to member variables
24  Int x;
25  Char c;
26  template <class Int2, class Char2>
27  void f(Int2 , Char2 )
28  {
29    BOOST_STATIC_ASSERT(sizeof(Int) == sizeof(Int2));
30    BOOST_STATIC_ASSERT(sizeof(Char) == sizeof(Char2));
31    BOOST_STATIC_ASSERT(sizeof(Int) == sizeof(Char)); // should not compile when instantiated
32  }
33};
34
35void foo()
36{
37   int i = 0;
38   char c = 0;
39   Bill<int, char> b;
40   // this should fail:
41   b.f(i, c);
42}
43
44
45
46
Note: See TracBrowser for help on using the repository browser.