/Src/Dependencies/Boost/libs/static_assert/static_assert_example_3.cpp
http://hadesmem.googlecode.com/ · C++ · 33 lines · 18 code · 7 blank · 8 comment · 3 complexity · f30883d7631f59caafd19e25c38a98c4 MD5 · raw file
- // (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;
- }