]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/static_assert/static_assert_test_fail_6.cpp
Add patch for failing prerm scripts
[ceph.git] / ceph / src / boost / libs / static_assert / static_assert_test_fail_6.cpp
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>
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
35 void 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