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:
|
2006-08-11 18:14:13 +00:00
|
|
|
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
|
|
|
|
2006-08-11 18:14:13 +00:00
|
|
|
|