stl_function.h

来自「symbian上STL模板库的实现」· C头文件 代码 · 共 899 行 · 第 1/3 页

H
899
字号
        private:            _Ret (_Tp::*_M_f)();    };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Ret, class _Tp>        class const_mem_fun_t : public unary_function<const _Tp*, _Ret>    {        public:            explicit                const_mem_fun_t(_Ret (_Tp::*__pf)() const)                : _M_f(__pf) {}            _Ret                operator()(const _Tp* __p) const                { return (__p->*_M_f)(); }        private:            _Ret (_Tp::*_M_f)() const;    };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Ret, class _Tp>        class mem_fun_ref_t : public unary_function<_Tp, _Ret>    {        public:            explicit                mem_fun_ref_t(_Ret (_Tp::*__pf)())                : _M_f(__pf) {}            _Ret                operator()(_Tp& __r) const                { return (__r.*_M_f)(); }        private:            _Ret (_Tp::*_M_f)();    };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Ret, class _Tp>        class const_mem_fun_ref_t : public unary_function<_Tp, _Ret>    {        public:            explicit                const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)                : _M_f(__pf) {}            _Ret                operator()(const _Tp& __r) const                { return (__r.*_M_f)(); }        private:            _Ret (_Tp::*_M_f)() const;    };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Ret, class _Tp, class _Arg>        class mem_fun1_t : public binary_function<_Tp*, _Arg, _Ret>    {        public:            explicit                mem_fun1_t(_Ret (_Tp::*__pf)(_Arg))                : _M_f(__pf) {}            _Ret                operator()(_Tp* __p, _Arg __x) const                { return (__p->*_M_f)(__x); }        private:            _Ret (_Tp::*_M_f)(_Arg);    };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Ret, class _Tp, class _Arg>        class const_mem_fun1_t : public binary_function<const _Tp*, _Arg, _Ret>    {        public:            explicit                const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)                : _M_f(__pf) {}            _Ret                operator()(const _Tp* __p, _Arg __x) const                { return (__p->*_M_f)(__x); }        private:            _Ret (_Tp::*_M_f)(_Arg) const;    };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Ret, class _Tp, class _Arg>        class mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>    {        public:            explicit                mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg))                : _M_f(__pf) {}            _Ret                operator()(_Tp& __r, _Arg __x) const                { return (__r.*_M_f)(__x); }        private:            _Ret (_Tp::*_M_f)(_Arg);    };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Ret, class _Tp, class _Arg>        class const_mem_fun1_ref_t : public binary_function<_Tp, _Arg, _Ret>    {        public:            explicit                const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)                : _M_f(__pf) {}            _Ret                operator()(const _Tp& __r, _Arg __x) const                { return (__r.*_M_f)(__x); }        private:            _Ret (_Tp::*_M_f)(_Arg) const;    };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Tp>        class mem_fun_t<void, _Tp> : public unary_function<_Tp*, void>        {            public:                explicit                    mem_fun_t(void (_Tp::*__pf)())                    : _M_f(__pf) {}                void                    operator()(_Tp* __p) const                    { (__p->*_M_f)(); }            private:                void (_Tp::*_M_f)();        };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Tp>        class const_mem_fun_t<void, _Tp> : public unary_function<const _Tp*, void>        {            public:                explicit                    const_mem_fun_t(void (_Tp::*__pf)() const)                    : _M_f(__pf) {}                void                    operator()(const _Tp* __p) const                    { (__p->*_M_f)(); }            private:                void (_Tp::*_M_f)() const;        };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Tp>        class mem_fun_ref_t<void, _Tp> : public unary_function<_Tp, void>        {            public:                explicit                    mem_fun_ref_t(void (_Tp::*__pf)())                    : _M_f(__pf) {}                void                    operator()(_Tp& __r) const                    { (__r.*_M_f)(); }            private:                void (_Tp::*_M_f)();        };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Tp>        class const_mem_fun_ref_t<void, _Tp> : public unary_function<_Tp, void>        {            public:                explicit                    const_mem_fun_ref_t(void (_Tp::*__pf)() const)                    : _M_f(__pf) {}                void                    operator()(const _Tp& __r) const                    { (__r.*_M_f)(); }            private:                void (_Tp::*_M_f)() const;        };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Tp, class _Arg>        class mem_fun1_t<void, _Tp, _Arg> : public binary_function<_Tp*, _Arg, void>        {            public:                explicit                    mem_fun1_t(void (_Tp::*__pf)(_Arg))                    : _M_f(__pf) {}                void                    operator()(_Tp* __p, _Arg __x) const                    { (__p->*_M_f)(__x); }            private:                void (_Tp::*_M_f)(_Arg);        };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Tp, class _Arg>        class const_mem_fun1_t<void, _Tp, _Arg>        : public binary_function<const _Tp*, _Arg, void>        {            public:                explicit                    const_mem_fun1_t(void (_Tp::*__pf)(_Arg) const)                    : _M_f(__pf) {}                void                    operator()(const _Tp* __p, _Arg __x) const                    { (__p->*_M_f)(__x); }            private:                void (_Tp::*_M_f)(_Arg) const;        };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Tp, class _Arg>        class mem_fun1_ref_t<void, _Tp, _Arg>        : public binary_function<_Tp, _Arg, void>        {            public:                explicit                    mem_fun1_ref_t(void (_Tp::*__pf)(_Arg))                    : _M_f(__pf) {}                void                    operator()(_Tp& __r, _Arg __x) const                    { (__r.*_M_f)(__x); }            private:                void (_Tp::*_M_f)(_Arg);        };    /// One of the @link s20_3_8_memadaptors adaptors for member pointers@endlink.    template <class _Tp, class _Arg>        class const_mem_fun1_ref_t<void, _Tp, _Arg>        : public binary_function<_Tp, _Arg, void>        {            public:                explicit                    const_mem_fun1_ref_t(void (_Tp::*__pf)(_Arg) const)                    : _M_f(__pf) {}                void                    operator()(const _Tp& __r, _Arg __x) const                    { (__r.*_M_f)(__x); }            private:                void (_Tp::*_M_f)(_Arg) const;        };    // Mem_fun adaptor helper functions.  There are only two:    // mem_fun and mem_fun_ref.    template <class _Ret, class _Tp>        inline mem_fun_t<_Ret, _Tp>        mem_fun(_Ret (_Tp::*__f)())        { return mem_fun_t<_Ret, _Tp>(__f); }    template <class _Ret, class _Tp>        inline const_mem_fun_t<_Ret, _Tp>        mem_fun(_Ret (_Tp::*__f)() const)        { return const_mem_fun_t<_Ret, _Tp>(__f); }    template <class _Ret, class _Tp>        inline mem_fun_ref_t<_Ret, _Tp>        mem_fun_ref(_Ret (_Tp::*__f)())        { return mem_fun_ref_t<_Ret, _Tp>(__f); }    template <class _Ret, class _Tp>        inline const_mem_fun_ref_t<_Ret, _Tp>        mem_fun_ref(_Ret (_Tp::*__f)() const)        { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }    template <class _Ret, class _Tp, class _Arg>        inline mem_fun1_t<_Ret, _Tp, _Arg>        mem_fun(_Ret (_Tp::*__f)(_Arg))        { return mem_fun1_t<_Ret, _Tp, _Arg>(__f); }    template <class _Ret, class _Tp, class _Arg>        inline const_mem_fun1_t<_Ret, _Tp, _Arg>        mem_fun(_Ret (_Tp::*__f)(_Arg) const)        { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }    template <class _Ret, class _Tp, class _Arg>        inline mem_fun1_ref_t<_Ret, _Tp, _Arg>        mem_fun_ref(_Ret (_Tp::*__f)(_Arg))        { return mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }    template <class _Ret, class _Tp, class _Arg>        inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>        mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)        { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }    /** @}  */} // namespace std#endif /* _FUNCTION_H */// Local Variables:// mode:C++// End:

⌨️ 快捷键说明

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