Iros
 
Loading...
Searching...
No Matches
clone.h
Go to the documentation of this file.
1#pragma once
2
8#include "di/meta/language.h"
9#include "di/util/clone.h"
10#include "di/util/forward.h"
11
12namespace di::container::view {
13namespace detail {
15 template<concepts::ViewableContainer Con, typename Value = meta::ContainerReference<Con>>
17 constexpr auto operator()(Con&& container) const -> concepts::View auto {
18 if constexpr (!concepts::LValueReference<Value>) {
19 return all(util::forward<Con>(container));
20 } else {
21 return transform(util::forward<Con>(container), util::clone);
22 }
23 }
24 };
25}
26
27constexpr inline auto clone = detail::CloneFunction {};
28}
Definition clone.h:44
Definition language.h:30
Definition view.h:10
Definition adjacent.h:9
Definition adjacent.h:8
constexpr auto transform
Definition transform.h:28
constexpr auto clone
Definition clone.h:27
constexpr auto all
Definition all.h:35
Definition sequence.h:12
constexpr auto clone
Definition clone.h:39