Namensräume
Varianten
Aktionen

std::experimental::ranges::projected

Von cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
Iterator-Bibliothek
Iterator-Konzepte
Indirekte aufrufbare Konzepte
                                                  
                                                  
                                                  
Gemeinsame Algorithmus-Anforderungen
                                                  
Konzept-Dienstprogramme
projected
Iterator-Dienstprogramme und -Operationen
Iterator-Traits
Iterator-Adapter
Stream-Iteratoren
 
Definiert in Header <experimental/ranges/iterator>
template< Readable I, IndirectRegularUnaryInvocable<I> Proj >

struct projected {
    using value_type =
        std::remove_cv_t<std::remove_reference_t<ranges::indirect_result_of_t<Proj&(I)>>>;
    ranges::indirect_result_of_t<Proj&(I)> operator*() const;
};

template< WeaklyIncrementable I, class Proj >
struct difference_type<projected<I, Proj>> {
    using type = ranges::difference_type_t<I>;

};
(Ranges TS)

Die Klassenschablone projected bündelt einen Readable-Typ I und eine Funktion Proj in einem neuen Readable-Typ, dessen reference-Typ das Ergebnis der Anwendung von Proj auf den reference-Typ von I ist. Sie existiert ausschließlich zur Vereinfachung der Spezifikation von Constraints, und daher ist ihr operator*() möglicherweise nicht tatsächlich definiert.