24 #ifndef STATICLIB_SUPPORT_IS_INTEGER_HPP
25 #define STATICLIB_SUPPORT_IS_INTEGER_HPP
30 #include <type_traits>
42 typename std::enable_if<std::is_unsigned<T>::value,
bool>::type
is_int32(T val) {
43 return val <= static_cast<uint32_t>(std::numeric_limits<int32_t>::max());
53 typename std::enable_if<!std::is_unsigned<T>::value,
bool>::type
is_int32(T val) {
54 return val >= std::numeric_limits<int32_t>::min() && val <= std::numeric_limits<int32_t>::max();
64 typename std::enable_if<std::is_unsigned<T>::value,
bool>::type
is_uint32(T val) {
65 return val <= std::numeric_limits<uint32_t>::max();
75 typename std::enable_if<!std::is_unsigned<T>::value,
bool>::type
is_uint32(T val) {
76 return val >= 0 && val <= static_cast<int64_t> (std::numeric_limits<uint32_t>::max());
97 typename std::enable_if<std::is_unsigned<T>::value,
bool>::type
is_int16(T val) {
98 return val <= static_cast<uint16_t> (std::numeric_limits<int16_t>::max());
107 template <
typename T>
108 typename std::enable_if<!std::is_unsigned<T>::value,
bool>::type
is_int16(T val) {
109 return val >= std::numeric_limits<int16_t>::min() && val <= std::numeric_limits<int16_t>::max();
118 template <
typename T>
119 typename std::enable_if<std::is_unsigned<T>::value,
bool>::type
is_uint16(T val) {
120 return val <= std::numeric_limits<uint16_t>::max();
129 template <
typename T>
130 typename std::enable_if<!std::is_unsigned<T>::value,
bool>::type
is_uint16(T val) {
131 return val >= 0 && val <= static_cast<int32_t> (std::numeric_limits<uint16_t>::max());
140 template <
typename T>
151 template <
typename T>
152 typename std::enable_if<std::is_unsigned<T>::value,
bool>::type
is_int64(T val) {
153 return val <= static_cast<uint64_t> (std::numeric_limits<int64_t>::max());
162 template <
typename T>
163 typename std::enable_if<!std::is_unsigned<T>::value,
bool>::type
is_int64(T val) {
164 return val >= std::numeric_limits<int64_t>::min() && val <= std::numeric_limits<int64_t>::max();
173 template <
typename T>
174 typename std::enable_if<std::is_unsigned<T>::value,
bool>::type
is_uint64(T val) {
175 return val <= std::numeric_limits<uint64_t>::max();
184 template <
typename T>
185 typename std::enable_if<!std::is_unsigned<T>::value,
bool>::type
is_uint64(T val) {
186 return val >= 0 && val <= std::numeric_limits<int64_t>::max();
195 template <
typename T>
206 template <
typename T>
207 typename std::enable_if<std::is_unsigned<T>::value,
bool>::type
is_streamsize(T val) {
208 return val <= static_cast<std::size_t> (std::numeric_limits<std::streamsize>::max());
217 template <
typename T>
218 typename std::enable_if<!std::is_unsigned<T>::value,
bool>::type
is_streamsize(T val) {
219 return val >= std::numeric_limits<std::streamsize>::min() && val <= std::numeric_limits<std::streamsize>::max();
228 template <
typename T>
229 typename std::enable_if<std::is_unsigned<T>::value,
bool>::type
is_sizet(T val) {
230 return val <= std::numeric_limits<size_t>::max();
239 template <
typename T>
240 typename std::enable_if<!std::is_unsigned<T>::value,
bool>::type
is_sizet(T val) {
244 return static_cast<uint64_t
>(val) <= std::numeric_limits<size_t>::max();
253 template <
typename T>