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