5 #ifndef VCCC_RANGES_VIEWS_SINGLE_HPP
6 #define VCCC_RANGES_VIEWS_SINGLE_HPP
49 : value_(
std::move(t)) {}
51 template<
typename InPlace,
typename... Args, std::enable_if_t<
conjunction<
52 std::is_same<InPlace, vccc::in_place_t>,
59 constexpr
const T*
begin() const noexcept {
return data(); }
61 constexpr T*
end() noexcept {
return data() + 1; }
62 constexpr
const T*
end() const noexcept {
return data() + 1; }
64 static constexpr std::size_t
size() noexcept {
return 1; }
66 constexpr T*
data() noexcept {
return value_.operator->(); }
67 constexpr
const T*
data() const noexcept {
return value_.operator->(); }
73 #if __cplusplus >= 201703L
76 single_view(T) -> single_view<T>;
88 std::is_object<std::decay_t<T>>,
89 std::is_constructible<std::decay_t<T>, T&&>
109 using namespace niebloid;
Definition: movable_box.hpp:212
Definition: single.hpp:38
constexpr T * end() noexcept
Definition: single.hpp:61
static constexpr std::size_t size() noexcept
Definition: single.hpp:64
constexpr const T * begin() const noexcept
Definition: single.hpp:59
constexpr single_view(InPlace, Args &&... args)
Definition: single.hpp:55
constexpr T * begin() noexcept
Definition: single.hpp:58
constexpr T * data() noexcept
Definition: single.hpp:66
constexpr single_view()=default
constexpr single_view(T &&t)
Definition: single.hpp:48
constexpr const T * data() const noexcept
Definition: single.hpp:67
constexpr const T * end() const noexcept
Definition: single.hpp:62
constexpr single_view(const T &t)
Definition: single.hpp:45
helper class template for defining a view, using the curiously recurring template pattern
Definition: view_interface.hpp:78
constexpr VCCC_INLINE_OR_STATIC detail::single_niebloid single
Definition: single.hpp:104
constexpr VCCC_INLINE_OR_STATIC in_place_t in_place
Definition: in_place.hpp:47
#define VCCC_INLINE_OR_STATIC
Definition: inline_or_static.hpp:9
Definition: matrix.hpp:495
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35
Definition: conjunction.hpp:22
specifies that a variable of the type can be constructed from or bound to a set of argument types
Definition: constructible_from.hpp:31
specifies that an object of a type can be copy constructed and move constructed
Definition: copy_constructible.hpp:55
Definition: single.hpp:85
constexpr single_view< std::decay_t< T > > operator()(T &&t) const
Definition: single.hpp:92