]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/static_assert/example/static_assert_example_3.cpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / libs / static_assert / example / static_assert_example_3.cpp
1 // (C) Copyright 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 <limits>
9 #include <boost/limits.hpp>
10 #include <boost/static_assert.hpp>
11
12 template <class UnsignedInt>
13 class myclass
14 {
15 private:
16 BOOST_STATIC_ASSERT((std::numeric_limits<UnsignedInt>::digits >= 16)
17 && std::numeric_limits<UnsignedInt>::is_specialized
18 && std::numeric_limits<UnsignedInt>::is_integer
19 && !std::numeric_limits<UnsignedInt>::is_signed);
20 public:
21 /* details here */
22 };
23
24 myclass<unsigned> m1; // this should be OK
25 //myclass<int> m2; // this should fail
26 //myclass<unsigned char> m3; // and so should this
27
28 int main()
29 {
30 return 0;
31 }
32
33