di 0.1.0
Loading...
Searching...
No Matches
di::meta::Projected< It, Proj > Struct Template Reference

#include <di/container/meta/projected.h>

Public Types

using Reference = meta::IndirectResult<Proj&, It>
using Value = meta::RemoveCVRef<Reference>
using SSizeType = meta::IteratorSSizeType<It>

Public Member Functions

auto operator* () const -> Reference

Friends

constexpr friend auto tag_invoke (types::Tag< container::iterator_value >, InPlaceType< Projected >) -> InPlaceType< Value >
constexpr friend auto tag_invoke (types::Tag< container::iterator_ssize_type >, InPlaceType< Projected >) -> SSizeType

Member Typedef Documentation

◆ Reference

template<concepts::IndirectlyReadable It, concepts::IndirectlyRegularUnaryInvocable< It > Proj>
using di::meta::Projected< It, Proj >::Reference = meta::IndirectResult<Proj&, It>

◆ SSizeType

template<concepts::IndirectlyReadable It, concepts::IndirectlyRegularUnaryInvocable< It > Proj>
using di::meta::Projected< It, Proj >::SSizeType = meta::IteratorSSizeType<It>

◆ Value

template<concepts::IndirectlyReadable It, concepts::IndirectlyRegularUnaryInvocable< It > Proj>
using di::meta::Projected< It, Proj >::Value = meta::RemoveCVRef<Reference>

Member Function Documentation

◆ operator*()

template<concepts::IndirectlyReadable It, concepts::IndirectlyRegularUnaryInvocable< It > Proj>
auto di::meta::Projected< It, Proj >::operator* ( ) const->Reference

◆ tag_invoke [1/2]

template<concepts::IndirectlyReadable It, concepts::IndirectlyRegularUnaryInvocable< It > Proj>
friend auto tag_invoke ( types::Tag< container::iterator_ssize_type > ,
InPlaceType< Projected< It, Proj > >  )->SSizeType
friend

◆ tag_invoke [2/2]

template<concepts::IndirectlyReadable It, concepts::IndirectlyRegularUnaryInvocable< It > Proj>
friend auto tag_invoke ( types::Tag< container::iterator_value > ,
InPlaceType< Projected< It, Proj > >  )->InPlaceType< Value >
friend

The documentation for this struct was generated from the following file: