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

📄 functional.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
/* * Distributed under the Boost Software License, Version 1.0.(See accompanying  * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.) *  * See http://www.boost.org/libs/iostreams for documentation. * File:        boost/iostreams/detail/functional.hpp * Date:        Sun Dec 09 05:38:03 MST 2007 * Copyright:   2007-2008 CodeRage, LLC * Author:      Jonathan Turkanis * Contact:     turkanis at coderage dot com * Defines several function objects and object generators for use with  * execute_all() */#ifndef BOOST_IOSTREAMS_DETAIL_FUNCTIONAL_HPP_INCLUDED#define BOOST_IOSTREAMS_DETAIL_FUNCTIONAL_HPP_INCLUDED#if defined(_MSC_VER) && (_MSC_VER >= 1020)# pragma once#endif#include <boost/iostreams/close.hpp>#include <boost/iostreams/detail/ios.hpp> // BOOST_IOSnamespace boost { namespace iostreams { namespace detail {    // Function objects and object generators for invoking    // boost::iostreams::closetemplate<typename T>class device_close_operation {public:    typedef void result_type;    device_close_operation(T& t, BOOST_IOS::openmode which)         : t_(t), which_(which)         { }    void operator()() const { boost::iostreams::close(t_, which_); }private:    device_close_operation& operator=(const device_close_operation&);    T&                   t_;    BOOST_IOS::openmode  which_;};template<typename T, typename Sink>class filter_close_operation {public:    typedef void result_type;    filter_close_operation(T& t, Sink& snk, BOOST_IOS::openmode which)        : t_(t), snk_(snk), which_(which)        { }    void operator()() const { boost::iostreams::close(t_, snk_, which_); }private:    filter_close_operation& operator=(const filter_close_operation&);    T&                   t_;    Sink&                snk_;    BOOST_IOS::openmode  which_;};template<typename T>device_close_operation<T> call_close(T& t, BOOST_IOS::openmode which) { return device_close_operation<T>(t, which); }template<typename T, typename Sink>filter_close_operation<T, Sink> call_close(T& t, Sink& snk, BOOST_IOS::openmode which) { return filter_close_operation<T, Sink>(t, snk, which); }    // Function objects and object generators for invoking    // boost::iostreams::detail::close_alltemplate<typename T>class device_close_all_operation {public:    typedef void result_type;    device_close_all_operation(T& t) : t_(t) { }    void operator()() const { detail::close_all(t_); }private:    device_close_all_operation& operator=(const device_close_all_operation&);    T& t_;};template<typename T, typename Sink>class filter_close_all_operation {public:    typedef void result_type;    filter_close_all_operation(T& t, Sink& snk) : t_(t), snk_(snk) { }    void operator()() const { detail::close_all(t_, snk_); }private:    filter_close_all_operation& operator=(const filter_close_all_operation&);    T&     t_;    Sink&  snk_;};template<typename T>device_close_all_operation<T> call_close_all(T& t) { return device_close_all_operation<T>(t); }template<typename T, typename Sink>filter_close_all_operation<T, Sink> call_close_all(T& t, Sink& snk) { return filter_close_all_operation<T, Sink>(t, snk); }    // Function object and object generator for invoking a    // member function void close(std::ios_base::openmode)template<typename T>class member_close_operation {public:    typedef void result_type;    member_close_operation(T& t, BOOST_IOS::openmode which)         : t_(t), which_(which)         { }    void operator()() const { t_.close(which_); }private:    member_close_operation& operator=(const member_close_operation&);    T&                   t_;    BOOST_IOS::openmode  which_;};template<typename T>member_close_operation<T> call_member_close(T& t, BOOST_IOS::openmode which) { return member_close_operation<T>(t, which); }    // Function object and object generator for invoking a    // member function void reset()template<typename T>class reset_operation {public:    reset_operation(T& t) : t_(t) { }    void operator()() const { t_.reset(); }private:    reset_operation& operator=(const reset_operation&);    T& t_;};template<typename T>reset_operation<T> call_reset(T& t) { return reset_operation<T>(t); }    // Function object and object generator for clearing a flagtemplate<typename T>class clear_flags_operation {public:    typedef void result_type;    clear_flags_operation(T& t) : t_(t) { }    void operator()() const { t_ = 0; }private:    clear_flags_operation& operator=(const clear_flags_operation&);    T& t_;};template<typename T>clear_flags_operation<T> clear_flags(T& t) { return clear_flags_operation<T>(t); }    // Function object and generator for flushing a buffer// Function object for use with execute_all()template<typename Buffer, typename Device>class flush_buffer_operation {public:    typedef void result_type;    flush_buffer_operation(Buffer& buf, Device& dev, bool flush)        : buf_(buf), dev_(dev), flush_(flush)        { }    void operator()() const    {        if (flush_)             buf_.flush(dev_);    }private:    flush_buffer_operation& operator=(const flush_buffer_operation&);    Buffer&  buf_;    Device&  dev_;    bool     flush_;};template<typename Buffer, typename Device>flush_buffer_operation<Buffer, Device> flush_buffer(Buffer& buf, Device& dev, bool flush){ return flush_buffer_operation<Buffer, Device>(buf, dev, flush); }} } } // End namespaces detail, iostreams, boost.#endif // #ifndef BOOST_IOSTREAMS_DETAIL_FUNCTIONAL_HPP_INCLUDED

⌨️ 快捷键说明

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