Iros
 
Loading...
Searching...
No Matches
empty_view.h
Go to the documentation of this file.
1#pragma once
2
6#include "di/meta/language.h"
7#include "di/types/size_t.h"
8
9namespace di::container {
10template<typename T>
11requires(concepts::Object<T>)
13 : public ViewInterface<EmptyView<T>>
15public:
16 constexpr static auto begin() -> T* { return nullptr; }
17 constexpr static auto end() -> T* { return nullptr; }
18 constexpr static auto data() -> T* { return nullptr; }
19 constexpr static auto size() -> types::size_t { return 0; }
20 constexpr static auto empty() -> bool { return true; }
21
22private:
24 return EmptyView {};
25 }
38};
39}
Definition empty_view.h:14
constexpr friend auto tag_invoke(types::Tag< container::reconstruct >, InPlaceType< EmptyView >, T *, nullptr_t) -> EmptyView
Definition empty_view.h:30
static constexpr auto size() -> types::size_t
Definition empty_view.h:19
constexpr friend auto tag_invoke(types::Tag< container::reconstruct >, InPlaceType< EmptyView >, nullptr_t, nullptr_t) -> EmptyView
Definition empty_view.h:34
static constexpr auto data() -> T *
Definition empty_view.h:18
constexpr friend auto tag_invoke(types::Tag< container::reconstruct >, InPlaceType< EmptyView >, nullptr_t, T *) -> EmptyView
Definition empty_view.h:26
static constexpr auto empty() -> bool
Definition empty_view.h:20
constexpr friend auto tag_invoke(types::Tag< container::reconstruct >, InPlaceType< EmptyView >, T *, T *) -> EmptyView
Definition empty_view.h:23
static constexpr auto end() -> T *
Definition empty_view.h:17
static constexpr auto begin() -> T *
Definition empty_view.h:16
Definition view_interface.h:26
Definition sequence.h:12
Definition merge_interfaces.h:6
std::size_t size_t
Definition size_t.h:12
di::meta::Decay< decltype(T)> Tag
Definition tag_invoke.h:28
std::nullptr_t nullptr_t
Definition nullptr_t.h:12
Definition enable_borrowed_container.h:9
Definition in_place_type.h:5