Lines Matching refs:_Tp
35 template <class _VTable, class _Tp>
37 __mtype<_VTable>, __mtype<_Tp>>
39 __mtype<_Tp>) const noexcept -> const _VTable* in operator ()()
42 __mtype<_Tp>{}); in operator ()()
181 template <class _Storage, class _Tp>
185 requires __callable<_Tag, __mtype<_Tp>, _Storage&, _As...>
190 return _Tag{}(__mtype<_Tp>{}, *static_cast<_Storage*>(__storage), in __anon1bf2f58b0702()
196 requires __callable<_Tag, __mtype<_Tp>, _Storage&, _As...>
202 __nothrow_callable<_Tag, __mtype<_Tp>, _Storage&, _As...>); in __anon1bf2f58b0802()
203 return _Tag{}(__mtype<_Tp>{}, *static_cast<_Storage*>(__storage), in __anon1bf2f58b0802()
211 template <class _Storage, class _Tp>
212 requires tag_invocable<__delete_t, __mtype<_Tp>, _Storage&>
213 void operator()(__mtype<_Tp>, _Storage& __storage) noexcept in operator ()()
216 nothrow_tag_invocable<__delete_t, __mtype<_Tp>, _Storage&>); in operator ()()
217 stdexec::tag_invoke(__delete_t{}, __mtype<_Tp>{}, __storage); in operator ()()
225 template <class _Storage, class _Tp>
226 requires tag_invocable<__copy_construct_t, __mtype<_Tp>, _Storage&,
228 void operator()(__mtype<_Tp>, _Storage& __self, const _Storage& __from) // in operator ()()
229 noexcept(nothrow_tag_invocable<__copy_construct_t, __mtype<_Tp>, in operator ()()
232 stdexec::tag_invoke(__copy_construct_t{}, __mtype<_Tp>{}, __self, in operator ()()
241 template <class _Storage, class _Tp>
242 requires tag_invocable<__move_construct_t, __mtype<_Tp>, _Storage&,
244 void operator()(__mtype<_Tp>, _Storage& __self, in operator ()()
247 static_assert(nothrow_tag_invocable<__move_construct_t, __mtype<_Tp>, in operator ()()
249 stdexec::tag_invoke(__move_construct_t{}, __mtype<_Tp>{}, __self, in operator ()()
290 template <class _Storage, class _Tp, class _ParentVTable, class... _StorageCPOs>
292 {*__create_vtable(__mtype<_ParentVTable>{}, __mtype<_Tp>{})},
293 {__storage_vfun_fn<_Storage, _Tp>{}(
318 template <class _Tp>
320 sizeof(_Tp) <= __buffer_size && alignof(_Tp) <= __alignment;
322 template <class _Tp>
326 return &__storage_vtbl<__t, __decay_t<_Tp>, _Vtable, __with_delete>; in __get_vtable_of_type()
334 template <__not_decays_to<__t> _Tp>
336 __mtype<__decay_t<_Tp>>>
337 __t(_Tp&& __object) : __vtable_{__get_vtable_of_type<_Tp>()} in __t()
339 using _Dp = __decay_t<_Tp>;
342 __construct_small<_Dp>(static_cast<_Tp&&>(__object));
346 __construct_large<_Dp>(static_cast<_Tp&&>(__object));
350 template <class _Tp, class... _Args>
352 __mtype<_Tp>>
353 __t(std::in_place_type_t<_Tp>, _Args&&... __args) : in __t() argument
354 __vtable_{__get_vtable_of_type<_Tp>()} in __t()
356 if constexpr (__is_small<_Tp>)
358 __construct_small<_Tp>(static_cast<_Args&&>(__args)...);
362 __construct_large<_Tp>(static_cast<_Args&&>(__args)...);
390 template <class _Tp, class... _As>
393 static_assert(sizeof(_Tp) <= __buffer_size && in __construct_small()
394 alignof(_Tp) <= __alignment); in __construct_small()
395 _Tp* __pointer = in __construct_small()
396 static_cast<_Tp*>(static_cast<void*>(&__buffer_[0])); in __construct_small()
398 _Allocator>::template rebind_alloc<_Tp>; in __construct_small()
405 template <class _Tp, class... _As>
409 _Allocator>::template rebind_alloc<_Tp>; in __construct_large()
411 _Tp* __pointer = in __construct_large()
427 template <class _Tp>
429 (this __mtype<_Tp>, __t& __self) noexcept in STDEXEC_MEMFN_DECL()
436 _Allocator>::template rebind_alloc<_Tp>; in STDEXEC_MEMFN_DECL()
438 _Tp* __pointer = static_cast<_Tp*>( in STDEXEC_MEMFN_DECL()
441 if constexpr (!__is_small<_Tp>) in STDEXEC_MEMFN_DECL()
474 template <class _Tp>
476 sizeof(_Tp) <= __buffer_size && alignof(_Tp) <= __alignment &&
477 std::is_nothrow_move_constructible_v<_Tp>;
484 template <class _Tp>
489 return &__storage_vtbl<__t, __decay_t<_Tp>, _Vtable, __with_delete, in __get_vtable_of_type()
494 return &__storage_vtbl<__t, __decay_t<_Tp>, _Vtable, __with_delete, in __get_vtable_of_type()
504 template <__not_decays_to<__t> _Tp>
506 __mtype<__decay_t<_Tp>>>
507 __t(_Tp&& __object) : __vtable_{__get_vtable_of_type<_Tp>()} in __t()
509 using _Dp = __decay_t<_Tp>;
512 __construct_small<_Dp>(static_cast<_Tp&&>(__object));
516 __construct_large<_Dp>(static_cast<_Tp&&>(__object));
520 template <class _Tp, class... _Args>
521 requires __callable<__create_vtable_t, __mtype<_Vtable>, __mtype<_Tp>>
522 __t(std::in_place_type_t<_Tp>, _Args&&... __args) : in __t() argument
523 __vtable_{__get_vtable_of_type<_Tp>()} in __t()
525 if constexpr (__is_small<_Tp>)
527 __construct_small<_Tp>(static_cast<_Args&&>(__args)...);
531 __construct_large<_Tp>(static_cast<_Args&&>(__args)...);
589 template <class _Tp, class... _As>
592 static_assert(sizeof(_Tp) <= __buffer_size && in __construct_small()
593 alignof(_Tp) <= __alignment); in __construct_small()
594 _Tp* __pointer = static_cast<_Tp*>(static_cast<void*>(&__buffer_[0])); in __construct_small()
596 _Allocator>::template rebind_alloc<_Tp>; in __construct_small()
603 template <class _Tp, class... _As>
607 _Allocator>::template rebind_alloc<_Tp>; in __construct_large()
609 _Tp* __pointer = std::allocator_traits<_Alloc>::allocate(__alloc, 1); in __construct_large()
623 template <class _Tp>
625 (this __mtype<_Tp>, __t& __self) noexcept in STDEXEC_MEMFN_DECL()
632 _Allocator>::template rebind_alloc<_Tp>; in STDEXEC_MEMFN_DECL()
634 _Tp* __pointer = in STDEXEC_MEMFN_DECL()
635 static_cast<_Tp*>(std::exchange(__self.__object_pointer_, nullptr)); in STDEXEC_MEMFN_DECL()
637 if constexpr (!__is_small<_Tp>) in STDEXEC_MEMFN_DECL()
643 template <class _Tp>
645 (this __mtype<_Tp>, __t& __self, __t&& __other) noexcept in STDEXEC_MEMFN_DECL()
651 _Tp* __pointer = static_cast<_Tp*>( in STDEXEC_MEMFN_DECL()
653 if constexpr (__is_small<_Tp>) in STDEXEC_MEMFN_DECL()
655 _Tp& __other_object = *__pointer; in STDEXEC_MEMFN_DECL()
656 __self.template __construct_small<_Tp>( in STDEXEC_MEMFN_DECL()
657 static_cast<_Tp&&>(__other_object)); in STDEXEC_MEMFN_DECL()
659 _Allocator>::template rebind_alloc<_Tp>; in STDEXEC_MEMFN_DECL()
672 template <class _Tp>
675 (this __mtype<_Tp>, __t& __self, const __t& __other) in STDEXEC_MEMFN_DECL()
681 const _Tp& __other_object = in STDEXEC_MEMFN_DECL()
682 *static_cast<const _Tp*>(__other.__object_pointer_); in STDEXEC_MEMFN_DECL()
683 if constexpr (__is_small<_Tp>) in STDEXEC_MEMFN_DECL()
685 __self.template __construct_small<_Tp>(__other_object); in STDEXEC_MEMFN_DECL()
689 __self.template __construct_large<_Tp>(__other_object); in STDEXEC_MEMFN_DECL()