[view.interface.members] (original) (raw)

25 Ranges library [ranges]

25.5 Range utilities [range.utility]

25.5.3 View interface [view.interface]

25.5.3.2 Members [view.interface.members]

🔗

constexpr decltype(auto) front() requires [forward_range](range.refinements#concept:forward%5Frange "25.4.5 Other range refinements [range.refinements]")<D>;constexpr decltype(auto) front() const requires [forward_range](range.refinements#concept:forward%5Frange "25.4.5 Other range refinements [range.refinements]")<const D>;

1

#

Preconditions: !empty() is true.

2

#

Effects: Equivalent to: return *ranges​::​begin(derived());

🔗

constexpr decltype(auto) back() requires [bidirectional_range](range.refinements#concept:bidirectional%5Frange "25.4.5 Other range refinements [range.refinements]")<D> && [common_range](range.refinements#concept:common%5Frange "25.4.5 Other range refinements [range.refinements]")<D>;constexpr decltype(auto) back() const requires [bidirectional_range](range.refinements#concept:bidirectional%5Frange "25.4.5 Other range refinements [range.refinements]")<const D> && [common_range](range.refinements#concept:common%5Frange "25.4.5 Other range refinements [range.refinements]")<const D>;

3

#

Preconditions: !empty() is true.

4

#

Effects: Equivalent to: return *ranges​::​prev(ranges​::​end(derived()));