📄 limit_traits.h
字号:
# ifdef STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
static const value_type minimum_value = STLSOFT_LIMIT_TRAITS__SINT8_MIN;
static const value_type maximum_value = STLSOFT_LIMIT_TRAITS__SINT8_MAX;
# endif /* STLSOFT_CF_MEMBER_CONSTANT_SUPPORT */
};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits_fixed<ss_uint8_t>
{
public:
typedef ss_uint8_t value_type;
public:
static value_type minimum() { return STLSOFT_LIMIT_TRAITS__UINT8_MIN; }
static value_type maximum() { return STLSOFT_LIMIT_TRAITS__UINT8_MAX; }
# ifdef STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
static const value_type minimum_value = STLSOFT_LIMIT_TRAITS__UINT8_MIN;
static const value_type maximum_value = STLSOFT_LIMIT_TRAITS__UINT8_MAX;
# endif /* STLSOFT_CF_MEMBER_CONSTANT_SUPPORT */
};
/* s/uint16 */
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits_fixed<ss_sint16_t>
{
public:
typedef ss_sint16_t value_type;
public:
static value_type minimum() { return STLSOFT_LIMIT_TRAITS__SINT16_MIN; }
static value_type maximum() { return STLSOFT_LIMIT_TRAITS__SINT16_MAX; }
# ifdef STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
static const value_type minimum_value = STLSOFT_LIMIT_TRAITS__SINT16_MIN;
static const value_type maximum_value = STLSOFT_LIMIT_TRAITS__SINT16_MAX;
# endif /* STLSOFT_CF_MEMBER_CONSTANT_SUPPORT */
};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits_fixed<ss_uint16_t>
{
public:
typedef ss_uint16_t value_type;
public:
static value_type minimum() { return STLSOFT_LIMIT_TRAITS__UINT16_MIN; }
static value_type maximum() { return STLSOFT_LIMIT_TRAITS__UINT16_MAX; }
# ifdef STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
static const value_type minimum_value = STLSOFT_LIMIT_TRAITS__UINT16_MIN;
static const value_type maximum_value = STLSOFT_LIMIT_TRAITS__UINT16_MAX;
# endif /* STLSOFT_CF_MEMBER_CONSTANT_SUPPORT */
};
/* s/uint32 */
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits_fixed<ss_sint32_t>
{
public:
typedef ss_sint32_t value_type;
public:
static value_type minimum() { return STLSOFT_LIMIT_TRAITS__SINT32_MIN; }
static value_type maximum() { return STLSOFT_LIMIT_TRAITS__SINT32_MAX; }
# ifdef STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
static const value_type minimum_value = STLSOFT_LIMIT_TRAITS__SINT32_MIN;
static const value_type maximum_value = STLSOFT_LIMIT_TRAITS__SINT32_MAX;
# endif /* STLSOFT_CF_MEMBER_CONSTANT_SUPPORT */
};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits_fixed<ss_uint32_t>
{
public:
typedef ss_uint32_t value_type;
public:
static value_type minimum() { return STLSOFT_LIMIT_TRAITS__UINT32_MIN; }
static value_type maximum() { return STLSOFT_LIMIT_TRAITS__UINT32_MAX; }
# ifdef STLSOFT_CF_MEMBER_CONSTANT_SUPPORT
static const value_type minimum_value = STLSOFT_LIMIT_TRAITS__UINT32_MIN;
static const value_type maximum_value = STLSOFT_LIMIT_TRAITS__UINT32_MAX;
# endif /* STLSOFT_CF_MEMBER_CONSTANT_SUPPORT */
};
#ifdef STLSOFT_CF_64BIT_INT_SUPPORT
/* s/uint64 */
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits_fixed<ss_sint64_t>
{
public:
typedef ss_sint64_t value_type;
public:
static value_type minimum() { return STLSOFT_LIMIT_TRAITS__SINT64_MIN; }
static value_type maximum() { return STLSOFT_LIMIT_TRAITS__SINT64_MAX; }
# if defined(STLSOFT_CF_MEMBER_CONSTANT_SUPPORT) && \
!defined(STLSOFT_COMPILER_IS_BORLAND)
static const value_type minimum_value = STLSOFT_LIMIT_TRAITS__SINT64_MIN;
static const value_type maximum_value = STLSOFT_LIMIT_TRAITS__SINT64_MAX;
# endif /* STLSOFT_CF_MEMBER_CONSTANT_SUPPORT */
};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits_fixed<ss_uint64_t>
{
public:
typedef ss_uint64_t value_type;
public:
static value_type minimum() { return STLSOFT_LIMIT_TRAITS__UINT64_MIN; }
static value_type maximum() { return STLSOFT_LIMIT_TRAITS__UINT64_MAX; }
# if defined(STLSOFT_CF_MEMBER_CONSTANT_SUPPORT) && \
!defined(STLSOFT_COMPILER_IS_BORLAND)
static const value_type minimum_value = STLSOFT_LIMIT_TRAITS__UINT64_MIN;
static const value_type maximum_value = STLSOFT_LIMIT_TRAITS__UINT64_MAX;
# endif /* STLSOFT_CF_MEMBER_CONSTANT_SUPPORT */
};
#endif /* STLSOFT_CF_64BIT_INT_SUPPORT */
# endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */
#ifdef STLSOFT_CF_CHAR_DISTINCT_INT_TYPE
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<signed char>
: limit_traits_fixed<ss_sint8_t>
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<unsigned char>
: limit_traits_fixed<ss_uint8_t>
{};
#endif /* STLSOFT_CF_CHAR_DISTINCT_INT_TYPE */
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<char>
#ifdef STLSOFT_CF_CHAR_IS_UNSIGNED
: limit_traits_fixed<ss_uint8_t>
#else /* ? STLSOFT_CF_CHAR_IS_UNSIGNED */
: limit_traits_fixed<ss_sint8_t>
#endif /* STLSOFT_CF_CHAR_IS_UNSIGNED */
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<ss_sint8_t>
: limit_traits_fixed<ss_sint8_t>
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<ss_uint8_t>
: limit_traits_fixed<ss_uint8_t>
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<ss_sint16_t>
: limit_traits_fixed<ss_sint16_t>
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<ss_uint16_t>
: limit_traits_fixed<ss_uint16_t>
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<ss_sint32_t>
: limit_traits_fixed<ss_sint32_t>
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<ss_uint32_t>
: limit_traits_fixed<ss_uint32_t>
{};
#ifdef STLSOFT_CF_64BIT_INT_SUPPORT
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<ss_sint64_t>
: limit_traits_fixed<ss_sint64_t>
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<ss_uint64_t>
: limit_traits_fixed<ss_uint64_t>
{};
#endif /* STLSOFT_CF_64BIT_INT_SUPPORT */
#ifdef STLSOFT_CF_SHORT_DISTINCT_INT_TYPE
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<short>
: limit_traits_fixed<int_size_traits<sizeof(short)>::signed_type>
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<unsigned short>
: limit_traits_fixed<int_size_traits<sizeof(unsigned short)>::unsigned_type>
{};
#endif /* STLSOFT_CF_SHORT_DISTINCT_INT_TYPE */
#ifdef STLSOFT_CF_INT_DISTINCT_INT_TYPE
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<int>
: limit_traits_fixed<int_size_traits<sizeof(int)>::signed_type>
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<unsigned int>
: limit_traits_fixed<int_size_traits<sizeof(unsigned int)>::unsigned_type>
{};
#endif /* STLSOFT_CF_INT_DISTINCT_INT_TYPE */
#ifdef STLSOFT_CF_LONG_DISTINCT_INT_TYPE
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<long>
: limit_traits_fixed<int_size_traits<sizeof(long)>::signed_type>
{};
STLSOFT_TEMPLATE_SPECIALISATION
struct limit_traits<unsigned long>
: limit_traits_fixed<int_size_traits<sizeof(unsigned long)>::unsigned_type>
{};
#endif /* STLSOFT_CF_LONG_DISTINCT_INT_TYPE */
# endif /* !STLSOFT_DOCUMENTATION_SKIP_SECTION */
#endif /* __cplusplus */
/* /////////////////////////////////////////////////////////////////////////
* Unit-testing
*/
#ifdef STLSOFT_UNITTEST
# include "./unittest/limit_traits_unittest_.h"
#endif /* STLSOFT_UNITTEST */
/* ////////////////////////////////////////////////////////////////////// */
#ifndef _STLSOFT_NO_NAMESPACE
} /* namespace stlsoft */
#endif /* _STLSOFT_NO_NAMESPACE */
/* ////////////////////////////////////////////////////////////////////// */
#endif /* !STLSOFT_INCL_STLSOFT_UTIL_H_LIMIT_TRAITS */
/* ////////////////////////////////////////////////////////////////////// */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -