⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 limit_traits.h

📁 新版本TR1的stl
💻 H
📖 第 1 页 / 共 2 页
字号:
#  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 + -