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

📄 access_control.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
// (C) Copyright 2008 CodeRage, LLC (turkanis at coderage dot com)// (C) Copyright 2003-2007 Jonathan Turkanis// 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.// Contains the definition of the class template access_control, which// allows the type of inheritance from a provided base class to be specified // using a template parameter.#ifndef BOOST_IOSTREAMS_ACCESS_CONTROL_HPP_INCLUDED#define BOOST_IOSTREAMS_ACCESS_CONTROL_HPP_INCLUDED#if defined(_MSC_VER) && (_MSC_VER >= 1020)# pragma once#endif              #include <boost/iostreams/detail/select.hpp>#include <boost/mpl/identity.hpp>#include <boost/type_traits/is_same.hpp>namespace boost { namespace iostreams {struct protected_ { };  // Represents protected inheritance.struct public_ { };     // Represents public inheritance.namespace detail {    // Implements protected inheritance.    template<typename U>    struct prot_ : protected U     {         prot_() { }        template<typename V> prot_(V v) : U(v) { }    };    // Implements public inheritance.    template<typename U> struct pub_ : public U {         pub_() { }        template<typename V> pub_(V v) : U(v) { }    };//// Used to deduce the base type for the template access_control.//template<typename T, typename Access>struct access_control_base {    typedef int                                 bad_access_specifier;    typedef typename             iostreams::select<  // Disambiguation for Tru64                ::boost::is_same<                    Access, protected_                >,                              prot_<T>,                ::boost::is_same<                    Access, public_                >,                              pub_<T>,                else_,                          bad_access_specifier            >::type                             type;};} // End namespace detail.//// Template name: access_control.// Description: Allows the type of inheritance from a provided base class//      to be specified using an int template parameter.// Template parameters://      Base - The class from which to inherit (indirectly.)//      Access - The type of access desired. Must be one of the //          values access_base::prot or access_base::pub.//template< typename T, typename Access,          typename Base = // VC6 workaraound (Compiler Error C2516)              typename detail::access_control_base<T, Access>::type >struct access_control : public Base {     access_control() { }    template<typename U> explicit access_control(U u) : Base(u) { }};//----------------------------------------------------------------------------//} } // End namespaces iostreams, boost.#endif // #ifndef BOOST_IOSTREAMS_ACCESS_CONTROL_HPP_INCLUDED

⌨️ 快捷键说明

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