| // (C) Copyright John Maddock 2000. |
| // Use, modification and distribution are subject to the |
| // Boost Software License, Version 1.0. (See accompanying file |
| // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| |
| // See http://www.boost.org for most recent version including documentation. |
| |
| #include <limits> |
| #include <boost/limits.hpp> |
| #include <boost/static_assert.hpp> |
| |
| template <class UnsignedInt> |
| class myclass |
| { |
| private: |
| BOOST_STATIC_ASSERT((std::numeric_limits<UnsignedInt>::digits >= 16) |
| && std::numeric_limits<UnsignedInt>::is_specialized |
| && std::numeric_limits<UnsignedInt>::is_integer |
| && !std::numeric_limits<UnsignedInt>::is_signed); |
| public: |
| /* details here */ |
| }; |
| |
| myclass<unsigned> m1; // this should be OK |
| //myclass<int> m2; // this should fail |
| //myclass<unsigned char> m3; // and so should this |
| |
| int main() |
| { |
| return 0; |
| } |
| |
| |