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

📄 method_adaptors.hpp

📁 新版本TR1的stl
💻 HPP
📖 第 1 页 / 共 4 页
字号:
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return stdcall_mem_fun_const_void_t<T>(func);
}

# endif /* STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

#endif /* STLSOFT_CF_STDCALL_SUPPORTED */





// cdecl
#ifdef STLSOFT_CF_CDECL_SUPPORTED

/** \brief Creator function to adapt a pointer to a 0-parameter mutating
 *    (non-const) member function, for use with a reference to the class.
 *
 * \ingroup group__library__functional
 */
template< ss_typename_param_k R
        , ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline cdecl_mem_fun_ref_t<R, T> mem_fun_ref(R (T::*STLSOFT_CDECL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline cdecl_mem_fun_ref_t<R, T> mem_fun_ref(R (STLSOFT_CDECL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return cdecl_mem_fun_ref_t<R, T>(func);
}

#if defined(STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID)

/* We just provide mem_fun_ref_void() that returns 'normal' type. */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline cdecl_mem_fun_ref_t<void, T> mem_fun_ref_void(void (T::*STLSOFT_CDECL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline cdecl_mem_fun_ref_t<void, T> mem_fun_ref_void(void (STLSOFT_CDECL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return cdecl_mem_fun_ref_t<void, T>(func);
}

#else /* ? STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline cdecl_mem_fun_ref_void_t<T> mem_fun_ref(void (T::*STLSOFT_CDECL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline cdecl_mem_fun_ref_void_t<T> mem_fun_ref(void (STLSOFT_CDECL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return cdecl_mem_fun_ref_void_t<T>(func);
}

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline cdecl_mem_fun_ref_void_t<T> mem_fun_ref_void(void (T::*STLSOFT_CDECL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline cdecl_mem_fun_ref_void_t<T> mem_fun_ref_void(void (STLSOFT_CDECL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return cdecl_mem_fun_ref_void_t<T>(func);
}

#endif /* STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */


/** \brief Creator function to adapt a pointer to a 0-parameter non-mutating
 *    (const) member function, for use with a reference to the class.
 *
 * \ingroup group__library__functional
 */
template< ss_typename_param_k R
        , ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline cdecl_mem_fun_ref_const_t<R, T> mem_fun_ref(R (T::*STLSOFT_CDECL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline cdecl_mem_fun_ref_const_t<R, T> mem_fun_ref(R (STLSOFT_CDECL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return cdecl_mem_fun_ref_const_t<R, T>(func);
}

#if defined(STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID)

/* We just provide mem_fun_ref_void() that returns 'normal' type. */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline cdecl_mem_fun_ref_const_t<void, T> mem_fun_ref_void(void (T::*STLSOFT_CDECL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline cdecl_mem_fun_ref_const_t<void, T> mem_fun_ref_void(void (STLSOFT_CDECL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return cdecl_mem_fun_ref_const_t<void, T>(func);
}

#else /* ? STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline cdecl_mem_fun_ref_const_void_t<T> mem_fun_ref(void (T::*STLSOFT_CDECL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline cdecl_mem_fun_ref_const_void_t<T> mem_fun_ref(void (STLSOFT_CDECL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return cdecl_mem_fun_ref_const_void_t<T>(func);
}

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline cdecl_mem_fun_ref_const_void_t<T> mem_fun_ref_void(void (T::*STLSOFT_CDECL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline cdecl_mem_fun_ref_const_void_t<T> mem_fun_ref_void(void (STLSOFT_CDECL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return cdecl_mem_fun_ref_const_void_t<T>(func);
}

# endif /* STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */
#endif /* STLSOFT_CF_CDECL_SUPPORTED */


// fastcall

#ifdef STLSOFT_CF_FASTCALL_SUPPORTED

/** \brief Creator function to adapt a pointer to a 0-parameter mutating
 *    (non-const) member function, for use with a reference to the class.
 *
 * \ingroup group__library__functional
 */
template< ss_typename_param_k R
        , ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline fastcall_mem_fun_ref_t<R, T> mem_fun_ref(R (T::*STLSOFT_FASTCALL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline fastcall_mem_fun_ref_t<R, T> mem_fun_ref(R (STLSOFT_FASTCALL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return fastcall_mem_fun_ref_t<R, T>(func);
}

# if defined(STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID)

/* We just provide mem_fun_ref_void() that returns 'normal' type. */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline fastcall_mem_fun_ref_t<void, T> mem_fun_ref_void(void (T::*STLSOFT_FASTCALL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline fastcall_mem_fun_ref_t<void, T> mem_fun_ref_void(void (STLSOFT_FASTCALL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return fastcall_mem_fun_ref_t<void, T>(func);
}

# else /* ? STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline fastcall_mem_fun_ref_void_t<T> mem_fun_ref(void (T::*STLSOFT_FASTCALL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline fastcall_mem_fun_ref_void_t<T> mem_fun_ref(void (STLSOFT_FASTCALL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return fastcall_mem_fun_ref_void_t<T>(func);
}

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline fastcall_mem_fun_ref_void_t<T> mem_fun_ref_void(void (T::*STLSOFT_FASTCALL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline fastcall_mem_fun_ref_void_t<T> mem_fun_ref_void(void (STLSOFT_FASTCALL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return fastcall_mem_fun_ref_void_t<T>(func);
}

# endif /* STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

#endif /* STLSOFT_CF_FASTCALL_SUPPORTED */


#ifdef STLSOFT_CF_FASTCALL_SUPPORTED

/** \brief Creator function to adapt a pointer to a 0-parameter non-mutating
 *    (const) member function, for use with a reference to the class.
 *
 * \ingroup group__library__functional
 */
template< ss_typename_param_k R
        , ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline fastcall_mem_fun_ref_const_t<R, T> mem_fun_ref(R (T::*STLSOFT_FASTCALL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline fastcall_mem_fun_ref_const_t<R, T> mem_fun_ref(R (STLSOFT_FASTCALL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return fastcall_mem_fun_ref_const_t<R, T>(func);
}

# if defined(STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID)

/* We just provide mem_fun_ref_void() that returns 'normal' type. */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline fastcall_mem_fun_ref_const_t<void, T> mem_fun_ref_void(void (T::*STLSOFT_FASTCALL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline fastcall_mem_fun_ref_const_t<void, T> mem_fun_ref_void(void (STLSOFT_FASTCALL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return fastcall_mem_fun_ref_const_t<void, T>(func);
}

# else /* ? STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline fastcall_mem_fun_ref_const_void_t<T> mem_fun_ref(void (T::*STLSOFT_FASTCALL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline fastcall_mem_fun_ref_const_void_t<T> mem_fun_ref(void (STLSOFT_FASTCALL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return fastcall_mem_fun_ref_const_void_t<T>(func);
}

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline fastcall_mem_fun_ref_const_void_t<T> mem_fun_ref_void(void (T::*STLSOFT_FASTCALL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline fastcall_mem_fun_ref_const_void_t<T> mem_fun_ref_void(void (STLSOFT_FASTCALL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return fastcall_mem_fun_ref_const_void_t<T>(func);
}

# endif /* STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

#endif /* STLSOFT_CF_FASTCALL_SUPPORTED */


// stdcall

#ifdef STLSOFT_CF_STDCALL_SUPPORTED

/** \brief Creator function to adapt a pointer to a 0-parameter mutating
 *    (non-const) member function, for use with a reference to the class.
 *
 * \ingroup group__library__functional
 */
template< ss_typename_param_k R
        , ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline stdcall_mem_fun_ref_t<R, T> mem_fun_ref(R (T::*STLSOFT_STDCALL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline stdcall_mem_fun_ref_t<R, T> mem_fun_ref(R (STLSOFT_STDCALL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return stdcall_mem_fun_ref_t<R, T>(func);
}

# if defined(STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID)

/* We just provide mem_fun_ref_void() that returns 'normal' type. */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline stdcall_mem_fun_ref_t<void, T> mem_fun_ref_void(void (T::*STLSOFT_STDCALL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline stdcall_mem_fun_ref_t<void, T> mem_fun_ref_void(void (STLSOFT_STDCALL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return stdcall_mem_fun_ref_t<void, T>(func);
}

# else /* ? STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline stdcall_mem_fun_ref_void_t<T> mem_fun_ref(void (T::*STLSOFT_STDCALL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline stdcall_mem_fun_ref_void_t<T> mem_fun_ref(void (STLSOFT_STDCALL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return stdcall_mem_fun_ref_void_t<T>(func);
}

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline stdcall_mem_fun_ref_void_t<T> mem_fun_ref_void(void (T::*STLSOFT_STDCALL func)())
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline stdcall_mem_fun_ref_void_t<T> mem_fun_ref_void(void (STLSOFT_STDCALL T::*func)())
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return stdcall_mem_fun_ref_void_t<T>(func);
}

# endif /* STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

#endif /* STLSOFT_CF_STDCALL_SUPPORTED */


#ifdef STLSOFT_CF_STDCALL_SUPPORTED

/** \brief Creator function to adapt a pointer to a 0-parameter non-mutating
 *    (const) member function, for use with a reference to the class.
 *
 * \ingroup group__library__functional
 */
template< ss_typename_param_k R
        , ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline stdcall_mem_fun_ref_const_t<R, T> mem_fun_ref(R (T::*STLSOFT_STDCALL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline stdcall_mem_fun_ref_const_t<R, T> mem_fun_ref(R (STLSOFT_STDCALL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return stdcall_mem_fun_ref_const_t<R, T>(func);
}

# if defined(STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID)

/* We just provide mem_fun_ref_void() that returns 'normal' type. */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline stdcall_mem_fun_ref_const_t<void, T> mem_fun_ref_void(void (T::*STLSOFT_STDCALL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline stdcall_mem_fun_ref_const_t<void, T> mem_fun_ref_void(void (STLSOFT_STDCALL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return stdcall_mem_fun_ref_const_t<void, T>(func);
}

# else /* ? STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline stdcall_mem_fun_ref_const_void_t<T> mem_fun_ref(void (T::*STLSOFT_STDCALL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline stdcall_mem_fun_ref_const_void_t<T> mem_fun_ref(void (STLSOFT_STDCALL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return stdcall_mem_fun_ref_const_void_t<T>(func);
}

template< ss_typename_param_k T
        >
#ifdef STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED
inline stdcall_mem_fun_ref_const_void_t<T> mem_fun_ref_void(void (T::*STLSOFT_STDCALL func)() const)
#else /* ? STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
inline stdcall_mem_fun_ref_const_void_t<T> mem_fun_ref_void(void (STLSOFT_STDCALL T::*func)() const)
#endif /* STLSOFT_CF_CALLING_CONVENTION_OUTSIDE_BRACE_REQUIRED */
{
    return stdcall_mem_fun_ref_const_void_t<T>(func);
}

# endif /* STLSOFT_CF_COMPILER_SUPPORTS_RETURN_VOID */

#endif /* STLSOFT_CF_STDCALL_SUPPORTED */

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

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

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

#endif /* !STLSOFT_INCL_STLSOFT_FUNCTIONAL_HPP_METHOD_ADAPTORS */

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

⌨️ 快捷键说明

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