• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
15 template <class Int, class Char>
16 struct 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>
fBill27   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 
35 Bill<int, char> b;
36 
37 
38 
39 
40