Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Struct template view_interface

boost::stl_interfaces::view_interface

Synopsis

// In header: <boost/stl_interfaces/view_interface.hpp>

template<typename Derived,  Contiguity> 
struct view_interface {

  // public member functions
  template<typename D> 
     
    () ;
  template<typename D> 
     
    () ;
  template<typename D, 
           typename R> 
     
    () ;
  template<typename D, 
           typename R> 
     
    () ;
  template<typename D,  C = , 
           typename Enable> 
     () ;
  template<typename D,  C = , 
           typename Enable> 
     
    () ;
  template<typename D> 
     
    () ;
  template<typename D> 
     
    () ;
  template<typename D> 
     () ;
  template<typename D> 
     
    () ;
  template<typename D, 
           typename Enable = v1_dtl::decrementable_sentinel<> 
     
    () ;
  template<typename D, 
           typename Enable = v1_dtl::decrementable_sentinel<> 
     
    () ;
  template<typename D> 
     
    () ;
  template<typename D> 
     
    () ;
};

Description

A CRTP template that one may derive from to make it easier to define std::ranges::view-like types with a container-like interface. This is a pre-C++20 version of C++20's view_interface (see [view.interface] in the C++ standard).

The template parameter D for view_interface may be an incomplete type. Before any member of the resulting specialization of view_interface other than special member functions is referenced, D shall be complete, and model both std::derived_from<view_interface<D>> and std::view.

view_interface public member functions

  1. template<typename D> 
       
      () ;
  2. template<typename D> 
       
      () ;
  3. template<typename D, 
             typename R> 
       
      () ;
  4. template<typename D, 
             typename R> 
       
      () ;
  5. template<typename D,  C = , 
             typename Enable> 
       () ;
  6. template<typename D,  C = , 
             typename Enable> 
       
      () ;
  7. template<typename D> 
       
      () ;
  8. template<typename D> 
       
      () ;
  9. template<typename D> 
       () ;
  10. template<typename D> 
       
      () ;
  11. template<typename D, 
             typename Enable = v1_dtl::decrementable_sentinel<> 
       
      () ;
  12. template<typename D, 
             typename Enable = v1_dtl::decrementable_sentinel<> 
       
      () ;
  13. template<typename D> 
       
      ( n) ;
  14. template<typename D> 
       
      ( n) ;

PrevUpHomeNext