@@ -376,10 +376,15 @@ namespace experimental::execution
376376 : _func::_func_impl<STDEXEC ::sender_tag(Args...), _func::_sigs_from_t <Return, false >, queries<>>
377377 , _func::_func_ops_crtp<function<Return(Args...)>>
378378 {
379+ private:
379380 using base = _func::_func_impl<STDEXEC ::sender_tag(Args...),
380381 _func::_sigs_from_t <Return, false >,
381382 queries<>>;
382383
384+ template <class , class , template <class > class , template <class > class >
385+ friend struct std ::basic_common_reference;
386+
387+ public:
383388 using base::base;
384389 };
385390
@@ -388,9 +393,14 @@ namespace experimental::execution
388393 : _func::_func_impl<STDEXEC ::sender_tag(Args...), _func::_sigs_from_t <Return, true >, queries<>>
389394 , _func::_func_ops_crtp<function<Return(Args...) noexcept >>
390395 {
396+ private:
391397 using base =
392398 _func::_func_impl<STDEXEC ::sender_tag(Args...), _func::_sigs_from_t <Return, true >, queries<>>;
393399
400+ template <class , class , template <class > class , template <class > class >
401+ friend struct std ::basic_common_reference;
402+
403+ public:
394404 using base::base;
395405 };
396406
@@ -400,9 +410,14 @@ namespace experimental::execution
400410 : _func::_func_impl<STDEXEC ::sender_tag(Args...), _func::_canonical_t <Sigs>, queries<>>
401411 , _func::_func_ops_crtp<function<STDEXEC ::sender_tag(Args...), Sigs>>
402412 {
413+ private:
403414 using base =
404415 _func::_func_impl<STDEXEC ::sender_tag(Args...), _func::_canonical_t <Sigs>, queries<>>;
405416
417+ template <class , class , template <class > class , template <class > class >
418+ friend struct std ::basic_common_reference;
419+
420+ public:
406421 using base::base;
407422 };
408423
@@ -413,10 +428,15 @@ namespace experimental::execution
413428 _func::_canonical_t <queries<Queries...>>>
414429 , _func::_func_ops_crtp<function<Return(Args...), queries<Queries...>>>
415430 {
431+ private:
416432 using base = _func::_func_impl<STDEXEC ::sender_tag(Args...),
417433 _func::_sigs_from_t <Return, false >,
418434 _func::_canonical_t <queries<Queries...>>>;
419435
436+ template <class , class , template <class > class , template <class > class >
437+ friend struct std ::basic_common_reference;
438+
439+ public:
420440 using base::base;
421441 };
422442
@@ -427,10 +447,15 @@ namespace experimental::execution
427447 _func::_canonical_t <queries<Queries...>>>
428448 , _func::_func_ops_crtp<function<Return(Args...) noexcept , queries<Queries...>>>
429449 {
450+ private:
430451 using base = _func::_func_impl<STDEXEC ::sender_tag(Args...),
431452 _func::_sigs_from_t <Return, true >,
432453 _func::_canonical_t <queries<Queries...>>>;
433454
455+ template <class , class , template <class > class , template <class > class >
456+ friend struct std ::basic_common_reference;
457+
458+ public:
434459 using base::base;
435460 };
436461
@@ -445,10 +470,15 @@ namespace experimental::execution
445470 STDEXEC ::completion_signatures<Sigs...>,
446471 queries<Queries...>>>
447472 {
473+ private:
448474 using base = _func::_func_impl<STDEXEC ::sender_tag(Args...),
449475 _func::_canonical_t <STDEXEC ::completion_signatures<Sigs...>>,
450476 _func::_canonical_t <queries<Queries...>>>;
451477
478+ template <class , class , template <class > class , template <class > class >
479+ friend struct std ::basic_common_reference;
480+
481+ public:
452482 using base::base;
453483 };
454484} // namespace experimental::execution
0 commit comments