11 concept MemberToOwned =
requires(T&&
value) { util::forward<T>(value).to_owned(); };
13 struct ToOwnedFunction : function::pipeline::EnablePipeline {
15 requires(concepts::TagInvocable<ToOwnedFunction, T> || MemberToOwned<T>)
16 constexpr auto operator()(T&&
value)
const {
17 if constexpr (concepts::TagInvocable<ToOwnedFunction, T>) {
20 return util::forward<T>(value).to_owned();
26constexpr inline auto to_owned = detail::ToOwnedFunction {};
28template<
typename Self,
typename T>
34 template<concepts::RemoveCVRefSameAs<Self> This>
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
constexpr auto value
Definition value.h:34
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
constexpr auto to_owned
Definition to_owned.h:26
constexpr auto create(Args &&... args)
Definition create.h:21
Definition any_storable.h:9
constexpr auto to_owned() const
Definition to_owned.h:31
constexpr friend auto tag_invoke(types::Tag< util::to_owned >, This &&self)
Definition to_owned.h:35