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

📄 limit_traits.h

📁 用STL的方式封装了WindowsAPI、COM调用、ACE、ATL、MFC、WTL等多种组件
💻 H
📖 第 1 页 / 共 2 页
字号:

public:
    static value_type       minimum() { return STLSOFT_LIMIT_TRAITS__SINT8_MIN; }
    static value_type       maximum() { return STLSOFT_LIMIT_TRAITS__SINT8_MAX; }

#  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 */


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>
{};

#ifdef STLSOFT_CF_16BIT_INT_EXTENDED_TYPE_IS_DISTINCT
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>
{};
#endif // STLSOFT_CF_16BIT_INT_EXTENDED_TYPE_IS_DISTINCT

#ifdef STLSOFT_CF_32BIT_INT_EXTENDED_TYPE_IS_DISTINCT
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>
{};
#endif // STLSOFT_CF_32BIT_INT_EXTENDED_TYPE_IS_DISTINCT

#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 */


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>
{};

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>
{};

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_DOCUMENTATION_SKIP_SECTION */

#endif /* __cplusplus */

/* ////////////////////////////////////////////////////////////////////// */

#ifndef _STLSOFT_NO_NAMESPACE
} /* namespace stlsoft */
#endif /* _STLSOFT_NO_NAMESPACE */

/* ////////////////////////////////////////////////////////////////////// */

#endif /* !STLSOFT_INCL_STLSOFT_H_LIMIT_TRAITS */

/* ////////////////////////////////////////////////////////////////////// */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -