delegate_mfn_cc.hpp

来自「An article on the implementation of a fa」· HPP 代码 · 共 59 行

HPP
59
字号
// FD.Delegate
// Do not include this header directly.

public:
  /**
   * Copy constructor for member function bind with calling convention.
   */
  template<typename UR FD_DELEGATE_COMMA FD_DELEGATE_TEMPLATE_PARMS2, typename U, typename T>
  FD_DELEGATE_DELEGATE(UR (FD_DELEGATE_MF_CC U::*fxn)(FD_DELEGATE_TEMPLATE_ARGS2), T t)
  {
    this->FD_DELEGATE_CC_NAME(mfn_bind)( fxn, t );
  }

  template<typename UR FD_DELEGATE_COMMA FD_DELEGATE_TEMPLATE_PARMS2, typename U, typename T>
  FD_DELEGATE_DELEGATE(UR (FD_DELEGATE_MF_CC U::*fxn)(FD_DELEGATE_TEMPLATE_ARGS2) const, T t)
  {
    this->FD_DELEGATE_CC_NAME(mfn_bind_const)( fxn, t );
  }

  /**
   * bind() for member function bind with calling convention.
   */
  template<typename UR FD_DELEGATE_COMMA FD_DELEGATE_TEMPLATE_PARMS2, typename U, typename T>
  FD_DELEGATE_DELEGATE & bind(UR (FD_DELEGATE_MF_CC U::*fxn)(FD_DELEGATE_TEMPLATE_ARGS2), T t)
  {
    this->FD_DELEGATE_CC_NAME(mfn_bind)( fxn, t, true );
    return *this;
  }

  template<typename UR FD_DELEGATE_COMMA FD_DELEGATE_TEMPLATE_PARMS2, typename U, typename T>
  FD_DELEGATE_DELEGATE & bind(UR (FD_DELEGATE_MF_CC U::*fxn)(FD_DELEGATE_TEMPLATE_ARGS2) const, T t)
  {
    this->FD_DELEGATE_CC_NAME(mfn_bind_const)( fxn, t, true );
    return *this;
  }

private:

#if FD_DELEGATE_NUM_ARGS > 0

  /**
   * assgin_to() for member function with calling convention.
   */
  template<typename UR FD_DELEGATE_COMMA_SP FD_DELEGATE_TEMPLATE_PARMS2_SP, typename U>
  FD_DELEGATE_DELEGATE & assign_to(UR (FD_DELEGATE_MF_CC U::*fxn)(FD_DELEGATE_TEMPLATE_ARGS2_SP), bool reset = false)
  {
    this->FD_DELEGATE_CC_NAME(mfn)( fxn, reset );
    return *this;
  }

  template<typename UR FD_DELEGATE_COMMA_SP FD_DELEGATE_TEMPLATE_PARMS2_SP, typename U>
  FD_DELEGATE_DELEGATE & assign_to(UR (FD_DELEGATE_MF_CC U::*fxn)(FD_DELEGATE_TEMPLATE_ARGS2_SP) const, bool reset = false)
  {
    this->FD_DELEGATE_CC_NAME(mfn_const)( fxn, reset );
    return *this;
  }

#endif // #if FD_DELEGATE_NUM_ARGS > 0

⌨️ 快捷键说明

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