x
Yes
No
Do you want to visit DriveHQ English website?
Inicio
Características
Precios
Prueba gratuita
Software cliente
Acerca de nosotros
Servidor de archivos
|
Solución de copias de seguridad
|
Servidor FTP
|
Servidor de correo electrónico
|
Alojamiento web
|
Software cliente
Servidor de archivos
Solución de copia de seguridad
Servidor FTP
Servidor de correo electrónico
Alojamiento web
Software cliente
iterator_categories.hpp - Hosted on DriveHQ Cloud IT Platform
Arriba
Subir
Descargar
Compartir
Publicar
Nueva carpeta
Nuevo archivo
Copiar
Cortar
Eliminar
Pegar
Clasificación
Actualizar
Ruta de la carpeta: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\iterator\iterator_categories.hpp
Girar
Efecto
Propiedad
Historial
// (C) Copyright Jeremy Siek 2002. // 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) #ifndef BOOST_ITERATOR_CATEGORIES_HPP # define BOOST_ITERATOR_CATEGORIES_HPP # include
# include
# include
# include
# include
# include
# include
# include
# include
# include
namespace boost { // // Traversal Categories // struct no_traversal_tag {}; struct incrementable_traversal_tag : no_traversal_tag { // incrementable_traversal_tag() {} // incrementable_traversal_tag(std::output_iterator_tag const&) {}; }; struct single_pass_traversal_tag : incrementable_traversal_tag { // single_pass_traversal_tag() {} // single_pass_traversal_tag(std::input_iterator_tag const&) {}; }; struct forward_traversal_tag : single_pass_traversal_tag { // forward_traversal_tag() {} // forward_traversal_tag(std::forward_iterator_tag const&) {}; }; struct bidirectional_traversal_tag : forward_traversal_tag { // bidirectional_traversal_tag() {}; // bidirectional_traversal_tag(std::bidirectional_iterator_tag const&) {}; }; struct random_access_traversal_tag : bidirectional_traversal_tag { // random_access_traversal_tag() {}; // random_access_traversal_tag(std::random_access_iterator_tag const&) {}; }; namespace detail { // // Convert a "strictly old-style" iterator category to a traversal // tag. This is broken out into a separate metafunction to reduce // the cost of instantiating iterator_category_to_traversal, below, // for new-style types. // template
struct old_category_to_traversal : mpl::eval_if< is_convertible
, mpl::identity
, mpl::eval_if< is_convertible
, mpl::identity
, mpl::eval_if< is_convertible
, mpl::identity
, mpl::eval_if< is_convertible
, mpl::identity
, mpl::eval_if< is_convertible
, mpl::identity
, void > > > > > {}; # if BOOST_WORKAROUND(BOOST_MSVC, < 1300) template <> struct old_category_to_traversal
{ typedef int type; }; # endif template
struct pure_traversal_tag : mpl::eval_if< is_convertible
, mpl::identity
, mpl::eval_if< is_convertible
, mpl::identity
, mpl::eval_if< is_convertible
, mpl::identity
, mpl::eval_if< is_convertible
, mpl::identity
, mpl::eval_if< is_convertible
, mpl::identity
, void > > > > > { }; # if BOOST_WORKAROUND(BOOST_MSVC, < 1300) template <> struct pure_traversal_tag
{ typedef int type; }; # endif } // namespace detail // // Convert an iterator category into a traversal tag // template
struct iterator_category_to_traversal : mpl::eval_if< // if already convertible to a traversal tag, we're done. is_convertible
, mpl::identity
, boost::detail::old_category_to_traversal
> {}; // Trait to get an iterator's traversal category template
struct iterator_traversal : iterator_category_to_traversal< typename boost::detail::iterator_traits
::iterator_category > {}; # ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT // Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work // out well. Instantiating the nested apply template also // requires instantiating iterator_traits on the // placeholder. Instead we just specialize it as a metafunction // class. template <> struct iterator_traversal
{ template
struct apply : iterator_traversal
{}; }; template <> struct iterator_traversal
: iterator_traversal
{}; # endif } // namespace boost #include
#endif // BOOST_ITERATOR_CATEGORIES_HPP
iterator_categories.hpp
Dirección de la página
Dirección del archivo
Anterior
9/17
Siguiente
Descargar
( 5 KB )
Comments
Total ratings:
0
Average rating:
No clasificado
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.