cplusplus / sender-receiver

Issues list for P2300
Apache License 2.0
20 stars 3 forks source link

Move `base()` functions in `receiver-adaptor` to an implementation-defined base class #108

Closed ericniebler closed 3 months ago

ericniebler commented 10 months ago

Issue by ericniebler Saturday Jan 08, 2022 at 17:01 GMT Originally opened as https://github.com/NVIDIA/stdexec/issues/380


template <class Base>
struct receiver-adaptor-base { // exposition only
  receiver-adaptor-base() = default;
  template <class B>
    requires constructible_from<Base, B>
  explicit receiver-adaptor-base(B&& base) : base_(std::forward<B>(base)) {}

  template <class Self>
    decltype(auto) base(this Self&& self) noexcept {
      return (std::forward<Self>(self).base_);
    }

 private:
  Base base_;
};

template <>
struct receiver-adaptor-base < /*unspecified default argument*/ > { // TODO fix me
};

template <class-type Derived, class Base = /* unspecified default argument */ >
class receiver-adaptor
  : receiver-adaptor-base<Base> {
  friend Derived;
 public:
  using receiver-adaptor-base<Base>::receiver-adaptor-base;
...
lewissbaker commented 3 months ago

The receiver_adaptor class was removed in P2300R9, so this issue is no longer relevant. Closing.