static_assert/example/static_assert_example_3.cpp
2016-06-14 18:37:24 +01:00

34 lines
953 B
C++

// (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;
}