Files
boost_static_assert/static_assert_example_3.cpp
T

34 lines
953 B
C++
Raw Normal View History

2000-12-03 12:29:42 +00:00
// (C) Copyright John Maddock 2000.
2003-10-04 11:29:20 +00:00
// Use, modification and distribution are subject to the
2003-10-02 11:53:35 +00:00
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
2000-12-03 12:29:42 +00:00
// See http://www.boost.org for most recent version including documentation.
2008-12-23 12:03:43 +00:00
#include <limits>
2001-04-01 11:59:18 +00:00
#include <boost/limits.hpp>
2000-12-03 12:29:42 +00:00
#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
2000-12-03 12:29:42 +00:00
&& 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;
}
2003-10-02 11:53:35 +00:00