]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
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 | Bill<int, char> b; | |
36 | ||
37 | ||
38 | ||
39 |