The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

__iterator_category (3)
  • >> __iterator_category (3) ( Solaris man: Библиотечные вызовы )
  • 
                           Standard C++ Library
                 Copyright 1998, Rogue Wave Software, Inc.
    
    
    NAME
         __iterator_category
    
          - Determines the category to  which  an  iterator  belongs.
         This  function  is now obsolete. It is included for backward
         compatibility and to support compilers that do  not  include
         partial specialization.
    
    
    
    SYNOPSIS
         #include <iterator>
         template <class Category, class T, class Distance,
                  class Pointer, class Reference>
         inline Category __iterator_category
           (const iterator<Category, T, Distance, Pointer,
           Reference>&);
         template <class T>
         inline random_access_iterator_tag __iterator_category
           (const T*)
    
    
    
    DESCRIPTION
         The___iterator_category family of function templates  allows
         you to determine the category to which any iterator belongs.
         The first function takes an iterator of a specific type  and
         returns  the  tag  for  that  type.  The last takes a T* and
         returns random_access_iterator_tag.
    
    
    
    TAG TYPES
         input_iterator_tag
         output_iterator_tag
         forward_iterator_tag
         bidirectional_iterator_tag
         random_access_iterator_tag
    
         The __iterator_category function is particularly useful  for
         improving the efficiency of algorithms. An algorithm can use
         this function to select the most efficient implementation an
         iterator  is  capable  of  handling  without sacrificing the
         ability to work with a wide range  of  iterator  types.  For
         instance,  both  the  advance  and  distance  primitives use
         __iterator_category to maximize their  efficiency  by  using
         the  tag  returned from iterator_category to select from one
         of several different auxiliary functions. Because this is  a
         compile time selection, use of this primitive incurs no sig-
         nificant runtime overhead.
    
         __iterator_category is typically used like this:
    
    
         template <class Iterator>
         void foo(Iterator first, Iterator last)
         {
          __foo(begin,end,__iterator_category(first));
         }
    
         template <class Iterator>
         void __foo(Iterator first, Iterator last,
                   input_iterator_tag>
         {
           // Most general implementation
         }
    
         template <class Iterator>
         void __foo(Iterator first, Iterator last,
                   bidirectional_iterator_tag>
         {
           // Implementation takes advantage of bi-directional
           // capability of the iterators
         }
    
    
         See the iterator section for a description of iterators  and
         the capabilities associated with each type of iterator tag.
    
    
    
    SEE ALSO
         Other iterator primitives:   __value_type,  __distance_type,
         distance, advance, iterator
    
    
    
    


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру