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 
main()28 int main()
29 {
30    return 0;
31 }
32 
33 
34