[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>;
Preconditions: !empty() is true.
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>;
Preconditions: !empty() is true.
Effects: Equivalent to: return *ranges​::​prev(ranges​::​end(derived()));