Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
PrevUpHomeNext

Struct template range_adaptor_closure

boost::stl_interfaces::range_adaptor_closure

Synopsis

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

template<typename D, typename > 
struct range_adaptor_closure {
  // types
  typedef int inheritance_tag_with_an_unlikely_name_;

  // public member functions
  template<typename T, 
           typename Enable = std::enable_if_t<detail::is_invocable_v<D, T>> > 
    frienddecltype(auto) constexpr operator|(T &&, D &&);
  template<typename T, 
           typename Enable = std::enable_if_t<detail::is_invocable_v<D const &, T>> > 
    frienddecltype(auto) constexpr operator|(T &&, D const &);
};

Description

A backwards-compatible implementation of C++23's std::ranges::range_adaptor_closure. range_adaptor_closure may be a struct template or may be an alias, as required to maintain compatability with the standard library's view adaptors.

range_adaptor_closure public member functions

  1. template<typename T, 
             typename Enable = std::enable_if_t<detail::is_invocable_v<D, T>> > 
      frienddecltype(auto) constexpr operator|(T && t, D && d);
  2. template<typename T, 
             typename Enable = std::enable_if_t<detail::is_invocable_v<D const &, T>> > 
      frienddecltype(auto) constexpr operator|(T && t, D const & d);

PrevUpHomeNext