STD::RANGES::VIEW_INTERFACE(3)

πŸ’– std::ranges::view_interface< _Derived > πŸ’–

okay so bestie, you've wandered into the Library Functions Manual section 3 β€” that's the C++ library calls zone, and today's main character is a class template. yes. a template. she's flexible like that. πŸ¦‹


✨ NAME ✨

std::ranges::view_interface< _Derived > β€” the ranges::view_interface class template. that's her. that's the whole name. slay.


🌸 SYNOPSIS 🌸

#include <ranges>

Inherited by , and .

not me reading "Inherited by , and ." and getting nothing 😭 like the list is literally empty, that's just how the page is generated, bestie. no names. no cap. moving on.

πŸ‘‘ Public Member Functions πŸ‘‘

  • constexpr decltype(auto) back () β€” grab the last element. non-const version, go off.
  • constexpr decltype(auto) back () const β€” same last-element energy, but const. she's chill.
  • constexpr auto cbegin () β€” const iterator to the beginning, non-const object.
  • constexpr auto cbegin () const β€” const iterator to the beginning, and the object is const too.
  • constexpr auto cend () β€” const iterator to the end. the sequel.
  • constexpr auto cend () const β€” const iterator to the end, const object. periodt.
  • constexpr auto data () const noexcept(noexcept(ranges::begin(_M_derived()))) β€” pointer to the underlying data, const flavor.
  • constexpr auto data () noexcept(noexcept(ranges::begin(_M_derived()))) β€” pointer to the underlying data, and yes the noexcept is conditional on ranges::begin(_M_derived()) not throwing. iykyk.
  • constexpr bool empty () const noexcept(noexcept(_S_empty(_M_derived()))) β€” is it empty? const, and its noexcept rides on _S_empty(_M_derived()).
  • constexpr bool empty () const noexcept(noexcept(ranges::size(_M_derived())==0)) β€” is it empty, const, and this time the noexcept rides on ranges::size(_M_derived())==0.
  • constexpr bool empty () noexcept(noexcept(_S_empty(_M_derived()))) β€” the non-const "is it empty", noexcept from _S_empty(_M_derived()).
  • constexpr bool empty () noexcept(noexcept(ranges::size(_M_derived())==0)) β€” non-const "is it empty", noexcept from ranges::size(_M_derived())==0.
  • constexpr decltype(auto) front () β€” first element. main character position.
  • constexpr decltype(auto) front () const β€” first element, const edition.
  • constexpr operator bool () const noexcept(noexcept(ranges::empty(_M_derived()))) β€” the const conversion to bool, and it won't throw unless ranges::empty(_M_derived()) does.
  • constexpr operator bool () noexcept(noexcept(ranges::empty(_M_derived()))) β€” the non-const conversion to bool, same noexcept deal.
  • template<random_access_range _Range = _Derived> constexpr decltype(auto) operator[] (range_difference_t< _Range > __n) β€” indexed access, but only if _Range is a random_access_range, and _Range defaults to _Derived. takes a range_difference_t< _Range > __n.
  • template<random_access_range _Range = const _Derived> constexpr decltype(auto) operator[] (range_difference_t< _Range > __n) const β€” same subscript, const version, and here _Range defaults to const _Derived.
  • constexpr auto size () const noexcept(noexcept(_S_size(_M_derived()))) β€” how big is it, const, noexcept from _S_size(_M_derived()).
  • constexpr auto size () noexcept(noexcept(_S_size(_M_derived()))) β€” how big is it, non-const, same noexcept situation.

that's twenty functions. twenty. we counted. πŸ’…


πŸŽ€ Detailed Description πŸŽ€

template<typename _Derived>
    requires is_class_v<_Derived> && same_as<_Derived,
    remove_cv_t<_Derived>>
    class std::ranges::view_interface< _Derived >

"The ranges::view_interface class template."


🫢 Author 🫢

Generated automatically by Doxygen for libstdc++ from the source code.


and that's the whole page, bestie!! πŸ’œ generated by Doxygen, for libstdc++, straight from the source code β€” no human author took credit, she simply manifested 🌈✨ go forth and interface your views, you absolute icon πŸ‘‘πŸ’–

πŸ“¦ where this page comes from
  • arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
  • centos-stream 10: gcc-toolset-16-libstdc++-docs 16.2.1-1.3.el10 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • fedora 44: libstdc++-docs 16.2.1-2.fc44
  • fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms